From 480bc9d807ae8c6f7e6d51eb065b1ea3a8ddf8b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Bitard?= <bitard.michael@gmail.com> Date: Wed, 23 Mar 2022 18:02:35 +0100 Subject: [PATCH] chore(): ajoute le frontend au monorepo (#3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(): ajoute l'UI dans le projet global Camino * fix(ui): corrige (mal) un import de style * fix(ui): corrige (mieux) un import de style * infra(): le déploiement se fait en monorepo * chore(infra): utilise le token docker au lieu du mot de passe principal * chore(doc): met à jour la documentation du projet --- .dockerignore | 7 + packages/api/.env-example => .env-example | 10 +- .github/workflows/api-ci.yml | 24 +- .github/workflows/api-release-docker.yml | 46 + .github/workflows/gitguardian.yml | 2 +- .github/workflows/release-docker.yml | 45 - .github/workflows/release-github.yml | 5 +- .github/workflows/ui-ci.yml | 45 + .github/workflows/ui-release-docker.yml | 21 + .gitignore | 2 + Dockerfile.api | 29 + Dockerfile.api.docs | 2 + Dockerfile.ui | 25 + README.md | 87 + contributing.md | 10 +- ...-compose.dev.yml => docker-compose.dev.yml | 40 +- docker-compose.local.yml | 54 + .../docker-compose.yml => docker-compose.yml | 43 +- package-lock.json | 69373 ++++++++++++---- package.json | 16 +- packages/api/Dockerfile | 29 - packages/api/Dockerfile.docs | 2 - packages/api/README.md | 23 - packages/api/docker-compose.docs.yml | 21 - packages/api/docker-compose.local.yml | 58 - packages/api/docker-compose.localhost.yml | 32 - packages/api/package.json | 6 - packages/api/src/config/index.ts | 9 +- packages/ui/.editorconfig | 5 + packages/ui/.eslintignore | 1 + packages/ui/.gitignore | 10 + packages/ui/.ncurc.json | 12 + packages/ui/.prettierignore | 6 + packages/ui/.storybook/main.js | 16 + packages/ui/.storybook/preview.js | 11 + packages/ui/CHANGELOG.md | 2035 + packages/ui/README.md | 25 + packages/ui/_sources/logo-camino.afdesign | Bin 0 -> 98832 bytes packages/ui/babel.config.js | 12 + packages/ui/camino-screenshot.png | Bin 0 -> 471220 bytes packages/ui/index.js | 94 + packages/ui/jest.config.js | 185 + packages/ui/manual/docker.md | 43 + packages/ui/package.json | 248 + packages/ui/src/__mocks__/file-mock.js | 3 + packages/ui/src/__mocks__/setupJest.js | 25 + packages/ui/src/api/_client.js | 87 + packages/ui/src/api/_client.test.js | 67 + packages/ui/src/api/_upload.js | 45 + packages/ui/src/api/administrations.js | 215 + packages/ui/src/api/documents.js | 49 + packages/ui/src/api/entreprises.js | 103 + .../ui/src/api/fragments/administration.js | 108 + .../ui/src/api/fragments/administrations.js | 32 + packages/ui/src/api/fragments/documents.js | 28 + packages/ui/src/api/fragments/entreprise.js | 64 + packages/ui/src/api/fragments/entreprises.js | 78 + packages/ui/src/api/fragments/geojson.js | 65 + .../ui/src/api/fragments/metas-activites.js | 83 + packages/ui/src/api/fragments/metas.js | 305 + packages/ui/src/api/fragments/pays.js | 22 + packages/ui/src/api/fragments/point.js | 48 + packages/ui/src/api/fragments/substance.js | 61 + .../ui/src/api/fragments/titre-activite.js | 142 + .../ui/src/api/fragments/titre-demarche.js | 41 + packages/ui/src/api/fragments/titre-etape.js | 382 + packages/ui/src/api/fragments/titre.js | 269 + .../ui/src/api/fragments/titres-demarches.js | 39 + packages/ui/src/api/fragments/utilisateur.js | 48 + packages/ui/src/api/geojson.js | 69 + packages/ui/src/api/journaux.js | 36 + packages/ui/src/api/metas-activites.js | 247 + packages/ui/src/api/metas.js | 926 + packages/ui/src/api/statistiques.js | 107 + packages/ui/src/api/titre-demande.js | 13 + packages/ui/src/api/titres-activites.js | 95 + packages/ui/src/api/titres-demarches.js | 144 + packages/ui/src/api/titres-etapes.js | 166 + packages/ui/src/api/titres.js | 270 + packages/ui/src/api/utilisateurs-titres.js | 8 + packages/ui/src/api/utilisateurs.js | 275 + packages/ui/src/app.vue | 130 + packages/ui/src/components/_charts/bar.vue | 70 + packages/ui/src/components/_charts/line.vue | 54 + .../components/_common/coordonnees-icone.vue | 11 + .../ui/src/components/_common/domaine.vue | 18 + .../ui/src/components/_common/download.vue | 47 + .../ui/src/components/_common/downloads.vue | 51 + packages/ui/src/components/_common/filtres.js | 10 + .../ui/src/components/_common/filtres.vue | 128 + .../components/_common/filtres/domaines.vue | 21 + .../components/_common/filtres/statuts.vue | 21 + .../src/components/_common/filtres/types.vue | 16 + packages/ui/src/components/_common/liste.vue | 119 + packages/ui/src/components/_common/map.vue | 197 + packages/ui/src/components/_common/nom.vue | 13 + .../ui/src/components/_common/perimetre.vue | 101 + .../components/_common/point-reference.vue | 42 + packages/ui/src/components/_common/points.vue | 151 + .../_common/section-element-edit.vue | 70 + .../_common/section-element-file-edit.vue | 62 + .../_common/section-element-input-edit.vue | 147 + .../_common/section-element-multiple-edit.vue | 62 + .../_common/section-element-multiple.vue | 36 + .../components/_common/section-element.vue | 70 + .../ui/src/components/_common/section.vue | 52 + .../src/components/_common/sections-edit.vue | 68 + packages/ui/src/components/_common/statut.vue | 20 + .../ui/src/components/_common/titre-nom.vue | 11 + .../components/_common/titre-type-select.vue | 87 + .../_common/titre-type-type-nom.vue | 10 + packages/ui/src/components/_map/index.vue | 206 + packages/ui/src/components/_map/leaflet.js | 140 + packages/ui/src/components/_map/pattern.vue | 65 + .../ui/src/components/_map/tiles-selector.vue | 69 + .../ui/src/components/_map/warning-brgm.vue | 24 + .../_ui/__snapshots__/pill.stories.storyshot | 29 + packages/ui/src/components/_ui/accordion.vue | 126 + .../ui/src/components/_ui/button-plus.vue | 11 + packages/ui/src/components/_ui/card.vue | 11 + packages/ui/src/components/_ui/columns.vue | 51 + packages/ui/src/components/_ui/dot.vue | 16 + packages/ui/src/components/_ui/dropdown.vue | 54 + packages/ui/src/components/_ui/edit-array.vue | 59 + .../ui/src/components/_ui/edit-boolean.vue | 35 + packages/ui/src/components/_ui/edit-date.vue | 69 + packages/ui/src/components/_ui/edit-json.vue | 82 + .../ui/src/components/_ui/edit-number.vue | 79 + .../ui/src/components/_ui/edit-string.vue | 82 + .../src/components/_ui/filters-checkboxes.vue | 93 + .../_ui/filters-input-autocomplete.vue | 92 + .../ui/src/components/_ui/filters-input.vue | 21 + .../ui/src/components/_ui/filters-selects.vue | 54 + packages/ui/src/components/_ui/filters.vue | 242 + .../ui/src/components/_ui/help-tooltip.vue | 12 + .../src/components/_ui/input-autocomplete.vue | 158 + packages/ui/src/components/_ui/input-date.vue | 150 + packages/ui/src/components/_ui/input-file.vue | 26 + .../ui/src/components/_ui/input-number.vue | 47 + packages/ui/src/components/_ui/list.vue | 22 + packages/ui/src/components/_ui/loader.vue | 7 + packages/ui/src/components/_ui/messages.vue | 22 + packages/ui/src/components/_ui/page.vue | 37 + packages/ui/src/components/_ui/pagination.vue | 96 + packages/ui/src/components/_ui/pill-list.vue | 26 + .../ui/src/components/_ui/pill.stories.ts | 30 + packages/ui/src/components/_ui/pill.vue | 18 + packages/ui/src/components/_ui/popup.vue | 29 + packages/ui/src/components/_ui/ranges.vue | 64 + packages/ui/src/components/_ui/ribbon.vue | 24 + .../ui/src/components/_ui/table-client.vue | 63 + .../src/components/_ui/table-pagination.vue | 84 + packages/ui/src/components/_ui/table.vue | 106 + packages/ui/src/components/_ui/tag-list.vue | 26 + packages/ui/src/components/_ui/tag.vue | 30 + .../src/components/activite-edition.test.ts | 111 + .../ui/src/components/activite-edition.vue | 185 + packages/ui/src/components/activite.vue | 73 + .../ui/src/components/activite/button.vue | 72 + .../src/components/activite/depose-popup.vue | 92 + .../src/components/activite/preview.test.ts | 124 + .../ui/src/components/activite/preview.vue | 189 + .../src/components/activite/remove-popup.vue | 107 + packages/ui/src/components/activites.vue | 108 + .../ui/src/components/activites/filtres.js | 100 + packages/ui/src/components/activites/list.vue | 46 + .../ui/src/components/activites/pills.vue | 22 + packages/ui/src/components/activites/table.js | 62 + packages/ui/src/components/administration.vue | 308 + .../activites-types-emails.test.js | 151 + .../administration/activites-types-emails.vue | 161 + .../components/administration/edit-popup.vue | 360 + .../components/administration/permissions.vue | 1059 + .../ui/src/components/administrations.vue | 104 + .../src/components/administrations/filtres.js | 21 + .../src/components/administrations/table.js | 40 + packages/ui/src/components/content/about.vue | 322 + .../src/components/content/accessibilite.vue | 38 + .../ui/src/components/content/cgu-1-0-0.vue | 282 + packages/ui/src/components/content/cgu.vue | 386 + .../ui/src/components/content/contacts.vue | 33 + .../src/components/content/contribution.vue | 38 + .../content/mentions-legales-cgu.vue | 20 + .../components/content/mentions-legales.vue | 37 + packages/ui/src/components/demarches.vue | 13 + .../demarches/filtres-custom-etapes.vue | 118 + .../ui/src/components/demarches/filtres.js | 178 + packages/ui/src/components/demarches/page.vue | 133 + packages/ui/src/components/demarches/table.js | 75 + .../ui/src/components/document/button-add.vue | 48 + .../ui/src/components/document/edit-popup.vue | 193 + .../ui/src/components/document/multi-edit.vue | 99 + .../src/components/document/remove-popup.vue | 105 + .../src/components/document/sections-edit.vue | 294 + packages/ui/src/components/documents/list.vue | 58 + packages/ui/src/components/documents/tr.vue | 222 + packages/ui/src/components/entreprise.vue | 329 + .../src/components/entreprise/add-popup.vue | 136 + .../src/components/entreprise/edit-popup.vue | 153 + .../src/components/entreprise/permissions.vue | 206 + packages/ui/src/components/entreprises.vue | 113 + .../ui/src/components/entreprises/filtres.js | 11 + .../ui/src/components/entreprises/table.js | 28 + packages/ui/src/components/error.vue | 16 + packages/ui/src/components/etape-edition.vue | 325 + packages/ui/src/components/etape.vue | 93 + .../ui/src/components/etape/accordion.vue | 55 + .../components/etape/autocomplete-group.vue | 85 + .../etape/decisions-annexes-edit.vue | 21 + .../ui/src/components/etape/depose-popup.vue | 91 + packages/ui/src/components/etape/edit.vue | 440 + .../etape/entity-input-autocomplete.vue | 72 + .../etape/fondamentales-edit.test.ts | 360 + .../components/etape/fondamentales-edit.vue | 508 + .../ui/src/components/etape/fondamentales.vue | 167 + .../components/etape/form-save-btn.test.ts | 55 + .../ui/src/components/etape/form-save-btn.vue | 62 + .../ui/src/components/etape/heritage-edit.vue | 72 + .../components/etape/justificatifs-edit.vue | 290 + .../ui/src/components/etape/perimetre.vue | 76 + .../ui/src/components/etape/points-edit.vue | 494 + .../etape/points-geo-systemes-edit.vue | 99 + .../components/etape/points-import-popup.vue | 109 + .../src/components/etape/points-lot-edit.vue | 77 + .../components/etape/points-point-edit.vue | 53 + .../etape/points-point-reference-edit.vue | 56 + packages/ui/src/components/etape/preview.vue | 331 + .../ui/src/components/etape/prop-duree.vue | 26 + packages/ui/src/components/etape/remove.vue | 119 + .../components/etape/section-element-edit.vue | 82 + .../ui/src/components/etape/sections-edit.vue | 72 + .../ui/src/components/etape/type-edit.vue | 129 + packages/ui/src/components/glossaire.vue | 62 + .../glossaire/definition-entree.vue | 58 + .../src/components/glossaire/definition.vue | 63 + .../ui/src/components/glossaire/sommaire.vue | 30 + packages/ui/src/components/journaux.vue | 32 + .../src/components/journaux/differences.vue | 38 + .../ui/src/components/journaux/journaux.vue | 126 + packages/ui/src/components/menu/button.vue | 44 + packages/ui/src/components/menu/menu.vue | 189 + packages/ui/src/components/meta-activite.vue | 40 + packages/ui/src/components/meta-demarche.vue | 53 + packages/ui/src/components/meta-etape.vue | 70 + packages/ui/src/components/meta-titre.vue | 58 + packages/ui/src/components/meta.vue | 198 + packages/ui/src/components/metas.vue | 82 + .../src/components/metas/definition-edit.vue | 248 + .../components/metas/meta-create-popup.vue | 148 + .../ui/src/components/metas/meta-input.vue | 101 + .../components/metas/meta-label-or-input.vue | 62 + .../components/metas/meta-page-template.vue | 43 + packages/ui/src/components/metas/table.js | 23 + packages/ui/src/components/page/footer.vue | 152 + .../page/footer/newsletter-form.vue | 37 + packages/ui/src/components/page/header.vue | 70 + packages/ui/src/components/page/strike.vue | 17 + packages/ui/src/components/statistiques.vue | 52 + .../ui/src/components/statistiques/_utils.js | 76 + .../src/components/statistiques/globales.vue | 236 + .../granulats-marins-activite.vue | 76 + .../statistiques/granulats-marins.vue | 463 + .../statistiques/guyane-activite.vue | 111 + .../ui/src/components/statistiques/guyane.vue | 477 + packages/ui/src/components/titre-creation.vue | 237 + packages/ui/src/components/titre.vue | 220 + .../src/components/titre/administration.vue | 147 + .../components/titre/demarche-edit-popup.vue | 176 + .../titre/demarche-remove-popup.vue | 120 + packages/ui/src/components/titre/demarche.vue | 183 + .../ui/src/components/titre/demarches.vue | 87 + .../ui/src/components/titre/edit-popup.vue | 264 + .../ui/src/components/titre/entreprise.vue | 203 + packages/ui/src/components/titre/header.vue | 145 + packages/ui/src/components/titre/infos.vue | 186 + .../ui/src/components/titre/remove-popup.vue | 114 + .../ui/src/components/titre/repertoire.vue | 64 + .../ui/src/components/titre/statut-dot.vue | 35 + .../ui/src/components/titre/territoires.vue | 69 + packages/ui/src/components/titres.vue | 191 + packages/ui/src/components/titres/filtres.js | 78 + packages/ui/src/components/titres/filtres.vue | 76 + packages/ui/src/components/titres/map.js | 170 + packages/ui/src/components/titres/map.vue | 320 + .../components/titres/table-pagination.vue | 88 + packages/ui/src/components/titres/table.js | 172 + packages/ui/src/components/titres/table.vue | 85 + packages/ui/src/components/travaux.vue | 13 + .../pure-button.stories.storyshot | 28 + packages/ui/src/components/user/add-popup.vue | 112 + packages/ui/src/components/user/add.vue | 207 + packages/ui/src/components/user/button.vue | 41 + .../ui/src/components/user/login-popup.vue | 196 + .../components/user/password-init-popup.vue | 102 + .../ui/src/components/user/password-init.vue | 99 + .../components/user/pure-button.stories.ts | 42 + .../ui/src/components/user/pure-button.vue | 35 + packages/ui/src/components/user/user.ts | 4 + packages/ui/src/components/utilisateur.vue | 309 + .../src/components/utilisateur/edit-popup.vue | 529 + .../components/utilisateur/email-popup.vue | 113 + .../components/utilisateur/password-popup.vue | 175 + .../components/utilisateur/remove-popup.vue | 96 + packages/ui/src/components/utilisateurs.vue | 140 + .../ui/src/components/utilisateurs/filtres.js | 48 + .../ui/src/components/utilisateurs/table.js | 79 + packages/ui/src/index.html | 43 + packages/ui/src/index.ts | 80 + packages/ui/src/public/favicon.ico | Bin 0 -> 1150 bytes .../public/img/about/gallery-apresmine.jpg | Bin 0 -> 162007 bytes .../public/img/about/gallery-energetique.jpg | Bin 0 -> 119909 bytes .../public/img/about/gallery-geothermie.jpg | Bin 0 -> 83911 bytes .../img/about/gallery-non-energetique.jpg | Bin 0 -> 141045 bytes .../public/img/about/gallery-stockages.jpg | Bin 0 -> 126284 bytes .../src/public/img/about/gallery-travaux.jpg | Bin 0 -> 128247 bytes .../ui/src/public/img/leaflet/fullscreen.png | Bin 0 -> 299 bytes .../src/public/img/leaflet/fullscreen@2x.png | Bin 0 -> 420 bytes .../ui/src/public/img/leaflet/layers-2x.png | Bin 0 -> 1259 bytes packages/ui/src/public/img/leaflet/layers.png | Bin 0 -> 696 bytes .../ui/src/public/img/leaflet/marker-icon.png | Bin 0 -> 1466 bytes packages/ui/src/public/img/logo-camino.svg | 11 + .../src/public/img/logo-fabriquenumerique.svg | 107 + packages/ui/src/public/img/logo-rf.svg | 9 + packages/ui/src/router/index.js | 308 + packages/ui/src/shim-vue.d.ts | 5 + packages/ui/src/stats/bootstrap.js | 25 + packages/ui/src/stats/custom-variables.js | 34 + packages/ui/src/stats/index.js | 84 + .../ui/src/store/__mocks__/titre-etape.js | 208 + packages/ui/src/store/_liste-build.js | 157 + packages/ui/src/store/_liste-build.test.js | 272 + packages/ui/src/store/administration.js | 300 + packages/ui/src/store/administration.test.js | 427 + packages/ui/src/store/administrations.js | 54 + packages/ui/src/store/administrations.test.js | 46 + packages/ui/src/store/definitions.js | 79 + packages/ui/src/store/definitions.test.js | 152 + packages/ui/src/store/document.js | 173 + packages/ui/src/store/document.test.js | 278 + packages/ui/src/store/entreprise.js | 154 + packages/ui/src/store/entreprise.test.js | 245 + packages/ui/src/store/entreprises.js | 43 + packages/ui/src/store/index.js | 256 + packages/ui/src/store/index.test.js | 346 + packages/ui/src/store/journaux.js | 24 + packages/ui/src/store/meta.js | 184 + packages/ui/src/store/metas-definitions.js | 793 + packages/ui/src/store/metas.js | 56 + packages/ui/src/store/statistiques.js | 42 + packages/ui/src/store/statistiques.test.js | 127 + .../ui/src/store/titre-activite-edition.js | 125 + .../src/store/titre-activite-edition.test.js | 193 + packages/ui/src/store/titre-activite.js | 101 + packages/ui/src/store/titre-activite.test.js | 159 + packages/ui/src/store/titre-creation.js | 72 + packages/ui/src/store/titre-demarche.js | 105 + packages/ui/src/store/titre-demarche.test.js | 119 + packages/ui/src/store/titre-etape-edition.js | 434 + .../ui/src/store/titre-etape-edition.test.js | 358 + packages/ui/src/store/titre-etape.js | 84 + packages/ui/src/store/titre-etape.test.js | 114 + packages/ui/src/store/titre.js | 242 + packages/ui/src/store/titre.test.js | 224 + packages/ui/src/store/titres-activites.js | 126 + .../ui/src/store/titres-activites.test.js | 105 + packages/ui/src/store/titres-demarches.js | 159 + .../ui/src/store/titres-demarches.test.js | 99 + packages/ui/src/store/titres.js | 298 + packages/ui/src/store/titres.test.js | 358 + packages/ui/src/store/user.js | 368 + packages/ui/src/store/user.test.js | 461 + packages/ui/src/store/utilisateur.js | 266 + packages/ui/src/store/utilisateur.test.js | 428 + packages/ui/src/store/utilisateurs.js | 95 + packages/ui/src/store/utilisateurs.test.js | 99 + packages/ui/src/storybook.test.ts | 23 + packages/ui/src/styles/buttons.css | 95 + packages/ui/src/styles/camino.css | 393 + packages/ui/src/styles/grids/grid-fluid.css | 219 + packages/ui/src/styles/grids/grid-system.css | 187 + packages/ui/src/styles/grids/grid-utils.css | 127 + packages/ui/src/styles/icons/icons.css | 771 + packages/ui/src/styles/icons/svgs/16-file.svg | 3 + packages/ui/src/styles/icons/svgs/16-x.svg | 3 + packages/ui/src/styles/icons/svgs/24-at.svg | 4 + .../ui/src/styles/icons/svgs/24-check.svg | 4 + .../ui/src/styles/icons/svgs/24-chevron-b.svg | 3 + .../ui/src/styles/icons/svgs/24-chevron-t.svg | 3 + .../ui/src/styles/icons/svgs/24-close.svg | 3 + .../ui/src/styles/icons/svgs/24-cross.svg | 3 + packages/ui/src/styles/icons/svgs/24-dot.svg | 3 + .../ui/src/styles/icons/svgs/24-download.svg | 3 + .../styles/icons/svgs/24-file-chevron-b.svg | 3 + .../styles/icons/svgs/24-file-chevron-t.svg | 3 + .../ui/src/styles/icons/svgs/24-file-link.svg | 4 + .../ui/src/styles/icons/svgs/24-file-plus.svg | 4 + packages/ui/src/styles/icons/svgs/24-file.svg | 3 + packages/ui/src/styles/icons/svgs/24-help.svg | 1 + packages/ui/src/styles/icons/svgs/24-key.svg | 4 + packages/ui/src/styles/icons/svgs/24-link.svg | 3 + .../ui/src/styles/icons/svgs/24-login.svg | 4 + .../styles/icons/svgs/24-markers-grouped.svg | 3 + .../src/styles/icons/svgs/24-markers-none.svg | 6 + .../icons/svgs/24-markers-ungrouped.svg | 3 + packages/ui/src/styles/icons/svgs/24-menu.svg | 3 + .../ui/src/styles/icons/svgs/24-minus.svg | 3 + .../ui/src/styles/icons/svgs/24-move-down.svg | 3 + .../ui/src/styles/icons/svgs/24-move-up.svg | 3 + .../ui/src/styles/icons/svgs/24-pattern.svg | 3 + .../ui/src/styles/icons/svgs/24-pencil.svg | 4 + packages/ui/src/styles/icons/svgs/24-plus.svg | 3 + .../ui/src/styles/icons/svgs/24-refresh.svg | 3 + .../ui/src/styles/icons/svgs/24-square.svg | 3 + .../ui/src/styles/icons/svgs/24-trash.svg | 3 + .../ui/src/styles/icons/svgs/24-unlink.svg | 3 + packages/ui/src/styles/icons/svgs/24-user.svg | 7 + packages/ui/src/styles/icons/svgs/24-view.svg | 4 + .../src/styles/icons/svgs/24-window-link.svg | 4 + .../src/styles/icons/svgs/48-announcement.svg | 4 + .../ui/src/styles/icons/svgs/building-2.svg | 5 + .../src/styles/icons/svgs/business-check.svg | 6 + .../src/styles/icons/svgs/cloud-setting.svg | 5 + .../ui/src/styles/icons/svgs/eco-globe-1.svg | 9 + .../styles/icons/svgs/file-checklist-edit.svg | 12 + packages/ui/src/styles/icons/svgs/folder.svg | 3 + packages/ui/src/styles/icons/svgs/globe-3.svg | 3 + .../ui/src/styles/icons/svgs/group-global.svg | 7 + packages/ui/src/styles/icons/svgs/info.svg | 3 + .../ui/src/styles/icons/svgs/list-bullets.svg | 3 + .../icons/svgs/map-legend-sdom-zone.svg | 22 + .../ui/src/styles/icons/svgs/map-pin-2.svg | 4 + .../ui/src/styles/icons/svgs/map-treasure.svg | 4 + .../ui/src/styles/icons/svgs/settings.svg | 4 + .../styles/icons/svgs/window-speedtest.svg | 7 + packages/ui/src/styles/leaflet/fullscreen.css | 38 + .../src/styles/leaflet/gesture-handling.css | 54 + .../ui/src/styles/leaflet/marker-clusters.css | 9 + packages/ui/src/styles/leaflet/overrides.css | 705 + packages/ui/src/styles/loader.css | 38 + packages/ui/src/styles/normalize.css | 1 + packages/ui/src/styles/settings.css | 87 + packages/ui/src/styles/styles.css | 49 + packages/ui/src/styles/system/code.css | 89 + packages/ui/src/styles/system/colors.css | 92 + packages/ui/src/styles/system/footer.css | 51 + packages/ui/src/styles/system/forms.css | 159 + packages/ui/src/styles/system/lists.css | 87 + packages/ui/src/styles/system/margins.css | 320 + packages/ui/src/styles/system/paddings.css | 248 + packages/ui/src/styles/system/print.css | 44 + packages/ui/src/styles/system/reset.css | 140 + packages/ui/src/styles/system/tables.css | 95 + packages/ui/src/styles/system/tools.css | 46 + packages/ui/src/styles/system/typography.css | 242 + packages/ui/src/styles/system/ui.css | 199 + packages/ui/src/styles/system/utils.css | 219 + packages/ui/src/styles/theme.css | 317 + packages/ui/src/styles/transitions.css | 97 + packages/ui/src/typings/choices.d.ts | 1 + packages/ui/src/typings/vuex.d.ts | 13 + packages/ui/src/utils/contenu.js | 121 + packages/ui/src/utils/documents.js | 47 + packages/ui/src/utils/documents.test.js | 54 + packages/ui/src/utils/entreprise.js | 14 + packages/ui/src/utils/geojson.js | 46 + packages/ui/src/utils/index.js | 81 + packages/ui/src/utils/index.test.js | 146 + packages/ui/src/utils/map-tiles.js | 58 + packages/ui/src/utils/matomo-tracker.js | 28 + packages/ui/src/utils/number-format.js | 6 + packages/ui/src/utils/stream.js | 35 + packages/ui/src/utils/titre-etape-edit.js | 220 + .../ui/src/utils/titre-etape-edit.test.js | 175 + .../src/utils/titre-etape-heritage-build.js | 117 + packages/ui/src/utils/titre-etape-save.js | 293 + .../ui/src/utils/titre-etape-save.test.js | 221 + packages/ui/src/utils/url.js | 186 + packages/ui/src/utils/url.test.js | 11 + packages/ui/tsconfig.json | 28 + packages/ui/vite.config.js | 48 + 480 files changed, 104869 insertions(+), 16005 deletions(-) create mode 100644 .dockerignore rename packages/api/.env-example => .env-example (89%) create mode 100644 .github/workflows/api-release-docker.yml delete mode 100644 .github/workflows/release-docker.yml create mode 100644 .github/workflows/ui-ci.yml create mode 100644 .github/workflows/ui-release-docker.yml create mode 100644 Dockerfile.api create mode 100644 Dockerfile.api.docs create mode 100644 Dockerfile.ui create mode 100644 README.md rename packages/api/docker-compose.dev.yml => docker-compose.dev.yml (56%) create mode 100644 docker-compose.local.yml rename packages/api/docker-compose.yml => docker-compose.yml (53%) delete mode 100644 packages/api/Dockerfile delete mode 100644 packages/api/Dockerfile.docs delete mode 100644 packages/api/docker-compose.docs.yml delete mode 100644 packages/api/docker-compose.local.yml delete mode 100644 packages/api/docker-compose.localhost.yml create mode 100644 packages/ui/.editorconfig create mode 100644 packages/ui/.eslintignore create mode 100644 packages/ui/.gitignore create mode 100644 packages/ui/.ncurc.json create mode 100644 packages/ui/.prettierignore create mode 100644 packages/ui/.storybook/main.js create mode 100644 packages/ui/.storybook/preview.js create mode 100644 packages/ui/CHANGELOG.md create mode 100644 packages/ui/README.md create mode 100644 packages/ui/_sources/logo-camino.afdesign create mode 100644 packages/ui/babel.config.js create mode 100644 packages/ui/camino-screenshot.png create mode 100644 packages/ui/index.js create mode 100644 packages/ui/jest.config.js create mode 100644 packages/ui/manual/docker.md create mode 100644 packages/ui/package.json create mode 100644 packages/ui/src/__mocks__/file-mock.js create mode 100644 packages/ui/src/__mocks__/setupJest.js create mode 100644 packages/ui/src/api/_client.js create mode 100644 packages/ui/src/api/_client.test.js create mode 100644 packages/ui/src/api/_upload.js create mode 100644 packages/ui/src/api/administrations.js create mode 100644 packages/ui/src/api/documents.js create mode 100644 packages/ui/src/api/entreprises.js create mode 100644 packages/ui/src/api/fragments/administration.js create mode 100644 packages/ui/src/api/fragments/administrations.js create mode 100644 packages/ui/src/api/fragments/documents.js create mode 100644 packages/ui/src/api/fragments/entreprise.js create mode 100644 packages/ui/src/api/fragments/entreprises.js create mode 100644 packages/ui/src/api/fragments/geojson.js create mode 100644 packages/ui/src/api/fragments/metas-activites.js create mode 100644 packages/ui/src/api/fragments/metas.js create mode 100644 packages/ui/src/api/fragments/pays.js create mode 100644 packages/ui/src/api/fragments/point.js create mode 100644 packages/ui/src/api/fragments/substance.js create mode 100644 packages/ui/src/api/fragments/titre-activite.js create mode 100644 packages/ui/src/api/fragments/titre-demarche.js create mode 100644 packages/ui/src/api/fragments/titre-etape.js create mode 100644 packages/ui/src/api/fragments/titre.js create mode 100644 packages/ui/src/api/fragments/titres-demarches.js create mode 100644 packages/ui/src/api/fragments/utilisateur.js create mode 100644 packages/ui/src/api/geojson.js create mode 100644 packages/ui/src/api/journaux.js create mode 100644 packages/ui/src/api/metas-activites.js create mode 100644 packages/ui/src/api/metas.js create mode 100644 packages/ui/src/api/statistiques.js create mode 100644 packages/ui/src/api/titre-demande.js create mode 100644 packages/ui/src/api/titres-activites.js create mode 100644 packages/ui/src/api/titres-demarches.js create mode 100644 packages/ui/src/api/titres-etapes.js create mode 100644 packages/ui/src/api/titres.js create mode 100644 packages/ui/src/api/utilisateurs-titres.js create mode 100644 packages/ui/src/api/utilisateurs.js create mode 100644 packages/ui/src/app.vue create mode 100644 packages/ui/src/components/_charts/bar.vue create mode 100644 packages/ui/src/components/_charts/line.vue create mode 100644 packages/ui/src/components/_common/coordonnees-icone.vue create mode 100644 packages/ui/src/components/_common/domaine.vue create mode 100644 packages/ui/src/components/_common/download.vue create mode 100644 packages/ui/src/components/_common/downloads.vue create mode 100644 packages/ui/src/components/_common/filtres.js create mode 100644 packages/ui/src/components/_common/filtres.vue create mode 100644 packages/ui/src/components/_common/filtres/domaines.vue create mode 100644 packages/ui/src/components/_common/filtres/statuts.vue create mode 100644 packages/ui/src/components/_common/filtres/types.vue create mode 100644 packages/ui/src/components/_common/liste.vue create mode 100644 packages/ui/src/components/_common/map.vue create mode 100644 packages/ui/src/components/_common/nom.vue create mode 100644 packages/ui/src/components/_common/perimetre.vue create mode 100644 packages/ui/src/components/_common/point-reference.vue create mode 100644 packages/ui/src/components/_common/points.vue create mode 100644 packages/ui/src/components/_common/section-element-edit.vue create mode 100644 packages/ui/src/components/_common/section-element-file-edit.vue create mode 100644 packages/ui/src/components/_common/section-element-input-edit.vue create mode 100644 packages/ui/src/components/_common/section-element-multiple-edit.vue create mode 100644 packages/ui/src/components/_common/section-element-multiple.vue create mode 100644 packages/ui/src/components/_common/section-element.vue create mode 100644 packages/ui/src/components/_common/section.vue create mode 100644 packages/ui/src/components/_common/sections-edit.vue create mode 100644 packages/ui/src/components/_common/statut.vue create mode 100644 packages/ui/src/components/_common/titre-nom.vue create mode 100644 packages/ui/src/components/_common/titre-type-select.vue create mode 100644 packages/ui/src/components/_common/titre-type-type-nom.vue create mode 100644 packages/ui/src/components/_map/index.vue create mode 100644 packages/ui/src/components/_map/leaflet.js create mode 100644 packages/ui/src/components/_map/pattern.vue create mode 100644 packages/ui/src/components/_map/tiles-selector.vue create mode 100644 packages/ui/src/components/_map/warning-brgm.vue create mode 100644 packages/ui/src/components/_ui/__snapshots__/pill.stories.storyshot create mode 100644 packages/ui/src/components/_ui/accordion.vue create mode 100644 packages/ui/src/components/_ui/button-plus.vue create mode 100644 packages/ui/src/components/_ui/card.vue create mode 100644 packages/ui/src/components/_ui/columns.vue create mode 100644 packages/ui/src/components/_ui/dot.vue create mode 100644 packages/ui/src/components/_ui/dropdown.vue create mode 100644 packages/ui/src/components/_ui/edit-array.vue create mode 100644 packages/ui/src/components/_ui/edit-boolean.vue create mode 100644 packages/ui/src/components/_ui/edit-date.vue create mode 100644 packages/ui/src/components/_ui/edit-json.vue create mode 100644 packages/ui/src/components/_ui/edit-number.vue create mode 100644 packages/ui/src/components/_ui/edit-string.vue create mode 100644 packages/ui/src/components/_ui/filters-checkboxes.vue create mode 100644 packages/ui/src/components/_ui/filters-input-autocomplete.vue create mode 100644 packages/ui/src/components/_ui/filters-input.vue create mode 100644 packages/ui/src/components/_ui/filters-selects.vue create mode 100644 packages/ui/src/components/_ui/filters.vue create mode 100644 packages/ui/src/components/_ui/help-tooltip.vue create mode 100644 packages/ui/src/components/_ui/input-autocomplete.vue create mode 100644 packages/ui/src/components/_ui/input-date.vue create mode 100644 packages/ui/src/components/_ui/input-file.vue create mode 100644 packages/ui/src/components/_ui/input-number.vue create mode 100644 packages/ui/src/components/_ui/list.vue create mode 100644 packages/ui/src/components/_ui/loader.vue create mode 100644 packages/ui/src/components/_ui/messages.vue create mode 100644 packages/ui/src/components/_ui/page.vue create mode 100644 packages/ui/src/components/_ui/pagination.vue create mode 100644 packages/ui/src/components/_ui/pill-list.vue create mode 100644 packages/ui/src/components/_ui/pill.stories.ts create mode 100644 packages/ui/src/components/_ui/pill.vue create mode 100644 packages/ui/src/components/_ui/popup.vue create mode 100644 packages/ui/src/components/_ui/ranges.vue create mode 100644 packages/ui/src/components/_ui/ribbon.vue create mode 100644 packages/ui/src/components/_ui/table-client.vue create mode 100644 packages/ui/src/components/_ui/table-pagination.vue create mode 100644 packages/ui/src/components/_ui/table.vue create mode 100644 packages/ui/src/components/_ui/tag-list.vue create mode 100644 packages/ui/src/components/_ui/tag.vue create mode 100644 packages/ui/src/components/activite-edition.test.ts create mode 100644 packages/ui/src/components/activite-edition.vue create mode 100644 packages/ui/src/components/activite.vue create mode 100644 packages/ui/src/components/activite/button.vue create mode 100644 packages/ui/src/components/activite/depose-popup.vue create mode 100644 packages/ui/src/components/activite/preview.test.ts create mode 100644 packages/ui/src/components/activite/preview.vue create mode 100644 packages/ui/src/components/activite/remove-popup.vue create mode 100644 packages/ui/src/components/activites.vue create mode 100644 packages/ui/src/components/activites/filtres.js create mode 100644 packages/ui/src/components/activites/list.vue create mode 100644 packages/ui/src/components/activites/pills.vue create mode 100644 packages/ui/src/components/activites/table.js create mode 100644 packages/ui/src/components/administration.vue create mode 100644 packages/ui/src/components/administration/activites-types-emails.test.js create mode 100644 packages/ui/src/components/administration/activites-types-emails.vue create mode 100644 packages/ui/src/components/administration/edit-popup.vue create mode 100644 packages/ui/src/components/administration/permissions.vue create mode 100644 packages/ui/src/components/administrations.vue create mode 100644 packages/ui/src/components/administrations/filtres.js create mode 100644 packages/ui/src/components/administrations/table.js create mode 100644 packages/ui/src/components/content/about.vue create mode 100644 packages/ui/src/components/content/accessibilite.vue create mode 100644 packages/ui/src/components/content/cgu-1-0-0.vue create mode 100644 packages/ui/src/components/content/cgu.vue create mode 100644 packages/ui/src/components/content/contacts.vue create mode 100644 packages/ui/src/components/content/contribution.vue create mode 100644 packages/ui/src/components/content/mentions-legales-cgu.vue create mode 100644 packages/ui/src/components/content/mentions-legales.vue create mode 100644 packages/ui/src/components/demarches.vue create mode 100644 packages/ui/src/components/demarches/filtres-custom-etapes.vue create mode 100644 packages/ui/src/components/demarches/filtres.js create mode 100644 packages/ui/src/components/demarches/page.vue create mode 100644 packages/ui/src/components/demarches/table.js create mode 100644 packages/ui/src/components/document/button-add.vue create mode 100644 packages/ui/src/components/document/edit-popup.vue create mode 100644 packages/ui/src/components/document/multi-edit.vue create mode 100644 packages/ui/src/components/document/remove-popup.vue create mode 100644 packages/ui/src/components/document/sections-edit.vue create mode 100644 packages/ui/src/components/documents/list.vue create mode 100644 packages/ui/src/components/documents/tr.vue create mode 100644 packages/ui/src/components/entreprise.vue create mode 100644 packages/ui/src/components/entreprise/add-popup.vue create mode 100644 packages/ui/src/components/entreprise/edit-popup.vue create mode 100644 packages/ui/src/components/entreprise/permissions.vue create mode 100644 packages/ui/src/components/entreprises.vue create mode 100644 packages/ui/src/components/entreprises/filtres.js create mode 100644 packages/ui/src/components/entreprises/table.js create mode 100644 packages/ui/src/components/error.vue create mode 100644 packages/ui/src/components/etape-edition.vue create mode 100644 packages/ui/src/components/etape.vue create mode 100644 packages/ui/src/components/etape/accordion.vue create mode 100644 packages/ui/src/components/etape/autocomplete-group.vue create mode 100644 packages/ui/src/components/etape/decisions-annexes-edit.vue create mode 100644 packages/ui/src/components/etape/depose-popup.vue create mode 100644 packages/ui/src/components/etape/edit.vue create mode 100644 packages/ui/src/components/etape/entity-input-autocomplete.vue create mode 100644 packages/ui/src/components/etape/fondamentales-edit.test.ts create mode 100644 packages/ui/src/components/etape/fondamentales-edit.vue create mode 100644 packages/ui/src/components/etape/fondamentales.vue create mode 100644 packages/ui/src/components/etape/form-save-btn.test.ts create mode 100644 packages/ui/src/components/etape/form-save-btn.vue create mode 100644 packages/ui/src/components/etape/heritage-edit.vue create mode 100644 packages/ui/src/components/etape/justificatifs-edit.vue create mode 100644 packages/ui/src/components/etape/perimetre.vue create mode 100644 packages/ui/src/components/etape/points-edit.vue create mode 100644 packages/ui/src/components/etape/points-geo-systemes-edit.vue create mode 100644 packages/ui/src/components/etape/points-import-popup.vue create mode 100644 packages/ui/src/components/etape/points-lot-edit.vue create mode 100644 packages/ui/src/components/etape/points-point-edit.vue create mode 100644 packages/ui/src/components/etape/points-point-reference-edit.vue create mode 100644 packages/ui/src/components/etape/preview.vue create mode 100644 packages/ui/src/components/etape/prop-duree.vue create mode 100644 packages/ui/src/components/etape/remove.vue create mode 100644 packages/ui/src/components/etape/section-element-edit.vue create mode 100644 packages/ui/src/components/etape/sections-edit.vue create mode 100644 packages/ui/src/components/etape/type-edit.vue create mode 100644 packages/ui/src/components/glossaire.vue create mode 100644 packages/ui/src/components/glossaire/definition-entree.vue create mode 100644 packages/ui/src/components/glossaire/definition.vue create mode 100644 packages/ui/src/components/glossaire/sommaire.vue create mode 100644 packages/ui/src/components/journaux.vue create mode 100644 packages/ui/src/components/journaux/differences.vue create mode 100644 packages/ui/src/components/journaux/journaux.vue create mode 100644 packages/ui/src/components/menu/button.vue create mode 100644 packages/ui/src/components/menu/menu.vue create mode 100644 packages/ui/src/components/meta-activite.vue create mode 100644 packages/ui/src/components/meta-demarche.vue create mode 100644 packages/ui/src/components/meta-etape.vue create mode 100644 packages/ui/src/components/meta-titre.vue create mode 100644 packages/ui/src/components/meta.vue create mode 100644 packages/ui/src/components/metas.vue create mode 100644 packages/ui/src/components/metas/definition-edit.vue create mode 100644 packages/ui/src/components/metas/meta-create-popup.vue create mode 100644 packages/ui/src/components/metas/meta-input.vue create mode 100644 packages/ui/src/components/metas/meta-label-or-input.vue create mode 100644 packages/ui/src/components/metas/meta-page-template.vue create mode 100644 packages/ui/src/components/metas/table.js create mode 100644 packages/ui/src/components/page/footer.vue create mode 100644 packages/ui/src/components/page/footer/newsletter-form.vue create mode 100644 packages/ui/src/components/page/header.vue create mode 100644 packages/ui/src/components/page/strike.vue create mode 100644 packages/ui/src/components/statistiques.vue create mode 100644 packages/ui/src/components/statistiques/_utils.js create mode 100644 packages/ui/src/components/statistiques/globales.vue create mode 100644 packages/ui/src/components/statistiques/granulats-marins-activite.vue create mode 100644 packages/ui/src/components/statistiques/granulats-marins.vue create mode 100644 packages/ui/src/components/statistiques/guyane-activite.vue create mode 100644 packages/ui/src/components/statistiques/guyane.vue create mode 100644 packages/ui/src/components/titre-creation.vue create mode 100644 packages/ui/src/components/titre.vue create mode 100644 packages/ui/src/components/titre/administration.vue create mode 100644 packages/ui/src/components/titre/demarche-edit-popup.vue create mode 100644 packages/ui/src/components/titre/demarche-remove-popup.vue create mode 100644 packages/ui/src/components/titre/demarche.vue create mode 100644 packages/ui/src/components/titre/demarches.vue create mode 100644 packages/ui/src/components/titre/edit-popup.vue create mode 100644 packages/ui/src/components/titre/entreprise.vue create mode 100644 packages/ui/src/components/titre/header.vue create mode 100644 packages/ui/src/components/titre/infos.vue create mode 100644 packages/ui/src/components/titre/remove-popup.vue create mode 100644 packages/ui/src/components/titre/repertoire.vue create mode 100644 packages/ui/src/components/titre/statut-dot.vue create mode 100644 packages/ui/src/components/titre/territoires.vue create mode 100644 packages/ui/src/components/titres.vue create mode 100644 packages/ui/src/components/titres/filtres.js create mode 100644 packages/ui/src/components/titres/filtres.vue create mode 100644 packages/ui/src/components/titres/map.js create mode 100644 packages/ui/src/components/titres/map.vue create mode 100644 packages/ui/src/components/titres/table-pagination.vue create mode 100644 packages/ui/src/components/titres/table.js create mode 100644 packages/ui/src/components/titres/table.vue create mode 100644 packages/ui/src/components/travaux.vue create mode 100644 packages/ui/src/components/user/__snapshots__/pure-button.stories.storyshot create mode 100644 packages/ui/src/components/user/add-popup.vue create mode 100644 packages/ui/src/components/user/add.vue create mode 100644 packages/ui/src/components/user/button.vue create mode 100644 packages/ui/src/components/user/login-popup.vue create mode 100644 packages/ui/src/components/user/password-init-popup.vue create mode 100644 packages/ui/src/components/user/password-init.vue create mode 100644 packages/ui/src/components/user/pure-button.stories.ts create mode 100644 packages/ui/src/components/user/pure-button.vue create mode 100644 packages/ui/src/components/user/user.ts create mode 100644 packages/ui/src/components/utilisateur.vue create mode 100644 packages/ui/src/components/utilisateur/edit-popup.vue create mode 100644 packages/ui/src/components/utilisateur/email-popup.vue create mode 100644 packages/ui/src/components/utilisateur/password-popup.vue create mode 100644 packages/ui/src/components/utilisateur/remove-popup.vue create mode 100644 packages/ui/src/components/utilisateurs.vue create mode 100644 packages/ui/src/components/utilisateurs/filtres.js create mode 100644 packages/ui/src/components/utilisateurs/table.js create mode 100644 packages/ui/src/index.html create mode 100644 packages/ui/src/index.ts create mode 100644 packages/ui/src/public/favicon.ico create mode 100644 packages/ui/src/public/img/about/gallery-apresmine.jpg create mode 100644 packages/ui/src/public/img/about/gallery-energetique.jpg create mode 100644 packages/ui/src/public/img/about/gallery-geothermie.jpg create mode 100644 packages/ui/src/public/img/about/gallery-non-energetique.jpg create mode 100644 packages/ui/src/public/img/about/gallery-stockages.jpg create mode 100644 packages/ui/src/public/img/about/gallery-travaux.jpg create mode 100644 packages/ui/src/public/img/leaflet/fullscreen.png create mode 100644 packages/ui/src/public/img/leaflet/fullscreen@2x.png create mode 100644 packages/ui/src/public/img/leaflet/layers-2x.png create mode 100644 packages/ui/src/public/img/leaflet/layers.png create mode 100644 packages/ui/src/public/img/leaflet/marker-icon.png create mode 100644 packages/ui/src/public/img/logo-camino.svg create mode 100644 packages/ui/src/public/img/logo-fabriquenumerique.svg create mode 100644 packages/ui/src/public/img/logo-rf.svg create mode 100644 packages/ui/src/router/index.js create mode 100644 packages/ui/src/shim-vue.d.ts create mode 100755 packages/ui/src/stats/bootstrap.js create mode 100644 packages/ui/src/stats/custom-variables.js create mode 100755 packages/ui/src/stats/index.js create mode 100644 packages/ui/src/store/__mocks__/titre-etape.js create mode 100644 packages/ui/src/store/_liste-build.js create mode 100644 packages/ui/src/store/_liste-build.test.js create mode 100644 packages/ui/src/store/administration.js create mode 100644 packages/ui/src/store/administration.test.js create mode 100644 packages/ui/src/store/administrations.js create mode 100644 packages/ui/src/store/administrations.test.js create mode 100644 packages/ui/src/store/definitions.js create mode 100644 packages/ui/src/store/definitions.test.js create mode 100644 packages/ui/src/store/document.js create mode 100644 packages/ui/src/store/document.test.js create mode 100644 packages/ui/src/store/entreprise.js create mode 100644 packages/ui/src/store/entreprise.test.js create mode 100644 packages/ui/src/store/entreprises.js create mode 100644 packages/ui/src/store/index.js create mode 100644 packages/ui/src/store/index.test.js create mode 100644 packages/ui/src/store/journaux.js create mode 100644 packages/ui/src/store/meta.js create mode 100644 packages/ui/src/store/metas-definitions.js create mode 100644 packages/ui/src/store/metas.js create mode 100644 packages/ui/src/store/statistiques.js create mode 100644 packages/ui/src/store/statistiques.test.js create mode 100644 packages/ui/src/store/titre-activite-edition.js create mode 100644 packages/ui/src/store/titre-activite-edition.test.js create mode 100644 packages/ui/src/store/titre-activite.js create mode 100644 packages/ui/src/store/titre-activite.test.js create mode 100644 packages/ui/src/store/titre-creation.js create mode 100644 packages/ui/src/store/titre-demarche.js create mode 100644 packages/ui/src/store/titre-demarche.test.js create mode 100644 packages/ui/src/store/titre-etape-edition.js create mode 100644 packages/ui/src/store/titre-etape-edition.test.js create mode 100644 packages/ui/src/store/titre-etape.js create mode 100644 packages/ui/src/store/titre-etape.test.js create mode 100644 packages/ui/src/store/titre.js create mode 100644 packages/ui/src/store/titre.test.js create mode 100644 packages/ui/src/store/titres-activites.js create mode 100644 packages/ui/src/store/titres-activites.test.js create mode 100644 packages/ui/src/store/titres-demarches.js create mode 100644 packages/ui/src/store/titres-demarches.test.js create mode 100644 packages/ui/src/store/titres.js create mode 100644 packages/ui/src/store/titres.test.js create mode 100644 packages/ui/src/store/user.js create mode 100644 packages/ui/src/store/user.test.js create mode 100644 packages/ui/src/store/utilisateur.js create mode 100644 packages/ui/src/store/utilisateur.test.js create mode 100644 packages/ui/src/store/utilisateurs.js create mode 100644 packages/ui/src/store/utilisateurs.test.js create mode 100644 packages/ui/src/storybook.test.ts create mode 100644 packages/ui/src/styles/buttons.css create mode 100644 packages/ui/src/styles/camino.css create mode 100644 packages/ui/src/styles/grids/grid-fluid.css create mode 100644 packages/ui/src/styles/grids/grid-system.css create mode 100644 packages/ui/src/styles/grids/grid-utils.css create mode 100644 packages/ui/src/styles/icons/icons.css create mode 100644 packages/ui/src/styles/icons/svgs/16-file.svg create mode 100644 packages/ui/src/styles/icons/svgs/16-x.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-at.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-check.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-chevron-b.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-chevron-t.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-close.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-cross.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-dot.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-download.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-file-chevron-b.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-file-chevron-t.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-file-link.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-file-plus.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-file.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-help.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-key.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-link.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-login.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-markers-grouped.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-markers-none.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-markers-ungrouped.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-menu.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-minus.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-move-down.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-move-up.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-pattern.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-pencil.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-plus.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-refresh.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-square.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-trash.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-unlink.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-user.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-view.svg create mode 100644 packages/ui/src/styles/icons/svgs/24-window-link.svg create mode 100644 packages/ui/src/styles/icons/svgs/48-announcement.svg create mode 100644 packages/ui/src/styles/icons/svgs/building-2.svg create mode 100644 packages/ui/src/styles/icons/svgs/business-check.svg create mode 100644 packages/ui/src/styles/icons/svgs/cloud-setting.svg create mode 100644 packages/ui/src/styles/icons/svgs/eco-globe-1.svg create mode 100644 packages/ui/src/styles/icons/svgs/file-checklist-edit.svg create mode 100755 packages/ui/src/styles/icons/svgs/folder.svg create mode 100644 packages/ui/src/styles/icons/svgs/globe-3.svg create mode 100644 packages/ui/src/styles/icons/svgs/group-global.svg create mode 100644 packages/ui/src/styles/icons/svgs/info.svg create mode 100644 packages/ui/src/styles/icons/svgs/list-bullets.svg create mode 100644 packages/ui/src/styles/icons/svgs/map-legend-sdom-zone.svg create mode 100644 packages/ui/src/styles/icons/svgs/map-pin-2.svg create mode 100644 packages/ui/src/styles/icons/svgs/map-treasure.svg create mode 100755 packages/ui/src/styles/icons/svgs/settings.svg create mode 100644 packages/ui/src/styles/icons/svgs/window-speedtest.svg create mode 100644 packages/ui/src/styles/leaflet/fullscreen.css create mode 100644 packages/ui/src/styles/leaflet/gesture-handling.css create mode 100644 packages/ui/src/styles/leaflet/marker-clusters.css create mode 100644 packages/ui/src/styles/leaflet/overrides.css create mode 100644 packages/ui/src/styles/loader.css create mode 100644 packages/ui/src/styles/normalize.css create mode 100644 packages/ui/src/styles/settings.css create mode 100644 packages/ui/src/styles/styles.css create mode 100644 packages/ui/src/styles/system/code.css create mode 100644 packages/ui/src/styles/system/colors.css create mode 100644 packages/ui/src/styles/system/footer.css create mode 100644 packages/ui/src/styles/system/forms.css create mode 100644 packages/ui/src/styles/system/lists.css create mode 100644 packages/ui/src/styles/system/margins.css create mode 100644 packages/ui/src/styles/system/paddings.css create mode 100644 packages/ui/src/styles/system/print.css create mode 100644 packages/ui/src/styles/system/reset.css create mode 100644 packages/ui/src/styles/system/tables.css create mode 100644 packages/ui/src/styles/system/tools.css create mode 100644 packages/ui/src/styles/system/typography.css create mode 100644 packages/ui/src/styles/system/ui.css create mode 100644 packages/ui/src/styles/system/utils.css create mode 100644 packages/ui/src/styles/theme.css create mode 100644 packages/ui/src/styles/transitions.css create mode 100644 packages/ui/src/typings/choices.d.ts create mode 100644 packages/ui/src/typings/vuex.d.ts create mode 100644 packages/ui/src/utils/contenu.js create mode 100644 packages/ui/src/utils/documents.js create mode 100644 packages/ui/src/utils/documents.test.js create mode 100644 packages/ui/src/utils/entreprise.js create mode 100644 packages/ui/src/utils/geojson.js create mode 100644 packages/ui/src/utils/index.js create mode 100644 packages/ui/src/utils/index.test.js create mode 100644 packages/ui/src/utils/map-tiles.js create mode 100644 packages/ui/src/utils/matomo-tracker.js create mode 100644 packages/ui/src/utils/number-format.js create mode 100644 packages/ui/src/utils/stream.js create mode 100644 packages/ui/src/utils/titre-etape-edit.js create mode 100644 packages/ui/src/utils/titre-etape-edit.test.js create mode 100644 packages/ui/src/utils/titre-etape-heritage-build.js create mode 100644 packages/ui/src/utils/titre-etape-save.js create mode 100644 packages/ui/src/utils/titre-etape-save.test.js create mode 100644 packages/ui/src/utils/url.js create mode 100644 packages/ui/src/utils/url.test.js create mode 100644 packages/ui/tsconfig.json create mode 100644 packages/ui/vite.config.js diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..ce7923941 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules +**/node_modules +dist +**/dist +Dockerfile* +.env +docker-compose* \ No newline at end of file diff --git a/packages/api/.env-example b/.env-example similarity index 89% rename from packages/api/.env-example rename to .env-example index e9d4ee220..68c984059 100644 --- a/packages/api/.env-example +++ b/.env-example @@ -1,12 +1,13 @@ # definir les variables d'environnement # renommer le fichier en .env -URL= +API_URL= +UI_URL= ENV=dev -UI_URL="http://localhost:3000" # environnement node.js NODE_ENV=development -PORT=4000 +API_PORT=4000 +UI_PORT=3000 NODE_DEBUG=false # jwt @@ -37,8 +38,5 @@ API_GEO_URL="" # API Openfisca API_OPENFISCA_URL="" -# url du serveur (docker-compose) -URL="" - # certificat ssh (docker-compose) LETSENCRYPT_EMAIL="" diff --git a/.github/workflows/api-ci.yml b/.github/workflows/api-ci.yml index 40233a106..ea6c9ce0b 100644 --- a/.github/workflows/api-ci.yml +++ b/.github/workflows/api-ci.yml @@ -2,7 +2,7 @@ name: api/ci on: push: concurrency: - group: environment-${{ github.ref }} + group: api-ci-${{ github.ref }} cancel-in-progress: true jobs: test: @@ -26,11 +26,12 @@ jobs: - 5432:5432 steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: '16.12' + cache: 'npm' - name: Npm install run: | npm set-script prepare "" @@ -66,13 +67,14 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Build Docker image - run: docker build -t caminofr/camino-api:develop packages/api + run: docker build -t caminofr/camino-api:develop -f Dockerfile.api . + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} - name: Push Docker image to the Docker Hub - run: | - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - docker push caminofr/camino-api:develop - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + run: docker push caminofr/camino-api:develop + diff --git a/.github/workflows/api-release-docker.yml b/.github/workflows/api-release-docker.yml new file mode 100644 index 000000000..5e0c8c617 --- /dev/null +++ b/.github/workflows/api-release-docker.yml @@ -0,0 +1,46 @@ +name: api/Release Docker images +on: + release: + types: [published] +jobs: + api: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build Docker image + run: docker build -t caminofr/camino-api:$VERSION -t caminofr/camino-api:latest -t caminofr/camino-api:master -f Dockerfile.api . + env: + VERSION: ${{ github.event.release.tag_name }} + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + - name: Build and Push Docker image to the Docker Hub + run: docker push caminofr/camino-api --all-tags + docs: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '16.12' + cache: 'npm' + - name: Generate docs + run: | + npm ci + npm run docs -w packages/api + env: + CI: true + - name: Build Docker image + run: docker build -f Dockerfile.api.docs -t caminofr/camino-api-docs . + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + - name: Push Docker image to the Docker Hub + run: docker push caminofr/camino-api-docs \ No newline at end of file diff --git a/.github/workflows/gitguardian.yml b/.github/workflows/gitguardian.yml index 75137be4a..f5cd122a1 100644 --- a/.github/workflows/gitguardian.yml +++ b/.github/workflows/gitguardian.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 # fetch all history so multiple commits can be scanned - name: GitGuardian scan diff --git a/.github/workflows/release-docker.yml b/.github/workflows/release-docker.yml deleted file mode 100644 index 41ce81787..000000000 --- a/.github/workflows/release-docker.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Release Docker images -on: - release: - types: [published] -jobs: - api: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Build Docker image - run: docker build -t caminofr/camino-api:$VERSION -t caminofr/camino-api:latest -t caminofr/camino-api:master . - env: - VERSION: ${{ github.event.release.tag_name }} - - name: Build and Push Docker image to the Docker Hub - run: | - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - docker push caminofr/camino-api --all-tags - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - docs: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Use Node.js - uses: actions/setup-node@v1 - with: - node-version: '16.12' - - name: Generate docs - run: | - npm ci - npm run docs - env: - CI: true - - name: Build Docker image - run: docker build -f Dockerfile.docs -t caminofr/camino-api-docs . - - name: Push Docker image to the Docker Hub - run: | - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - docker push caminofr/camino-api-docs - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/release-github.yml b/.github/workflows/release-github.yml index 672adb94f..b7acd6e97 100644 --- a/.github/workflows/release-github.yml +++ b/.github/workflows/release-github.yml @@ -8,13 +8,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 - name: Setup Node.js - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 'lts/*' + cache: 'npm' - name: Install dependencies run: npm ci - name: Release diff --git a/.github/workflows/ui-ci.yml b/.github/workflows/ui-ci.yml new file mode 100644 index 000000000..29c7ef418 --- /dev/null +++ b/.github/workflows/ui-ci.yml @@ -0,0 +1,45 @@ +name: ui/ci +on: + push: +concurrency: + group: ui-ci-${{ github.ref }} + cancel-in-progress: true +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '16.12' + cache: 'npm' + - name: Test units + run: | + npm set-script prepare "" + npm ci + npm run build --workspace=packages/ui + npm test --workspace=packages/ui + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + CI: true + + build: + if: github.ref == 'refs/heads/develop' + needs: test + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build Docker image + run: docker build . -f Dockerfile.ui --tag caminofr/camino-ui:develop + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + - name: Push Docker image to the Docker Hub + run: docker push caminofr/camino-ui:develop + diff --git a/.github/workflows/ui-release-docker.yml b/.github/workflows/ui-release-docker.yml new file mode 100644 index 000000000..02544d3d9 --- /dev/null +++ b/.github/workflows/ui-release-docker.yml @@ -0,0 +1,21 @@ +name: ui/Release Docker images +on: + release: + types: [published] +jobs: + ui: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build Docker image + run: docker build -t caminofr/camino-ui:$VERSION -t caminofr/camino-ui:latest -t caminofr/camino-ui:master packages/ui + env: + VERSION: ${{ github.event.release.tag_name }} + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + - name: Build and Push Docker image to the Docker Hub + run: docker push caminofr/camino-ui --all-tags diff --git a/.gitignore b/.gitignore index eb79dd5fc..326b754e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ node_modules .idea +.eslintcache +.env diff --git a/Dockerfile.api b/Dockerfile.api new file mode 100644 index 000000000..3c159de09 --- /dev/null +++ b/Dockerfile.api @@ -0,0 +1,29 @@ +FROM node:16.12-alpine as build-stage +WORKDIR /app + +COPY package*.json /app/ +COPY packages/api/package.json /app/packages/api/package.json + +# On désactive husky +RUN npm set-script prepare "" +RUN npm ci --only=prod + +COPY ./ /app/ +RUN npm run build -w packages/api + +FROM node:16.12-alpine as production-stage + +# redirige les logs sur le collecteur de logs docker +# cf le Dockerfile de nginx +# https://github.com/nginxinc/docker-nginx/blob/8921999083def7ba43a06fabd5f80e4406651353/mainline/jessie/Dockerfile#L21-L23 +RUN ln -sf /dev/stdout ./app.log + +COPY --from=build-stage /app/package.json ./ +COPY --from=build-stage /app/packages/api/package.json ./packages/api/ +COPY --from=build-stage /app/packages/api/dist/ ./packages/api/dist/ +COPY --from=build-stage /app/node_modules ./node_modules/ +# nous avons besoin des sources pour lancer certains scripts manuellement +COPY --from=build-stage /app/packages/api/src ./packages/api/src/ +COPY --from=build-stage /app/packages/api/tsconfig.json ./packages/api/ + +CMD ["npm", "start", "-w", "packages/api"] diff --git a/Dockerfile.api.docs b/Dockerfile.api.docs new file mode 100644 index 000000000..19988078b --- /dev/null +++ b/Dockerfile.api.docs @@ -0,0 +1,2 @@ +FROM nginx +COPY packages/api/docs /usr/share/nginx/html diff --git a/Dockerfile.ui b/Dockerfile.ui new file mode 100644 index 000000000..816965f7e --- /dev/null +++ b/Dockerfile.ui @@ -0,0 +1,25 @@ +#https://github.com/fabriziocucci/vuejs.org/blob/7f9aa12833c085b97a826df3ba240f7d9e069e1b/src/v2/cookbook/dockerize-vuejs-app.md + +FROM node:16.12-alpine as build-stage +LABEL maintainer=francois.romain@beta.gouv.fr + +WORKDIR /app + +COPY package*.json /app/ +COPY packages/ui/package.json /app/packages/ui/package.json +# On désactive husky +RUN npm set-script prepare "" +RUN npm ci + +COPY ./ /app/ +RUN npm run build -w packages/ui + +FROM node:16.12-alpine as production-stage + +COPY --from=build-stage /app/package*.json ./ +COPY --from=build-stage /app/packages/ui/package.json ./packages/ui/package.json +RUN npm set-script prepare "" && npm ci --only=prod +COPY --from=build-stage /app/packages/ui/dist ./packages/ui/dist +COPY --from=build-stage /app/packages/ui/index.js ./packages/ui/index.js + +CMD ["npm", "start", "-w", "packages/ui"] diff --git a/README.md b/README.md new file mode 100644 index 000000000..711a3c446 --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +# Camino + +[](https://github.com/MTES-MCT/camino/actions/workflows/ui-ci.yml) [](https://github.com/MTES-MCT/camino/actions/workflows/api-ci.yml) [![codecov][codecov-img]][codecov] + +[codecov-img]: https://codecov.io/gh/MTES-MCT/camino/branch/master/graph/badge.svg +[codecov]: https://codecov.io/gh/MTES-MCT/camino + + +> Interface web de [Camino](https://camino.beta.gouv.fr), le cadastre minier numérique. + + + +--- + +## Composants + +* [Interface](packages/ui/README.md) +* [API](packages/api/README.md) + +--- + +## Configuration + +- Cloner ce repo : `git clone https://github.com/MTES-MCT/camino.git`. +- Renommer le fichier `.env-example` en `.env` et le compléter. + +### Installation + +```bash +# installe les dépendances +npm ci +``` + +### Développement + +```bash +# lance un serveur de développement de l'api +# accessible à localhost:4000 +npm run dev -w packages/api +``` + +```bash +# lance un serveur de développement de l'interface +# accessible à localhost:3000 +npm run dev -w packages/ui +``` + +### Production + +```bash +# crée les fichiers de production dans le répertoire dist +npm run build -w packages/ui +npm run build -w packages/api + +# lance le serveur de production +npm run start -w packages/ui +npm run start -w packages/api +``` + +### Tests unitaires + +```bash +# lance les tests unitaires en local +npm run test +``` + +--- + +## Contribution + +Voir `contributing.md` (en anglais) pour plus d'infos. + +--- + +## Credits + +### Production + +- [La Fabrique Numérique, Ministère de la transition écologique](https://www.ecologique.gouv.fr/inauguration-fabrique-numerique-lincubateur-des-ministeres-charges-lecologie-et-des-territoires) + +--- + +## Licence + +Camino API, le cadastre minier numérique ouvert + +[AGPL 3 ou plus récent](https://spdx.org/licenses/AGPL-3.0-or-later.html) diff --git a/contributing.md b/contributing.md index 67c8dcc56..590dad591 100644 --- a/contributing.md +++ b/contributing.md @@ -2,7 +2,7 @@ ## Git setup -From the browser, go to the project repo on [Github](https://github.com): `https://github.com/MTES-MCT/camino-api` +From the browser, go to the project repo on [Github](https://github.com): `https://github.com/MTES-MCT/camino` Click on the `fork` button to create your own fork of the project. @@ -10,13 +10,13 @@ Then, from the terminal: ```bash # Clone your fork locally. This add a remote named 'origin' pointing to your fork. -git clone git@github.com:<your-user-name>/camino-api.git +git clone git@github.com:<your-user-name>/camino.git # Go to the project directory -cd camino-api +cd camino # Define the main repo as a remote named 'upstream'. -git remote add upstream https://github.com/MTES-MCT/camino-api.git +git remote add upstream https://github.com/MTES-MCT/camino.git # Now you have two remotes: 'origin' (your fork) and 'upstream' (main repo). ``` @@ -71,7 +71,7 @@ git push origin <my-fixes> ### 5. Make a merge request -Go to [github.com/MTES-MCT/camino-api](https://github.com/MTES-MCT/camino-api/). +Go to [github.com/MTES-MCT/camino](https://github.com/MTES-MCT/camino/). Make a new merge request from your `<my-fixes>` branch against the `master` branch from the main repo. See [Github Doc](http://docs.github.com/ce/github-basics/add-merge-request.html) for more details. **For the next fix, start over at 1.** diff --git a/packages/api/docker-compose.dev.yml b/docker-compose.dev.yml similarity index 56% rename from packages/api/docker-compose.dev.yml rename to docker-compose.dev.yml index 9baed5ee4..64e4f885f 100644 --- a/packages/api/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,19 +1,21 @@ version: '3' services: - app: + api: container_name: camino_api_app - build: . + build: + context: . + dockerfile: Dockerfile.api depends_on: - db environment: - VIRTUAL_HOST: ${URL} - VIRTUAL_PORT: ${PORT} - LETSENCRYPT_HOST: ${URL} + VIRTUAL_HOST: ${API_URL} + VIRTUAL_PORT: ${API_PORT} + LETSENCRYPT_HOST: ${API_URL} LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL} PGHOST: db expose: - - ${PORT} + - ${API_PORT} volumes: - files:/app/files - ./.env:/app/.env @@ -24,7 +26,9 @@ services: restart: unless-stopped cron: container_name: camino_api_cron - build: . + build: + context: . + dockerfile: Dockerfile.api command: node ./dist/src/cron.js depends_on: - db @@ -52,6 +56,28 @@ services: networks: - default restart: unless-stopped + ui: + container_name: camino_ui_app + build: + context: . + dockerfile: Dockerfile.ui + environment: + VIRTUAL_HOST: ${UI_URL} + VIRTUAL_PORT: ${UI_PORT} + LETSENCRYPT_HOST: ${UI_URL} + LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL} + UI_PORT: ${UI_PORT} + API_URL: http://api:${API_PORT} + API_MATOMO_URL: ${API_MATOMO_URL} + API_MATOMO_ID: ${API_MATOMO_ID} + API_SENTRY_URL: ${API_SENTRY_URL} + ENV: ${ENV} + expose: + - ${UI_PORT} + networks: + - default + - nginx-proxy + restart: always volumes: data: {} diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 000000000..b6198f996 --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,54 @@ +version: '3' + +services: + api: + container_name: camino_api_app + build: + context: . + dockerfile: Dockerfile.api + depends_on: + - db + environment: + PGHOST: db + expose: + - ${API_PORT}:${API_PORT} + volumes: + - ./.env:/packages/api/.env + + cron: + container_name: camino_api_cron + build: + context: . + dockerfile: Dockerfile.api + command: node ./packages/api/dist/src/cron.js + depends_on: + - db + environment: + PGHOST: db + volumes: + - ./.env:/packages/api/.env + + db: + container_name: camino_api_db + image: postgis/postgis:12-3.2 + environment: + PGUSER: ${PGUSER} + POSTGRES_USER: ${PGUSER} + POSTGRES_PASSWORD: ${PGPASSWORD} + POSTGRES_DB: ${PGDATABASE} + expose: + - ${PGPORT} + ui: + container_name: camino_ui_app + build: + context: . + dockerfile: Dockerfile.ui + environment: + UI_PORT: ${UI_PORT} + API_URL: ${API_URL} + API_MATOMO_URL: ${API_MATOMO_URL} + API_MATOMO_ID: ${API_MATOMO_ID} + ENV: ${ENV} + ports: + - ${UI_PORT}:${UI_PORT} + diff --git a/packages/api/docker-compose.yml b/docker-compose.yml similarity index 53% rename from packages/api/docker-compose.yml rename to docker-compose.yml index 6f69a1a25..5f423095d 100644 --- a/packages/api/docker-compose.yml +++ b/docker-compose.yml @@ -1,15 +1,15 @@ version: '3' services: - app: + api: container_name: camino_api_app image: caminofr/camino-api depends_on: - db environment: - VIRTUAL_HOST: ${URL} - VIRTUAL_PORT: ${PORT} - LETSENCRYPT_HOST: ${URL} + VIRTUAL_HOST: ${API_URL} + VIRTUAL_PORT: ${API_PORT} + LETSENCRYPT_HOST: ${API_URL} LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL} PGHOST: db expose: @@ -52,7 +52,40 @@ services: volumes: - data:/var/lib/postgresql/data restart: unless-stopped - + docs: + container_name: camino_api_docs + image: caminofr/camino-api-docs + environment: + VIRTUAL_HOST: ${UI_URL} + VIRTUAL_PORT: ${UI_PORT} + LETSENCRYPT_HOST: ${UI_URL} + LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL} + expose: + - ${PORT} + networks: + - default + - nginx-proxy + restart: unless-stopped + ui: + container_name: camino_ui_app + image: caminofr/camino-ui:latest + environment: + VIRTUAL_HOST: ${UI_URL} + VIRTUAL_PORT: ${UI_PORT} + LETSENCRYPT_HOST: ${UI_URL} + LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL} + UI_PORT: ${UI_PORT} + API_URL: http://api:${API_PORT} + API_MATOMO_URL: ${API_MATOMO_URL} + API_MATOMO_ID: ${API_MATOMO_ID} + API_SENTRY_URL: ${API_SENTRY_URL} + ENV: ${ENV} + expose: + - ${UI_PORT} + networks: + - default + - nginx-proxy + restart: always volumes: data: {} files: diff --git a/package-lock.json b/package-lock.json index 54df97795..1cbbbee23 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,12 @@ "version": "1.0.0", "license": "AGPL-3.0-or-later", "workspaces": [ - "packages/api" - ] + "packages/api", + "packages/ui" + ], + "devDependencies": { + "husky": "^7.0.4" + } }, "node_modules/@babel/code-frame": { "version": "7.12.11", @@ -21,9 +25,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -89,13 +93,40 @@ "node": ">=0.10.0" } }, + "node_modules/@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dev": true, "dependencies": { - "@babel/types": "^7.15.6", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -112,15 +143,40 @@ "node": ">=0.10.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -139,94 +195,183 @@ "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -241,40 +386,67 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -290,10 +462,25 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, "engines": { "node": ">=6.9.0" } @@ -391,9 +578,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -402,6 +589,321 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", + "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", + "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-default-from": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -438,6 +940,90 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", + "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", + "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -462,6 +1048,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -534,6 +1135,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", @@ -564,65 +1180,91 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/globals": { + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", @@ -631,1671 +1273,1734 @@ "node": ">=4" } }, - "node_modules/@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, "engines": { - "node": ">=0.1.90" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/execute-rule": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.2.0.tgz", - "integrity": "sha512-6nPwpN0hwTYmsH3WM4hCdN+NrMopgRIuQ0aqZa+jnwMoS/g6ljliQNYfL+m5WO306BaIu1W3yYpbW5aI8gEr0g==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", "dev": true, - "optional": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, "engines": { - "node": ">=v12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/load": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.2.0.tgz", - "integrity": "sha512-Nhkv+hwWCCxWGjmE9jd1U8kfGGCkZVpwzlTtdKxpY+Aj2VCFg3BjY+qA81pMF3oAsIpxchSaZG5llb8kduVjYg==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", "dev": true, - "optional": true, "dependencies": { - "@commitlint/execute-rule": "^13.2.0", - "@commitlint/resolve-extends": "^13.2.0", - "@commitlint/types": "^13.2.0", - "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", - "chalk": "^4.0.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=v12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/resolve-extends": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.2.0.tgz", - "integrity": "sha512-HLCMkqMKtvl1yYLZ1Pm0UpFvd0kYjsm1meLOGZ7VkOd9G/XX+Fr1S2G5AT2zeiDw7WUVYK8lGVMNa319bnV+aw==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", "dev": true, - "optional": true, "dependencies": { - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=v12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/types": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.2.0.tgz", - "integrity": "sha512-RRVHEqmk1qn/dIaSQhvuca6k/6Z54G+r/KyimZ8gnAFielGiGUpsFRhIY3qhd5rXClVxDaa3nlcyTWckSccotQ==", + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", "dev": true, - "optional": true, "dependencies": { - "chalk": "^4.0.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" }, "engines": { - "node": ">=v12" - } - }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "engines": { - "node": ">= 12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dev": true, "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=12" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", - "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", "dev": true, - "optional": true, "dependencies": { - "lodash.get": "^4", - "make-error": "^1", - "ts-node": "^9", - "tslib": "^2" + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "cosmiconfig": ">=6" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader/node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", "dev": true, - "optional": true, "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "typescript": ">=2.7" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@google-cloud/common": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz", - "integrity": "sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", + "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "dev": true, "dependencies": { - "@google-cloud/projectify": "^2.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", - "extend": "^3.0.2", - "google-auth-library": "^7.9.2", - "retry-request": "^4.2.2", - "teeny-request": "^7.0.0" + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@google-cloud/common/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google-cloud/paginator": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz", - "integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "dev": true, "dependencies": { - "arrify": "^2.0.0", - "extend": "^3.0.2" + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@google-cloud/paginator/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@google-cloud/projectify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", - "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==", - "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google-cloud/promisify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", - "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google-cloud/storage": { - "version": "5.18.2", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz", - "integrity": "sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dev": true, "dependencies": { - "@google-cloud/common": "^3.8.1", - "@google-cloud/paginator": "^3.0.7", - "@google-cloud/promisify": "^2.0.0", - "abort-controller": "^3.0.0", - "arrify": "^2.0.0", - "async-retry": "^1.3.3", - "compressible": "^2.0.12", - "configstore": "^5.0.0", - "date-and-time": "^2.0.0", - "duplexify": "^4.0.0", - "extend": "^3.0.2", - "gaxios": "^4.0.0", - "get-stream": "^6.0.0", - "google-auth-library": "^7.0.0", - "hash-stream-validation": "^0.2.2", - "mime": "^3.0.0", - "mime-types": "^2.0.8", - "p-limit": "^3.0.1", - "pumpify": "^2.0.0", - "snakeize": "^0.1.0", - "stream-events": "^1.0.4", - "xdg-basedir": "^4.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.16.7" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@google-cloud/storage/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google-cloud/storage/node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "bin": { - "mime": "cli.js" + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@graphql-tools/graphql-file-loader": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.5.tgz", - "integrity": "sha512-TBWDA7EV/cmFFUlN2eT9JqYIkiOGEtwwOgzzPcjM9HlPrbKjQkPIJ9Jaxp7aKWbSGhJ+PnbZ7vFLFLGKsCYOjg==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dev": true, "dependencies": { - "@graphql-tools/import": "6.6.7", - "@graphql-tools/utils": "8.6.3", - "globby": "^11.0.3", - "tslib": "~2.3.0", - "unixify": "^1.0.0" + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@graphql-tools/import": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.7.tgz", - "integrity": "sha512-zzpnVtmdel3mKz6i46GUib4wn0K5dosq4OTBl4avKV6ElvgZTkvsvfSv2aRhbRGIT4VnZPXLfzSnmYd8e+SRLQ==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, "dependencies": { - "@graphql-tools/utils": "8.6.3", - "resolve-from": "5.0.0", - "tslib": "~2.3.0" + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@graphql-tools/load": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.3.tgz", - "integrity": "sha512-GYwLyGfX1nKUxg6rnTIdryv9d+ugFRTm2q11+IqNsajwNhxJExkx+e/h81AQR5382sAmPEIT+E1J1VS3xNfjyg==", + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "dev": true, "dependencies": { - "@graphql-tools/schema": "8.3.3", - "@graphql-tools/utils": "8.6.3", - "p-limit": "3.1.0", - "tslib": "~2.3.0" + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@graphql-tools/merge": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.4.tgz", - "integrity": "sha512-hiNRTsS948F+BB4Q7CZXLaGFOIHQzmimVq3EEI/+PQZsPb7kYDzg0Ow0GyV4conDdEiooLqHf7I1dWzTYwvs0A==", + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", + "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "dev": true, "dependencies": { - "@graphql-tools/utils": "8.6.3", - "tslib": "~2.3.0" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@graphql-tools/schema": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.3.tgz", - "integrity": "sha512-OrRLU9/7UmkDemeyNUy62uH+FofgV3bpVVZJprc9bhe3gZsY7kQNIdY7H1unINlepjLvGOgk7u7iLo2+EhjyWw==", + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "dev": true, "dependencies": { - "@graphql-tools/merge": "8.2.4", - "@graphql-tools/utils": "8.6.3", - "tslib": "~2.3.0", - "value-or-promise": "1.0.11" + "@babel/plugin-transform-react-jsx": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@graphql-tools/utils": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.3.tgz", - "integrity": "sha512-CNyP7Uu7dlVMQ32IpHWOxz4yic9BYXXVkDhG0UdTKSszvzHdgMilemE9MpUrGzzBPsTe3aYTtNGyPUkyh9yTXA==", + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "dev": true, "dependencies": { - "tslib": "~2.3.0" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "regenerator-transform": "^0.14.2" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/momoa": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.3.tgz", - "integrity": "sha512-SytjS6gJk+LXSWFuEm0V9ASdgxlX/BDq6A+6gfh7TaHM90xppBydjcM3SFaziZP4ikKmhUOhPkDi2KktzElnQQ==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, "engines": { - "node": ">=6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { - "node": ">=6" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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==", + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" }, "engines": { - "node": ">=8" - } + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.7.tgz", + "integrity": "sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-flow-strip-types": "^7.16.7" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@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" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@babel/preset-react": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "node_modules/@babel/register": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz", + "integrity": "sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==", "dev": true, "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "node_modules/@babel/register/node_modules/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, "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6" } }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "node_modules/@babel/register/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6" } }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "node_modules/@babel/register/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "regenerator-runtime": "^0.13.4" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@babel/highlight": "^7.16.7" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "node_modules/@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "@babel/highlight": "^7.16.7" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "node_modules/@babel/traverse/node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", "dev": true, "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.1.95" } }, - "node_modules/@mapbox/geojson-area": { - "version": "0.2.2", - "license": "BSD-2-Clause", - "dependencies": { - "wgs84": "0.0.0" + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "engines": { + "node": ">=0.1.90" } }, - "node_modules/@microsoft/tsdoc": { - "version": "0.13.2", + "node_modules/@commitlint/execute-rule": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.2.0.tgz", + "integrity": "sha512-6nPwpN0hwTYmsH3WM4hCdN+NrMopgRIuQ0aqZa+jnwMoS/g6ljliQNYfL+m5WO306BaIu1W3yYpbW5aI8gEr0g==", "dev": true, - "license": "MIT" + "optional": true, + "engines": { + "node": ">=v12" + } }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.15.2", + "node_modules/@commitlint/load": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.2.0.tgz", + "integrity": "sha512-Nhkv+hwWCCxWGjmE9jd1U8kfGGCkZVpwzlTtdKxpY+Aj2VCFg3BjY+qA81pMF3oAsIpxchSaZG5llb8kduVjYg==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "@microsoft/tsdoc": "0.13.2", - "ajv": "~6.12.6", - "jju": "~1.4.0", - "resolve": "~1.19.0" + "@commitlint/execute-rule": "^13.2.0", + "@commitlint/resolve-extends": "^13.2.0", + "@commitlint/types": "^13.2.0", + "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", + "chalk": "^4.0.0", + "cosmiconfig": "^7.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=v12" } }, - "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { - "version": "1.19.0", + "node_modules/@commitlint/resolve-extends": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.2.0.tgz", + "integrity": "sha512-HLCMkqMKtvl1yYLZ1Pm0UpFvd0kYjsm1meLOGZ7VkOd9G/XX+Fr1S2G5AT2zeiDw7WUVYK8lGVMNa319bnV+aw==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=v12" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "license": "MIT", + "node_modules/@commitlint/types": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.2.0.tgz", + "integrity": "sha512-RRVHEqmk1qn/dIaSQhvuca6k/6Z54G+r/KyimZ8gnAFielGiGUpsFRhIY3qhd5rXClVxDaa3nlcyTWckSccotQ==", + "dev": true, + "optional": true, "dependencies": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" + "chalk": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=v12" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "license": "MIT", + "node_modules/@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", "engines": { - "node": ">= 8" + "node": ">= 12" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.6", - "license": "MIT", + "node_modules/@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", "dependencies": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" + "@cspotcode/source-map-consumer": "0.8.0" }, "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "node_modules/@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" + "engines": { + "node": ">=4.0.0" } }, - "node_modules/@npmcli/git": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.0.tgz", - "integrity": "sha512-xfSBJ+KBMZWWqRHFbEgIaXG/LtELHrQZMJ72Gkb3yWdHysu/7+VGOs8ME0c3td7QNQX57Ggo3kYL6ylcd70/kA==", + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==", + "dev": true + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", + "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", "dev": true, "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^7.3.1", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^7.0.0", - "proc-log": "^2.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", - "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", + "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=12" + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", + "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", "dev": true, "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">= 10" + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", + "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", "dev": true, "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=10" + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "node_modules/@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "dev": true - }, - "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", + "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", "dev": true, "dependencies": { - "infer-owner": "^1.0.4" + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/@npmcli/run-script": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.1.tgz", - "integrity": "sha512-o2fkld5hYwu9sKYzoXTpqEocMnDLaigobaPzLaGB63k/ExmLBTaB+KpfKlpcIePPnuP8RFR+0GDI4KopJCM6Xg==", + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", + "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", "dev": true, "dependencies": { - "@npmcli/node-gyp": "^1.0.3", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", + "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", "dev": true, "dependencies": { - "@octokit/types": "^6.0.3" + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", "dev": true, "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" } }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "dev": true, + "node_modules/@dabh/diagnostics": { + "version": "2.0.2", + "license": "MIT", "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" } }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, - "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@octokit/openapi-types": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", - "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", - "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", + "node_modules/@emotion/cache": { + "version": "10.0.29", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", + "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", "dev": true, "dependencies": { - "@octokit/types": "^6.34.0" - }, - "peerDependencies": { - "@octokit/core": ">=2" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" + "@emotion/sheet": "0.9.4", + "@emotion/stylis": "0.8.5", + "@emotion/utils": "0.11.3", + "@emotion/weak-memoize": "0.2.5" } }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", - "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "node_modules/@emotion/core": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz", + "integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==", "dev": true, "dependencies": { - "@octokit/types": "^6.34.0", - "deprecation": "^2.3.1" + "@babel/runtime": "^7.5.5", + "@emotion/cache": "^10.0.27", + "@emotion/css": "^10.0.27", + "@emotion/serialize": "^0.11.15", + "@emotion/sheet": "0.9.4", + "@emotion/utils": "0.11.3" }, "peerDependencies": { - "@octokit/core": ">=3" + "react": ">=16.3.0" } }, - "node_modules/@octokit/request": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", - "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "node_modules/@emotion/css": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", + "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", "dev": true, "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", - "universal-user-agent": "^6.0.0" + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3", + "babel-plugin-emotion": "^10.0.27" } }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "dev": true + }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", "dev": true, "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@emotion/memoize": "0.7.4" } }, - "node_modules/@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "dev": true + }, + "node_modules/@emotion/serialize": { + "version": "0.11.16", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", + "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", "dev": true, "dependencies": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/unitless": "0.7.5", + "@emotion/utils": "0.11.3", + "csstype": "^2.5.7" } }, - "node_modules/@octokit/types": { - "version": "6.34.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", - "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "node_modules/@emotion/sheet": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", + "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", + "dev": true + }, + "node_modules/@emotion/styled": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.3.0.tgz", + "integrity": "sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^11.2.0" + "@emotion/styled-base": "^10.3.0", + "babel-plugin-emotion": "^10.0.27" + }, + "peerDependencies": { + "@emotion/core": "^10.0.27", + "react": ">=16.3.0" } }, - "node_modules/@placemarkio/check-geojson": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@placemarkio/check-geojson/-/check-geojson-0.1.8.tgz", - "integrity": "sha512-MLt5Pe6j/iNjG1H55wJUw/g0wu6rcEpnNuLYdfn9d6IfHgYpKY3aID2BOj3DWSGS/1e9MevcPKLOFwaIH/2cLg==", + "node_modules/@emotion/styled-base": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.3.0.tgz", + "integrity": "sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==", + "dev": true, "dependencies": { - "@humanwhocodes/momoa": "^2.0.3", - "@types/geojson": "^7946.0.8", - "@types/jest": "^27.4.0", - "type-fest": "^2.12.0" + "@babel/runtime": "^7.5.5", + "@emotion/is-prop-valid": "0.8.8", + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@emotion/core": "^10.0.28", + "react": ">=16.3.0" } }, - "node_modules/@placemarkio/check-geojson/node_modules/type-fest": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.0.tgz", - "integrity": "sha512-Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", + "dev": true }, - "node_modules/@selderee/plugin-htmlparser2": { - "version": "0.6.0", - "license": "MIT", + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "dev": true + }, + "node_modules/@emotion/utils": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", + "dev": true + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", + "dev": true + }, + "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "dev": true, + "optional": true, "dependencies": { - "domhandler": "^4.2.0", - "selderee": "^0.6.0" + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" }, - "funding": { - "url": "https://ko-fi.com/killymxi" + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "cosmiconfig": ">=6" } }, - "node_modules/@semantic-release/changelog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz", - "integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==", + "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader/node_modules/ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "dev": true, + "optional": true, "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "fs-extra": "^9.0.0", - "lodash": "^4.17.4" + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" }, "engines": { - "node": ">=14.17" + "node": ">=10.0.0" }, "peerDependencies": { - "semantic-release": ">=18.0.0" + "typescript": ">=2.7" } }, - "node_modules/@semantic-release/changelog/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@semantic-release/changelog/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "universalify": "^2.0.0" + "argparse": "^2.0.1" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@semantic-release/changelog/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/commit-analyzer": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", - "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", - "dev": true, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@google-cloud/common": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz", + "integrity": "sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg==", "dependencies": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "import-from": "^4.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.2" + "@google-cloud/projectify": "^2.0.0", + "@google-cloud/promisify": "^2.0.0", + "arrify": "^2.0.1", + "duplexify": "^4.1.1", + "ent": "^2.2.0", + "extend": "^3.0.2", + "google-auth-library": "^7.9.2", + "retry-request": "^4.2.2", + "teeny-request": "^7.0.0" }, "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0-beta.1" + "node": ">=10" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "node_modules/@google-cloud/common/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, + "node_modules/@google-cloud/paginator": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz", + "integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "arrify": "^2.0.0", + "extend": "^3.0.2" }, "engines": { "node": ">=10" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, + "node_modules/@google-cloud/paginator/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "engines": { "node": ">=8" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, + "node_modules/@google-cloud/projectify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", + "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/@semantic-release/error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", - "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", - "dev": true, + "node_modules/@google-cloud/promisify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", + "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==", "engines": { - "node": ">=14.17" + "node": ">=10" } }, - "node_modules/@semantic-release/git": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", - "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", - "dev": true, + "node_modules/@google-cloud/storage": { + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz", + "integrity": "sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg==", "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "execa": "^5.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.0", - "p-reduce": "^2.0.0" + "@google-cloud/common": "^3.8.1", + "@google-cloud/paginator": "^3.0.7", + "@google-cloud/promisify": "^2.0.0", + "abort-controller": "^3.0.0", + "arrify": "^2.0.0", + "async-retry": "^1.3.3", + "compressible": "^2.0.12", + "configstore": "^5.0.0", + "date-and-time": "^2.0.0", + "duplexify": "^4.0.0", + "extend": "^3.0.2", + "gaxios": "^4.0.0", + "get-stream": "^6.0.0", + "google-auth-library": "^7.0.0", + "hash-stream-validation": "^0.2.2", + "mime": "^3.0.0", + "mime-types": "^2.0.8", + "p-limit": "^3.0.1", + "pumpify": "^2.0.0", + "snakeize": "^0.1.0", + "stream-events": "^1.0.4", + "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0" + "node": ">=10" } }, - "node_modules/@semantic-release/github": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.2.tgz", - "integrity": "sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg==", - "dev": true, - "dependencies": { - "@octokit/rest": "^18.0.0", - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^3.0.0", - "bottleneck": "^2.18.1", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "fs-extra": "^10.0.0", - "globby": "^11.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "issue-parser": "^6.0.0", - "lodash": "^4.17.4", - "mime": "^3.0.0", - "p-filter": "^2.0.0", - "p-retry": "^4.0.0", - "url-join": "^4.0.0" - }, + "node_modules/@google-cloud/storage/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0-beta.1" + "node": ">=8" } }, - "node_modules/@semantic-release/github/node_modules/@semantic-release/error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", - "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", - "dev": true - }, - "node_modules/@semantic-release/github/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, + "node_modules/@google-cloud/storage/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" + }, "engines": { - "node": ">= 10" + "node": ">=10.0.0" } }, - "node_modules/@semantic-release/github/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, + "node_modules/@graphql-tools/graphql-file-loader": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.5.tgz", + "integrity": "sha512-TBWDA7EV/cmFFUlN2eT9JqYIkiOGEtwwOgzzPcjM9HlPrbKjQkPIJ9Jaxp7aKWbSGhJ+PnbZ7vFLFLGKsCYOjg==", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@graphql-tools/import": "6.6.7", + "@graphql-tools/utils": "8.6.3", + "globby": "^11.0.3", + "tslib": "~2.3.0", + "unixify": "^1.0.0" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@semantic-release/github/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, + "node_modules/@graphql-tools/import": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.7.tgz", + "integrity": "sha512-zzpnVtmdel3mKz6i46GUib4wn0K5dosq4OTBl4avKV6ElvgZTkvsvfSv2aRhbRGIT4VnZPXLfzSnmYd8e+SRLQ==", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "@graphql-tools/utils": "8.6.3", + "resolve-from": "5.0.0", + "tslib": "~2.3.0" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@semantic-release/github/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, + "node_modules/@graphql-tools/load": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.3.tgz", + "integrity": "sha512-GYwLyGfX1nKUxg6rnTIdryv9d+ugFRTm2q11+IqNsajwNhxJExkx+e/h81AQR5382sAmPEIT+E1J1VS3xNfjyg==", "dependencies": { - "universalify": "^2.0.0" + "@graphql-tools/schema": "8.3.3", + "@graphql-tools/utils": "8.6.3", + "p-limit": "3.1.0", + "tslib": "~2.3.0" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@semantic-release/github/node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" + "node_modules/@graphql-tools/merge": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.4.tgz", + "integrity": "sha512-hiNRTsS948F+BB4Q7CZXLaGFOIHQzmimVq3EEI/+PQZsPb7kYDzg0Ow0GyV4conDdEiooLqHf7I1dWzTYwvs0A==", + "dependencies": { + "@graphql-tools/utils": "8.6.3", + "tslib": "~2.3.0" }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@semantic-release/github/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@semantic-release/npm": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.0.tgz", - "integrity": "sha512-hj2jqayS2SPUmFtCMCOQMX975uMDfRoymj1HvMSwYdaoI6hVZvhrTFPBgJeM85O0C+G3IFviAUar5gel/1VGDQ==", - "dev": true, + "node_modules/@graphql-tools/schema": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.3.tgz", + "integrity": "sha512-OrRLU9/7UmkDemeyNUy62uH+FofgV3bpVVZJprc9bhe3gZsY7kQNIdY7H1unINlepjLvGOgk7u7iLo2+EhjyWw==", "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "execa": "^5.0.0", - "fs-extra": "^10.0.0", - "lodash": "^4.17.15", - "nerf-dart": "^1.0.0", - "normalize-url": "^6.0.0", - "npm": "^8.3.0", - "rc": "^1.2.8", - "read-pkg": "^5.0.0", - "registry-auth-token": "^4.0.0", - "semver": "^7.1.2", - "tempy": "^1.0.0" - }, - "engines": { - "node": ">=16 || ^14.17" + "@graphql-tools/merge": "8.2.4", + "@graphql-tools/utils": "8.6.3", + "tslib": "~2.3.0", + "value-or-promise": "1.0.11" }, "peerDependencies": { - "semantic-release": ">=19.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, + "node_modules/@graphql-tools/utils": { + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.3.tgz", + "integrity": "sha512-CNyP7Uu7dlVMQ32IpHWOxz4yic9BYXXVkDhG0UdTKSszvzHdgMilemE9MpUrGzzBPsTe3aYTtNGyPUkyh9yTXA==", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "tslib": "~2.3.0" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "dependencies": { - "universalify": "^2.0.0" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=10.10.0" } }, - "node_modules/@semantic-release/npm/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, + "node_modules/@humanwhocodes/momoa": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.3.tgz", + "integrity": "sha512-SytjS6gJk+LXSWFuEm0V9ASdgxlX/BDq6A+6gfh7TaHM90xppBydjcM3SFaziZP4ikKmhUOhPkDi2KktzElnQQ==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.10.0" } }, - "node_modules/@semantic-release/npm/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/@semantic-release/npm/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@semantic-release/npm/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">=6" } }, - "node_modules/@semantic-release/release-notes-generator": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", - "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, "dependencies": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "get-stream": "^6.0.0", - "import-from": "^4.0.0", - "into-stream": "^6.0.0", - "lodash": "^4.17.4", - "read-pkg-up": "^7.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0-beta.1" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "node": ">=8" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, "dependencies": { - "is-obj": "^2.0.0" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, "dependencies": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - }, - "engines": { - "node": ">=10" + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "node_modules/@jest/core/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/@jest/core/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" @@ -2304,3349 +3009,4250 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" }, "engines": { - "node": ">=10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" }, "engines": { - "node": ">=10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" }, "engines": { - "node": ">=6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/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==", + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/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, - "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/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==", + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "node_modules/@juggle/resize-observer": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz", + "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==", + "dev": true }, - "node_modules/@semantic-release/release-notes-generator/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, + "node_modules/@mapbox/geojson-area": { + "version": "0.2.2", + "license": "BSD-2-Clause", "dependencies": { - "readable-stream": "3" + "wgs84": "0.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/@mapbox/stylelint-processor-arbitrary-tags": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@mapbox/stylelint-processor-arbitrary-tags/-/stylelint-processor-arbitrary-tags-0.4.0.tgz", + "integrity": "sha512-HTyW4vLgCVrAvmbV4TtXVpkrg3gkRR4WMEveNOo4OBxzA5wl5xQdxe0Iow8B5FRI3ose5yFLA8jvbfU8ZayPJQ==", "dev": true, + "dependencies": { + "execall": "^1.0.0", + "split-lines": "^1.1.0" + }, "engines": { "node": ">=10" } }, - "node_modules/@sentry/core": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.18.2.tgz", - "integrity": "sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==", - "dependencies": { - "@sentry/hub": "6.18.2", - "@sentry/minimal": "6.18.2", - "@sentry/types": "6.18.2", - "@sentry/utils": "6.18.2", - "tslib": "^1.9.3" + "node_modules/@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "dev": true, + "dependencies": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" }, - "engines": { - "node": ">=6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@sentry/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/hub": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.18.2.tgz", - "integrity": "sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==", + "node_modules/@mdx-js/mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dev": true, "dependencies": { - "@sentry/types": "6.18.2", - "@sentry/utils": "6.18.2", - "tslib": "^1.9.3" + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" }, "engines": { - "node": ">=6" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@sentry/hub/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/minimal": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.18.2.tgz", - "integrity": "sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==", + "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dev": true, "dependencies": { - "@sentry/hub": "6.18.2", - "@sentry/types": "6.18.2", - "tslib": "^1.9.3" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@sentry/minimal/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@mdx-js/mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } }, - "node_modules/@sentry/node": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.18.2.tgz", - "integrity": "sha512-1S+44c09n3KVpCYjwOfnA9jKvnpPegpQWM81Nu5J6ToGx+ZiddMq6B9GRXUnFfZ7Z6fJHZzFtySasQC7KqkQoA==", - "dependencies": { - "@sentry/core": "6.18.2", - "@sentry/hub": "6.18.2", - "@sentry/types": "6.18.2", - "@sentry/utils": "6.18.2", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/@sentry/node/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" + "node_modules/@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/@sentry/types": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.18.2.tgz", - "integrity": "sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==", - "engines": { - "node": ">=6" + "node_modules/@microsoft/tsdoc": { + "version": "0.13.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.15.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.13.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" } }, - "node_modules/@sentry/utils": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.18.2.tgz", - "integrity": "sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==", + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "dev": true, + "license": "MIT", "dependencies": { - "@sentry/types": "6.18.2", - "tslib": "^1.9.3" + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@sentry/utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sindresorhus/slugify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", - "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, "dependencies": { - "@sindresorhus/transliterate": "^0.1.1", - "escape-string-regexp": "^4.0.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/@sindresorhus/transliterate": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", - "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", + "node_modules/@mrmlnc/readdir-enhanced/node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.4", + "license": "MIT", "dependencies": { - "escape-string-regexp": "^2.0.0", - "lodash.deburr": "^4.1.0" + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 8" } }, - "node_modules/@sindresorhus/transliterate/node_modules/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==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.4", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.6", + "license": "MIT", "dependencies": { - "type-detect": "4.0.8" + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" } }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", + "node_modules/@npmcli/git": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.0.tgz", + "integrity": "sha512-xfSBJ+KBMZWWqRHFbEgIaXG/LtELHrQZMJ72Gkb3yWdHysu/7+VGOs8ME0c3td7QNQX57Ggo3kYL6ylcd70/kA==", "dev": true, - "license": "MIT", "dependencies": { - "defer-to-connect": "^1.0.1" + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^7.3.1", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" }, "engines": { - "node": ">=6" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "license": "MIT", + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", + "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "dev": true, "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" - }, - "node_modules/@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/center": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", - "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", - "dependencies": { - "@turf/bbox": "^6.5.0", - "@turf/helpers": "^6.5.0" + "bin": { + "installed-package-contents": "index.js" }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">= 10" } }, - "node_modules/@turf/intersect": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", - "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/invariant": "^6.5.0", - "polygon-clipping": "^0.15.3" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10" } }, - "node_modules/@turf/invariant": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", - "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", + "node_modules/@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", + "dev": true + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" + "infer-owner": "^1.0.4" } }, - "node_modules/@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", + "node_modules/@npmcli/run-script": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.1.tgz", + "integrity": "sha512-o2fkld5hYwu9sKYzoXTpqEocMnDLaigobaPzLaGB63k/ExmLBTaB+KpfKlpcIePPnuP8RFR+0GDI4KopJCM6Xg==", + "dev": true, "dependencies": { - "@turf/helpers": "^6.5.0" + "@npmcli/node-gyp": "^1.0.3", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "node_modules/@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dev": true, "dependencies": { - "@types/node": "*" + "@octokit/types": "^6.0.3" } }, - "node_modules/@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "node_modules/@octokit/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", + "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.0", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, "dependencies": { - "@babel/types": "^7.0.0" + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "node_modules/@octokit/openapi-types": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", + "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", + "dev": true + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", + "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "@octokit/types": "^6.34.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" } }, - "node_modules/@types/basic-auth": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "@types/node": "*" + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/@types/bcryptjs": { - "version": "2.4.2", - "license": "MIT" - }, - "node_modules/@types/body-parser": { - "version": "1.19.0", - "license": "MIT", + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", + "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "dev": true, "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "@octokit/types": "^6.34.0", + "deprecation": "^2.3.1" + }, + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/@types/compression": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.2.tgz", - "integrity": "sha512-lwEL4M/uAGWngWFLSG87ZDr2kLrbuR8p7X+QZB1OQlT+qkHsCPDVFnHPyXf4Vyl4yDDorNY+mAhosxkCvppatg==", + "node_modules/@octokit/request": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", + "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "dev": true, "dependencies": { - "@types/express": "*" + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "universal-user-agent": "^6.0.0" } }, - "node_modules/@types/connect": { - "version": "3.4.34", - "license": "MIT", + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dev": true, "dependencies": { - "@types/node": "*" + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" } }, - "node_modules/@types/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" - }, - "node_modules/@types/cookie-parser": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz", - "integrity": "sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg==", + "node_modules/@octokit/rest": { + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "dev": true, "dependencies": { - "@types/express": "*" + "@octokit/core": "^3.5.1", + "@octokit/plugin-paginate-rest": "^2.16.8", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" } }, - "node_modules/@types/cookiejar": { - "version": "2.1.2", + "node_modules/@octokit/types": { + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", + "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", "dev": true, - "license": "MIT" - }, - "node_modules/@types/cookies": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" + "@octokit/openapi-types": "^11.2.0" } }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" - }, - "node_modules/@types/cron": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@types/cron/-/cron-1.7.3.tgz", - "integrity": "sha512-iPmUXyIJG1Js+ldPYhOQcYU3kCAQ2FWrSkm1FJPoii2eYSn6wEW6onPukNTT0bfiflexNSRPl6KWmAIqS+36YA==", + "node_modules/@placemarkio/check-geojson": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@placemarkio/check-geojson/-/check-geojson-0.1.8.tgz", + "integrity": "sha512-MLt5Pe6j/iNjG1H55wJUw/g0wu6rcEpnNuLYdfn9d6IfHgYpKY3aID2BOj3DWSGS/1e9MevcPKLOFwaIH/2cLg==", "dependencies": { - "@types/node": "*", - "moment": ">=2.14.0" + "@humanwhocodes/momoa": "^2.0.3", + "@types/geojson": "^7946.0.8", + "@types/jest": "^27.4.0", + "type-fest": "^2.12.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/dateformat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/dateformat/-/dateformat-5.0.0.tgz", - "integrity": "sha512-SZg4JdHIWHQGEokbYGZSDvo5wA4TLYPXaqhigs/wH+REDOejcJzgH+qyY+HtEUtWOZxEUkbhbdYPqQDiEgrXeA==" + "node_modules/@placemarkio/check-geojson/node_modules/type-fest": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.0.tgz", + "integrity": "sha512-Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/@types/eslint-visitor-keys": { - "version": "1.0.0", + "node_modules/@popperjs/core": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.4.tgz", + "integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==", "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" } }, - "node_modules/@types/express-jwt": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-6.0.4.tgz", - "integrity": "sha512-I53KRQ9D0eTA6hVCN9S73iOeprKS3JNWK+Cp2mDPB6uOIkTVpkgSkX394kHQzb5cd0U02I0adRmsMxHk+zX8tA==", + "node_modules/@rollup/plugin-inject": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-4.0.4.tgz", + "integrity": "sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ==", + "dev": true, "dependencies": { - "@types/express": "*", - "@types/express-unless": "*" + "@rollup/pluginutils": "^3.1.0", + "estree-walker": "^2.0.1", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@types/express-unless": { - "version": "0.5.1", + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@selderee/plugin-htmlparser2": { + "version": "0.6.0", "license": "MIT", "dependencies": { - "@types/express": "*" + "domhandler": "^4.2.0", + "selderee": "^0.6.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" } }, - "node_modules/@types/fs-capacitor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", - "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", + "node_modules/@semantic-release/changelog": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz", + "integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==", + "dev": true, "dependencies": { - "@types/node": "*" + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "fs-extra": "^9.0.0", + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" } }, - "node_modules/@types/geojson": { - "version": "7946.0.8", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", - "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "node_modules/@semantic-release/changelog/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { - "@types/node": "*" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/graphql-type-json": { - "version": "0.3.2", - "license": "MIT", + "node_modules/@semantic-release/changelog/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "dependencies": { - "graphql": "^14.5.3" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@types/graphql-type-json/node_modules/graphql": { - "version": "14.7.0", - "license": "MIT", + "node_modules/@semantic-release/changelog/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@semantic-release/commit-analyzer": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", + "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", + "dev": true, "dependencies": { - "iterall": "^1.2.2" + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "import-from": "^4.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.2" }, "engines": { - "node": ">= 6.x" + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" } }, - "node_modules/@types/graphql-upload": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.11.tgz", - "integrity": "sha512-AE8RWANHutpsQt945lQZKlkq0V/zBxU5R0xhKLZN3KkBMlW95/5uJzk01HUl8gbDkG7hGl8l8lJKbi91k0UnPw==", + "node_modules/@semantic-release/commit-analyzer/node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, "dependencies": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "graphql": "0.13.1 - 16" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "node_modules/@types/http-assert": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" + "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/@types/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" + "node_modules/@semantic-release/commit-analyzer/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", + "node_modules/@semantic-release/commit-analyzer/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=8" + } }, - "node_modules/@types/istanbul-lib-report": { + "node_modules/@semantic-release/error": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "engines": { + "node": ">=14.17" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.0", + "node_modules/@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", "dev": true, - "license": "MIT", "dependencies": { - "@types/istanbul-lib-report": "*" + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" } }, - "node_modules/@types/jest": { - "version": "27.4.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", - "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "node_modules/@semantic-release/github": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.2.tgz", + "integrity": "sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg==", + "dev": true, "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" + "@octokit/rest": "^18.0.0", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^3.0.0", + "bottleneck": "^2.18.1", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "fs-extra": "^10.0.0", + "globby": "^11.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "issue-parser": "^6.0.0", + "lodash": "^4.17.4", + "mime": "^3.0.0", + "p-filter": "^2.0.0", + "p-retry": "^4.0.0", + "url-join": "^4.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" } }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "node_modules/@semantic-release/github/node_modules/@semantic-release/error": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", + "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", "dev": true }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "node_modules/@semantic-release/github/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", + "node_modules/@semantic-release/github/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, "dependencies": { - "@types/node": "*" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - }, - "node_modules/@types/koa": { - "version": "2.13.4", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", - "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", + "node_modules/@semantic-release/github/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "node_modules/@semantic-release/github/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "dependencies": { - "@types/koa": "*" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@types/mime": { - "version": "1.3.2", - "license": "MIT" + "node_modules/@semantic-release/github/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } }, - "node_modules/@types/minimist": { - "version": "1.2.1", + "node_modules/@semantic-release/github/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, - "license": "MIT" + "engines": { + "node": ">= 10.0.0" + } }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "node_modules/@semantic-release/npm": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.0.tgz", + "integrity": "sha512-hj2jqayS2SPUmFtCMCOQMX975uMDfRoymj1HvMSwYdaoI6hVZvhrTFPBgJeM85O0C+G3IFviAUar5gel/1VGDQ==", + "dev": true, "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "execa": "^5.0.0", + "fs-extra": "^10.0.0", + "lodash": "^4.17.15", + "nerf-dart": "^1.0.0", + "normalize-url": "^6.0.0", + "npm": "^8.3.0", + "rc": "^1.2.8", + "read-pkg": "^5.0.0", + "registry-auth-token": "^4.0.0", + "semver": "^7.1.2", + "tempy": "^1.0.0" + }, + "engines": { + "node": ">=16 || ^14.17" + }, + "peerDependencies": { + "semantic-release": ">=19.0.0" } }, - "node_modules/@types/node-mailjet": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/@types/node-mailjet/-/node-mailjet-3.3.8.tgz", - "integrity": "sha512-bjrj7FOG5bVGpV1RovUF1JydGngW/TIrbGDTiId41v9ak3rwzGm4OVmPzjjKbqjECCD8toRXOdyTz28rkH5OlA==" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.0", + "node_modules/@semantic-release/npm/node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, - "license": "MIT" + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } }, - "node_modules/@types/parse-json": { - "version": "4.0.0", + "node_modules/@semantic-release/npm/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "license": "MIT" - }, - "node_modules/@types/pg": { - "version": "8.6.5", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.5.tgz", - "integrity": "sha512-tOkGtAqRVkHa/PVZicq67zuujI4Oorfglsr2IbKofDwBSysnaqSx7W1mDqFqdkGE6Fbgh+PZAl0r/BWON/mozw==", "dependencies": { - "@types/node": "*", - "pg-protocol": "*", - "pg-types": "^2.2.0" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@types/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", - "dev": true - }, - "node_modules/@types/proj4": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@types/proj4/-/proj4-2.5.2.tgz", - "integrity": "sha512-/Nmfn9p08yaYw6xo5f2b0L+2oHk2kZeOkp5v+4VCeNfq+ETlLQbmHmC97/pjDIEZy8jxwz7pdPpwNzDHM5cuJw==" - }, - "node_modules/@types/qs": { - "version": "6.9.6", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.3", - "license": "MIT" - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", - "dev": true + "node_modules/@semantic-release/npm/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/@types/serve-static": { - "version": "1.13.9", - "license": "MIT", + "node_modules/@semantic-release/npm/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, "dependencies": { - "@types/mime": "^1", - "@types/node": "*" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/shpjs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@types/shpjs/-/shpjs-3.4.1.tgz", - "integrity": "sha512-xdJ65Zp2wslzyKKAid+PPl7Hxz5+eFS7W5G42RfryoJRk2u0CA+5jtX3wBgZhmz1s/mGX0PWzmKCBYTYgRsELg==", - "dependencies": { - "@types/geojson": "*", - "@types/node": "*" + "node_modules/@semantic-release/npm/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@types/sql-formatter": { - "version": "2.3.0", - "license": "MIT" + "node_modules/@semantic-release/npm/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "node_modules/@semantic-release/release-notes-generator": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", + "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "get-stream": "^6.0.0", + "import-from": "^4.0.0", + "into-stream": "^6.0.0", + "lodash": "^4.17.4", + "read-pkg-up": "^7.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" + } }, - "node_modules/@types/superagent": { - "version": "4.1.11", + "node_modules/@semantic-release/release-notes-generator/node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/cookiejar": "*", - "@types/node": "*" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "node_modules/@types/supertest": { - "version": "2.0.11", + "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/superagent": "*" + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/yargs": { - "version": "16.0.2", + "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", "dev": true, - "license": "MIT", "dependencies": { - "@types/yargs-parser": "*" + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/yargs-parser": { - "version": "20.2.0", + "node_modules/@semantic-release/release-notes-generator/node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, - "license": "MIT" + "engines": { + "node": "*" + } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", - "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/type-utils": "5.15.0", - "@typescript-eslint/utils": "5.15.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "is-obj": "^2.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "node_modules/@semantic-release/release-notes-generator/node_modules/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, "dependencies": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", - "debug": "^4.3.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "node_modules/@semantic-release/release-notes-generator/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", - "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.15.0", - "debug": "^4.3.2", - "tsutils": "^3.21.0" + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/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, "dependencies": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "p-locate": "^4.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", - "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "node_modules/@semantic-release/release-notes-generator/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.15.0", - "eslint-visitor-keys": "^3.0.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/normalize-package-data/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" } }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", + "node_modules/@semantic-release/release-notes-generator/node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true, - "license": "ISC" + "engines": { + "node": ">=8" + } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "node_modules/@semantic-release/release-notes-generator/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "event-target-shim": "^5.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=6.5" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/@semantic-release/release-notes-generator/node_modules/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, "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/acorn": { - "version": "7.4.1", + "node_modules/@semantic-release/release-notes-generator/node_modules/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, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/acorn-jsx": { - "version": "5.3.1", + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "engines": { - "node": ">=0.4.0" + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/add-stream": { - "version": "1.0.0", + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "MIT" + "bin": { + "semver": "bin/semver" + } }, - "node_modules/adler-32": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz", - "integrity": "sha512-f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==", - "dependencies": { - "printj": "~1.2.2" - }, + "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "license": "MIT", + "node_modules/@semantic-release/release-notes-generator/node_modules/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, "dependencies": { - "debug": "4" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 6" } }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" + "readable-stream": "3" } }, - "node_modules/ajv": { - "version": "6.12.6", + "node_modules/@sentry/browser": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.19.1.tgz", + "integrity": "sha512-nU73PecOoMwrsw2WRJW+oQSSfgGkcY3So3JH7qwRHnnk4Gx56TkDfS0AOrNRsSpIQXj1UbSFIWKzz6ajsOg9OA==", "dev": true, - "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@sentry/core": "6.19.1", + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "tslib": "^1.9.3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "node_modules/@sentry/browser/node_modules/@sentry/core": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.1.tgz", + "integrity": "sha512-ZSIFnwYCzABK1jX1iMwUbaAoWbbJear0wM+gSZvJpSUJ1dAXV1OZyL7kXtEJRtATahIlcrMou5ewIoeJizeWAw==", "dev": true, "dependencies": { - "string-width": "^4.1.0" + "@sentry/hub": "6.19.1", + "@sentry/minimal": "6.19.1", + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/ansi-align/node_modules/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==", + "node_modules/@sentry/browser/node_modules/@sentry/hub": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.1.tgz", + "integrity": "sha512-BgUwdxxXntGohAYrXtYrYBA6QzOeRz3NINuS838n7SRTkGf9gBJ/Rd3dyOWUrzJciKty7rmvYIwTA0oo91AMkw==", "dev": true, + "dependencies": { + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "tslib": "^1.9.3" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@sentry/browser/node_modules/@sentry/minimal": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.1.tgz", + "integrity": "sha512-Xre3J6mjWEcQhDmQ3j4g71J8f0nDgg2p7K41SngibfZVYSOe8jAowxSI9JuWD7juuwT5GVRVCqLs+Y6mWDBaoQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@sentry/hub": "6.19.1", + "@sentry/types": "6.19.1", + "tslib": "^1.9.3" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", + "node_modules/@sentry/browser/node_modules/@sentry/types": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.1.tgz", + "integrity": "sha512-ovmNYdqD2MKLmru4calxetX1xjJdYim+HEI/GzwvVUYshsaXRq4EiQ17h3DAy90MV7JH279PmMoPGDTOpufq+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/ansi-escapes": { - "version": "3.2.0", + "node_modules/@sentry/browser/node_modules/@sentry/utils": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.1.tgz", + "integrity": "sha512-mWcQbQ1yO7PooLpJpQK84+wOfxGeb8iUKRb8inO+2Eg6VksDbXRuJ89Yd4APBTRxBj5Wihy48bPuVfKtovtm8g==", "dev": true, - "license": "MIT", + "dependencies": { + "@sentry/types": "6.19.1", + "tslib": "^1.9.3" + }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@sentry/browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@sentry/core": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.18.2.tgz", + "integrity": "sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==", + "dependencies": { + "@sentry/hub": "6.18.2", + "@sentry/minimal": "6.18.2", + "@sentry/types": "6.18.2", + "@sentry/utils": "6.18.2", + "tslib": "^1.9.3" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/hub": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.18.2.tgz", + "integrity": "sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==", "dependencies": { - "color-convert": "^2.0.1" + "@sentry/types": "6.18.2", + "@sentry/utils": "6.18.2", + "tslib": "^1.9.3" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/ansicolors": { - "version": "0.2.1", - "license": "MIT" + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/anymatch": { - "version": "3.1.2", + "node_modules/@sentry/integrations": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.19.1.tgz", + "integrity": "sha512-0ViIiwx9BlPi8jvT97ERpJWmRbBUThGOyjNVzWxaa07OEjOgKI6cNgsBHWbPjaCM00WSzaOFOtYiC4464+Mucg==", "dev": true, - "license": "ISC", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "localforage": "^1.8.1", + "tslib": "^1.9.3" }, "engines": { - "node": ">= 8" + "node": ">=6" } }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "3.0.0", + "node_modules/@sentry/integrations/node_modules/@sentry/types": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.1.tgz", + "integrity": "sha512-ovmNYdqD2MKLmru4calxetX1xjJdYim+HEI/GzwvVUYshsaXRq4EiQ17h3DAy90MV7JH279PmMoPGDTOpufq+Q==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "node_modules/@sentry/integrations/node_modules/@sentry/utils": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.1.tgz", + "integrity": "sha512-mWcQbQ1yO7PooLpJpQK84+wOfxGeb8iUKRb8inO+2Eg6VksDbXRuJ89Yd4APBTRxBj5Wihy48bPuVfKtovtm8g==", "dev": true, "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@sentry/types": "6.19.1", + "tslib": "^1.9.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=6" } }, - "node_modules/are-we-there-yet/node_modules/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, + "node_modules/@sentry/integrations/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@sentry/minimal": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.18.2.tgz", + "integrity": "sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@sentry/hub": "6.18.2", + "@sentry/types": "6.18.2", + "tslib": "^1.9.3" }, "engines": { - "node": ">= 6" + "node": ">=6" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", + "node_modules/@sentry/node": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.18.2.tgz", + "integrity": "sha512-1S+44c09n3KVpCYjwOfnA9jKvnpPegpQWM81Nu5J6ToGx+ZiddMq6B9GRXUnFfZ7Z6fJHZzFtySasQC7KqkQoA==", "dependencies": { - "sprintf-js": "~1.0.2" + "@sentry/core": "6.18.2", + "@sentry/hub": "6.18.2", + "@sentry/types": "6.18.2", + "@sentry/utils": "6.18.2", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/argv": { - "version": "0.0.2", - "dev": true, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.18.2.tgz", + "integrity": "sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==", "engines": { - "node": ">=0.6.10" + "node": ">=6" } }, - "node_modules/argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", - "dev": true - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "dev": true, - "license": "MIT", + "node_modules/@sentry/utils": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.18.2.tgz", + "integrity": "sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==", + "dependencies": { + "@sentry/types": "6.18.2", + "tslib": "^1.9.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/array-ify": { - "version": "1.0.0", - "dev": true, - "license": "MIT" + "node_modules/@sindresorhus/slugify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", + "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", + "dependencies": { + "@sindresorhus/transliterate": "^0.1.1", + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, + "node_modules/@sindresorhus/transliterate": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", + "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" + "escape-string-regexp": "^2.0.0", + "lodash.deburr": "^4.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", + "node_modules/@sindresorhus/transliterate/node_modules/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==", "engines": { "node": ">=8" } }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "type-detect": "4.0.8" } }, - "node_modules/arrify": { - "version": "1.0.1", + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@sinonjs/commons": "^1.7.0" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true + "node_modules/@storybook/addon-actions": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.19.tgz", + "integrity": "sha512-GpSvP8xV8GfNkmtGJjfCgaOx6mbjtyTK0aT9FqX9pU0s+KVMmoCTrBh43b7dWrwxxas01yleBK9VpYggzhi/Fw==", + "dev": true, + "dependencies": { + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/theming": "6.4.19", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "polished": "^4.0.5", + "prop-types": "^15.7.2", + "react-inspector": "^5.1.0", + "regenerator-runtime": "^0.13.7", + "telejson": "^5.3.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "uuid-browser": "^3.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "node_modules/@storybook/addon-controls": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.19.tgz", + "integrity": "sha512-JHi5z9i6NsgQLfG5WOeQE1AyOrM+QJLrjT+uOYx40bq+OC1yWHH7qHiphPP8kjJJhCZlaQk1qqXYkkQXgaeHSw==", + "dev": true, "dependencies": { - "tslib": "^2.0.1" + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/node-logger": "6.4.19", + "@storybook/store": "6.4.19", + "@storybook/theming": "6.4.19", + "core-js": "^3.8.2", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": ">=4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/astral-regex": { + "node_modules/@storybook/addon-postcss": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-postcss/-/addon-postcss-2.0.0.tgz", + "integrity": "sha512-Nt82A7e9zJH4+A+VzLKKswUfru+T6FJTakj4dccP0i8DSn7a0CkzRPrLuZBq8tg4voV6gD74bcDf3gViCVBGtA==", "dev": true, - "license": "MIT", + "dependencies": { + "@storybook/node-logger": "^6.1.14", + "css-loader": "^3.6.0", + "postcss": "^7.0.35", + "postcss-loader": "^4.2.0", + "style-loader": "^1.3.0" + }, "engines": { - "node": ">=8" + "node": ">=10", + "yarn": "^1.17.0" } }, - "node_modules/async": { - "version": "1.5.2", - "license": "MIT" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "node_modules/@storybook/addon-postcss/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/async-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, "engines": { - "node": ">= 4" + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/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==", + "node_modules/@storybook/addon-postcss/node_modules/postcss-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", + "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/aws-sdk": { - "version": "2.1078.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1078.0.tgz", - "integrity": "sha512-eJuiiCE4tomYzsxqfsjERmQ1WQkNAe5RUhOXUwJbGTEfwmbiQqq/HgVYrwcMswOHoURbtKpB5SSrTLNOBuyurA==", - "dependencies": { - "buffer": "4.9.2", - "events": "1.1.1", - "ieee754": "1.1.13", - "jmespath": "0.16.0", - "querystring": "0.2.0", - "sax": "1.2.1", - "url": "0.10.3", - "uuid": "3.3.2", - "xml2js": "0.4.19" + "node": ">= 10.13.0" }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/aws-sdk/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "node_modules/@storybook/addon-postcss/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@storybook/addon-storyshots": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addon-storyshots/-/addon-storyshots-6.4.19.tgz", + "integrity": "sha512-HhXUJylImQIDxzkd7yvQ8p/mzUuvzPc1PWB3ZiwV+t6kg9LX8qnKdkQ6t/asIn54bARhNk3EURPTI8W2fWDgMg==", + "dev": true, + "dependencies": { + "@jest/transform": "^26.6.2", + "@storybook/addons": "6.4.19", + "@storybook/babel-plugin-require-context-hook": "1.0.1", + "@storybook/client-api": "6.4.19", + "@storybook/core": "6.4.19", + "@storybook/core-client": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@types/glob": "^7.1.3", + "@types/jest": "^26.0.16", + "@types/jest-specific-snapshot": "^0.5.3", + "core-js": "^3.8.2", + "glob": "^7.1.6", + "global": "^4.4.0", + "jest-specific-snapshot": "^4.0.0", + "preact-render-to-string": "^5.1.19", + "pretty-format": "^26.6.2", + "react-test-renderer": "^16.8.0 || ^17.0.0", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@babel/core": "^7.8.0" + "@angular/core": ">=6.0.0", + "@angular/platform-browser-dynamic": ">=6.0.0", + "@storybook/angular": "*", + "@storybook/react": "*", + "@storybook/vue": "*", + "@storybook/vue3": "*", + "jest": "*", + "jest-preset-angular": "*", + "jest-vue-preprocessor": "*", + "preact": "^10.5.13", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0", + "rxjs": "*", + "svelte": "*", + "vue": "*", + "vue-jest": "*" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + }, + "@angular/platform-browser-dynamic": { + "optional": true + }, + "@storybook/angular": { + "optional": true + }, + "@storybook/react": { + "optional": true + }, + "@storybook/vue": { + "optional": true + }, + "@storybook/vue3": { + "optional": true + }, + "jest-preset-angular": { + "optional": true + }, + "jest-vue-preprocessor": { + "optional": true + }, + "preact": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "rxjs": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-jest": { + "optional": true + } } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/@storybook/addon-storyshots/node_modules/@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">= 10.14.2" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "node_modules/@storybook/addon-storyshots/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 10.14.2" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "node_modules/@storybook/addon-storyshots/node_modules/@types/jest": { + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", "dev": true, "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" } }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "node_modules/@storybook/addon-storyshots/node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "@types/yargs-parser": "*" } }, - "node_modules/balanced-match": { - "version": "1.0.2", + "node_modules/@storybook/addon-storyshots/node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "engines": { + "node": ">= 10.14.2" + } }, - "node_modules/basic-auth": { - "version": "2.0.1", - "license": "MIT", + "node_modules/@storybook/addon-storyshots/node_modules/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, "dependencies": { - "safe-buffer": "5.1.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/bcryptjs": { - "version": "2.4.3", - "license": "MIT" - }, - "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", - "dev": true - }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "license": "MIT", + "node_modules/@storybook/addon-storyshots/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "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" + }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/@storybook/addon-storyshots/node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" }, "engines": { - "node": ">= 0.8" + "node": ">= 10.14.2" } }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/@storybook/addon-storyshots/node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node": ">= 10.14.2" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/bottleneck": { - "version": "2.19.5", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "node_modules/@storybook/addon-storyshots/node_modules/jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", "dev": true, "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" }, "engines": { - "node": ">=10" + "node": ">= 10.14.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "fsevents": "^2.1.2" } }, - "node_modules/boxen/node_modules/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==", + "node_modules/@storybook/addon-storyshots/node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 10.14.2" } }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@storybook/addon-storyshots/node_modules/jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@types/node": "*", + "graceful-fs": "^4.2.4" }, "engines": { - "node": ">=8" + "node": ">= 10.14.2" } }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@storybook/addon-storyshots/node_modules/jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 10.14.2" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@storybook/addon-storyshots/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "node_modules/braces": { - "version": "3.0.2", - "license": "MIT", + "node_modules/@storybook/addon-storyshots/node_modules/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, "dependencies": { - "fill-range": "^7.0.1" + "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", + "node_modules/@storybook/addon-storyshots/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", - "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" - }, - "bin": { - "browserslist": "cli.js" + "p-try": "^2.0.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bs-logger": { - "version": "0.2.6", + "node_modules/@storybook/addon-storyshots/node_modules/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, - "license": "MIT", "dependencies": { - "fast-json-stable-stringify": "2.x" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/@storybook/addon-storyshots/node_modules/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, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "license": "BSD-3-Clause" - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "node_modules/busboy": { - "version": "0.3.1", + "node_modules/@storybook/addon-storyshots/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, "dependencies": { - "dicer": "0.3.0" + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": ">=4.5.0" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node": ">= 10" } }, - "node_modules/cacache": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.1.tgz", - "integrity": "sha512-tHPtfdZDqQpZ15eaEZeLspIqS5mK5fOBDZi6AjuqaIi53QNVXH3dQv6uKT3YuUu6uxV/8pjU9in0CoJ8fgaHqw==", + "node_modules/@storybook/addon-storyshots/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.1.2", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^7.2.0", - "infer-owner": "^1.0.4", - "lru-cache": "^7.5.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8" } }, - "node_modules/cacache/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/@storybook/addon-storyshots/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "dependencies": { - "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" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": "*" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", - "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "node_modules/@storybook/addon-storyshots/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/cachedir": { - "version": "2.2.0", + "node_modules/@storybook/addons": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.19.tgz", + "integrity": "sha512-QNyRYhpqmHV8oJxxTBdkRlLSbDFhpBvfvMfIrIT1UXb/eemdBZTaCGVvXZ9UixoEEI7f8VwAQ44IvkU5B1509w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "@storybook/api": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/router": "6.4.19", + "@storybook/theming": "6.4.19", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" } }, - "node_modules/call-bind": { - "version": "1.0.2", + "node_modules/@storybook/api": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.19.tgz", + "integrity": "sha512-aDvea+NpQCBjpNp9YidO1Pr7fzzCp15FSdkG+2ihGQfv5raxrN+IIJnGUXecpe71nvlYiB+29UXBVK7AL0j51Q==", "dev": true, - "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/router": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.4.19", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "telejson": "^5.3.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "node_modules/@storybook/babel-plugin-require-context-hook": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@storybook/babel-plugin-require-context-hook/-/babel-plugin-require-context-hook-1.0.1.tgz", + "integrity": "sha512-WM4vjgSVi8epvGiYfru7BtC3f0tGwNs7QK3Uc4xQn4t5hHQvISnCqbNrHdDYmNW56Do+bBztE8SwP6NGUvd7ww==", + "dev": true }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" + "node_modules/@storybook/builder-webpack4": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.19.tgz", + "integrity": "sha512-wxA6SMH11duc9D53aeVVBwrVRemFIoxHp/dOugkkg6ZZFAb4ZmWzf/ENc3vQIZdZpfNRi7IZIZEOfoHc994cmw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-decorators": "^7.12.12", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.12", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-api": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/node-logger": "6.4.19", + "@storybook/preview-web": "6.4.19", + "@storybook/router": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.4.19", + "@storybook/theming": "6.4.19", + "@storybook/ui": "6.4.19", + "@types/node": "^14.0.10", + "@types/webpack": "^4.41.26", + "autoprefixer": "^9.8.6", + "babel-loader": "^8.0.0", + "babel-plugin-macros": "^2.8.0", + "babel-plugin-polyfill-corejs3": "^0.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "file-loader": "^6.2.0", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^4.1.6", + "glob": "^7.1.6", + "glob-promise": "^3.4.0", + "global": "^4.4.0", + "html-webpack-plugin": "^4.0.0", + "pnp-webpack-plugin": "1.6.4", + "postcss": "^7.0.36", + "postcss-flexbugs-fixes": "^4.2.1", + "postcss-loader": "^4.2.0", + "raw-loader": "^4.0.2", + "stable": "^0.1.8", + "style-loader": "^1.3.0", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-filter-warnings-plugin": "^1.2.1", + "webpack-hot-middleware": "^2.25.1", + "webpack-virtual-modules": "^0.2.2" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", + "node_modules/@storybook/builder-webpack4/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", "dev": true, - "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", + "node_modules/@storybook/builder-webpack4/node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/camino-api": { - "resolved": "packages/api", - "link": true + "node_modules/@storybook/builder-webpack4/node_modules/@types/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "dev": true }, - "node_modules/caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==", + "node_modules/@storybook/builder-webpack4/node_modules/@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/cardinal": { - "version": "0.4.4", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-api-error": { + "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 + }, + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-buffer": { + "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 + }, + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 + }, + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/helper-wasm-section": { + "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, "dependencies": { - "ansicolors": "~0.2.1", - "redeyed": "~0.4.0" - }, - "bin": { - "cdl": "bin/cdl.js" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "node_modules/cerbere": { - "version": "0.2.3", - "license": "AGPL-3.0-or-later", + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, "dependencies": { - "fast-xml-parser": "^3.17.0", - "uuid": "^8.0.0" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/cfb": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz", - "integrity": "sha512-wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==", + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, "dependencies": { - "adler-32": "~1.3.0", - "crc-32": "~1.2.0", - "printj": "~1.3.0" - }, - "engines": { - "node": ">=0.8" + "@xtuc/long": "4.2.2" } }, - "node_modules/cfb/node_modules/printj": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.0.tgz", - "integrity": "sha512-017o8YIaz8gLhaNxRB9eBv2mWXI2CtzhPJALnQTP+OPpuUfP0RMWqr/mHCzqVeu1AQxfzSfAtAq66vKB8y7Lzg==", - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@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" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/wasm-gen": { + "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, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "@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" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/wasm-opt": { + "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, - "engines": { - "node": ">=10" + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "node_modules/chardet": { - "version": "0.7.0", + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/wasm-parser": { + "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, - "license": "MIT" + "dependencies": { + "@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" + } }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "node_modules/@storybook/builder-webpack4/node_modules/@webassemblyjs/wast-printer": { + "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, "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">=0.4.0" } }, - "node_modules/chokidar/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/@storybook/builder-webpack4/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/@storybook/builder-webpack4/node_modules/ansi-styles": { + "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, + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/ci-info": { - "version": "3.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cint": { - "version": "8.2.1", + "node_modules/@storybook/builder-webpack4/node_modules/babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", "dev": true, - "license": "ISC" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true + "dependencies": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/@storybook/builder-webpack4/node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "node_modules/@storybook/builder-webpack4/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cli-cursor": { - "version": "2.1.0", + "node_modules/@storybook/builder-webpack4/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "license": "MIT", "dependencies": { - "restore-cursor": "^2.0.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/cli-table": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", - "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "node_modules/@storybook/builder-webpack4/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, "dependencies": { - "colors": "1.0.3" - }, - "engines": { - "node": ">= 0.2.0" + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" } }, - "node_modules/cli-table3": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", - "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", + "node_modules/@storybook/builder-webpack4/node_modules/chalk": { + "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, "dependencies": { - "string-width": "^4.2.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "colors": "1.4.0" + "node": ">=4" } }, - "node_modules/cli-table3/node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "node_modules/@storybook/builder-webpack4/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/@storybook/builder-webpack4/node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", "dev": true, - "optional": true, + "dependencies": { + "source-map": "~0.6.0" + }, "engines": { - "node": ">=0.1.90" + "node": ">= 4.0" } }, - "node_modules/cli-table3/node_modules/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==", + "node_modules/@storybook/builder-webpack4/node_modules/color-convert": { + "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, - "engines": { - "node": ">=8" + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@storybook/builder-webpack4/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@storybook/builder-webpack4/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "node_modules/@storybook/builder-webpack4/node_modules/css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@storybook/builder-webpack4/node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true, "engines": { - "node": ">=12" + "node": ">= 6" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cli-truncate/node_modules/ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "node_modules/@storybook/builder-webpack4/node_modules/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, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.8.0" } }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "node_modules/@storybook/builder-webpack4/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4.0.0" } }, - "node_modules/cli-truncate/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "node_modules/@storybook/builder-webpack4/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", - "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", + "node_modules/@storybook/builder-webpack4/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "emoji-regex": "^9.2.2", - "is-fullwidth-code-point": "^4.0.0", - "strip-ansi": "^7.0.1" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/@storybook/builder-webpack4/node_modules/fork-ts-checker-webpack-plugin": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", + "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "@babel/code-frame": "^7.5.5", + "chalk": "^2.4.1", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=6.11.5", + "yarn": ">=1.0.0" } }, - "node_modules/cli-width": { - "version": "2.2.1", + "node_modules/@storybook/builder-webpack4/node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "ISC" + "bin": { + "semver": "bin/semver" + } }, - "node_modules/cliui": { - "version": "7.0.4", + "node_modules/@storybook/builder-webpack4/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, - "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "node_modules/@storybook/builder-webpack4/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.2", + "node_modules/@storybook/builder-webpack4/node_modules/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", "dev": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/clone-response": { - "version": "1.0.2", + "node_modules/@storybook/builder-webpack4/node_modules/html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", "dev": true, - "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "node_modules/@storybook/builder-webpack4/node_modules/html-webpack-plugin/node_modules/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, "dependencies": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" - }, - "bin": { - "codecov": "bin/codecov" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" }, "engines": { - "node": ">=4.0" + "node": ">=4.0.0" } }, - "node_modules/codepage": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", - "engines": { - "node": ">=0.8" - } + "node_modules/@storybook/builder-webpack4/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, - "node_modules/collect-v8-coverage": { + "node_modules/@storybook/builder-webpack4/node_modules/is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/color": { + "node_modules/@storybook/builder-webpack4/node_modules/is-number": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.5.5", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "node_modules/@storybook/builder-webpack4/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=4" } }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, - "node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "node_modules/@storybook/builder-webpack4/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "engines": { - "node": ">=0.1.90" + "node": ">=0.10.0" } }, - "node_modules/colorspace": { - "version": "1.1.2", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, "dependencies": { - "color": "3.0.x", - "text-hex": "1.0.x" + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "dependencies": { - "delayed-stream": "~1.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" + "node_modules/@storybook/builder-webpack4/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/commitizen": { - "version": "4.2.4", + "node_modules/@storybook/builder-webpack4/node_modules/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, - "license": "MIT", "dependencies": { - "cachedir": "2.2.0", - "cz-conventional-changelog": "3.2.0", - "dedent": "0.7.0", - "detect-indent": "6.0.0", - "find-node-modules": "^2.1.2", - "find-root": "1.1.0", - "fs-extra": "8.1.0", - "glob": "7.1.4", - "inquirer": "6.5.2", - "is-utf8": "^0.2.1", - "lodash": "^4.17.20", - "minimist": "1.2.5", - "strip-bom": "4.0.0", - "strip-json-comments": "3.0.1" - }, - "bin": { - "commitizen": "bin/commitizen", - "cz": "bin/git-cz", - "git-cz": "bin/git-cz" - }, - "engines": { - "node": ">= 10" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "node_modules/commitizen/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@storybook/builder-webpack4/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/commitizen/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@storybook/builder-webpack4/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/commitizen/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@storybook/builder-webpack4/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/@storybook/builder-webpack4/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/commitizen/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/commitizen/node_modules/cz-conventional-changelog": { - "version": "3.2.0", + "node_modules/@storybook/builder-webpack4/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 10" + "node": ">=10" }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/commitizen/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/@storybook/builder-webpack4/node_modules/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, - "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/commitizen/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/@storybook/builder-webpack4/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, - "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, "engines": { - "node": ">=4" + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "node_modules/commitizen/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@storybook/builder-webpack4/node_modules/postcss-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", + "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" }, "engines": { - "node": ">=4" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/common-tags": { - "version": "1.8.0", + "node_modules/@storybook/builder-webpack4/node_modules/pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, - "node_modules/compare-versions": { - "version": "3.6.0", + "node_modules/@storybook/builder-webpack4/node_modules/renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", "dev": true, - "license": "MIT" - }, - "node_modules/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==" + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } }, - "node_modules/compressible": { - "version": "2.0.18", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "dependencies": { - "mime-db": ">= 1.43.0 < 2" + "glob": "^7.1.3" }, - "engines": { - "node": ">= 0.6" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/compression": { - "version": "1.7.4", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, "dependencies": { - "ms": "2.0.0" + "randombytes": "^2.1.0" } }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", + "node_modules/@storybook/builder-webpack4/node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "figgy-pudding": "^3.5.1" } }, - "node_modules/configstore": { - "version": "5.0.1", - "license": "BSD-2-Clause", + "node_modules/@storybook/builder-webpack4/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/configstore/node_modules/dot-prop": { - "version": "5.3.0", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { - "is-obj": "^2.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/configstore/node_modules/is-obj": { - "version": "2.0.0", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "node_modules/@storybook/builder-webpack4/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/@storybook/builder-webpack4/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "dependencies": { - "safe-buffer": "5.2.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/content-disposition/node_modules/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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "node_modules/@storybook/builder-webpack4/node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "dependencies": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true }, - { - "type": "consulting", - "url": "https://feross.org/support" + "webpack-command": { + "optional": true } - ] + } }, - "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", + "node_modules/@storybook/builder-webpack4/node_modules/webpack-filter-warnings-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz", + "integrity": "sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 4.3 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" } }, - "node_modules/conventional-changelog-atom": { - "version": "2.0.8", + "node_modules/@storybook/builder-webpack4/node_modules/webpack/node_modules/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, - "license": "ISC", "dependencies": { - "q": "^1.5.1" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=4.0.0" } }, - "node_modules/conventional-changelog-codemirror": { - "version": "2.0.8", + "node_modules/@storybook/builder-webpack4/node_modules/webpack/node_modules/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, - "license": "ISC", "dependencies": { - "q": "^1.5.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" }, "engines": { - "node": ">=10" + "node": ">= 4" } }, - "node_modules/conventional-changelog-config-spec": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz", - "integrity": "sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==", + "node_modules/@storybook/builder-webpack4/node_modules/webpack/node_modules/terser-webpack-plugin": { + "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, "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" }, "engines": { - "node": ">=10" + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" } }, - "node_modules/conventional-changelog-conventionalcommits/node_modules/compare-func": { - "version": "2.0.0", + "node_modules/@storybook/builder-webpack4/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@storybook/builder-webpack4/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@storybook/channel-postmessage": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.19.tgz", + "integrity": "sha512-E5h/itFzQ/6M08LR4kqlgqqmeO3tmavI+nUAlZrkCrotpJFNMHE2i0PQHg0TkFJrRDpYcrwD+AjUW4IwdqrisQ==", "dev": true, - "license": "MIT", "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "core-js": "^3.8.2", + "global": "^4.4.0", + "qs": "^6.10.0", + "telejson": "^5.3.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/conventional-changelog-conventionalcommits/node_modules/dot-prop": { - "version": "5.3.0", + "node_modules/@storybook/channel-postmessage/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, - "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=8" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/conventional-changelog-conventionalcommits/node_modules/is-obj": { - "version": "2.0.0", + "node_modules/@storybook/channel-websocket": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.19.tgz", + "integrity": "sha512-cXKwQjIXttfdUyZlcHORelUmJ5nUKswsnCA/qy7IRWpZjD8yQJcNk1dYC+tTHDVqFgdRT89pL0hRRB1rlaaR8Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "core-js": "^3.8.2", + "global": "^4.4.0", + "telejson": "^5.3.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/conventional-changelog-ember": { - "version": "2.0.9", + "node_modules/@storybook/channels": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.19.tgz", + "integrity": "sha512-EwyoncFvTfmIlfsy8jTfayCxo2XchPkZk/9txipugWSmc057HdklMKPLOHWP0z5hLH0IbVIKXzdNISABm36jwQ==", "dev": true, - "license": "ISC", "dependencies": { - "q": "^1.5.1" + "core-js": "^3.8.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/conventional-changelog-eslint": { - "version": "3.0.9", + "node_modules/@storybook/client-api": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.19.tgz", + "integrity": "sha512-OCrT5Um3FDvZnimQKwWtwsaI+5agPwq2i8YiqlofrI/NPMKp0I7DEkCGwE5IRD1Q8BIKqHcMo5tTmfYi0AxyOg==", "dev": true, - "license": "ISC", "dependencies": { - "q": "^1.5.1" + "@storybook/addons": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/store": "6.4.19", + "@types/qs": "^6.9.5", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" } }, - "node_modules/conventional-changelog-express": { - "version": "2.0.6", + "node_modules/@storybook/client-api/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, - "license": "ISC", "dependencies": { - "q": "^1.5.1" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=10" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/conventional-changelog-jshint": { - "version": "2.0.9", + "node_modules/@storybook/client-logger": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.19.tgz", + "integrity": "sha512-zmg/2wyc9W3uZrvxaW4BfHcr40J0v7AGslqYXk9H+ERLVwIvrR4NhxQFaS6uITjBENyRDxwzfU3Va634WcmdDQ==", "dev": true, - "license": "ISC", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "core-js": "^3.8.2", + "global": "^4.4.0" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/conventional-changelog-jshint/node_modules/compare-func": { - "version": "2.0.0", + "node_modules/@storybook/components": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.19.tgz", + "integrity": "sha512-q/0V37YAJA7CNc+wSiiefeM9+3XVk8ixBNylY36QCGJgIeGQ5/79vPyUe6K4lLmsQwpmZsIq1s1Ad5+VbboeOA==", "dev": true, - "license": "MIT", "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "@popperjs/core": "^2.6.0", + "@storybook/client-logger": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/theming": "6.4.19", + "@types/color-convert": "^2.0.0", + "@types/overlayscrollbars": "^1.12.0", + "@types/react-syntax-highlighter": "11.0.5", + "color-convert": "^2.0.1", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.1.3", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.13.1", + "polished": "^4.0.5", + "prop-types": "^15.7.2", + "react-colorful": "^5.1.2", + "react-popper-tooltip": "^3.1.1", + "react-syntax-highlighter": "^13.5.3", + "react-textarea-autosize": "^8.3.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" } }, - "node_modules/conventional-changelog-jshint/node_modules/dot-prop": { - "version": "5.3.0", + "node_modules/@storybook/core": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.19.tgz", + "integrity": "sha512-55LOQ/h/kf1jMhjN85t/pIEdIwWEG9yV7bdwv3niVvmoypCxyyjn9/QNK0RKYAeDSUtdm6FVoJ6k5CpxWz2d8w==", "dev": true, - "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "@storybook/core-client": "6.4.19", + "@storybook/core-server": "6.4.19" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@storybook/builder-webpack5": "6.4.19", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0", + "webpack": "*" + }, + "peerDependenciesMeta": { + "@storybook/builder-webpack5": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/conventional-changelog-jshint/node_modules/is-obj": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/@storybook/core-client": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.19.tgz", + "integrity": "sha512-rQHRZjhArPleE7/S8ZUolgzwY+hC0smSKX/3PQxO2GcebDjnJj6+iSV3h+aSMHMmTdoCQvjYw9aBpT8scuRe+A==", + "dev": true, + "dependencies": { + "@storybook/addons": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/channel-websocket": "6.4.19", + "@storybook/client-api": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/preview-web": "6.4.19", + "@storybook/store": "6.4.19", + "@storybook/ui": "6.4.19", + "airbnb-js-shims": "^2.2.1", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0", + "webpack": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", + "node_modules/@storybook/core-client/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, - "license": "MIT", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { - "node": ">=10" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/conventional-changelog-writer": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "compare-func": "^2.0.0", - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.6", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" + "node_modules/@storybook/core-common": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.19.tgz", + "integrity": "sha512-X1pJJkO48DFxl6iyEemIKqRkJ7j9/cBh3BRBUr+xZHXBvnD0GKDXIocwh0PjSxSC6XSu3UCQnqtKi3PbjRl8Dg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-decorators": "^7.12.12", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.12", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@babel/register": "^7.12.1", + "@storybook/node-logger": "6.4.19", + "@storybook/semver": "^7.3.2", + "@types/node": "^14.0.10", + "@types/pretty-hrtime": "^1.0.0", + "babel-loader": "^8.0.0", + "babel-plugin-macros": "^3.0.1", + "babel-plugin-polyfill-corejs3": "^0.1.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "express": "^4.17.1", + "file-system-cache": "^1.0.5", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.0.4", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "handlebars": "^4.7.7", + "interpret": "^2.2.0", + "json5": "^2.1.3", + "lazy-universal-dotenv": "^3.0.1", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "slash": "^3.0.0", + "telejson": "^5.3.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "webpack": "4" }, - "bin": { - "conventional-changelog-writer": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/conventional-changelog-writer/node_modules/compare-func": { - "version": "2.0.0", + "node_modules/@storybook/core-common/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", "dev": true, - "license": "MIT", "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" } }, - "node_modules/conventional-changelog-writer/node_modules/dateformat": { - "version": "3.0.3", + "node_modules/@storybook/core-common/node_modules/@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/conventional-changelog-writer/node_modules/dot-prop": { - "version": "5.3.0", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-api-error": { + "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 + }, + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-buffer": { + "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 + }, + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 + }, + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/helper-wasm-section": { + "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, - "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "node_modules/conventional-changelog-writer/node_modules/find-up": { - "version": "4.1.0", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, - "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { - "version": "4.0.2", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "@xtuc/long": "4.2.2" } }, - "node_modules/conventional-changelog-writer/node_modules/is-obj": { - "version": "2.0.0", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@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" } }, - "node_modules/conventional-changelog-writer/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/wasm-gen": { + "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, - "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "@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" } }, - "node_modules/conventional-changelog-writer/node_modules/meow": { - "version": "8.1.2", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/wasm-opt": { + "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, - "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "node_modules/conventional-changelog-writer/node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/wasm-parser": { + "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, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@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" } }, - "node_modules/conventional-changelog-writer/node_modules/normalize-package-data": { - "version": "3.0.2", + "node_modules/@storybook/core-common/node_modules/@webassemblyjs/wast-printer": { + "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, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.5", + "node_modules/@storybook/core-common/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { - "semver": "bin/semver.js" + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" + "node": ">=0.4.0" } }, - "node_modules/conventional-changelog-writer/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@storybook/core-common/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", "dev": true, - "license": "MIT", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/conventional-changelog-writer/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/@storybook/core-common/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/path-exists": { - "version": "4.0.0", + "node_modules/@storybook/core-common/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, - "license": "MIT", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/@storybook/core-common/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/@storybook/core-common/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/@storybook/core-common/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, "engines": { - "node": ">=8" + "node": ">=4.0.0" } }, - "node_modules/conventional-changelog-writer/node_modules/read-pkg": { - "version": "5.2.0", + "node_modules/@storybook/core-common/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, - "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/read-pkg-up": { - "version": "7.0.1", + "node_modules/@storybook/core-common/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/@storybook/core-common/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", + "node_modules/@storybook/core-common/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", + "node_modules/@storybook/core-common/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/@storybook/core-common/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, - "license": "(MIT OR CC0-1.0)", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/readable-stream": { - "version": "3.6.0", + "node_modules/@storybook/core-common/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", + "node_modules/@storybook/core-common/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/through2": { - "version": "4.0.2", + "node_modules/@storybook/core-common/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", "dependencies": { - "readable-stream": "3" + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/conventional-changelog-writer/node_modules/yargs-parser": { - "version": "20.2.7", + "node_modules/@storybook/core-common/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, - "license": "ISC", "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/conventional-commit-types": { - "version": "3.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", + "node_modules/@storybook/core-common/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "license": "MIT", - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "node_modules/@storybook/core-common/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=10" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/conventional-commits-parser/node_modules/find-up": { - "version": "4.1.0", + "node_modules/@storybook/core-common/node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4.3.0 <5.0.0 || >=5.10" } }, - "node_modules/conventional-commits-parser/node_modules/hosted-git-info": { - "version": "4.0.2", + "node_modules/@storybook/core-common/node_modules/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, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=4.0.0" } }, - "node_modules/conventional-commits-parser/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/@storybook/core-common/node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=8" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/conventional-commits-parser/node_modules/meow": { - "version": "8.1.2", + "node_modules/@storybook/core-common/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "p-locate": "^5.0.0" }, "engines": { "node": ">=10" @@ -5655,1218 +7261,1855 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-commits-parser/node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", + "node_modules/@storybook/core-common/node_modules/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, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/conventional-commits-parser/node_modules/normalize-package-data": { - "version": "3.0.2", + "node_modules/@storybook/core-common/node_modules/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, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "node_modules/conventional-commits-parser/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@storybook/core-common/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/conventional-commits-parser/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/@storybook/core-common/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/conventional-commits-parser/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/@storybook/core-common/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, - "node_modules/conventional-commits-parser/node_modules/read-pkg": { - "version": "5.2.0", + "node_modules/@storybook/core-common/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "minimist": "^1.2.6" }, - "engines": { - "node": ">=8" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/conventional-commits-parser/node_modules/read-pkg-up": { - "version": "7.0.1", + "node_modules/@storybook/core-common/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", + "node_modules/@storybook/core-common/node_modules/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, - "license": "ISC" + "engines": { + "node": ">=8" + } }, - "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/@storybook/core-common/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", + "node_modules/@storybook/core-common/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, "bin": { - "semver": "bin/semver" + "rimraf": "bin.js" } }, - "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", + "node_modules/@storybook/core-common/node_modules/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, - "license": "(MIT OR CC0-1.0)", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/conventional-commits-parser/node_modules/readable-stream": { - "version": "3.6.0", + "node_modules/@storybook/core-common/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/conventional-commits-parser/node_modules/through2": { - "version": "4.0.2", + "node_modules/@storybook/core-common/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, - "license": "MIT", "dependencies": { - "readable-stream": "3" + "randombytes": "^2.1.0" } }, - "node_modules/conventional-commits-parser/node_modules/yargs-parser": { - "version": "20.2.7", + "node_modules/@storybook/core-common/node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" + "dependencies": { + "figgy-pudding": "^3.5.1" } }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.0", + "node_modules/@storybook/core-common/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", "dev": true, - "license": "MIT", "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, "bin": { - "conventional-recommended-bump": "cli.js" + "terser": "bin/terser" }, "engines": { - "node": ">=10" + "node": ">=6.0.0" } }, - "node_modules/conventional-recommended-bump/node_modules/concat-stream": { - "version": "2.0.0", + "node_modules/@storybook/core-common/node_modules/terser-webpack-plugin": { + "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, - "engines": [ - "node >= 6.0" - ], - "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" } }, - "node_modules/conventional-recommended-bump/node_modules/dargs": { - "version": "7.0.0", + "node_modules/@storybook/core-common/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, - "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/find-up": { - "version": "4.1.0", + "node_modules/@storybook/core-common/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 10.0.0" } }, - "node_modules/conventional-recommended-bump/node_modules/git-raw-commits": { - "version": "2.0.10", + "node_modules/@storybook/core-common/node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, - "license": "MIT", "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/@storybook/core-common/node_modules/webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "dependencies": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" }, "bin": { - "git-raw-commits": "cli.js" + "webpack": "bin/webpack.js" }, "engines": { - "node": ">=10" + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } } }, - "node_modules/conventional-recommended-bump/node_modules/git-semver-tags": { - "version": "4.1.1", + "node_modules/@storybook/core-common/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@storybook/core-common/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@storybook/core-events": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.19.tgz", + "integrity": "sha512-KICzUw6XVQUJzFSCXfvhfHAuyhn4Q5J4IZEfuZkcGJS4ODkrO6tmpdYE5Cfr+so95Nfp0ErWiLUuodBsW9/rtA==", "dev": true, - "license": "MIT", "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" + "core-js": "^3.8.2" }, - "bin": { - "git-semver-tags": "cli.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.19.tgz", + "integrity": "sha512-bKsUB9f7hl5ya2JXxpIrErmbDQjoH39FVbzYZWjMo4t/b7+Xyi6vYadwyWcqlpUQmis09ZaSMv8L/Tw0TuwLAA==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.3", + "@storybook/builder-webpack4": "6.4.19", + "@storybook/core-client": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/csf-tools": "6.4.19", + "@storybook/manager-webpack4": "6.4.19", + "@storybook/node-logger": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.4.19", + "@types/node": "^14.0.10", + "@types/node-fetch": "^2.5.7", + "@types/pretty-hrtime": "^1.0.0", + "@types/webpack": "^4.41.26", + "better-opn": "^2.1.1", + "boxen": "^5.1.2", + "chalk": "^4.1.0", + "cli-table3": "^0.6.1", + "commander": "^6.2.1", + "compression": "^1.7.4", + "core-js": "^3.8.2", + "cpy": "^8.1.2", + "detect-port": "^1.3.0", + "express": "^4.17.1", + "file-system-cache": "^1.0.5", + "fs-extra": "^9.0.1", + "globby": "^11.0.2", + "ip": "^1.1.5", + "lodash": "^4.17.21", + "node-fetch": "^2.6.1", + "pretty-hrtime": "^1.0.3", + "prompts": "^2.4.0", + "regenerator-runtime": "^0.13.7", + "serve-favicon": "^2.5.0", + "slash": "^3.0.0", + "telejson": "^5.3.3", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "watchpack": "^2.2.0", + "webpack": "4", + "ws": "^8.2.3" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@storybook/builder-webpack5": "6.4.19", + "@storybook/manager-webpack5": "6.4.19", + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@storybook/builder-webpack5": { + "optional": true + }, + "@storybook/manager-webpack5": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/conventional-recommended-bump/node_modules/hosted-git-info": { - "version": "4.0.2", + "node_modules/@storybook/core-server/node_modules/@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/conventional-recommended-bump/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-api-error": { + "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 + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-buffer": { + "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 + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/helper-wasm-section": { + "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, - "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "node_modules/conventional-recommended-bump/node_modules/meow": { - "version": "8.1.2", + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/conventional-recommended-bump/node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@xtuc/long": "4.2.2" } }, - "node_modules/conventional-recommended-bump/node_modules/normalize-package-data": { - "version": "3.0.2", + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" + "@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" } }, - "node_modules/conventional-recommended-bump/node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.5", + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/wasm-gen": { + "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, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, + "@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" + } + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/wasm-opt": { + "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, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/wasm-parser": { + "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, + "dependencies": { + "@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" + } + }, + "node_modules/@storybook/core-server/node_modules/@webassemblyjs/wast-printer": { + "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, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@storybook/core-server/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, "bin": { - "semver": "bin/semver.js" + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" + "node": ">=0.4.0" } }, - "node_modules/conventional-recommended-bump/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@storybook/core-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/@storybook/core-server/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" } }, - "node_modules/conventional-recommended-bump/node_modules/path-exists": { - "version": "4.0.0", + "node_modules/@storybook/core-server/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/@storybook/core-server/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/conventional-recommended-bump/node_modules/read-pkg": { - "version": "5.2.0", + "node_modules/@storybook/core-server/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=8" + "node": ">=4.0.0" } }, - "node_modules/conventional-recommended-bump/node_modules/read-pkg-up": { - "version": "7.0.1", + "node_modules/@storybook/core-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", + "node_modules/@storybook/core-server/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "license": "ISC" + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/@storybook/core-server/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/@storybook/core-server/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", + "node_modules/@storybook/core-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", + "node_modules/@storybook/core-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "license": "(MIT OR CC0-1.0)", + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/readable-stream": { - "version": "3.6.0", + "node_modules/@storybook/core-server/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "isobject": "^3.0.1" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/semver": { - "version": "6.3.0", + "node_modules/@storybook/core-server/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=4" } }, - "node_modules/conventional-recommended-bump/node_modules/through2": { - "version": "4.0.2", + "node_modules/@storybook/core-server/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/conventional-recommended-bump/node_modules/yargs-parser": { - "version": "20.2.7", + "node_modules/@storybook/core-server/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "node_modules/@storybook/core-server/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.1" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/cookie": { - "version": "0.4.1", - "license": "MIT", + "node_modules/@storybook/core-server/node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=4.3.0 <5.0.0 || >=5.10" } }, - "node_modules/cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "node_modules/@storybook/core-server/node_modules/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, "dependencies": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=4.0.0" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "node_modules/@storybook/core-server/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT" + "node_modules/@storybook/core-server/node_modules/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, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } }, - "node_modules/cors": { - "version": "2.8.5", - "license": "MIT", + "node_modules/@storybook/core-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "dependencies": { - "object-assign": "^4", - "vary": "^1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "node_modules/@storybook/core-server/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/crc-32": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", - "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", + "node_modules/@storybook/core-server/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/@storybook/core-server/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.3.1" + "minimist": "^1.2.6" }, "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" + "mkdirp": "bin/cmd.js" } }, - "node_modules/crc-32/node_modules/printj": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", - "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", + "node_modules/@storybook/core-server/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, "bin": { - "printj": "bin/printj.njs" + "rimraf": "bin.js" + } + }, + "node_modules/@storybook/core-server/node_modules/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, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" }, "engines": { - "node": ">=0.8" + "node": ">= 4" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "node_modules/@storybook/core-server/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } }, - "node_modules/cron": { - "version": "1.8.2", - "license": "MIT", + "node_modules/@storybook/core-server/node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, "dependencies": { - "moment-timezone": "^0.5.x" + "figgy-pudding": "^3.5.1" } }, - "node_modules/cross-env": { - "version": "7.0.3", - "license": "MIT", + "node_modules/@storybook/core-server/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, "dependencies": { - "cross-spawn": "^7.0.1" + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" + "terser": "bin/terser" }, "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" + "node": ">=6.0.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "license": "MIT", + "node_modules/@storybook/core-server/node_modules/terser-webpack-plugin": { + "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, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-3.3.1.tgz", - "integrity": "sha512-5j88ECEn6h17UePrLi6pn1JcLtAiANa3KExyr9y9Z5vo2mv56Gh3I4Aja/B9P9uyMwyxNHAHWv+nE72f30T5Dg==", - "dependencies": { - "type-fest": "^0.8.1" + "node": ">= 6.9.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "webpack": "^4.0.0" } }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "node_modules/@storybook/core-server/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/@storybook/core-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "dependencies": { - "cssom": "~0.3.6" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", + "node_modules/@storybook/core-server/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, - "license": "MIT", - "dependencies": { - "array-find-index": "^1.0.1" + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@storybook/core-server/node_modules/webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "dependencies": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } } }, - "node_modules/cz-conventional-changelog": { - "version": "3.3.0", + "node_modules/@storybook/core-server/node_modules/webpack/node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/@storybook/core-server/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, "engines": { - "node": ">= 10" + "node": ">=10.0.0" }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@storybook/core-server/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@storybook/core-server/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@storybook/csf": { + "version": "0.0.2--canary.87bc651.0", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.2--canary.87bc651.0.tgz", + "integrity": "sha512-ajk1Uxa+rBpFQHKrCcTmJyQBXZ5slfwHVEaKlkuFaW77it8RgbPJp/ccna3sgoi8oZ7FkkOyvv1Ve4SmwFqRqw==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "lodash": "^4.17.15" + } + }, + "node_modules/@storybook/csf-tools": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.19.tgz", + "integrity": "sha512-gf/zRhGoAVsFwSyV2tc+jeJfZQkxF6QsaZgbUSe24/IUvGFCT/PS/jZq1qy7dECAwrTOfykgu8juyBtj6WhWyw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/generator": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/plugin-transform-react-jsx": "^7.12.12", + "@babel/preset-env": "^7.12.11", + "@babel/traverse": "^7.12.11", + "@babel/types": "^7.12.11", + "@mdx-js/mdx": "^1.6.22", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "core-js": "^3.8.2", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.21", + "prettier": ">=2.2.1 <=2.3.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": ">=4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/cz-conventional-changelog/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@storybook/csf-tools/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/cz-conventional-changelog/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@storybook/csf-tools/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/cz-conventional-changelog/node_modules/color-name": { - "version": "1.1.3", + "node_modules/@storybook/csf-tools/node_modules/prettier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", + "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", "dev": true, - "license": "MIT" + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } }, - "node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/@storybook/csf-tools/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">= 10.0.0" } }, - "node_modules/cz-conventional-changelog/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/@storybook/manager-webpack4": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.19.tgz", + "integrity": "sha512-R8ugZjTYqXvlc6gDOcw909L65sIleOmIJLZR+N6/H85MivGXHu39jOwONqB7tVACufRty4FNecn8tEiQL2SAKA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/preset-react": "^7.12.10", + "@storybook/addons": "6.4.19", + "@storybook/core-client": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/node-logger": "6.4.19", + "@storybook/theming": "6.4.19", + "@storybook/ui": "6.4.19", + "@types/node": "^14.0.10", + "@types/webpack": "^4.41.26", + "babel-loader": "^8.0.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "express": "^4.17.1", + "file-loader": "^6.2.0", + "file-system-cache": "^1.0.5", + "find-up": "^5.0.0", + "fs-extra": "^9.0.1", + "html-webpack-plugin": "^4.0.0", + "node-fetch": "^2.6.1", + "pnp-webpack-plugin": "1.6.4", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0", + "style-loader": "^1.3.0", + "telejson": "^5.3.2", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-virtual-modules": "^0.2.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/@types/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "dev": true + }, + "node_modules/@storybook/manager-webpack4/node_modules/@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/cz-conventional-changelog/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-api-error": { + "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 + }, + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-buffer": { + "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 + }, + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 + }, + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/helper-wasm-section": { + "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, - "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" + "@xtuc/long": "4.2.2" } }, - "node_modules/date-and-time": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-2.1.2.tgz", - "integrity": "sha512-YlQUtuqYGPR58I7jzx4TIjknN9wCKjwewiylIp+P4xMuO23mlZje3Qe9gYCKp/6ncbeNpU8ZnPdhQNZnVphveQ==" + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true }, - "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "engines": { - "node": "*" + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@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" } }, - "node_modules/db-errors": { - "version": "0.2.3", - "license": "MIT" + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/wasm-gen": { + "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, + "dependencies": { + "@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" + } }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/wasm-opt": { + "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, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/wasm-parser": { + "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, + "dependencies": { + "@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" } }, - "node_modules/decamelize-keys": { - "version": "1.1.0", + "node_modules/@storybook/manager-webpack4/node_modules/@webassemblyjs/wast-printer": { + "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, - "license": "MIT", "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", + "node_modules/@storybook/manager-webpack4/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", + "node_modules/@storybook/manager-webpack4/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "node_modules/@storybook/manager-webpack4/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, - "node_modules/decompress-response": { - "version": "3.3.0", + "node_modules/@storybook/manager-webpack4/node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", "dev": true, - "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "source-map": "~0.6.0" }, "engines": { - "node": ">=4" + "node": ">= 4.0" } }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-extend": { - "version": "0.6.0", + "node_modules/@storybook/manager-webpack4/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">= 6" } }, - "node_modules/deep-is": { - "version": "0.1.3", - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node_modules/@storybook/manager-webpack4/node_modules/css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/defer-to-connect": { - "version": "1.1.3", + "node_modules/@storybook/manager-webpack4/node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true, - "license": "MIT" + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, - "node_modules/define-properties": { - "version": "1.1.3", + "node_modules/@storybook/manager-webpack4/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, - "license": "MIT", "dependencies": { - "object-keys": "^1.0.12" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=4.0.0" } }, - "node_modules/degenerator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", - "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", + "node_modules/@storybook/manager-webpack4/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.8" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/degenerator/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/@storybook/manager-webpack4/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=4.0" + "node": ">=10" }, - "optionalDependencies": { - "source-map": "~0.6.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/degenerator/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "node_modules/@storybook/manager-webpack4/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" } }, - "node_modules/degenerator/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/@storybook/manager-webpack4/node_modules/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/degenerator/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/degenerator/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "node_modules/@storybook/manager-webpack4/node_modules/html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "node_modules/@storybook/manager-webpack4/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/@storybook/manager-webpack4/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", + "node_modules/@storybook/manager-webpack4/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "license": "MIT", + "node_modules/@storybook/manager-webpack4/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-file": { - "version": "1.0.0", + "node_modules/@storybook/manager-webpack4/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/detect-indent": { - "version": "6.0.0", + "node_modules/@storybook/manager-webpack4/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/detect-newline": { - "version": "3.1.0", + "node_modules/@storybook/manager-webpack4/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "node_modules/@storybook/manager-webpack4/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/dicer": { - "version": "0.3.0", + "node_modules/@storybook/manager-webpack4/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "dependencies": { - "streamsearch": "0.1.2" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=4.5.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/@storybook/manager-webpack4/node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=4.3.0 <5.0.0 || >=5.10" } }, - "node_modules/diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "node_modules/@storybook/manager-webpack4/node_modules/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, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4.0.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "license": "MIT", + "node_modules/@storybook/manager-webpack4/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "dependencies": { - "path-type": "^4.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "license": "MIT" + "node_modules/@storybook/manager-webpack4/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } }, - "node_modules/dlv": { - "version": "1.1.3", + "node_modules/@storybook/manager-webpack4/node_modules/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, - "license": "MIT" + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } }, - "node_modules/doctrine": { - "version": "3.0.0", + "node_modules/@storybook/manager-webpack4/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "license": "MIT", + "node_modules/@storybook/manager-webpack4/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/domelementtype": { - "version": "2.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" + "node_modules/@storybook/manager-webpack4/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "node_modules/@storybook/manager-webpack4/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "webidl-conversions": "^5.0.0" + "minimist": "^1.2.6" }, - "engines": { - "node": ">=8" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/domexception/node_modules/webidl-conversions": { + "node_modules/@storybook/manager-webpack4/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.2.0", - "license": "BSD-2-Clause", "dependencies": { - "domelementtype": "^2.2.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 4" + "node": ">=10" }, "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/domutils": { - "version": "2.6.0", - "license": "BSD-2-Clause", + "node_modules/@storybook/manager-webpack4/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, - "node_modules/dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", + "node_modules/@storybook/manager-webpack4/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/dotgitignore": { - "version": "2.1.0", + "node_modules/@storybook/manager-webpack4/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "license": "ISC", "dependencies": { - "find-up": "^3.0.0", - "minimatch": "^3.0.4" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dotgitignore/node_modules/find-up": { - "version": "3.0.0", + "node_modules/@storybook/manager-webpack4/node_modules/read-pkg-up/node_modules/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, - "license": "MIT", "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/dotgitignore/node_modules/locate-path": { - "version": "3.0.0", + "node_modules/@storybook/manager-webpack4/node_modules/read-pkg-up/node_modules/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, - "license": "MIT", "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/dotgitignore/node_modules/p-limit": { + "node_modules/@storybook/manager-webpack4/node_modules/read-pkg-up/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -6877,886 +9120,1181 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dotgitignore/node_modules/p-locate": { - "version": "3.0.0", + "node_modules/@storybook/manager-webpack4/node_modules/read-pkg-up/node_modules/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, - "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "node_modules/@storybook/manager-webpack4/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" + "engines": { + "node": ">=8" } }, - "node_modules/duplexer3": { - "version": "0.1.4", + "node_modules/@storybook/manager-webpack4/node_modules/renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", "dev": true, - "license": "BSD-3-Clause" + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "node_modules/@storybook/manager-webpack4/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "node_modules/duplexify/node_modules/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==", + "node_modules/@storybook/manager-webpack4/node_modules/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, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" }, "engines": { - "node": ">= 6" + "node": ">= 4" } }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "license": "Apache-2.0", + "node_modules/@storybook/manager-webpack4/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "randombytes": "^2.1.0" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.3.864", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.864.tgz", - "integrity": "sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==", - "dev": true + "node_modules/@storybook/manager-webpack4/node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } }, - "node_modules/email-regex": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/email-regex/-/email-regex-4.0.0.tgz", - "integrity": "sha512-OxR2NqoYS3ZikqOkju2krRTyxngwjJ5Wh4yalpTqbBnUOr+LLwwjY2x5Sksruw6TieyQDswE5Pc83Eh6RQj3GA==", + "node_modules/@storybook/manager-webpack4/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "node_modules/@storybook/manager-webpack4/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/@storybook/manager-webpack4/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/enabled": { - "version": "2.0.0", - "license": "MIT" + "node_modules/@storybook/manager-webpack4/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", + "node_modules/@storybook/manager-webpack4/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">= 10.0.0" } }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, + "node_modules/@storybook/manager-webpack4/node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, "dependencies": { - "iconv-lite": "^0.6.2" + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "dependencies": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, + "node_modules/@storybook/manager-webpack4/node_modules/webpack/node_modules/terser-webpack-plugin": { + "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, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", + "node_modules/@storybook/manager-webpack4/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/@storybook/manager-webpack4/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@storybook/node-logger": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.19.tgz", + "integrity": "sha512-hO2Aar3PgPnPtNq2fVgiuGlqo3EEVR6TKVBXMq7foL3tN2k4BQFKLDHbm5qZQQntyYKurKsRUGKPJFPuI1ov/w==", + "dev": true, "dependencies": { - "once": "^1.4.0" + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/enquirer": { - "version": "2.3.6", + "node_modules/@storybook/node-logger/node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-colors": "^4.1.1" + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=8.6" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" - }, - "node_modules/entities": { - "version": "2.2.0", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=10" } }, - "node_modules/env-ci": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", - "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", + "node_modules/@storybook/node-logger/node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "dev": true, "dependencies": { - "execa": "^5.0.0", - "fromentries": "^1.3.2", - "java-properties": "^1.0.0" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" }, "engines": { - "node": ">=10.17" + "node": ">=10" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/@storybook/node-logger/node_modules/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, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "node_modules/@storybook/node-logger/node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } }, - "node_modules/error-ex": { - "version": "1.3.2", + "node_modules/@storybook/node-logger/node_modules/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, - "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "node_modules/@storybook/node-logger/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + } + }, + "node_modules/@storybook/preview-web": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.19.tgz", + "integrity": "sha512-jqltoBv5j7lvnxEfV9w8dLX9ASWGuvgz97yg8Yo5FqkftEwrHJenyvMGcTgDJKJPorF+wiz/9aIqnmd3LCAcZQ==", + "dev": true, + "dependencies": { + "@storybook/addons": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/store": "6.4.19", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", + "node_modules/@storybook/preview-web/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, - "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "side-channel": "^1.0.4" }, "engines": { - "node": ">= 0.4" + "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", + "node_modules/@storybook/router": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.19.tgz", + "integrity": "sha512-KWWwIzuyeEIWVezkCihwY2A76Il9tUNg0I410g9qT7NrEsKyqXGRYOijWub7c1GGyNjLqz0jtrrehtixMcJkuA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@storybook/client-logger": "6.4.19", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "history": "5.0.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "react-router": "^6.0.0", + "react-router-dom": "^6.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", + "node_modules/@storybook/router/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { - "node": ">=10" + "node": ">=0.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "node_modules/@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "core-js": "^3.6.5", + "find-up": "^4.1.0" }, "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "semver": "bin/semver.js" }, "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">=10" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/@storybook/semver/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "node_modules/@storybook/semver/node_modules/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, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/@storybook/semver/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "node_modules/@storybook/semver/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "node_modules/@storybook/semver/node_modules/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, - "dependencies": { - "prelude-ls": "~1.1.2" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "node_modules/@storybook/store": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.19.tgz", + "integrity": "sha512-N9/ZjemRHGfT3InPIbqQqc6snkcfnf3Qh9oOr0smbfaVGJol//KOX65kzzobtzFcid0WxtTDZ3HmgFVH+GvuhQ==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", + "@storybook/addons": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "slash": "^3.0.0", + "stable": "^0.1.8", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" }, - "bin": { - "eslint": "bin/eslint.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/@storybook/theming": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.19.tgz", + "integrity": "sha512-V4pWmTvAxmbHR6B3jA4hPkaxZPyExHvCToy7b76DpUTpuHihijNDMAn85KhOQYIeL9q14zP/aiz899tOHsOidg==", + "dev": true, + "dependencies": { + "@emotion/core": "^10.1.1", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.27", + "@storybook/client-logger": "6.4.19", + "core-js": "^3.8.2", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.27", + "global": "^4.4.0", + "memoizerific": "^1.11.3", + "polished": "^4.0.5", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/@storybook/ui": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.19.tgz", + "integrity": "sha512-gFwdn5LA2U6oQ4bfUFLyHZnNasGQ01YVdwjbi+l6yjmnckBNtZfJoVTZ1rzGUbxSE9rK48InJRU+latTsr7xAg==", + "dev": true, + "dependencies": { + "@emotion/core": "^10.1.1", + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/router": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.4.19", + "copy-to-clipboard": "^3.3.1", + "core-js": "^3.8.2", + "core-js-pure": "^3.8.2", + "downshift": "^6.0.15", + "emotion-theming": "^10.0.27", + "fuse.js": "^3.6.1", + "global": "^4.4.0", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.1.3", + "memoizerific": "^1.11.3", + "polished": "^4.0.5", + "qs": "^6.10.0", + "react-draggable": "^4.4.3", + "react-helmet-async": "^1.0.7", + "react-sizeme": "^3.0.1", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0", + "store2": "^2.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/@storybook/ui/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=0.6" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "node_modules/@storybook/vue3": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-6.4.19.tgz", + "integrity": "sha512-ocW2haoDOXudK3XHC7raBjq9k9gPsApiyQc4dPnjcF8sXmC3WZg6CYSPt0o00UMDmeDL0MDW336fw94jy6+LfA==", "dev": true, + "dependencies": { + "@storybook/addons": "6.4.19", + "@storybook/core": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/store": "6.4.19", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "global": "^4.4.0", + "react": "16.14.0", + "react-dom": "16.14.0", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "ts-loader": "^8.0.14", + "vue-docgen-api": "^4.38.0", + "vue-docgen-loader": "^1.5.0", + "vue-loader": "^16.0.0", + "webpack": "4" + }, "bin": { - "eslint-config-prettier": "bin/cli.js" + "build-storybook": "bin/build.js", + "start-storybook": "bin/index.js", + "storybook-server": "bin/index.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "eslint": ">=7.0.0" + "@babel/core": "*", + "@vue/compiler-sfc": "^3.0.0", + "babel-loader": "^7.0.0 || ^8.0.0", + "vue": "^3.0.0" } }, - "node_modules/eslint-config-standard": { - "version": "17.0.0-1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0-1.tgz", - "integrity": "sha512-aqRG58dqoBNfOLN+PsitasxmW+W9Os4oQrx081B16T4E4WogsSbpUL6hnKSnyv35sSRYA2XjBtKMOrUboL6jgw==", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^14.0.0", - "eslint-plugin-promise": "^6.0.0" + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/helper-api-error": { + "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 + }, + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/helper-buffer": { + "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 + }, + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 + }, + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/helper-wasm-section": { + "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, "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/eslint-module-utils": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", - "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" + "@xtuc/long": "4.2.2" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "@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" } }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/wasm-gen": { + "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, - "license": "MIT", "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" + "@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" } }, - "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/wasm-opt": { + "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, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/wasm-parser": { + "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, - "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@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" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", + "node_modules/@storybook/vue3/node_modules/@webassemblyjs/wast-printer": { + "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, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@storybook/vue3/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@storybook/vue3/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", + "node_modules/@storybook/vue3/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, - "license": "MIT" + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } }, - "node_modules/eslint-plugin-jest": { - "version": "26.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.1.1.tgz", - "integrity": "sha512-HRKOuPi5ADhza4ZBK5ufyNXy28bXXkib87w+pQqdvBhSTsamndh6sIAKPAUl8y0/n9jSWBdTPslrwtKWqkp8dA==", + "node_modules/@storybook/vue3/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/@storybook/vue3/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/@storybook/vue3/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^5.10.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "node": ">=4.0.0" } }, - "node_modules/eslint-plugin-n": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-14.0.0.tgz", - "integrity": "sha512-mNwplPLsbaKhHyA0fa/cy8j+oF6bF6l81hzBTWa6JOvPcMNAuIogk2ih6d9tYvWYzyUG+7ZFeChqbzdFpg2QrQ==", + "node_modules/@storybook/vue3/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, - "peer": true, "dependencies": { - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.3.0", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">=12.22.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es": { + "node_modules/@storybook/vue3/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "peer": true, "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" + "node": ">=8" } }, - "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/@storybook/vue3/node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/@storybook/vue3/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/@storybook/vue3/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, - "peer": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es/node_modules/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==", + "node_modules/@storybook/vue3/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "peer": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-n/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/@storybook/vue3/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "peer": true, "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/vue3/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" }, - "peerDependencies": { - "eslint": ">=5" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/@storybook/vue3/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=4" } }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", + "node_modules/@storybook/vue3/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "license": "MIT", - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.0", + "node_modules/@storybook/vue3/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "license": "ISC", + "dependencies": { + "minimist": "^1.2.0" + }, "bin": { - "semver": "bin/semver.js" + "json5": "lib/cli.js" } }, - "node_modules/eslint-plugin-promise": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", - "integrity": "sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==", + "node_modules/@storybook/vue3/node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "node": ">=4.3.0 <5.0.0 || >=5.10" } }, - "node_modules/eslint-plugin-standard": { + "node_modules/@storybook/vue3/node_modules/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, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peerDependencies": { - "eslint": ">=5.0.0" + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/eslint-plugin-tsdoc": { - "version": "0.2.14", + "node_modules/@storybook/vue3/node_modules/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, - "license": "MIT", "dependencies": { - "@microsoft/tsdoc": "0.13.2", - "@microsoft/tsdoc-config": "0.15.2" + "yallist": "^3.0.2" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", + "node_modules/@storybook/vue3/node_modules/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, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/@storybook/vue3/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/eslint-utils": { - "version": "2.1.0", + "node_modules/@storybook/vue3/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, - "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@storybook/vue3/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "node_modules/@storybook/vue3/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "minimist": "^1.2.6" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/@storybook/vue3/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/@storybook/vue3/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "node_modules/@storybook/vue3/node_modules/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, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/@storybook/vue3/node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/@storybook/vue3/node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", "dev": true, "dependencies": { - "is-glob": "^4.0.3" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" }, - "engines": { - "node": ">=10.13.0" + "peerDependencies": { + "react": "^16.14.0" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@storybook/vue3/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=8" } }, - "node_modules/eslint/node_modules/strip-json-comments": { - "version": "3.1.1", + "node_modules/@storybook/vue3/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, "engines": { "node": ">=8" }, @@ -7764,2139 +10302,2338 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esm": { - "version": "3.2.25", - "license": "MIT", + "node_modules/@storybook/vue3/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "node_modules/@storybook/vue3/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" + "glob": "^7.1.3" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/espree/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "node_modules/@storybook/vue3/node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/@storybook/vue3/node_modules/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, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" }, "engines": { - "node": ">=0.4.0" + "node": ">= 4" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "node_modules/@storybook/vue3/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "dependencies": { + "randombytes": "^2.1.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "license": "BSD-2-Clause", + "node_modules/@storybook/vue3/node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/@storybook/vue3/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "terser": "bin/terser" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/esquery": { - "version": "1.4.0", + "node_modules/@storybook/vue3/node_modules/terser-webpack-plugin": { + "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, - "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" }, "engines": { - "node": ">=0.10" + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", + "node_modules/@storybook/vue3/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, - "license": "BSD-2-Clause", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", + "node_modules/@storybook/vue3/node_modules/vue-loader": { + "version": "16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "estraverse": "^5.2.0" + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" }, - "engines": { - "node": ">=4.0" + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", + "node_modules/@storybook/vue3/node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, - "license": "BSD-2-Clause", + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/@storybook/vue3/node_modules/webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "dependencies": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, "engines": { - "node": ">=4.0" + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } } }, - "node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", + "node_modules/@storybook/vue3/node_modules/webpack/node_modules/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, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">=4.0.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } + "node_modules/@storybook/vue3/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } + "node_modules/@storybook/vue3/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, "engines": { "node": ">=6" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "license": "MIT" - }, - "node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "license": "MIT", "engines": { - "node": ">=0.4.x" + "node": ">= 6" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, + "node_modules/@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==", + "dev": true + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + }, + "node_modules/@turf/bbox": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", + "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://opencollective.com/turf" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" + "node_modules/@turf/center": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/center/-/center-6.5.0.tgz", + "integrity": "sha512-T8KtMTfSATWcAX088rEDKjyvQCBkUsLnK/Txb6/8WUXIeOZyHu42G7MkdkHRoHtwieLdduDdmPLFyTdG5/e7ZQ==", + "dependencies": { + "@turf/bbox": "^6.5.0", + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "engines": { - "node": ">=0.8" + "node_modules/@turf/helpers": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", + "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "dev": true, - "license": "MIT", + "node_modules/@turf/intersect": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.5.0.tgz", + "integrity": "sha512-2legGJeKrfFkzntcd4GouPugoqPUjexPZnOvfez+3SfIMrHvulw8qV8u7pfVyn2Yqs53yoVCEjS5sEpvQ5YRQg==", "dependencies": { - "homedir-polyfill": "^1.0.1" + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0", + "polygon-clipping": "^0.15.3" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, + "node_modules/@turf/invariant": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", + "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "@turf/helpers": "^6.5.0" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "node_modules/@turf/meta": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", + "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "@turf/helpers": "^6.5.0" }, - "engines": { - "node": ">= 0.10.0" + "funding": { + "url": "https://opencollective.com/turf" } }, - "node_modules/express-graphql": { - "version": "0.12.0", - "license": "MIT", + "node_modules/@types/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dependencies": { - "accepts": "^1.3.7", - "content-type": "^1.0.4", - "http-errors": "1.8.0", - "raw-body": "^2.4.1" - }, - "engines": { - "node": ">= 10.x" - }, - "peerDependencies": { - "graphql": "^14.7.0 || ^15.3.0" + "@types/node": "*" } }, - "node_modules/express-graphql/node_modules/http-errors": { - "version": "1.8.0", - "license": "MIT", + "node_modules/@types/babel__core": { + "version": "7.1.18", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", + "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/express-jwt": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/express-jwt/-/express-jwt-6.1.1.tgz", - "integrity": "sha512-m8gkY04v5jtiFZn6bYQINYX/DVXq1DVb5nIW7H8l87qJ4BBvtQKFRpxyRE31odct7OPfHdT+B8678zJHhlMrpw==", + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, "dependencies": { - "async": "^1.5.0", - "express-unless": "^1.0.0", - "jsonwebtoken": "^8.1.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">= 8.0.0" + "@babel/types": "^7.0.0" } }, - "node_modules/express-unless": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/express-unless/-/express-unless-1.0.0.tgz", - "integrity": "sha512-zXSSClWBPfcSYjg0hcQNompkFN/MxQQ53eyrzm9BYgik2ut2I7PxAf2foVqBRMYCwWaZx/aWodi+uk76npdSAw==" - }, - "node_modules/express/node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", + "node_modules/@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dev": true, "dependencies": { - "ms": "2.0.0" + "@babel/types": "^7.3.0" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/express/node_modules/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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "dev": true, + "node_modules/@types/basic-auth": { + "version": "1.1.3", "license": "MIT", "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" + "@types/node": "*" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", + "node_modules/@types/bcryptjs": { + "version": "2.4.2", "license": "MIT" }, - "node_modules/fast-glob": { - "version": "3.2.5", + "node_modules/@types/body-parser": { + "version": "1.19.0", "license": "MIT", "dependencies": { - "@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" - }, - "engines": { - "node": ">=8" + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", + "node_modules/@types/color-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", + "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "license": "MIT" + "dependencies": { + "@types/color-name": "*" + } }, - "node_modules/fast-memoize": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", - "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dev": true, + "node_modules/@types/compression": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.2.tgz", + "integrity": "sha512-lwEL4M/uAGWngWFLSG87ZDr2kLrbuR8p7X+QZB1OQlT+qkHsCPDVFnHPyXf4Vyl4yDDorNY+mAhosxkCvppatg==", "dependencies": { - "punycode": "^1.3.2" + "@types/express": "*" } }, - "node_modules/fast-url-parser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/fast-xml-parser": { - "version": "3.19.0", + "node_modules/@types/connect": { + "version": "3.4.34", "license": "MIT", - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" + "dependencies": { + "@types/node": "*" } }, - "node_modules/fastq": { - "version": "1.11.0", - "license": "ISC", + "node_modules/@types/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-0mPF08jn9zYI0n0Q/Pnz7C4kThdSt+6LD4amsrYDDpgBfrVWa3TcCOxKX1zkGgYniGagRv8heN2cbh+CAn+uuQ==" + }, + "node_modules/@types/cookie-parser": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz", + "integrity": "sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg==", "dependencies": { - "reusify": "^1.0.4" + "@types/express": "*" } }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "node_modules/@types/cookiejar": { + "version": "2.1.2", "dev": true, + "license": "MIT" + }, + "node_modules/@types/cookies": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", + "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "dependencies": { - "bser": "2.1.1" + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" } }, - "node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "dev": true, - "license": "ISC" + "node_modules/@types/cron": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@types/cron/-/cron-1.7.3.tgz", + "integrity": "sha512-iPmUXyIJG1Js+ldPYhOQcYU3kCAQ2FWrSkm1FJPoii2eYSn6wEW6onPukNTT0bfiflexNSRPl6KWmAIqS+36YA==", + "dependencies": { + "@types/node": "*", + "moment": ">=2.14.0" + } }, - "node_modules/figures": { - "version": "2.0.0", + "node_modules/@types/dateformat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/dateformat/-/dateformat-5.0.0.tgz", + "integrity": "sha512-SZg4JdHIWHQGEokbYGZSDvo5wA4TLYPXaqhigs/wH+REDOejcJzgH+qyY+HtEUtWOZxEUkbhbdYPqQDiEgrXeA==" + }, + "node_modules/@types/eslint": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", + "node_modules/@types/eslint-visitor-keys": { + "version": "1.0.0", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "engines": { - "node": ">= 6" + "node_modules/@types/express-jwt": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-6.0.4.tgz", + "integrity": "sha512-I53KRQ9D0eTA6hVCN9S73iOeprKS3JNWK+Cp2mDPB6uOIkTVpkgSkX394kHQzb5cd0U02I0adRmsMxHk+zX8tA==", + "dependencies": { + "@types/express": "*", + "@types/express-unless": "*" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "license": "MIT", + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" } }, - "node_modules/finalhandler": { - "version": "1.1.2", + "node_modules/@types/express-unless": { + "version": "0.5.1", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "@types/express": "*" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", + "node_modules/@types/fs-capacitor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", + "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", "dependencies": { - "ms": "2.0.0" + "@types/node": "*" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "node_modules/@types/geojson": { + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, - "node_modules/find-node-modules": { - "version": "2.1.2", + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, - "license": "MIT", "dependencies": { - "findup-sync": "^4.0.0", - "merge": "^2.1.0" + "@types/minimatch": "*", + "@types/node": "*" } }, - "node_modules/find-root": { - "version": "1.1.0", + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, - "license": "MIT" + "dependencies": { + "@types/node": "*" + } }, - "node_modules/find-up": { - "version": "2.1.0", - "dev": true, + "node_modules/@types/graphql-type-json": { + "version": "0.3.2", "license": "MIT", "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" + "graphql": "^14.5.3" } }, - "node_modules/find-versions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", - "dev": true, + "node_modules/@types/graphql-type-json/node_modules/graphql": { + "version": "14.7.0", + "license": "MIT", "dependencies": { - "semver-regex": "^3.1.2" + "iterall": "^1.2.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6.x" } }, - "node_modules/find-versions/node_modules/semver-regex": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz", - "integrity": "sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@types/graphql-upload": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.11.tgz", + "integrity": "sha512-AE8RWANHutpsQt945lQZKlkq0V/zBxU5R0xhKLZN3KkBMlW95/5uJzk01HUl8gbDkG7hGl8l8lJKbi91k0UnPw==", + "dependencies": { + "@types/express": "*", + "@types/fs-capacitor": "*", + "@types/koa": "*", + "graphql": "0.13.1 - 16" } }, - "node_modules/findup-sync": { - "version": "4.0.0", + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", "dev": true, - "license": "MIT", "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 8" + "@types/unist": "*" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "dev": true, - "license": "MIT", + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/http-assert": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", + "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" + }, + "node_modules/@types/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "@types/node": "*" } }, - "node_modules/flatted": { - "version": "3.1.1", - "dev": true, - "license": "ISC" + "node_modules/@types/is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha512-A79HEEiwXTFtfY+Bcbo58M2GRYzCr9itHWzbzHVFNEYCcoU/MMGwYYf721gBrnhpj1s6RGVVha/IgNFnR0Iw/Q==", + "dev": true }, - "node_modules/fn.name": { - "version": "1.1.0", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "dev": true, "license": "MIT" }, - "node_modules/form-data": { - "version": "3.0.1", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/formidable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", - "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" + "node_modules/@types/istanbul-reports": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" + "node_modules/@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" } }, - "node_modules/fp-and-or": { - "version": "0.1.3", + "node_modules/@types/jest-specific-snapshot": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/jest-specific-snapshot/-/jest-specific-snapshot-0.5.5.tgz", + "integrity": "sha512-AaPPw2tE8ewfjD6qGLkEd4DOfM6pPOK7ob/RSOe1Z8Oo70r9Jgo0SlWyfxslPAOvLfQukQtiVPm6DcnjSoZU5A==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" + "dependencies": { + "@types/jest": "*" } }, - "node_modules/frac": { - "version": "1.1.2", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/jsonwebtoken": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", + "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", + "dependencies": { + "@types/node": "*" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" + "node_modules/@types/keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" + }, + "node_modules/@types/koa": { + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.4.tgz", + "integrity": "sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw==", + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" } }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, + "node_modules/@types/koa-compose": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "@types/koa": "*" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "node_modules/@types/leaflet": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.7.9.tgz", + "integrity": "sha512-H8vPgD49HKzqM41ArHGZM70g/tfhp8W+JcPxfnF+5H/Xvp+xiP+KQOUNWU8U89fqS1Jj3cpRY/+nbnaHFzwnFA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dependencies": { + "@types/geojson": "*" + } }, - "node_modules/fs-access": { - "version": "1.0.1", + "node_modules/@types/leaflet.markercluster": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@types/leaflet.markercluster/-/leaflet.markercluster-1.4.6.tgz", + "integrity": "sha512-MD+bUDzxHznY0zOlSBUAMNQUGB2+xpJPKrR2MNEoBAAKa3QTKJJySBtCqWyGLvYNNO+Cdyc2c64aF2IFwe4fcQ==", "dev": true, - "license": "MIT", "dependencies": { - "null-check": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "@types/leaflet": "*" } }, - "node_modules/fs-capacitor": { - "version": "6.2.0", - "license": "MIT", - "engines": { - "node": ">=10" + "node_modules/@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dev": true, + "dependencies": { + "@types/unist": "*" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } + "node_modules/@types/mime": { + "version": "1.3.2", + "license": "MIT" }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.1", "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + }, + "node_modules/@types/node-fetch": { + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", + "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "@types/node": "*", + "form-data": "^3.0.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", + "node_modules/@types/node-mailjet": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@types/node-mailjet/-/node-mailjet-3.3.8.tgz", + "integrity": "sha512-bjrj7FOG5bVGpV1RovUF1JydGngW/TIrbGDTiId41v9ak3rwzGm4OVmPzjjKbqjECCD8toRXOdyTz28rkH5OlA==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/fsevents": { - "version": "2.3.2", + "node_modules/@types/npmlog": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.4.tgz", + "integrity": "sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ==", + "dev": true + }, + "node_modules/@types/overlayscrollbars": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@types/overlayscrollbars/-/overlayscrollbars-1.12.1.tgz", + "integrity": "sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "license": "MIT" }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "node_modules/@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", + "dev": true + }, + "node_modules/@types/pg": { + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.5.tgz", + "integrity": "sha512-tOkGtAqRVkHa/PVZicq67zuujI4Oorfglsr2IbKofDwBSysnaqSx7W1mDqFqdkGE6Fbgh+PZAl0r/BWON/mozw==", "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" } }, - "node_modules/ftp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "node_modules/@types/prettier": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", + "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", + "dev": true }, - "node_modules/ftp/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } + "node_modules/@types/pretty-hrtime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz", + "integrity": "sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==", + "dev": true }, - "node_modules/ftp/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "node_modules/@types/proj4": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@types/proj4/-/proj4-2.5.2.tgz", + "integrity": "sha512-/Nmfn9p08yaYw6xo5f2b0L+2oHk2kZeOkp5v+4VCeNfq+ETlLQbmHmC97/pjDIEZy8jxwz7pdPpwNzDHM5cuJw==" }, - "node_modules/function-bind": { - "version": "1.1.1", + "node_modules/@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.6", "license": "MIT" }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "dev": true, + "node_modules/@types/range-parser": { + "version": "1.2.3", "license": "MIT" }, - "node_modules/gauge": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.3.tgz", - "integrity": "sha512-ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw==", + "node_modules/@types/react": { + "version": "17.0.42", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.42.tgz", + "integrity": "sha512-nuab3x3CpJ7VFeNA+3HTUuEkvClYHXqWtWd7Ud6AZYW7Z3NH9WKtgU+tFB0ZLcHq+niB/HnzLcaZPqMJ95+k5Q==", "dev": true, "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/gauge/node_modules/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, - "engines": { - "node": ">=8" + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" } }, - "node_modules/gauge/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@types/react-syntax-highlighter": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz", + "integrity": "sha512-VIOi9i2Oj5XsmWWoB72p3KlZoEbdRAcechJa8Ztebw7bDl2YmR+odxIqhtJGp1q2EozHs02US+gzxJ9nuf56qg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "@types/react": "*" } }, - "node_modules/gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", + "node_modules/@types/react/node_modules/csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "dev": true + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@types/serve-static": { + "version": "1.13.9", + "license": "MIT", "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=10" + "@types/mime": "^1", + "@types/node": "*" } }, - "node_modules/gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", + "node_modules/@types/shpjs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@types/shpjs/-/shpjs-3.4.1.tgz", + "integrity": "sha512-xdJ65Zp2wslzyKKAid+PPl7Hxz5+eFS7W5G42RfryoJRk2u0CA+5jtX3wBgZhmz1s/mGX0PWzmKCBYTYgRsELg==", "dependencies": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=10" + "@types/geojson": "*", + "@types/node": "*" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/sql-formatter": { + "version": "2.3.0", + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", + "dev": true + }, + "node_modules/@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "node_modules/@types/superagent": { + "version": "4.1.11", "dev": true, - "engines": { - "node": ">=6.9.0" + "license": "MIT", + "dependencies": { + "@types/cookiejar": "*", + "@types/node": "*" } }, - "node_modules/geojson-rewind": { - "version": "0.3.1", - "license": "ISC", + "node_modules/@types/supertest": { + "version": "2.0.11", + "dev": true, + "license": "MIT", "dependencies": { - "@mapbox/geojson-area": "0.2.2", - "concat-stream": "~1.6.0", - "minimist": "1.2.0", - "sharkdown": "^0.1.0" - }, - "bin": { - "geojson-rewind": "geojson-rewind" + "@types/superagent": "*" } }, - "node_modules/geojson-rewind/node_modules/minimist": { - "version": "1.2.0", - "license": "MIT" + "node_modules/@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", + "dev": true }, - "node_modules/get-caller-file": { - "version": "2.0.5", + "node_modules/@types/uglify-js": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", + "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" + "dependencies": { + "source-map": "^0.6.1" } }, - "node_modules/get-intrinsic": { - "version": "1.1.1", + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "node_modules/@types/webpack": { + "version": "4.41.32", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", + "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", "dev": true, - "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } + "node_modules/@types/webpack-env": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz", + "integrity": "sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw==", + "dev": true }, - "node_modules/get-pkg-repo": { - "version": "1.4.0", + "node_modules/@types/webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", "dev": true, - "license": "MIT", "dependencies": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", - "through2": "^2.0.0" - }, - "bin": { - "get-pkg-repo": "cli.js" + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" } }, - "node_modules/get-pkg-repo/node_modules/camelcase": { - "version": "2.1.1", + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/get-pkg-repo/node_modules/camelcase-keys": { - "version": "2.1.0", + "node_modules/@types/yargs": { + "version": "16.0.2", "dev": true, "license": "MIT", "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "@types/yargs-parser": "*" } }, - "node_modules/get-pkg-repo/node_modules/decamelize": { - "version": "1.2.0", + "node_modules/@types/yargs-parser": { + "version": "20.2.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/get-pkg-repo/node_modules/find-up": { - "version": "1.1.2", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", + "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", "dev": true, - "license": "MIT", "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/type-utils": "5.15.0", + "@typescript-eslint/utils": "5.15.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/get-pkg-repo/node_modules/get-stdin": { - "version": "4.0.1", + "node_modules/@typescript-eslint/parser": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", + "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", "dev": true, - "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/typescript-estree": "5.15.0", + "debug": "^4.3.2" + }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/get-pkg-repo/node_modules/indent-string": { - "version": "2.1.0", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", + "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", "dev": true, - "license": "MIT", "dependencies": { - "repeating": "^2.0.0" + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/get-pkg-repo/node_modules/load-json-file": { - "version": "1.1.0", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", + "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", "dev": true, - "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "@typescript-eslint/utils": "5.15.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/get-pkg-repo/node_modules/map-obj": { - "version": "1.0.1", + "node_modules/@typescript-eslint/types": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", + "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/get-pkg-repo/node_modules/meow": { - "version": "3.7.0", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", + "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", "dev": true, - "license": "MIT", "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/get-pkg-repo/node_modules/parse-json": { - "version": "2.2.0", + "node_modules/@typescript-eslint/utils": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", + "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", "dev": true, - "license": "MIT", "dependencies": { - "error-ex": "^1.2.0" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/typescript-estree": "5.15.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/get-pkg-repo/node_modules/path-exists": { - "version": "2.1.0", + "node_modules/@typescript-eslint/utils/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "license": "MIT", "dependencies": { - "pinkie-promise": "^2.0.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/get-pkg-repo/node_modules/path-type": { - "version": "1.1.0", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", + "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", "dev": true, - "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "@typescript-eslint/types": "5.15.0", + "eslint-visitor-keys": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/get-pkg-repo/node_modules/read-pkg": { - "version": "1.1.0", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/get-pkg-repo/node_modules/read-pkg-up": { - "version": "1.0.1", + "node_modules/@uppy/companion-client": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-2.0.5.tgz", + "integrity": "sha512-yAeYbpQ+yHcklKVbkRy83V1Zv/0kvaTDTHaBvaaPmLtcKgeZE3pUjEI/7v2sTxvCVSy4cRjd9TRSXSSl5UCnuQ==", "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "@uppy/utils": "^4.0.5", + "namespace-emitter": "^2.0.1" } }, - "node_modules/get-pkg-repo/node_modules/redent": { - "version": "1.0.0", + "node_modules/@uppy/core": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@uppy/core/-/core-2.1.6.tgz", + "integrity": "sha512-WTGthAAHMfB6uAtISbu+7jYh4opnBWHSf7A0jsPdREwXc4hrhC/z9lbejZfSLkVDXdbNwpWWH38EgOGCNQb5MQ==", "dev": true, - "license": "MIT", "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^2.0.3", + "@uppy/utils": "^4.0.5", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^3.1.25", + "preact": "^10.5.13" } }, - "node_modules/get-pkg-repo/node_modules/strip-bom": { - "version": "2.0.0", + "node_modules/@uppy/store-default": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@uppy/store-default/-/store-default-2.0.3.tgz", + "integrity": "sha512-2BGlN1sW0cFv4rOqTK8dfSg579S984N1HxCJxLFqeW9nWD6zd/O8Omyd85tbxGQ+FLZLTmLOm/feD0YeCBMahg==", + "dev": true + }, + "node_modules/@uppy/tus": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@uppy/tus/-/tus-2.2.0.tgz", + "integrity": "sha512-AsGEVUoPM9tE0rey+c6Sjn73iDoZkuIt6SCtobkm8LLFW/V3e86UwEPSvAX0tR4LK3P28BBt3odN57dluRD1hA==", "dev": true, - "license": "MIT", "dependencies": { - "is-utf8": "^0.2.0" + "@uppy/companion-client": "^2.0.4", + "@uppy/utils": "^4.0.5", + "tus-js-client": "^2.1.1" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "@uppy/core": "^2.1.4" } }, - "node_modules/get-pkg-repo/node_modules/strip-indent": { - "version": "1.0.1", + "node_modules/@uppy/utils": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@uppy/utils/-/utils-4.0.5.tgz", + "integrity": "sha512-uRv921A69UMjuWCLSC5tKXuIVoMOROVpFstIAQv5CoiCOCXyofcWpvAqELT7qlQJ5VRWha3uF5d/Z94SNnwxew==", "dev": true, - "license": "MIT", "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" + "lodash.throttle": "^4.1.1" } }, - "node_modules/get-pkg-repo/node_modules/trim-newlines": { - "version": "1.0.0", + "node_modules/@vitejs/plugin-vue": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.2.4.tgz", + "integrity": "sha512-ev9AOlp0ljCaDkFZF3JwC/pD2N4Hh+r5srl5JHM6BKg5+99jiiK0rE/XaRs3pVm1wzyKkjUy/StBSoXX5fFzcw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "vite": "^2.5.10", + "vue": "^3.2.25" } }, - "node_modules/get-stdin": { - "version": "8.0.0", + "node_modules/@vue/compiler-core": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@vue/compiler-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "node_modules/@vue/compiler-sfc": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", + "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-ssr": "3.2.31", + "@vue/reactivity-transform": "3.2.31", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" } }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "node_modules/@vue/compiler-ssr": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", + "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", + "dev": true, "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" + "@vue/compiler-dom": "3.2.31", + "@vue/shared": "3.2.31" } }, - "node_modules/getopts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", - "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" + "node_modules/@vue/devtools-api": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.3.tgz", + "integrity": "sha512-79InfO2xHv+WHIrH1bHXQUiQD/wMls9qBk6WVwGCbdwP7/3zINtvqPNMtmSHXsIKjvUAHc8L0ouOj6ZQQRmcXg==", + "dev": true }, - "node_modules/git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", + "node_modules/@vue/eslint-config-prettier": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", + "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==", "dev": true, "dependencies": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "~0.6.6" + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0" + }, + "peerDependencies": { + "eslint": ">= 7.28.0", + "prettier": ">= 2.0.0" } }, - "node_modules/git-log-parser/node_modules/split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", + "node_modules/@vue/reactivity": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.31.tgz", + "integrity": "sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==", "dev": true, "dependencies": { - "through2": "~2.0.0" + "@vue/shared": "3.2.31" } }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", + "node_modules/@vue/reactivity-transform": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", + "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", "dev": true, - "license": "MIT", "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" } }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", + "node_modules/@vue/runtime-core": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.31.tgz", + "integrity": "sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==", "dev": true, - "license": "BSD", "dependencies": { - "ini": "^1.3.2" + "@vue/reactivity": "3.2.31", + "@vue/shared": "3.2.31" } }, - "node_modules/glob": { - "version": "7.1.4", + "node_modules/@vue/runtime-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz", + "integrity": "sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g==", "dev": true, - "license": "ISC", "dependencies": { - "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" - }, - "engines": { - "node": "*" + "@vue/runtime-core": "3.2.31", + "@vue/shared": "3.2.31", + "csstype": "^2.6.8" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", + "node_modules/@vue/server-renderer": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.31.tgz", + "integrity": "sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==", + "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "@vue/compiler-ssr": "3.2.31", + "@vue/shared": "3.2.31" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "vue": "3.2.31" } }, - "node_modules/global-dirs": { - "version": "0.1.1", + "node_modules/@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", + "dev": true + }, + "node_modules/@vue/test-utils": { + "version": "2.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-rc.17.tgz", + "integrity": "sha512-7LHZKsFRV/HqDoMVY+cJamFzgHgsrmQFalROHC5FMWrzPzd+utG5e11krj1tVsnxYufGA2ABShX4nlcHXED+zQ==", + "dev": true, + "peerDependencies": { + "vue": "^3.0.1" + } + }, + "node_modules/@vue/vue3-jest": { + "version": "27.0.0-alpha.4", + "resolved": "https://registry.npmjs.org/@vue/vue3-jest/-/vue3-jest-27.0.0-alpha.4.tgz", + "integrity": "sha512-RgEwjNvwdWmRngHqgt957fLT6riOkv/Kyl0ra8jo0Z8Dgosmu17dNqgBzLn9fTgNlTbHv4TQQdLRjczr+z2mlA==", "dev": true, - "license": "MIT", - "optional": true, "dependencies": { - "ini": "^1.3.4" + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "chalk": "^2.1.0", + "convert-source-map": "^1.6.0", + "extract-from-css": "^0.4.4", + "source-map": "0.5.6", + "tsconfig": "^7.0.0" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "@babel/core": "7.x", + "babel-jest": "27.x", + "jest": "27.x", + "ts-jest": "27.x", + "typescript": ">= 3.x", + "vue": "^3.0.0-0" + }, + "peerDependenciesMeta": { + "ts-jest": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/global-modules": { - "version": "1.0.0", + "node_modules/@vue/vue3-jest/node_modules/ansi-styles": { + "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, - "license": "MIT", "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/global-prefix": { - "version": "1.0.2", + "node_modules/@vue/vue3-jest/node_modules/chalk": { + "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, - "license": "MIT", "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", + "node_modules/@vue/vue3-jest/node_modules/color-convert": { + "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, - "license": "ISC", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "color-name": "1.1.3" } }, - "node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "node_modules/@vue/vue3-jest/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@vue/vue3-jest/node_modules/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, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@vue/vue3-jest/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dependencies": { - "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" - }, + "node_modules/@vue/vue3-jest/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/google-auth-library": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.12.0.tgz", - "integrity": "sha512-RS/whvFPMoF1hQNxnoVET3DWKPBt1Xgqe2rY0k+Jn7TNhoHlwdnSe7Rlcbo2Nub3Mt2lUVz26X65aDQrWp6x8w==", + "node_modules/@vue/vue3-jest/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/google-auth-library/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/google-auth-library/node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "peer": true, "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, - "node_modules/google-auth-library/node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "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, "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" + "@webassemblyjs/wast-printer": "1.9.0" } }, - "node_modules/google-p12-pem": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", - "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", + "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, "dependencies": { - "node-forge": "^1.0.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=10" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 }, - "node_modules/graphql": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.3.0.tgz", - "integrity": "sha512-xm+ANmA16BzCT5pLjuXySbQVFwH3oJctUVdy81w1sV0vBU0KgDdBGtxQOUd5zqOBk/JayAFeG8Dlmeq74rjm/A==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || >=16.0.0" + "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/wast-printer": { + "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, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "node_modules/graphql-fields": { - "version": "2.0.3", - "license": "MIT" + "node_modules/@webassemblyjs/helper-fsm": { + "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 }, - "node_modules/graphql-scalars": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.15.0.tgz", - "integrity": "sha512-uLi71egHsfF+A4XmnltPYRUnvy8uBsobRjhW6aBi305gpE/v52xkuKcjygV0CqeqdvRKmFhczh9HRx1lho2MRw==", + "node_modules/@webassemblyjs/helper-module-context": { + "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, "dependencies": { - "tslib": "~2.3.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "@webassemblyjs/ast": "1.9.0" } }, - "node_modules/graphql-type-json": { - "version": "0.3.2", - "license": "MIT", - "peerDependencies": { - "graphql": ">=0.8.0" + "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/graphql-upload": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-13.0.0.tgz", - "integrity": "sha512-YKhx8m/uOtKu4Y1UzBFJhbBGJTlk7k4CydlUUiNrtxnwZv0WigbRHP+DVhRNKt7u7DXOtcKZeYJlGtnMXvreXA==", + "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "peer": true, "dependencies": { - "busboy": "^0.3.1", - "fs-capacitor": "^6.2.0", - "http-errors": "^1.8.1", - "object-path": "^0.11.8" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >= 16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - }, - "peerDependencies": { - "graphql": "0.13.1 - 16" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/gtoken": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", - "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "peer": true, "dependencies": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.1.3", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, - "node_modules/gtoken/node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "peer": true, "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/gtoken/node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "peer": true, "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" + "@xtuc/long": "4.2.2" } }, - "node_modules/handlebars": { - "version": "4.7.7", + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true, - "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "peer": true, "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "peer": true, "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "node_modules/has-ansi": { - "version": "2.0.0", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/@webassemblyjs/wast-parser": { + "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, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@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" } }, - "node_modules/has-bigints": { - "version": "1.0.1", + "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } + "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/floating-point-hex-parser": { + "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 }, - "node_modules/has-symbols": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-api-error": { + "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 }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "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 + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, + "peer": true, "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "node_modules/has-yarn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hash-stream-validation": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz", - "integrity": "sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==" + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true }, - "node_modules/he": { - "version": "1.2.0", - "license": "MIT", - "bin": { - "he": "bin/he" - } + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "node_modules/abbrev": { + "version": "1.1.1", "dev": true, - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "dev": true, - "license": "MIT", + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dependencies": { - "parse-passwd": "^1.0.0" + "event-target-shim": "^5.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hook-std": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", - "integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=6.5" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { - "whatwg-encoding": "^1.0.5" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": ">=10" + "node": ">= 0.6" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/html-to-text": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-8.1.0.tgz", - "integrity": "sha512-Z9iYAqYK2c18GswSbnxJSeMs7lyJgwR2oIkDOyOHGBbYsPsG4HvT379jj3Lcbfko8A5ceyyMHAfkmp/BiXA9/Q==", - "dependencies": { - "@selderee/plugin-htmlparser2": "^0.6.0", - "deepmerge": "^4.2.2", - "he": "^1.2.0", - "htmlparser2": "^6.1.0", - "minimist": "^1.2.5", - "selderee": "^0.6.0" - }, + "node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", "bin": { - "html-to-text": "bin/cli.js" + "acorn": "bin/acorn" }, "engines": { - "node": ">=10.23.2" + "node": ">=0.4.0" } }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "node_modules/acorn-jsx": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=0.4.0" } }, - "node_modules/http-errors/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true, "engines": { - "node": ">=0.6" + "node": ">= 0.12.0" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "license": "MIT", + "node_modules/adler-32": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz", + "integrity": "sha512-f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "printj": "~1.2.2" }, "engines": { - "node": ">= 6" + "node": ">=0.8" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", + "node_modules/agent-base": { + "version": "6.0.2", "license": "MIT", "dependencies": { - "agent-base": "6", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 6.0.0" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, "engines": { - "node": ">=10.17.0" + "node": ">= 8.0.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true, - "bin": { - "husky": "lib/bin.js" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "node": ">=8" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/airbnb-js-shims": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz", + "integrity": "sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "array.prototype.flatmap": "^1.2.1", + "es5-shim": "^4.5.13", + "es6-shim": "^0.35.5", + "function.prototype.name": "^1.1.0", + "globalthis": "^1.0.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0 || ^1.0.0", + "object.getownpropertydescriptors": "^2.0.3", + "object.values": "^1.1.0", + "promise.allsettled": "^1.0.0", + "promise.prototype.finally": "^3.1.0", + "string.prototype.matchall": "^4.0.0 || ^3.0.1", + "string.prototype.padend": "^3.0.0", + "string.prototype.padstart": "^3.0.0", + "symbol.prototype.description": "^1.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" } }, - "node_modules/ignore-by-default": { - "version": "1.0.1", + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "license": "ISC" + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, "dependencies": { - "minimatch": "^3.0.4" + "string-width": "^4.1.0" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/ansi-align/node_modules/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, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/import-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "node_modules/ansi-colors": { + "version": "4.1.1", "dev": true, + "license": "MIT", "engines": { - "node": ">=12.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/import-lazy": { - "version": "2.1.0", + "node_modules/ansi-escapes": { + "version": "3.2.0", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, + "engines": [ + "node >= 0.8.0" + ], "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "ansi-html": "bin/ansi-html" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "license": "MIT", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=0.8.19" + "node": ">=8" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "dev": true, + "node_modules/ansi-styles": { + "version": "4.3.0", "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", + "node_modules/ansi-to-html": { + "version": "0.6.15", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.15.tgz", + "integrity": "sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==", "dev": true, - "license": "ISC", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "entities": "^2.0.0" + }, + "bin": { + "ansi-to-html": "bin/ansi-to-html" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" + "node_modules/ansicolors": { + "version": "0.2.1", + "license": "MIT" }, - "node_modules/inquirer": { - "version": "6.5.2", + "node_modules/anymatch": { + "version": "3.1.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=6.0.0" + "node": ">= 8" } }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "node_modules/anymatch/node_modules/normalize-path": { + "version": "3.0.0", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/app-root-dir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", + "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", + "dev": true + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=4" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "node_modules/inquirer/node_modules/chalk": { - "version": "2.4.2", + "node_modules/are-we-there-yet/node_modules/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, - "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "1.0.10", "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "sprintf-js": "~1.0.2" } }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/inquirer/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/argv": { + "version": "0.0.2", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=0.6.10" } }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", + "dev": true }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/interpret": { - "version": "2.2.0", + "node_modules/array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=0.10.0" } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } + "node_modules/array-flatten": { + "version": "1.1.1", + "license": "MIT" }, - "node_modules/is-arrayish": { - "version": "0.2.1", + "node_modules/array-ify": { + "version": "1.0.0", "dev": true, "license": "MIT" }, - "node_modules/is-bigint": { - "version": "1.0.2", + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, - "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { + "node_modules/array-union": { "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, - "dependencies": { - "binary-extensions": "^2.0.0" - }, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.1", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, "engines": { "node": ">= 0.4" }, @@ -9904,21 +12641,35 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "node_modules/array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, "dependencies": { - "has": "^1.0.3" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { + "node_modules/array.prototype.map": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.4.tgz", + "integrity": "sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==", "dev": true, - "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, "engines": { "node": ">= 0.4" }, @@ -9926,1010 +12677,896 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", + "node_modules/arrify": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "inherits": "2.0.1" } }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/is-installed-globally/node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dependencies": { - "ini": "2.0.0" + "tslib": "^2.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/is-installed-globally/node_modules/ini": { + "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true + "node_modules/async": { + "version": "1.5.2", + "license": "MIT" }, - "node_modules/is-negative-zero": { - "version": "2.0.1", + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true, - "license": "MIT", + "optional": true + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/async-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 4" } }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/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, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "license": "MIT", + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, "engines": { - "node": ">=0.12.0" + "node": ">= 4.5.0" } }, - "node_modules/is-number-object": { - "version": "1.0.5", + "node_modules/autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "node_modules/autoprefixer/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, "engines": { - "node": ">=6" + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, + "node_modules/aws-sdk": { + "version": "2.1078.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1078.0.tgz", + "integrity": "sha512-eJuiiCE4tomYzsxqfsjERmQ1WQkNAe5RUhOXUwJbGTEfwmbiQqq/HgVYrwcMswOHoURbtKpB5SSrTLNOBuyurA==", + "dependencies": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.16.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, "engines": { - "node": ">=8" + "node": ">= 10.0.0" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node_modules/aws-sdk/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "node_modules/babel-literal-to-ast": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/babel-literal-to-ast/-/babel-literal-to-ast-2.1.0.tgz", + "integrity": "sha512-CxfpQ0ysQ0bZOhlaPgcWjl79Em16Rhqc6++UAFn0A3duiXmuyhhj8yyl9PYbj0I0CyjrHovdDbp2QEKT7uIMxw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@babel/parser": "^7.1.6", + "@babel/traverse": "^7.1.6", + "@babel/types": "^7.1.6" + }, + "peerDependencies": { + "@babel/core": "^7.1.2" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/babel-loader": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" }, "engines": { - "node": ">= 0.4" + "node": ">= 8.9" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" } }, - "node_modules/is-symbol": { - "version": "1.0.4", + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/is-text-path": { - "version": "1.0.1", + "node_modules/babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", "dev": true, - "license": "MIT", "dependencies": { - "text-extensions": "^1.0.0" + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@babel/core": "^7.11.6" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "dev": true, - "license": "MIT" + "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { + "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 }, - "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "node_modules/babel-plugin-dynamic-import-node": { + "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, "dependencies": { - "call-bind": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "object.assign": "^4.1.0" } }, - "node_modules/is-windows": { - "version": "1.0.2", + "node_modules/babel-plugin-emotion": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", + "integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/serialize": "^0.11.16", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^1.0.5", + "find-root": "^1.1.0", + "source-map": "^0.5.7" } }, - "node_modules/is-yarn-global": { - "version": "0.3.0", + "node_modules/babel-plugin-emotion/node_modules/babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", "dev": true, - "license": "MIT" - }, - "node_modules/isarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" + "dependencies": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } }, - "node_modules/issue-parser": { + "node_modules/babel-plugin-emotion/node_modules/cosmiconfig": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", - "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "dependencies": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" }, "engines": { - "node": ">=10.13" + "node": ">=8" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/babel-plugin-emotion/node_modules/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, "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "node_modules/babel-plugin-emotion/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/babel-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "@babel/helper-plugin-utils": "7.10.4" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { + "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 + }, + "node_modules/babel-plugin-graphql-tag": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-graphql-tag/-/babel-plugin-graphql-tag-3.3.0.tgz", + "integrity": "sha512-27qfJhFJ2jQg+ktcC3cdppE2RrXZ5uiDz+39YC5lhkmftWPuJW8ET9Ehskwv7ujScZ1jSKhs5/JZKlESCkwIBg==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/parser": "^7.3.2", + "babel-literal-to-ast": "^2.1.0", + "debug": "^4.1.1" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@babel/core": "^7.0.0", + "graphql-tag": "^2.10.1" } }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/iterall": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/java-properties": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", - "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/jest": { + "node_modules/babel-plugin-jest-hoist": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", "dev": true, "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } } }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10", + "npm": ">=6" } }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "semver": "bin/semver.js" } }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "dev": true, "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" }, "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/jest-config/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "node_modules/babel-plugin-transform-vite-meta-env": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-vite-meta-env/-/babel-plugin-transform-vite-meta-env-1.0.3.tgz", + "integrity": "sha512-eyfuDEXrMu667TQpmctHeTlJrZA6jXYHyEJFjcM0yEa60LS/LXlOg2PBbMb8DVS+V9CnTj/j9itdlDVMcY2zEg==", + "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@babel/runtime": "^7.13.9", + "@types/babel__core": "^7.1.12" } }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "node_modules/babel-plugin-transform-vite-meta-glob": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-vite-meta-glob/-/babel-plugin-transform-vite-meta-glob-1.0.3.tgz", + "integrity": "sha512-JW3VnwUjJqpj0FM0vJFxrGdxSBcHOa0j5YMvvtXYPmFshroq53nbK9dqRETgjXlMrfIz0oU/6ki+u1GdVWdNHA==", "dev": true, "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@babel/runtime": "^7.13.9", + "@types/babel__core": "^7.1.12", + "glob": "^7.1.6" } }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "node_modules/babel-plugin-transform-vite-meta-glob/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/jest-environment-node": { + "node_modules/babel-preset-jest": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node_modules/babel-preset-vite": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/babel-preset-vite/-/babel-preset-vite-1.0.4.tgz", + "integrity": "sha512-RZS/wNfEUD8aMliObxqlPw4ZR7R5OsT1G2IHd5nuUmiYKS6zemur8aZ5WPbfQwPpTPe9VEjcrxQA/6PKBWRTkg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.9", + "@types/babel__core": "^7.1.12", + "babel-plugin-transform-vite-meta-env": "1.0.3", + "babel-plugin-transform-vite-meta-glob": "1.0.3" } }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" + "@babel/types": "^7.9.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">= 10.0.0" } }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "is-descriptor": "^1.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "node_modules/base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-message-util/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.16.7" + "safe-buffer": "5.1.2" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.8" } }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "node_modules/batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", + "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", + "dev": true + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", + "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "dev": true + }, + "node_modules/better-opn": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz", + "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "open": "^7.0.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">8.0.0" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "node": "*" } }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true, + "node_modules/bignumber.js": { + "version": "9.0.1", + "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "*" } }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, + "optional": true, "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "file-uri-to-path": "1.0.0" } }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "node_modules/bindings/node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "optional": true }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "node_modules/bluebird": { + "version": "3.7.2", + "license": "MIT" }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.7", + "raw-body": "2.4.3", + "type-is": "~1.6.18" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 0.8" } }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 0.8" } }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "ms": "2.0.0" } }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "ansi-align": "^3.0.0", "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "node_modules/boxen/node_modules/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, - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/jest-watcher/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" @@ -10938,601 +13575,654 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">=8" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/jju": { - "version": "1.4.0", + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "license": "MIT" + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } }, - "node_modules/jmespath": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", - "engines": { - "node": ">= 0.6.0" + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/js-tokens": { - "version": "4.0.0", + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, - "license": "MIT" + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } }, - "node_modules/js-yaml": { - "version": "3.14.1", + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "dev": true, - "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "node_modules/browserify-sign/node_modules/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, "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "node": ">= 6" } }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "node_modules/browserify-sign/node_modules/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, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, "bin": { - "jsesc": "bin/jsesc" + "browserslist": "cli.js" }, "engines": { - "node": ">=4" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/json-bigint": { + "node_modules/browserslist/node_modules/picocolors": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "dev": true, "license": "MIT", "dependencies": { - "bignumber.js": "^9.0.0" + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/json-buffer": { - "version": "3.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-helpfulerror": { - "version": "1.0.3", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "MIT", "dependencies": { - "jju": "^1.1.0" + "node-int64": "^0.4.0" } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } }, - "node_modules/json-stable-stringify-without-jsonify": { + "node_modules/buffer-equal-constant-time": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "dev": true, - "license": "ISC" + "node_modules/buffer-from": { + "version": "1.1.1", + "license": "MIT" }, - "node_modules/json5": { - "version": "2.2.0", - "dev": true, + "node_modules/buffer-writer": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/jsonc-parser": { + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-status-codes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, - "node_modules/jsondiffpatch": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", - "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", - "dependencies": { - "chalk": "^2.3.0", - "diff-match-patch": "^1.0.0" - }, - "bin": { - "jsondiffpatch": "bin/jsondiffpatch" - }, - "engines": { - "node": ">=8.17.0" - } + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true }, - "node_modules/jsondiffpatch/node_modules/ansi-styles": { - "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==", + "node_modules/busboy": { + "version": "0.3.1", "dependencies": { - "color-convert": "^1.9.0" + "dicer": "0.3.0" }, "engines": { - "node": ">=4" + "node": ">=4.5.0" } }, - "node_modules/jsondiffpatch/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "node_modules/bytes": { + "version": "3.0.0", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.8" } }, - "node_modules/jsondiffpatch/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/cacache": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.1.tgz", + "integrity": "sha512-tHPtfdZDqQpZ15eaEZeLspIqS5mK5fOBDZi6AjuqaIi53QNVXH3dQv6uKT3YuUu6uxV/8pjU9in0CoJ8fgaHqw==", + "dev": true, "dependencies": { - "color-name": "1.1.3" + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.1.2", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^7.2.0", + "infer-owner": "^1.0.4", + "lru-cache": "^7.5.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.11", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "node_modules/jsondiffpatch/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/jsondiffpatch/node_modules/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=", + "node_modules/cacache/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "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" + }, "engines": { - "node": ">=0.8.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jsondiffpatch/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", + "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/jsondiffpatch/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "node": ">=0.10.0" } }, - "node_modules/jsonlines": { - "version": "0.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonparse": { - "version": "1.3.1", + "node_modules/cache-base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/JSONStream": { - "version": "1.3.5", + "node_modules/cachedir": { + "version": "2.2.0", "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, + "license": "MIT", "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", + "node_modules/call-bind": { + "version": "1.0.2", + "dev": true, "license": "MIT", "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true }, - "node_modules/jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/jwa": { - "version": "1.4.1", - "license": "MIT", + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" } }, - "node_modules/jws": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/keyv": { - "version": "3.0.0", + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.0" + "engines": { + "node": ">= 6" } }, - "node_modules/kind-of": { - "version": "6.0.3", + "node_modules/camelcase-keys": { + "version": "6.2.2", "dev": true, "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/kleur": { - "version": "3.0.3", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/knex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/knex/-/knex-1.0.4.tgz", - "integrity": "sha512-cMQ81fpkVmr4ia20BtyrD3oPere/ir/Q6IGLAgcREKOzRVhMsasQ4nx1VQuDRJjqq6oK5kfcxmvWoYkHKrnuMA==", - "dependencies": { - "colorette": "2.0.16", - "commander": "^8.3.0", - "debug": "4.3.3", - "escalade": "^3.1.1", - "esm": "^3.2.25", - "getopts": "2.3.0", - "interpret": "^2.2.0", - "lodash": "^4.17.21", - "pg-connection-string": "2.5.0", - "rechoir": "^0.8.0", - "resolve-from": "^5.0.0", - "tarn": "^3.0.2", - "tildify": "2.0.0" - }, - "bin": { - "knex": "bin/cli.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependenciesMeta": { - "@vscode/sqlite3": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true + "node_modules/camino-api": { + "resolved": "packages/api", + "link": true + }, + "node_modules/camino-ui": { + "resolved": "packages/ui", + "link": true + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001319", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", + "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "tedious": { - "optional": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - } + ] }, - "node_modules/knex/node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "node_modules/capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, "dependencies": { - "resolve": "^1.20.0" + "rsvp": "^4.8.4" }, "engines": { - "node": ">= 10.13.0" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/kuler": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/latest-version": { - "version": "5.1.0", - "dev": true, + "node_modules/cardinal": { + "version": "0.4.4", "license": "MIT", "dependencies": { - "package-json": "^6.3.0" + "ansicolors": "~0.2.1", + "redeyed": "~0.4.0" }, - "engines": { - "node": ">=8" + "bin": { + "cdl": "bin/cdl.js" } }, - "node_modules/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==", + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/levn": { - "version": "0.4.1", + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/libnpmconfig": { - "version": "1.2.1", - "dev": true, - "license": "ISC", + "node_modules/cerbere": { + "version": "0.2.3", + "license": "AGPL-3.0-or-later", "dependencies": { - "figgy-pudding": "^3.5.1", - "find-up": "^3.0.0", - "ini": "^1.3.5" + "fast-xml-parser": "^3.17.0", + "uuid": "^8.0.0" } }, - "node_modules/libnpmconfig/node_modules/find-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", + "node_modules/cfb": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz", + "integrity": "sha512-wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==", "dependencies": { - "locate-path": "^3.0.0" + "adler-32": "~1.3.0", + "crc-32": "~1.2.0", + "printj": "~1.3.0" }, "engines": { - "node": ">=6" + "node": ">=0.8" } }, - "node_modules/libnpmconfig/node_modules/locate-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "node_modules/cfb/node_modules/printj": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.0.tgz", + "integrity": "sha512-017o8YIaz8gLhaNxRB9eBv2mWXI2CtzhPJALnQTP+OPpuUfP0RMWqr/mHCzqVeu1AQxfzSfAtAq66vKB8y7Lzg==", + "bin": { + "printj": "bin/printj.njs" }, "engines": { - "node": ">=6" + "node": ">=0.8" } }, - "node_modules/libnpmconfig/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "p-try": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/libnpmconfig/node_modules/p-locate": { - "version": "3.0.0", + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, "dependencies": { - "immediate": "~3.0.5" + "is-regex": "^1.0.3" } }, - "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/lines-and-columns": { - "version": "1.1.6", + "node_modules/chardet": { + "version": "0.7.0", "dev": true, "license": "MIT" }, - "node_modules/lint-staged": { - "version": "12.3.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.6.tgz", - "integrity": "sha512-tVNyl/HsAnplKh4oaoRNzyZLm0PE/6VaBUXvd/gA9zhYCC/+ivZwiwpoT6jOxcLzuIOjP19wW+mfOi7/Bw4c1A==", + "node_modules/chart.js": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.1.tgz", + "integrity": "sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==", + "dev": true + }, + "node_modules/choices.js": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/choices.js/-/choices.js-10.1.0.tgz", + "integrity": "sha512-NtrFt7c7ZQEGmkWsAV+EHynJhADWoZ82JEfg1+vQ9MMKJD4Ax2rzYPxXe+Q64i0HgUgWG/XTN3gN2pB8UFFFlA==", + "dependencies": { + "deepmerge": "^4.2.2", + "fuse.js": "^6.5.3", + "redux": "^4.1.2" + } + }, + "node_modules/choices.js/node_modules/fuse.js": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.5.3.tgz", + "integrity": "sha512-sA5etGE7yD/pOqivZRBvUBd/NaL2sjAu6QuSaFoe1H2BrJSkH/T/UXAJ8CdXdw7DvY3Hs8CXKYkDWX7RiP5KOg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.16", - "commander": "^8.3.0", - "debug": "^4.3.3", - "execa": "^5.1.1", - "lilconfig": "2.0.4", - "listr2": "^4.0.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.0", - "pidtree": "^0.5.0", - "string-argv": "^0.3.1", - "supports-color": "^9.2.1", - "yaml": "^1.10.2" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 8.10.0" }, - "funding": { - "url": "https://opencollective.com/lint-staged" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/lint-staged/node_modules/normalize-path": { + "node_modules/chokidar/node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", @@ -11541,318 +14231,254 @@ "node": ">=0.10.0" } }, - "node_modules/lint-staged/node_modules/supports-color": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", - "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==", + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=10" } }, - "node_modules/listr2": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.4.tgz", - "integrity": "sha512-vJOm5KD6uZXjSsrwajr+mNacIjf87gWvlBEltPWLbTkslUscWAzquyK4xfe9Zd4RDgO5nnwFyV06FC+uVR+5mg==", + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.4", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "node": ">=6.0" } }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "node_modules/ci-info": { + "version": "3.2.0", "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/listr2/node_modules/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==", + "node_modules/cint": { + "version": "8.2.1", "dev": true, - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "node_modules/listr2/node_modules/rxjs": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz", - "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==", + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "dependencies": { - "tslib": "^2.1.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "is-descriptor": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/load-json-file": { - "version": "4.0.0", + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, - "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "license": "MIT", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", + "node_modules/class-utils/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, - "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/locate-path": { - "version": "2.0.0", + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash.capitalize": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", - "dev": true - }, - "node_modules/lodash.deburr": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" - }, - "node_modules/lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "node_modules/class-utils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "optional": true - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "license": "MIT" + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "license": "MIT" + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/lodash.map": { - "version": "4.6.0", + "node_modules/clean-css": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", + "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } }, - "node_modules/lodash.merge": { - "version": "4.6.2", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "license": "MIT" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "node_modules/lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", - "dev": true + "engines": { + "node": ">=6" + } }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/cli-cursor": { + "version": "2.1.0", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "restore-cursor": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" + } + }, + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "dev": true, + "dependencies": { + "colors": "1.0.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.2.0" } }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/cli-table3": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", "dev": true, "dependencies": { - "restore-cursor": "^3.1.0" + "string-width": "^4.2.0" }, "engines": { - "node": ">=8" + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "1.4.0" } }, - "node_modules/log-update/node_modules/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==", + "node_modules/cli-table3/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, + "optional": true, "engines": { - "node": ">=8" + "node": ">=0.1.90" } }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/cli-table3/node_modules/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, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, "engines": { "node": ">=8" } }, - "node_modules/log-update/node_modules/string-width": { + "node_modules/cli-table3/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -11866,10587 +14492,34178 @@ "node": ">=8" } }, - "node_modules/log-update/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/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==", + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/logform": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", - "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" + "node_modules/cli-truncate/node_modules/ansi-styles": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", + "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/loglevel": { - "version": "1.7.1", + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.6.0" + "node": ">=12" }, "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loglevel-colored-level-prefix": { - "version": "1.0.0", + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^1.1.3", - "loglevel": "^1.4.1" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { - "version": "2.1.1", + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", + "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", "dev": true, - "license": "MIT", + "dependencies": { + "emoji-regex": "^9.2.2", + "is-fullwidth-code-point": "^4.0.0", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { - "version": "2.2.1", + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, - "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { - "version": "1.1.3", + "node_modules/cli-width": { + "version": "2.2.1", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.2", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { - "version": "2.0.0", + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=0.8" } }, - "node_modules/longest": { - "version": "2.0.1", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/loud-rejection": { - "version": "1.6.0", + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/lowercase-keys": { - "version": "1.0.1", + "node_modules/clone-deep/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/lru_map": { - "version": "0.3.3", - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", + "node_modules/clone-regexp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", + "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "is-regexp": "^1.0.0", + "is-supported-regexp-flag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/lunr": { - "version": "2.3.9", + "node_modules/clone-response": { + "version": "1.0.2", "dev": true, - "license": "MIT" - }, - "node_modules/make-dir": { - "version": "3.1.0", "license": "MIT", "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "mimic-response": "^1.0.0" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/make-error": { - "version": "1.3.6", - "license": "ISC" - }, - "node_modules/make-fetch-happen": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.6.tgz", - "integrity": "sha512-4Gfh6lV3TLXmj7qz79hBFuvVqjYSMW6v2+sxtdX4LFQU0rK3V/txRjE0DoZb7X0IF3t9f8NO3CxPSWlvdckhVA==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.0.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.5.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.1.1", - "ssri": "^8.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true, "engines": { - "node": ">= 10" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/codecov": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", + "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", "dev": true, "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" }, "engines": { - "node": ">= 6" + "node": ">=4.0" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", - "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", - "dev": true, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", "engines": { - "node": ">=12" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" + "node": ">=0.8" } }, - "node_modules/map-obj": { - "version": "4.2.1", + "node_modules/collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, - "bin": { - "marked": "bin/marked.js" + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" }, "engines": { - "node": ">= 12" + "node": ">=0.10.0" } }, - "node_modules/marked-terminal": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.0.0.tgz", - "integrity": "sha512-26604GmGmW63ElxcXpE2xfMdbtgD/qiwIqOh/+5+uPe6NVU4bU433+wvPTfq6NZcGr16KWqwu/dzsKxg3IL2Xw==", - "dev": true, + "node_modules/color": { + "version": "3.0.0", + "license": "MIT", "dependencies": { - "ansi-escapes": "^5.0.0", - "cardinal": "^2.1.1", - "chalk": "^5.0.0", - "cli-table3": "^0.6.0", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.2.0" - }, - "engines": { - "node": " >=14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + "color-convert": "^1.9.1", + "color-string": "^1.5.2" } }, - "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "type-fest": "^1.0.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/marked-terminal/node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" }, - "node_modules/marked-terminal/node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "dev": true, + "node_modules/color-string": { + "version": "1.5.5", + "license": "MIT", "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", - "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==", + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bin": { + "color-support": "bin.js" } }, - "node_modules/marked-terminal/node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", - "dev": true, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", "dependencies": { - "esprima": "~4.0.0" + "color-name": "1.1.3" } }, - "node_modules/marked-terminal/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.1.90" } }, - "node_modules/matomo-tracker": { - "version": "2.2.4", + "node_modules/colorspace": { + "version": "1.1.2", "license": "MIT", - "engines": { - "node": ">=4.2.0" + "dependencies": { + "color": "3.0.x", + "text-hex": "1.0.x" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" + "node_modules/combine-errors": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz", + "integrity": "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY=", + "dev": true, + "dependencies": { + "custom-error-instance": "2.1.1", + "lodash.uniqby": "4.5.0" } }, - "node_modules/merge": { - "version": "2.1.1", + "node_modules/combine-errors/node_modules/lodash.uniqby": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz", + "integrity": "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE=", "dev": true, - "license": "MIT" + "dependencies": { + "lodash._baseiteratee": "~4.7.0", + "lodash._baseuniq": "~4.6.0" + } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } }, - "node_modules/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 + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/merge2": { - "version": "1.4.1", - "license": "MIT", + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "engines": { - "node": ">= 8" + "node": ">= 12" } }, - "node_modules/methods": { - "version": "1.1.2", + "node_modules/commitizen": { + "version": "4.2.4", + "dev": true, "license": "MIT", + "dependencies": { + "cachedir": "2.2.0", + "cz-conventional-changelog": "3.2.0", + "dedent": "0.7.0", + "detect-indent": "6.0.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "8.1.0", + "glob": "7.1.4", + "inquirer": "6.5.2", + "is-utf8": "^0.2.1", + "lodash": "^4.17.20", + "minimist": "1.2.5", + "strip-bom": "4.0.0", + "strip-json-comments": "3.0.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, "engines": { - "node": ">= 0.6" + "node": ">= 10" } }, - "node_modules/mgrs": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.4", + "node_modules/commitizen/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8.6" + "node": ">=4" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" + "node_modules/commitizen/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { "node": ">=4" } }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" + "node_modules/commitizen/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "node_modules/commitizen/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/commitizen/node_modules/cz-conventional-changelog": { + "version": "3.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "mime-db": "1.51.0" + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" }, "engines": { - "node": ">= 0.6" + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/commitizen/node_modules/escape-string-regexp": { + "version": "1.0.5", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.8.0" } }, - "node_modules/mimic-response": { - "version": "1.0.1", + "node_modules/commitizen/node_modules/has-flag": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/min-indent": { - "version": "1.0.1", + "node_modules/commitizen/node_modules/supports-color": { + "version": "5.5.0", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { "node": ">=4" } }, - "node_modules/minimatch": { - "version": "3.0.4", + "node_modules/common-tags": { + "version": "1.8.0", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": "*" + "node": ">=4.0.0" } }, - "node_modules/minimist": { - "version": "1.2.5", - "license": "MIT" + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true }, - "node_modules/minimist-options": { - "version": "4.1.0", + "node_modules/compare-versions": { + "version": "3.6.0", "dev": true, + "license": "MIT" + }, + "node_modules/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==" + }, + "node_modules/compressible": { + "version": "2.0.18", "license": "MIT", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" + "mime-db": ">= 1.43.0 < 2" }, "engines": { - "node": ">= 6" + "node": ">= 0.6" } }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, + "node_modules/compression": { + "version": "1.7.4", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "ms": "2.0.0" } }, - "node_modules/minipass-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.0.3.tgz", - "integrity": "sha512-VA+eiiUtaIvpQJXISwE3OiMvQwAWrgKb97F0aXlCS1Ahikr8fEQq8m3Hf7Kv9KT3nokuHigJKsDMB6atU04olQ==", + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", + "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "node_modules/condense-newlines": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz", + "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "extend-shallow": "^2.0.1", + "is-whitespace": "^0.3.0", + "kind-of": "^3.0.2" }, "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } + "node_modules/condense-newlines/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/condense-newlines/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, + "node_modules/configstore": { + "version": "5.0.1", + "license": "BSD-2-Clause", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "node_modules/configstore/node_modules/dot-prop": { + "version": "5.3.0", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/modify-values": { - "version": "1.0.1", - "dev": true, + "node_modules/configstore/node_modules/is-obj": { + "version": "2.0.0", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/moment": { - "version": "2.29.1", - "license": "MIT", + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "engines": { - "node": "*" + "node": ">=0.8" } }, - "node_modules/moment-timezone": { - "version": "0.5.33", - "license": "MIT", + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, "dependencies": { - "moment": ">= 2.9.0" + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" }, "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/moo": { - "version": "0.5.1", - "license": "BSD-3-Clause" + "node_modules/content-disposition/node_modules/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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" + "node_modules/content-type": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/mute-stream": { - "version": "0.0.7", + "node_modules/conventional-changelog-atom": { + "version": "2.0.8", "dev": true, - "license": "ISC" + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/natural-compare": { - "version": "1.4.0", + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", "dev": true, - "license": "MIT" - }, - "node_modules/nearley": { - "version": "2.20.1", - "license": "MIT", + "license": "ISC", "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" + "q": "^1.5.1" }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" + "engines": { + "node": ">=10" } }, - "node_modules/nearley/node_modules/commander": { - "version": "2.20.3", + "node_modules/conventional-changelog-config-spec": { + "version": "2.1.0", + "dev": true, "license": "MIT" }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.1.tgz", + "integrity": "sha512-lzWJpPZhbM1R0PIzkwzGBCnAkH5RKJzJfFQZcl/D+2lsJxAwGnDKBqn/F4C1RD31GJNn8NuKWQzAZDAVXPp2Mw==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "node_modules/neo-async": { - "version": "2.6.2", + "node_modules/conventional-changelog-conventionalcommits/node_modules/compare-func": { + "version": "2.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } }, - "node_modules/nerf-dart": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", - "dev": true + "node_modules/conventional-changelog-conventionalcommits/node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "node_modules/conventional-changelog-conventionalcommits/node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "node_modules/conventional-changelog-ember": { + "version": "2.0.9", "dev": true, + "license": "ISC", "dependencies": { - "lodash": "^4.17.21" + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/conventional-changelog-eslint": { + "version": "3.0.9", + "dev": true, + "license": "ISC", "dependencies": { - "whatwg-url": "^5.0.0" + "q": "^1.5.1" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">=10" + } + }, + "node_modules/conventional-changelog-express": { + "version": "2.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "engines": { + "node": ">=10" } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "node_modules/conventional-changelog-jshint/node_modules/compare-func": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "node_modules/conventional-changelog-jshint/node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", + "node_modules/conventional-changelog-jshint/node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 6.13.0" + "node": ">=8" } }, - "node_modules/node-gyp": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.0.0.tgz", - "integrity": "sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw==", + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "4.1.0", "dev": true, + "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "compare-func": "^2.0.0", + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.6", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" }, "bin": { - "node-gyp": "bin/node-gyp.js" + "conventional-changelog-writer": "cli.js" }, "engines": { - "node": "^12.22 || ^14.13 || >=16" + "node": ">=10" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-mailjet": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/node-mailjet/-/node-mailjet-3.3.7.tgz", - "integrity": "sha512-kwO0JlQi8MtYEc0DTgL8JeRS1ljjpNqmQ/+attDV3i4YiaCl8SoKs2gBdePWvoFtpCi8uBsfOgU5O9jE/lm2QQ==", + "node_modules/conventional-changelog-writer/node_modules/compare-func": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "bluebird": "^3.5.0", - "json-bigint": "^1.0.0", - "qs": "^6.5.0", - "superagent": "^6.1.0", - "superagent-proxy": "^3.0.0" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "node_modules/node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", - "dev": true + "node_modules/conventional-changelog-writer/node_modules/dateformat": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } }, - "node_modules/nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "node_modules/conventional-changelog-writer/node_modules/dot-prop": { + "version": "5.3.0", "dev": true, - "hasInstallScript": true, + "license": "MIT", "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5", - "update-notifier": "^5.1.0" - }, - "bin": { - "nodemon": "bin/nodemon.js" + "is-obj": "^2.0.0" }, "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "node": ">=8" } }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", + "node_modules/conventional-changelog-writer/node_modules/find-up": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { + "version": "4.0.2", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.1", + "node_modules/conventional-changelog-writer/node_modules/is-obj": { + "version": "2.0.0", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/conventional-changelog-writer/node_modules/locate-path": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "8.1.2", "dev": true, + "license": "MIT", "dependencies": { - "abbrev": "1" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-changelog-writer/node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/conventional-changelog-writer/node_modules/normalize-package-data": { + "version": "3.0.2", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", + "node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": { + "version": "7.3.5", "dev": true, "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/normalize-path": { - "version": "2.1.1", + "node_modules/conventional-changelog-writer/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, "license": "MIT", "dependencies": { - "remove-trailing-separator": "^1.0.1" + "p-try": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/npm/-/npm-8.3.1.tgz", - "integrity": "sha512-f552vKhT3r+PpCRnH7UferrrbcnvcFnGusN2T1mQqq/0UQd3pF1+ok4n0WahT0ZKxj10YU3b2VdhGrf39djHAA==", - "bundleDependencies": [ - "@isaacs/string-locale-compare", - "@npmcli/arborist", - "@npmcli/ci-detect", - "@npmcli/config", - "@npmcli/map-workspaces", - "@npmcli/package-json", - "@npmcli/run-script", - "abbrev", - "ansicolors", - "ansistyles", - "archy", - "cacache", - "chalk", - "chownr", - "cli-columns", - "cli-table3", - "columnify", - "fastest-levenshtein", - "glob", - "graceful-fs", - "hosted-git-info", - "ini", - "init-package-json", - "is-cidr", - "json-parse-even-better-errors", - "libnpmaccess", - "libnpmdiff", - "libnpmexec", - "libnpmfund", - "libnpmhook", - "libnpmorg", - "libnpmpack", - "libnpmpublish", - "libnpmsearch", - "libnpmteam", - "libnpmversion", - "make-fetch-happen", - "minipass", - "minipass-pipeline", - "mkdirp", - "mkdirp-infer-owner", - "ms", - "node-gyp", - "nopt", - "npm-audit-report", - "npm-install-checks", - "npm-package-arg", - "npm-pick-manifest", - "npm-profile", - "npm-registry-fetch", - "npm-user-validate", - "npmlog", - "opener", - "pacote", - "parse-conflict-json", - "proc-log", - "qrcode-terminal", - "read", - "read-package-json", - "read-package-json-fast", - "readdir-scoped-modules", - "rimraf", - "semver", - "ssri", - "tar", - "text-table", - "tiny-relative-date", - "treeverse", - "validate-npm-package-name", - "which", - "write-file-atomic" - ], + "node_modules/conventional-changelog-writer/node_modules/p-locate": { + "version": "4.1.0", "dev": true, + "license": "MIT", "dependencies": { - "@isaacs/string-locale-compare": "*", - "@npmcli/arborist": "*", - "@npmcli/ci-detect": "*", - "@npmcli/config": "*", - "@npmcli/map-workspaces": "*", - "@npmcli/package-json": "*", - "@npmcli/run-script": "*", - "abbrev": "*", - "ansicolors": "*", - "ansistyles": "*", - "archy": "*", - "cacache": "*", - "chalk": "*", - "chownr": "*", - "cli-columns": "*", - "cli-table3": "*", - "columnify": "*", - "fastest-levenshtein": "*", - "glob": "*", - "graceful-fs": "*", - "hosted-git-info": "*", - "ini": "*", - "init-package-json": "*", - "is-cidr": "*", - "json-parse-even-better-errors": "*", - "libnpmaccess": "*", - "libnpmdiff": "*", - "libnpmexec": "*", - "libnpmfund": "*", - "libnpmhook": "*", - "libnpmorg": "*", - "libnpmpack": "*", - "libnpmpublish": "*", - "libnpmsearch": "*", - "libnpmteam": "*", - "libnpmversion": "*", - "make-fetch-happen": "*", - "minipass": "*", - "minipass-pipeline": "*", - "mkdirp": "*", - "mkdirp-infer-owner": "*", - "ms": "*", - "node-gyp": "*", - "nopt": "*", - "npm-audit-report": "*", - "npm-install-checks": "*", - "npm-package-arg": "*", - "npm-pick-manifest": "*", - "npm-profile": "*", - "npm-registry-fetch": "*", - "npm-user-validate": "*", - "npmlog": "*", - "opener": "*", - "pacote": "*", - "parse-conflict-json": "*", - "proc-log": "*", - "qrcode-terminal": "*", - "read": "*", - "read-package-json": "*", - "read-package-json-fast": "*", - "readdir-scoped-modules": "*", - "rimraf": "*", - "semver": "*", - "ssri": "*", - "tar": "*", - "text-table": "*", - "tiny-relative-date": "*", - "treeverse": "*", - "validate-npm-package-name": "*", - "which": "*", - "write-file-atomic": "*" - }, - "bin": { - "npm": "bin/npm-cli.js", - "npx": "bin/npx-cli.js" + "p-limit": "^2.2.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8" } }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "node_modules/conventional-changelog-writer/node_modules/path-exists": { + "version": "4.0.0", "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/npm-check-updates": { - "version": "12.5.3", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.5.3.tgz", - "integrity": "sha512-siFg/+Un+j4tLA6GJCnk6hz2YU4Yc5bftDnOoiSRLKL6NeAS3FScB32mtKNBtITMJf2nsoZSr8vH+wdUGeP19g==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg": { + "version": "5.2.0", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.2", - "cint": "^8.2.1", - "cli-table": "^0.3.11", - "commander": "^9.0.0", - "fast-memoize": "^2.5.2", - "find-up": "5.0.0", - "fp-and-or": "^0.1.3", - "get-stdin": "^8.0.0", - "globby": "^11.0.4", - "hosted-git-info": "^4.1.0", - "json-parse-helpfulerror": "^1.0.3", - "jsonlines": "^0.1.1", - "libnpmconfig": "^1.2.1", - "lodash": "^4.17.21", - "minimatch": "^5.0.1", - "p-map": "^4.0.0", - "pacote": "^13.0.3", - "parse-github-url": "^1.0.2", - "progress": "^2.0.3", - "prompts": "^2.4.2", - "rc-config-loader": "^4.0.0", - "remote-git-tags": "^3.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "semver-utils": "^1.1.4", - "source-map-support": "^0.5.21", - "spawn-please": "^1.0.0", - "update-notifier": "^5.1.0", - "yaml": "^1.10.2" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, - "bin": { - "ncu": "build/src/bin/cli.js", - "npm-check-updates": "build/src/bin/cli.js" + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">=12" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-check-updates/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "balanced-match": "^1.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/npm-check-updates/node_modules/commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=8" } }, - "node_modules/npm-check-updates/node_modules/find-up": { - "version": "5.0.0", + "node_modules/conventional-changelog-writer/node_modules/readable-stream": { + "version": "3.6.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, - "node_modules/npm-check-updates/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.0", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/npm-check-updates/node_modules/locate-path": { - "version": "6.0.0", + "node_modules/conventional-changelog-writer/node_modules/through2": { + "version": "4.0.2", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "readable-stream": "3" } }, - "node_modules/npm-check-updates/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/npm-check-updates/node_modules/p-locate": { - "version": "5.0.0", + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-check-updates/node_modules/path-exists": { - "version": "4.0.0", + "node_modules/conventional-commits-parser/node_modules/find-up": { + "version": "4.1.0", "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/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==", + "node_modules/conventional-commits-parser/node_modules/hosted-git-info": { + "version": "4.0.2", "dev": true, + "license": "ISC", "dependencies": { - "semver": "^7.1.1" + "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/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", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.1.tgz", - "integrity": "sha512-Xs9wznfEAmZAR61qsYH3iN24V/qMYYkvAR5CRQNMvC6PjN2fHtO8y9XP/xdp5K+Icx+u1wMBMgWRPCmAEChSog==", + "node_modules/conventional-commits-parser/node_modules/locate-path": { + "version": "5.0.0", "dev": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^5.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8" } }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "node_modules/conventional-commits-parser/node_modules/meow": { + "version": "8.1.2", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-package-arg/node_modules/lru-cache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", - "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "node_modules/conventional-commits-parser/node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-packlist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-4.0.0.tgz", - "integrity": "sha512-gL6XC/iw9YSmqArmZOGSkyy+yIZf2f7uH0p4Vmxef/irn73vd9/rDkCtvm+a9rh/QK2xGYfCAMOghM06ymzC0A==", + "node_modules/conventional-commits-parser/node_modules/normalize-package-data": { + "version": "3.0.2", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "glob": "^7.2.0", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.2", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=10" } }, - "node_modules/npm-packlist/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/conventional-commits-parser/node_modules/p-limit": { + "version": "2.3.0", "dev": true, + "license": "MIT", "dependencies": { - "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" + "p-try": "^2.0.0" }, "engines": { - "node": "*" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-packlist/node_modules/ignore-walk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", - "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "node_modules/conventional-commits-parser/node_modules/p-locate": { + "version": "4.1.0", "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^3.0.4" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/npm-pick-manifest": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.0.tgz", - "integrity": "sha512-njM1AcdioFaKd0JSGtLO09YA1WRwctjGQJbnHGmKS+u+uwP8oFvtZtOQWPYdxrnY5eJud3wn8OpH4sEIx6+GEQ==", + "node_modules/conventional-commits-parser/node_modules/path-exists": { + "version": "4.0.0", "dev": true, - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^9.0.0", - "semver": "^7.3.5" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8" } }, - "node_modules/npm-registry-fetch": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.0.1.tgz", - "integrity": "sha512-Ak+LXVtSrCLOdscFW/apUw67OPNph8waHsPKM9UOJosL7i59EF5XoSWQMEsXEOeifM9Bb4/2+WrQC4t/pd8DGg==", + "node_modules/conventional-commits-parser/node_modules/read-pkg": { + "version": "5.2.0", "dev": true, + "license": "MIT", "dependencies": { - "make-fetch-happen": "^10.0.3", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.1", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.0", - "proc-log": "^2.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8" } }, - "node_modules/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==", + "node_modules/conventional-commits-parser/node_modules/read-pkg-up": { + "version": "7.0.1", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@gar/promisify": { - "version": "1.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", "dev": true, - "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "4.2.0", + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^2.0.0", - "@npmcli/metavuln-calculator": "^2.0.0", - "@npmcli/move-file": "^1.1.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^1.0.3", - "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^2.0.0", - "bin-links": "^2.3.0", - "cacache": "^15.0.3", - "common-ancestor-path": "^1.0.1", - "json-parse-even-better-errors": "^2.3.1", - "json-stringify-nice": "^1.1.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "npm-install-checks": "^4.0.0", - "npm-package-arg": "^8.1.5", - "npm-pick-manifest": "^6.1.0", - "npm-registry-fetch": "^11.0.0", - "pacote": "^12.0.2", - "parse-conflict-json": "^2.0.1", - "proc-log": "^1.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "ssri": "^8.0.1", - "treeverse": "^1.0.4", - "walk-up-path": "^1.0.0" - }, - "bin": { - "arborist": "bin/index.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npm/node_modules/@npmcli/ci-detect": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/@npmcli/config": { - "version": "2.4.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ini": "^2.0.0", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^5.0.0", - "semver": "^7.3.4", - "walk-up-path": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/@npmcli/fs": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", + "license": "BSD-2-Clause", "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/npm/node_modules/@npmcli/git": { - "version": "2.1.0", + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", "dev": true, - "inBundle": true, "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" + "bin": { + "semver": "bin/semver" } }, - "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "2.0.0", + "node_modules/conventional-commits-parser/node_modules/readable-stream": { + "version": "3.6.0", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^7.1.6", - "minimatch": "^3.0.4", - "read-package-json-fast": "^2.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">= 6" } }, - "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "2.0.0", + "node_modules/conventional-commits-parser/node_modules/through2": { + "version": "4.0.2", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "cacache": "^15.0.5", - "json-parse-even-better-errors": "^2.3.1", - "pacote": "^12.0.0", - "semver": "^7.3.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "readable-stream": "3" } }, - "node_modules/npm/node_modules/@npmcli/move-file": { - "version": "1.1.2", + "node_modules/conventional-recommended-bump": { + "version": "6.1.0", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.4", + "conventional-commits-filter": "^2.0.7", + "conventional-commits-parser": "^3.2.0", + "git-raw-commits": "^2.0.8", + "git-semver-tags": "^4.1.1", + "meow": "^8.0.0", + "q": "^1.5.1" + }, + "bin": { + "conventional-recommended-bump": "cli.js" }, "engines": { "node": ">=10" } }, - "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^2.3.1" - } - }, - "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "infer-owner": "^1.0.4" - } - }, - "node_modules/npm/node_modules/@npmcli/run-script": { + "node_modules/conventional-recommended-bump/node_modules/concat-stream": { "version": "2.0.0", "dev": true, - "inBundle": true, - "license": "ISC", + "engines": [ + "node >= 6.0" + ], + "license": "MIT", "dependencies": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "node_modules/npm/node_modules/@tootallnate/once": { - "version": "1.1.2", + "node_modules/conventional-recommended-bump/node_modules/dargs": { + "version": "7.0.0", "dev": true, - "inBundle": true, "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/npm/node_modules/abbrev": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/agent-base": { - "version": "6.0.2", + "node_modules/conventional-recommended-bump/node_modules/find-up": { + "version": "4.1.0", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "debug": "4" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 6.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.2.0", + "node_modules/conventional-recommended-bump/node_modules/git-raw-commits": { + "version": "2.0.10", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "bin": { + "git-raw-commits": "cli.js" }, "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/npm/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/conventional-recommended-bump/node_modules/git-semver-tags": { + "version": "4.1.1", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "meow": "^8.0.0", + "semver": "^6.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/npm/node_modules/ansicolors": { - "version": "0.3.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/ansistyles": { - "version": "0.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/aproba": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/archy": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "bin": { + "git-semver-tags": "cli.js" }, "engines": { "node": ">=10" } }, - "node_modules/npm/node_modules/asap": { - "version": "2.0.6", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/bin-links": { - "version": "2.3.0", + "node_modules/conventional-recommended-bump/node_modules/hosted-git-info": { + "version": "4.0.2", "dev": true, - "inBundle": true, "license": "ISC", "dependencies": { - "cmd-shim": "^4.0.1", - "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0", - "read-cmd-shim": "^2.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^3.0.3" + "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/conventional-recommended-bump/node_modules/locate-path": { + "version": "5.0.0", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/builtins": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/cacache": { - "version": "15.3.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "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": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/npm/node_modules/chalk": { - "version": "4.1.2", + "node_modules/conventional-recommended-bump/node_modules/meow": { + "version": "8.1.2", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/chownr": { - "version": "2.0.0", + "node_modules/conventional-recommended-bump/node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/cidr-regex": { - "version": "3.1.1", + "node_modules/conventional-recommended-bump/node_modules/normalize-package-data": { + "version": "3.0.2", "dev": true, - "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "ip-regex": "^4.1.0" + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { "node": ">=10" } }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", + "node_modules/conventional-recommended-bump/node_modules/normalize-package-data/node_modules/semver": { + "version": "7.3.5", "dev": true, - "inBundle": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/npm/node_modules/cli-columns": { - "version": "4.0.0", + "node_modules/conventional-recommended-bump/node_modules/p-limit": { + "version": "2.3.0", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/cli-columns/node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/conventional-recommended-bump/node_modules/p-locate": { + "version": "4.1.0", "dev": true, - "inBundle": true, "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/conventional-recommended-bump/node_modules/path-exists": { + "version": "4.0.0", "dev": true, - "inBundle": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/cli-columns/node_modules/string-width": { - "version": "4.2.3", + "node_modules/conventional-recommended-bump/node_modules/read-pkg": { + "version": "5.2.0", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/cli-columns/node_modules/strip-ansi": { - "version": "6.0.1", + "node_modules/conventional-recommended-bump/node_modules/read-pkg-up": { + "version": "7.0.1", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.0", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "colors": "^1.1.2" + "license": "ISC" + }, + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/npm/node_modules/cli-table3/node_modules/ansi-regex": { - "version": "5.0.0", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", "dev": true, - "inBundle": true, - "license": "MIT", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.2", + "node_modules/conventional-recommended-bump/node_modules/readable-stream": { + "version": "3.6.0", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/npm/node_modules/cli-table3/node_modules/strip-ansi": { - "version": "6.0.0", + "node_modules/conventional-recommended-bump/node_modules/semver": { + "version": "6.3.0", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", + "node_modules/conventional-recommended-bump/node_modules/through2": { + "version": "4.0.2", "dev": true, - "inBundle": true, "license": "MIT", - "engines": { - "node": ">=0.8" + "dependencies": { + "readable-stream": "3" } }, - "node_modules/npm/node_modules/cmd-shim": { - "version": "4.1.0", + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "mkdirp-infer-owner": "^2.0.0" - }, - "engines": { - "node": ">=10" + "safe-buffer": "~5.1.1" } }, - "node_modules/npm/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "inBundle": true, + "node_modules/cookie": { + "version": "0.4.1", "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", "dependencies": { - "color-name": "~1.1.4" + "cookie": "0.4.1", + "cookie-signature": "1.0.6" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8.0" } }, - "node_modules/npm/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, + "node_modules/cookie-signature": { + "version": "1.0.6", "license": "MIT" }, - "node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/npm/node_modules/colors": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } + "node_modules/cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" }, - "node_modules/npm/node_modules/columnify": { - "version": "1.5.4", + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, - "node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/copy-concurrently/node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/copy-concurrently/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, - "node_modules/npm/node_modules/debug": { - "version": "4.3.2", + "node_modules/copy-concurrently/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" + "minimist": "^1.2.6" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/npm/node_modules/debug/node_modules/ms": { - "version": "2.1.2", + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "inBundle": true, - "license": "MIT" + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } }, - "node_modules/npm/node_modules/debuglog": { - "version": "1.0.1", + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.3", + "node_modules/copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "clone": "^1.0.2" + "toggle-selection": "^1.0.6" } }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/depd": { - "version": "1.1.2", + "node_modules/core-js": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", + "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/npm/node_modules/dezalgo": { - "version": "1.0.3", + "node_modules/core-js-compat": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", + "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/npm/node_modules/diff": { - "version": "5.0.0", + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/npm/node_modules/emoji-regex": { - "version": "8.0.0", + "node_modules/core-js-pure": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", "dev": true, - "inBundle": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", "license": "MIT" }, - "node_modules/npm/node_modules/encoding": { - "version": "0.1.13", - "dev": true, - "inBundle": true, + "node_modules/cors": { + "version": "2.8.5", "license": "MIT", - "optional": true, "dependencies": { - "iconv-lite": "^0.6.2" + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" } }, - "node_modules/npm/node_modules/env-paths": { - "version": "2.2.1", + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/npm/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/fastest-levenshtein": { - "version": "1.0.12", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/fs-minipass": { - "version": "2.1.0", + "node_modules/cp-file": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", + "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/npm/node_modules/fs.realpath": { - "version": "1.0.0", + "node_modules/cpy": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", + "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", "dev": true, - "inBundle": true, - "license": "ISC" + "dependencies": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/npm/node_modules/function-bind": { - "version": "1.1.1", + "node_modules/cpy/node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true, - "inBundle": true, - "license": "MIT" + "engines": { + "node": ">= 6" + } }, - "node_modules/npm/node_modules/gauge": { - "version": "4.0.0", + "node_modules/cpy/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1", - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" + "array-uniq": "^1.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/gauge/node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/cpy/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/cpy/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/gauge/node_modules/string-width": { - "version": "4.2.3", + "node_modules/cpy/node_modules/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, - "inBundle": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "path-type": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/npm/node_modules/gauge/node_modules/strip-ansi": { - "version": "6.0.1", + "node_modules/cpy/node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" }, "engines": { - "node": ">=8" + "node": ">=4.0.0" } }, - "node_modules/npm/node_modules/glob": { - "version": "7.2.0", + "node_modules/cpy/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "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" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/graceful-fs": { - "version": "4.2.8", + "node_modules/cpy/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, - "inBundle": true, - "license": "ISC" + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } }, - "node_modules/npm/node_modules/has": { - "version": "1.0.3", + "node_modules/cpy/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "function-bind": "^1.1.1" + "is-extglob": "^2.1.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/cpy/node_modules/globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "@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" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", + "node_modules/cpy/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "inBundle": true, - "license": "ISC" + "engines": { + "node": ">= 4" + } }, - "node_modules/npm/node_modules/hosted-git-info": { - "version": "4.1.0", + "node_modules/cpy/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/cpy/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "is-plain-object": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.0", + "node_modules/cpy/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/npm/node_modules/http-proxy-agent": { - "version": "4.0.1", + "node_modules/cpy/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/https-proxy-agent": { - "version": "5.0.0", + "node_modules/cpy/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "agent-base": "6", - "debug": "4" + "isobject": "^3.0.1" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/humanize-ms": { - "version": "1.2.1", + "node_modules/cpy/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/iconv-lite": { - "version": "0.6.3", + "node_modules/cpy/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/ignore-walk": { - "version": "4.0.1", + "node_modules/cpy/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minimatch": "^3.0.4" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/cpy/node_modules/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, - "inBundle": true, - "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">=8" } }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", + "node_modules/cpy/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/npm/node_modules/infer-owner": { - "version": "1.0.4", + "node_modules/cpy/node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, - "inBundle": true, - "license": "ISC" + "engines": { + "node": ">=4" + } }, - "node_modules/npm/node_modules/inflight": { - "version": "1.0.6", + "node_modules/cpy/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "engines": { + "node": ">=6" } }, - "node_modules/npm/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/ini": { + "node_modules/cpy/node_modules/slash": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/npm/node_modules/init-package-json": { - "version": "2.0.5", + "node_modules/cpy/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "npm-package-arg": "^8.1.5", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "^4.1.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/ip": { - "version": "1.1.5", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/ip-regex": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/is-cidr": { - "version": "4.0.2", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", + "node_modules/crc-32": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", + "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==", "dependencies": { - "cidr-regex": "^3.1.1" + "exit-on-epipe": "~1.0.1", + "printj": "~1.3.1" + }, + "bin": { + "crc32": "bin/crc32.njs" }, "engines": { - "node": ">=10" + "node": ">=0.8" } }, - "node_modules/npm/node_modules/is-core-module": { - "version": "2.8.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" + "node_modules/crc-32/node_modules/printj": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz", + "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==", + "bin": { + "printj": "bin/printj.njs" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/npm/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.8" } }, - "node_modules/npm/node_modules/is-lambda": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/isexe": { - "version": "2.0.0", + "node_modules/create-ecdh": { + "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, - "inBundle": true, - "license": "ISC" + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } }, - "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true }, - "node_modules/npm/node_modules/json-stringify-nice": { - "version": "1.1.4", + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/npm/node_modules/jsonparse": { - "version": "1.3.1", + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "inBundle": true, - "license": "MIT" + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } }, - "node_modules/npm/node_modules/just-diff": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, - "node_modules/npm/node_modules/just-diff-apply": { - "version": "4.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/cron": { + "version": "1.8.2", + "license": "MIT", + "dependencies": { + "moment-timezone": "^0.5.x" + } }, - "node_modules/npm/node_modules/libnpmaccess": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/cross-env": { + "version": "7.0.3", + "license": "MIT", "dependencies": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0" + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" } }, - "node_modules/npm/node_modules/libnpmdiff": { - "version": "3.0.0", + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/disparity-colors": "^1.0.1", - "@npmcli/installed-package-contents": "^1.0.7", - "binary-extensions": "^2.2.0", - "diff": "^5.0.0", - "minimatch": "^3.0.4", - "npm-package-arg": "^8.1.4", - "pacote": "^12.0.0", - "tar": "^6.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node-fetch": "2.6.7" } }, - "node_modules/npm/node_modules/libnpmexec": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", "dependencies": { - "@npmcli/arborist": "^4.0.0", - "@npmcli/ci-detect": "^1.3.0", - "@npmcli/run-script": "^2.0.0", - "chalk": "^4.1.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-package-arg": "^8.1.2", - "pacote": "^12.0.0", - "proc-log": "^1.0.0", - "read": "^1.0.7", - "read-package-json-fast": "^2.0.2", - "walk-up-path": "^1.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">= 8" } }, - "node_modules/npm/node_modules/libnpmfund": { - "version": "2.0.2", + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/arborist": "^4.0.0" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "*" } }, - "node_modules/npm/node_modules/libnpmhook": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/crypto-random-string": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-3.3.1.tgz", + "integrity": "sha512-5j88ECEn6h17UePrLi6pn1JcLtAiANa3KExyr9y9Z5vo2mv56Gh3I4Aja/B9P9uyMwyxNHAHWv+nE72f30T5Dg==", "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^11.0.0" + "type-fest": "^0.8.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8" } }, - "node_modules/npm/node_modules/libnpmorg": { - "version": "3.0.0", + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^11.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" } }, - "node_modules/npm/node_modules/libnpmpack": { - "version": "3.0.1", + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@npmcli/run-script": "^2.0.0", - "npm-package-arg": "^8.1.0", - "pacote": "^12.0.0" + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/npm/node_modules/libnpmpublish": { - "version": "5.0.0", + "node_modules/css-functions-list": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.0.1.tgz", + "integrity": "sha512-PriDuifDt4u4rkDgnqRCLnjfMatufLmWNfQnGCq34xZwpY3oabwhB9SqRBmuvWUgndbemCFlKqg+nO7C2q0SBw==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "normalize-package-data": "^3.0.2", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0", - "semver": "^7.1.3", - "ssri": "^8.0.1" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=12.22" } }, - "node_modules/npm/node_modules/libnpmsearch": { - "version": "4.0.0", + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "npm-registry-fetch": "^11.0.0" + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/npm/node_modules/libnpmteam": { - "version": "3.0.0", + "node_modules/css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^11.0.0" + "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.32", + "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.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/npm/node_modules/libnpmversion": { - "version": "2.0.2", + "node_modules/css-loader/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^2.0.7", - "@npmcli/run-script": "^2.0.0", - "json-parse-even-better-errors": "^2.3.1", - "semver": "^7.3.5", - "stringify-package": "^1.0.1" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=6" } }, - "node_modules/npm/node_modules/lru-cache": { - "version": "6.0.0", + "node_modules/css-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=10" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/npm/node_modules/make-fetch-happen": { - "version": "9.1.0", + "node_modules/css-loader/node_modules/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, - "inBundle": true, - "license": "ISC", "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" }, "engines": { - "node": ">= 10" + "node": ">=4.0.0" } }, - "node_modules/npm/node_modules/minimatch": { - "version": "3.0.4", + "node_modules/css-loader/node_modules/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, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/minipass": { - "version": "3.1.6", + "node_modules/css-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" }, "engines": { - "node": ">=8" + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "node_modules/npm/node_modules/minipass-collect": { - "version": "1.0.2", + "node_modules/css-loader/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/npm/node_modules/minipass-fetch": { - "version": "1.4.1", + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" }, "engines": { - "node": ">=8" + "node": "^12 || ^14 || >=16" }, - "optionalDependencies": { - "encoding": "^0.1.12" + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/npm/node_modules/minipass-flush": { - "version": "1.0.5", + "node_modules/css-select": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", + "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "boolbase": "^1.0.0", + "css-what": "^4.0.0", + "domhandler": "^4.0.0", + "domutils": "^2.4.3", + "nth-check": "^2.0.0" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/npm/node_modules/minipass-json-stream": { - "version": "1.0.1", + "node_modules/css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", + "dev": true + }, + "node_modules/css-what": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", + "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/npm/node_modules/minipass-pipeline": { - "version": "1.2.4", + "node_modules/cssdb": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", + "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==", + "dev": true + }, + "node_modules/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, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/npm/node_modules/minipass-sized": { - "version": "1.0.3", + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "minipass": "^3.0.0" + "cssom": "~0.3.6" }, "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", + "dev": true + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "array-find-index": "^1.0.1" }, "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/mkdirp": { - "version": "1.0.4", + "node_modules/custom-error-instance": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz", + "integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho=", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", "dev": true, - "inBundle": true, "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" }, "engines": { - "node": ">=10" + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" } }, - "node_modules/npm/node_modules/mkdirp-infer-owner": { - "version": "2.0.0", + "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/npm/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/mute-stream": { - "version": "0.0.8", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/negotiator": { - "version": "0.6.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm/node_modules/node-gyp": { - "version": "8.4.1", + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">= 10.12.0" + "node": ">=4" } }, - "node_modules/npm/node_modules/nopt": { - "version": "5.0.0", + "node_modules/cz-conventional-changelog/node_modules/color-convert": { + "version": "1.9.3", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" + "color-name": "1.1.3" } }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "3.0.3", + "node_modules/cz-conventional-changelog/node_modules/color-name": { + "version": "1.1.3", "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "2.1.5", + "node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "chalk": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.8.0" } }, - "node_modules/npm/node_modules/npm-bundled": { - "version": "1.1.2", + "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "4.0.0", + "node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "semver": "^7.1.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "8.1.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "3.0.0", + "node_modules/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, - "inBundle": true, - "license": "ISC", "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "6.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" + "node_modules/date-and-time": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-2.1.2.tgz", + "integrity": "sha512-YlQUtuqYGPR58I7jzx4TIjknN9wCKjwewiylIp+P4xMuO23mlZje3Qe9gYCKp/6ncbeNpU8ZnPdhQNZnVphveQ==" + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "engines": { + "node": "*" } }, - "node_modules/npm/node_modules/npm-profile": { - "version": "5.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/db-errors": { + "version": "0.2.3", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dependencies": { - "npm-registry-fetch": "^11.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=10" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "11.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, + "node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/npm-user-validate": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause" - }, - "node_modules/npm/node_modules/npmlog": { - "version": "6.0.0", + "node_modules/decamelize-keys": { + "version": "1.1.0", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", - "set-blocking": "^2.0.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/object-assign": { - "version": "4.1.1", + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", "dev": true, - "inBundle": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/once": { - "version": "1.4.0", + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/opener": { - "version": "1.5.2", - "dev": true, - "inBundle": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true }, - "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "node_modules/npm/node_modules/pacote": { - "version": "12.0.2", + "node_modules/decompress-response": { + "version": "3.3.0", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^3.0.0", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^11.0.0", - "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" - }, - "bin": { - "pacote": "lib/bin.js" + "mimic-response": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=4" } }, - "node_modules/npm/node_modules/parse-conflict-json": { - "version": "2.0.1", + "node_modules/dedent": { + "version": "0.7.0", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^2.3.1", - "just-diff": "^5.0.1", - "just-diff-apply": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } + "license": "MIT" }, - "node_modules/npm/node_modules/path-is-absolute": { - "version": "1.0.1", + "node_modules/deep-extend": { + "version": "0.6.0", "dev": true, - "inBundle": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4.0.0" } }, - "node_modules/npm/node_modules/proc-log": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/deep-is": { + "version": "0.1.3", + "license": "MIT" }, - "node_modules/npm/node_modules/promise-all-reject-late": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "node_modules/deep-object-diff": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.7.tgz", + "integrity": "sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg==", + "dev": true }, - "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node_modules/deepmerge": { + "version": "4.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", + "node_modules/defer-to-connect": { + "version": "1.1.3", "dev": true, - "inBundle": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/npm/node_modules/promise-retry": { - "version": "2.0.1", + "node_modules/define-properties": { + "version": "1.1.3", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "object-keys": "^1.0.12" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/npm/node_modules/promzard": { - "version": "0.3.0", + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "read": "1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/qrcode-terminal": { - "version": "0.12.0", + "node_modules/define-property/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "inBundle": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/read": { - "version": "1.0.7", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/degenerator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", + "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", "dependencies": { - "mute-stream": "~0.0.4" + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0", + "vm2": "^3.9.8" }, "engines": { - "node": ">=0.8" + "node": ">= 6" } }, - "node_modules/npm/node_modules/read-cmd-shim": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/read-package-json": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/degenerator/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=10" + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/npm/node_modules/read-package-json-fast": { - "version": "2.0.3", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/degenerator/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, "engines": { - "node": ">=10" + "node": ">= 0.8.0" } }, - "node_modules/npm/node_modules/readable-stream": { - "version": "3.6.0", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/degenerator/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" }, "engines": { - "node": ">= 6" + "node": ">= 0.8.0" } }, - "node_modules/npm/node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "node_modules/degenerator/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/npm/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/degenerator/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, "engines": { - "node": ">= 4" + "node": ">= 0.8.0" } }, - "node_modules/npm/node_modules/rimraf": { - "version": "3.0.2", + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" + "node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "inBundle": true, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", "license": "MIT", - "optional": true + "engines": { + "node": ">= 0.6" + } }, - "node_modules/npm/node_modules/semver": { - "version": "7.3.5", + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "node_modules/npm/node_modules/signal-exit": { - "version": "3.0.6", + "node_modules/detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", "dev": true, - "inBundle": true, - "license": "ISC" + "dependencies": { + "repeat-string": "^1.5.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/npm/node_modules/smart-buffer": { - "version": "4.2.0", + "node_modules/detect-file": { + "version": "1.0.0", "dev": true, - "inBundle": true, "license": "MIT", "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/socks": { - "version": "2.6.1", + "node_modules/detect-indent": { + "version": "6.0.0", "dev": true, - "inBundle": true, "license": "MIT", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": ">=8" } }, - "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "6.1.0", + "node_modules/detect-newline": { + "version": "3.1.0", "dev": true, - "inBundle": true, "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-port": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", + "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" }, "engines": { - "node": ">= 10" + "node": ">= 4.2.1" } }, - "node_modules/npm/node_modules/spdx-correct": { - "version": "3.1.1", + "node_modules/detect-port/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "ms": "2.0.0" } }, - "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "inBundle": true, - "license": "CC-BY-3.0" + "node_modules/detect-port/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, - "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "asap": "^2.0.0", + "wrappy": "1" } }, - "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.10", - "dev": true, - "inBundle": true, - "license": "CC0-1.0" - }, - "node_modules/npm/node_modules/ssri": { - "version": "8.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", + "node_modules/dicer": { + "version": "0.3.0", "dependencies": { - "minipass": "^3.1.1" + "streamsearch": "0.1.2" }, "engines": { - "node": ">= 8" + "node": ">=4.5.0" } }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-match-patch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "node_modules/npm/node_modules/string-width": { - "version": "2.1.1", - "dev": true, - "inBundle": true, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", "license": "MIT", "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", + "node_modules/discontinuous-range": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/dlv": { + "version": "1.1.3", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", + "node_modules/doctrine": { + "version": "3.0.0", "dev": true, - "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^3.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/npm/node_modules/stringify-package": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true }, - "node_modules/npm/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, - "inBundle": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.4", + "npm": ">=1.2" } }, - "node_modules/npm/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/domelementtype": { + "version": "2.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "webidl-conversions": "^5.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/npm/node_modules/tar": { - "version": "6.1.11", + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true, - "inBundle": true, - "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "domelementtype": "^2.2.0" }, "engines": { - "node": ">= 10" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/npm/node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/tiny-relative-date": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/treeverse": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dependencies": { - "is-typedarray": "^1.0.0" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/npm/node_modules/unique-filename": { - "version": "1.1.1", + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "unique-slug": "^2.0.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/npm/node_modules/unique-slug": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" + "node_modules/dotenv": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", + "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", + "engines": { + "node": ">=12" } }, - "node_modules/npm/node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true }, - "node_modules/npm/node_modules/validate-npm-package-license": { - "version": "3.0.4", + "node_modules/dotgitignore": { + "version": "2.1.0", "dev": true, - "inBundle": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=6" } }, - "node_modules/npm/node_modules/validate-npm-package-name": { + "node_modules/dotgitignore/node_modules/find-up": { "version": "3.0.0", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "builtins": "^1.0.3" + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/npm/node_modules/walk-up-path": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", + "node_modules/dotgitignore/node_modules/locate-path": { + "version": "3.0.0", "dev": true, - "inBundle": true, "license": "MIT", "dependencies": { - "defaults": "^1.0.3" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/npm/node_modules/which": { - "version": "2.0.2", + "node_modules/dotgitignore/node_modules/p-limit": { + "version": "2.3.0", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.3", + "node_modules/dotgitignore/node_modules/p-locate": { + "version": "3.0.0", "dev": true, - "inBundle": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "string-width": "^1.0.2 || 2" + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", + "node_modules/downshift": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.7.tgz", + "integrity": "sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg==", "dev": true, - "inBundle": true, - "license": "ISC" + "dependencies": { + "@babel/runtime": "^7.14.8", + "compute-scroll-into-view": "^1.0.17", + "prop-types": "^15.7.2", + "react-is": "^17.0.2", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "react": ">=16.12.0" + } }, - "node_modules/npm/node_modules/write-file-atomic": { - "version": "3.0.3", + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "readable-stream": "^2.0.2" } }, - "node_modules/npm/node_modules/yallist": { - "version": "4.0.0", + "node_modules/duplexer3": { + "version": "0.1.4", "dev": true, - "inBundle": true, - "license": "ISC" + "license": "BSD-3-Clause" }, - "node_modules/npmlog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", - "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", - "dev": true, + "node_modules/duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" } }, - "node_modules/null-check": { - "version": "1.0.0", - "dev": true, - "license": "MIT", + "node_modules/duplexify/node_modules/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "node_modules/editorconfig/node_modules/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==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "node_modules/editorconfig/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver" } }, - "node_modules/object-keys": { + "node_modules/editorconfig/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/ee-first": { "version": "1.1.1", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.90", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.90.tgz", + "integrity": "sha512-ZwKgSA0mQMyEhz+NR0F8dRzkrCLeHLzLkjx/CWf16+zV85hQ6meXPQbKanvhnpkYb7b2uJNj+enQJ/N877ND4Q==", + "dev": true + }, + "node_modules/element-resize-detector": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", + "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "batch-processor": "1.0.0" } }, - "node_modules/object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/email-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/email-regex/-/email-regex-4.0.0.tgz", + "integrity": "sha512-OxR2NqoYS3ZikqOkju2krRTyxngwjJ5Wh4yalpTqbBnUOr+LLwwjY2x5Sksruw6TieyQDswE5Pc83Eh6RQj3GA==", "engines": { - "node": ">= 10.12.0" + "node": ">=8" } }, - "node_modules/object.assign": { - "version": "4.1.2", + "node_modules/email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">4.0" } }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/objection": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/objection/-/objection-3.0.1.tgz", - "integrity": "sha512-rqNnyQE+C55UHjdpTOJEKQHJGZ/BGtBBtgxdUpKG4DQXRUmqxfmgS/MhPWxB9Pw0mLSVLEltr6soD4c0Sddy0Q==", - "dependencies": { - "ajv": "^8.6.2", - "db-errors": "^0.2.3" - }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "knex": ">=0.95.0" + "node": ">= 4" } }, - "node_modules/objection/node_modules/ajv": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.7.1.tgz", - "integrity": "sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==", + "node_modules/emotion-theming": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.3.0.tgz", + "integrity": "sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==", + "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "@babel/runtime": "^7.5.5", + "@emotion/weak-memoize": "0.2.5", + "hoist-non-react-statics": "^3.3.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "@emotion/core": "^10.0.27", + "react": ">=16.3.0" } }, - "node_modules/objection/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } + "node_modules/enabled": { + "version": "2.0.0", + "license": "MIT" }, - "node_modules/on-headers": { + "node_modules/encodeurl": { "version": "1.0.2", "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "license": "MIT", + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, "dependencies": { - "fn.name": "1.x.x" + "iconv-lite": "^0.6.2" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, "dependencies": { - "mimic-fn": "^2.1.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, + "node_modules/end-of-stream": { + "version": "1.4.4", + "license": "MIT", "dependencies": { - "lru-cache": "^5.1.1" + "once": "^1.4.0" } }, - "node_modules/onigasm/node_modules/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==", + "node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", "dev": true, "dependencies": { - "yallist": "^3.0.2" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/onigasm/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/optionator": { - "version": "0.9.1", + "node_modules/enquirer": { + "version": "2.3.6", "dev": true, "license": "MIT", "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "ansi-colors": "^4.1.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8.6" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" }, - "node_modules/p-each-series": { + "node_modules/entities": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "engines": { - "node": ">=8" - }, + "license": "BSD-2-Clause", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "node_modules/env-ci": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", + "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", "dev": true, "dependencies": { - "p-map": "^2.0.0" + "execa": "^5.0.0", + "fromentries": "^1.3.2", + "java-properties": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=10.17" } }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true }, - "node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" + "prr": "~1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "errno": "cli.js" } }, - "node_modules/p-locate": { - "version": "2.0.0", + "node_modules/error-ex": { + "version": "1.3.2", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" + "is-arrayish": "^0.2.1" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "1.3.0", + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, - "license": "MIT", "dependencies": { - "p-try": "^1.0.0" + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-locate/node_modules/p-try": { + "node_modules/es-array-method-boxes-properly": { "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", "dev": true, "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, + "peer": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue/node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "node_modules/es5-shim": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.5.tgz", + "integrity": "sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "node_modules/es6-shim": { + "version": "0.35.6", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", + "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz", + "integrity": "sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==", "dev": true, - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.27", + "esbuild-android-arm64": "0.14.27", + "esbuild-darwin-64": "0.14.27", + "esbuild-darwin-arm64": "0.14.27", + "esbuild-freebsd-64": "0.14.27", + "esbuild-freebsd-arm64": "0.14.27", + "esbuild-linux-32": "0.14.27", + "esbuild-linux-64": "0.14.27", + "esbuild-linux-arm": "0.14.27", + "esbuild-linux-arm64": "0.14.27", + "esbuild-linux-mips64le": "0.14.27", + "esbuild-linux-ppc64le": "0.14.27", + "esbuild-linux-riscv64": "0.14.27", + "esbuild-linux-s390x": "0.14.27", + "esbuild-netbsd-64": "0.14.27", + "esbuild-openbsd-64": "0.14.27", + "esbuild-sunos-64": "0.14.27", + "esbuild-windows-32": "0.14.27", + "esbuild-windows-64": "0.14.27", + "esbuild-windows-arm64": "0.14.27" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz", + "integrity": "sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 4" + "node": ">=12" } }, - "node_modules/p-try": { - "version": "2.2.0", + "node_modules/esbuild-android-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz", + "integrity": "sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz", + "integrity": "sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz", + "integrity": "sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/pac-resolver": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", - "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", - "dependencies": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz", + "integrity": "sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/package-json": { - "version": "6.5.0", + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz", + "integrity": "sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/package-json/node_modules/@sindresorhus/is": { - "version": "0.14.0", + "node_modules/esbuild-linux-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz", + "integrity": "sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/package-json/node_modules/cacheable-request": { - "version": "6.1.0", + "node_modules/esbuild-linux-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz", + "integrity": "sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/package-json/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", + "node_modules/esbuild-linux-arm": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz", + "integrity": "sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/package-json/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", + "node_modules/esbuild-linux-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz", + "integrity": "sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/package-json/node_modules/get-stream": { - "version": "4.1.0", + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz", + "integrity": "sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==", + "cpu": [ + "mips64el" + ], "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/package-json/node_modules/got": { - "version": "9.6.0", + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz", + "integrity": "sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8.6" + "node": ">=12" } }, - "node_modules/package-json/node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz", + "integrity": "sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==", + "cpu": [ + "riscv64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/package-json/node_modules/p-cancelable": { - "version": "1.1.0", + "node_modules/esbuild-linux-s390x": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz", + "integrity": "sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=12" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/pacote": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.0.5.tgz", - "integrity": "sha512-6CYfot3/rUAn3qqzF2d/jrrXm5HlBtvaSgfmg0VtOUAdJ8fbSq21BJwftMGArkL71yXHIbUJ7Bt5B04547HELA==", + "node_modules/esbuild-netbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz", + "integrity": "sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@npmcli/git": "^3.0.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^3.0.1", - "cacache": "^16.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.6", - "mkdirp": "^1.0.4", - "npm-package-arg": "^9.0.0", - "npm-packlist": "^4.0.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^5.0.0", - "read-package-json-fast": "^2.0.3", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=12" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parent-module": { - "version": "1.0.1", + "node_modules/esbuild-openbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz", + "integrity": "sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/parse-github-repo-url": { - "version": "1.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/parse-github-url": { - "version": "1.0.2", + "node_modules/esbuild-sunos-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz", + "integrity": "sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "bin": { - "parse-github-url": "cli.js" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/parse-json": { - "version": "5.2.0", + "node_modules/esbuild-windows-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz", + "integrity": "sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", + "node_modules/esbuild-windows-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz", + "integrity": "sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parsedbf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parsedbf/-/parsedbf-1.1.1.tgz", - "integrity": "sha512-jndFmhcrzSAGCMccM4za+3bIRxqV6L2doQjYN8Xgz0kZUpyBT5I8Gs6Y6hL5GcO2rih9OBkPcLlx2uBoLi8R8Q==", - "dependencies": { - "iconv-lite": "^0.4.15", - "text-encoding-polyfill": "^0.6.7" - } - }, - "node_modules/parseley": { - "version": "0.7.0", - "license": "MIT", - "dependencies": { - "moo": "^0.5.1", - "nearley": "^2.20.1" - }, - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/path-exists": { - "version": "3.0.0", + "node_modules/esbuild-windows-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz", + "integrity": "sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, + "node_modules/escalade": { + "version": "3.1.1", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/path-key": { - "version": "3.1.1", + "node_modules/escape-goat": { + "version": "2.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", + "node_modules/escape-html": { + "version": "1.0.3", "license": "MIT" }, - "node_modules/path-type": { + "node_modules/escape-string-regexp": { "version": "4.0.0", "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "node_modules/pg-escape": { - "version": "0.2.0", + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, - "license": "MIT" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "license": "ISC", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", - "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.5.0", - "license": "MIT" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.4", - "license": "MIT", "dependencies": { - "split2": "^3.1.1" - } - }, - "node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.3", - "license": "MIT", - "engines": { - "node": ">=8.6" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz", - "integrity": "sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==", - "dev": true, "bin": { - "pidtree": "bin/pidtree.js" + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=0.10" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/pify": { - "version": "2.3.0", + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/pinkie": { - "version": "2.0.4", + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, - "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/pinkie-promise": { - "version": "2.0.1", + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, - "license": "MIT", "dependencies": { - "pinkie": "^2.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==", + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true, "engines": { - "node": ">= 6" + "node": ">= 0.8.0" } }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "prelude-ls": "~1.1.2" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/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==", + "node_modules/eslint": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "node_modules/eslint-config-standard": { + "version": "17.0.0-1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0-1.tgz", + "integrity": "sha512-aqRG58dqoBNfOLN+PsitasxmW+W9Os4oQrx081B16T4E4WogsSbpUL6hnKSnyv35sSRYA2XjBtKMOrUboL6jgw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^14.0.0", + "eslint-plugin-promise": "^6.0.0" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "debug": "^3.2.7", + "resolve": "^1.20.0" } }, - "node_modules/pkg-dir/node_modules/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==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "ms": "^2.1.1" } }, - "node_modules/pkg-dir/node_modules/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==", + "node_modules/eslint-import-resolver-webpack": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.2.tgz", + "integrity": "sha512-XodIPyg1OgE2h5BDErz3WJoK7lawxKTJNhgPNafRST6csC/MZC+L5P6kKqsZGRInpbgc02s/WZMrb4uGJzcuRg==", "dev": true, + "dependencies": { + "array-find": "^1.0.0", + "debug": "^3.2.7", + "enhanced-resolve": "^0.9.1", + "find-root": "^1.1.0", + "has": "^1.0.3", + "interpret": "^1.4.0", + "is-core-module": "^2.7.0", + "is-regex": "^1.1.4", + "lodash": "^4.17.21", + "resolve": "^1.20.0", + "semver": "^5.7.1" + }, "engines": { - "node": ">=8" + "node": ">= 6" + }, + "peerDependencies": { + "eslint-plugin-import": ">=1.4.0", + "webpack": ">=1.11.0" } }, - "node_modules/polygon-clipping": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", - "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", + "node_modules/eslint-import-resolver-webpack/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "splaytree": "^3.1.0" + "ms": "^2.1.1" } }, - "node_modules/postgres-array": { - "version": "2.0.0", - "license": "MIT", + "node_modules/eslint-import-resolver-webpack/node_modules/enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + }, "engines": { - "node": ">=4" + "node": ">=0.6" } }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "license": "MIT", + "node_modules/eslint-import-resolver-webpack/node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, - "node_modules/postgres-date": { - "version": "1.0.7", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "node_modules/eslint-import-resolver-webpack/node_modules/memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" + "node_modules/eslint-import-resolver-webpack/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", + "node_modules/eslint-import-resolver-webpack/node_modules/tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=0.6" } }, - "node_modules/prepend-http": { - "version": "2.0.0", + "node_modules/eslint-module-utils": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, - "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, "engines": { "node": ">=4" } }, - "node_modules/prettier": { - "version": "2.3.0", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/prettier-eslint": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-13.0.0.tgz", - "integrity": "sha512-P5K31qWgUOQCtJL/3tpvEe28KfP49qbr6MTVEXC7I2k7ci55bP3YDr+glhyCdhIzxGCVp2f8eobfQ5so52RIIA==", + "node_modules/eslint-plugin-es": { + "version": "3.0.1", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/parser": "^3.0.0", - "common-tags": "^1.4.0", - "dlv": "^1.1.0", - "eslint": "^7.9.0", - "indent-string": "^4.0.0", - "lodash.merge": "^4.6.0", - "loglevel-colored-level-prefix": "^1.0.0", - "prettier": "^2.0.0", - "pretty-format": "^23.0.1", - "require-relative": "^0.8.7", - "typescript": "^3.9.3", - "vue-eslint-parser": "~7.1.0" + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/prettier-eslint/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/prettier-eslint/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", "dev": true, + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" + "ms": "2.0.0" } }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/experimental-utils": { - "version": "3.10.1", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" + "node": ">=0.10.0" } }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/parser": { - "version": "3.10.1", + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-jest": { + "version": "26.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.1.1.tgz", + "integrity": "sha512-HRKOuPi5ADhza4ZBK5ufyNXy28bXXkib87w+pQqdvBhSTsamndh6sIAKPAUl8y0/n9jSWBdTPslrwtKWqkp8dA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.10.1", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/utils": "^5.10.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" }, "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "typescript": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { "optional": true } } }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/types": { - "version": "3.10.1", + "node_modules/eslint-plugin-n": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-14.0.0.tgz", + "integrity": "sha512-mNwplPLsbaKhHyA0fa/cy8j+oF6bF6l81hzBTWa6JOvPcMNAuIogk2ih6d9tYvWYzyUG+7ZFeChqbzdFpg2QrQ==", "dev": true, - "license": "MIT", + "peer": true, + "dependencies": { + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.3.0", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=12.22.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "3.10.1", + "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, - "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8.10.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/mysticatea" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "3.10.1", + "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/prettier-eslint/node_modules/ansi-regex": { - "version": "3.0.0", + "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es/node_modules/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==", "dev": true, - "license": "MIT", + "peer": true, "engines": { "node": ">=4" } }, - "node_modules/prettier-eslint/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/eslint-plugin-n/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "license": "MIT", + "peer": true, "dependencies": { - "color-convert": "^1.9.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=4" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/prettier-eslint/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "peer": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/prettier-eslint/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/prettier-eslint/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "node_modules/eslint-plugin-node": { + "version": "11.1.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" + "resolve": "^1.10.1", + "semver": "^6.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8.10.0" }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/prettier-eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" + "peerDependencies": { + "eslint": ">=5.16.0" } }, - "node_modules/prettier-eslint/node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.0", "dev": true, - "engines": { - "node": ">=10" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/prettier-eslint/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", "dev": true, "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "prettier-linter-helpers": "^1.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/prettier-eslint/node_modules/glob": { - "version": "7.1.7", + "node_modules/eslint-plugin-promise": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", + "integrity": "sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==", "dev": true, - "license": "ISC", - "dependencies": { - "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" - }, "engines": { - "node": "*" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/prettier-eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" + "node_modules/eslint-plugin-standard": { + "version": "5.0.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peerDependencies": { + "eslint": ">=5.0.0" } }, - "node_modules/prettier-eslint/node_modules/pretty-format": { - "version": "23.6.0", + "node_modules/eslint-plugin-tsdoc": { + "version": "0.2.14", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" + "@microsoft/tsdoc": "0.13.2", + "@microsoft/tsdoc-config": "0.15.2" } }, - "node_modules/prettier-eslint/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/eslint-plugin-vue": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz", + "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==", "dev": true, + "dependencies": { + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^6.3.0", + "vue-eslint-parser": "^7.10.0" + }, "engines": { - "node": ">=8" + "node": ">=8.10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/prettier-eslint/node_modules/typescript": { - "version": "3.9.9", + "node_modules/eslint-plugin-vue/node_modules/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==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, "engines": { - "node": ">=4.2.0" + "node": ">=4" } }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "node_modules/eslint-plugin-vue/node_modules/espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.0.0" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-vue/node_modules/vue-eslint-parser": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", + "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^6.3.0" + }, "engines": { - "node": ">=10" + "node": ">=8.10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5.0.0" } }, - "node_modules/printj": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz", - "integrity": "sha512-sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==", - "bin": { - "printj": "bin/printj.njs" + "node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=0.8" + "node": ">=8.0.0" } }, - "node_modules/proc-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.0.tgz", - "integrity": "sha512-I/35MfCX2H8jBUhKN8JB8nmqvQo/nKdrBodBY7L3RhDSPPyvOHwLYNmPuhwuJq7a7C3vgFKWGQM+ecPStcvOHA==", + "node_modules/eslint-utils": { + "version": "2.1.0", "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/progress": { - "version": "2.0.3", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=0.4.0" + "node": ">=4" } }, - "node_modules/proj4": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.8.0.tgz", - "integrity": "sha512-baC+YcD4xsSqJ+CpCZljj2gcQDhlKb+J+Zjv/2KSBwWNjk4M0pafgQsE+mWurd84tflMIsP+7j7mtIpFDHzQfQ==", - "dependencies": { - "mgrs": "1.0.0", - "wkt-parser": "^1.3.1" + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/eslint/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">= 6" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=10" } }, - "node_modules/proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, "engines": { - "node": ">= 8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/proxy-agent/node_modules/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==", - "dependencies": { - "yallist": "^3.0.2" + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" } }, - "node_modules/proxy-agent/node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, - "node_modules/proxy-agent/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/pstree.remy": { - "version": "1.1.8", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.0", - "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/pumpify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", - "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", - "dependencies": { - "duplexify": "^4.1.1", - "inherits": "^2.0.3", - "pump": "^3.0.0" + "node_modules/eslint/node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/punycode": { - "version": "2.1.1", + "node_modules/esm": { + "version": "3.2.25", "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/pupa": { - "version": "2.1.1", + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, - "license": "MIT", "dependencies": { - "escape-goat": "^2.0.0" + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/q": { - "version": "1.5.1", + "node_modules/espree/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, - "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" + "node": ">=0.4.0" } }, - "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "node_modules/esprima": { + "version": "4.0.1", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, "engines": { - "node": ">=0.4.x" + "node": ">=4" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "4.0.1", + "node_modules/esquery": { + "version": "1.4.0", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "license": "CC0-1.0" + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "node_modules/randexp": { - "version": "0.4.6", - "license": "MIT", + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.12" + "node": ">=4.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.6" + "node": ">=4.0" } }, - "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, + "node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.8" + "node": ">=4.0" } }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/rc": { - "version": "1.2.8", - "dev": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" } }, - "node_modules/rc-config-loader": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "js-yaml": "^4.0.0", - "json5": "^2.1.2", - "require-from-string": "^2.0.2" + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" } }, - "node_modules/rc-config-loader/node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "node_modules/eventemitter3": { + "version": "4.0.7", + "license": "MIT" }, - "node_modules/rc-config-loader/node_modules/js-yaml": { - "version": "4.1.0", + "node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "license": "MIT", "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", + "node_modules/exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", + "dev": true + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/read-package-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.0.tgz", - "integrity": "sha512-1cjk2MV5ONDMn34uxSID3X8NY7VKsXfJnjbcVdFMvHEnJOBzU6MJ7/3yg6QFVZDq5/1yFNrKBUK9kGnonyGP2Q==", + "node_modules/execall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", + "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", "dev": true, "dependencies": { - "glob": "^7.2.0", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1" + "clone-regexp": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=0.10.0" } }, - "node_modules/read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, "engines": { - "node": ">=10" + "node": ">= 0.8.0" } }, - "node_modules/read-package-json/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "dependencies": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "lru-cache": "^7.5.1" + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=0.10.0" } }, - "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", - "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.0.tgz", - "integrity": "sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==", + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "is-buffer": "^1.1.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=0.10.0" } }, - "node_modules/read-pkg": { - "version": "3.0.0", + "node_modules/expand-brackets/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, - "license": "MIT", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/read-pkg-up": { - "version": "3.0.0", + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, - "license": "MIT", "dependencies": { - "pify": "^3.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/readable-stream": { - "version": "2.3.7", + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "dev": true, "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" }, "engines": { - "node": ">=8.10.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "dev": true, + "node_modules/express": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", "dependencies": { - "resolve": "^1.1.6" + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.19.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.7", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.10.0" } }, - "node_modules/redent": { - "version": "3.0.0", - "dev": true, + "node_modules/express-graphql": { + "version": "0.12.0", "license": "MIT", "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "accepts": "^1.3.7", + "content-type": "^1.0.4", + "http-errors": "1.8.0", + "raw-body": "^2.4.1" }, "engines": { - "node": ">=8" + "node": ">= 10.x" + }, + "peerDependencies": { + "graphql": "^14.7.0 || ^15.3.0" } }, - "node_modules/redeyed": { - "version": "0.4.4", + "node_modules/express-graphql/node_modules/http-errors": { + "version": "1.8.0", "license": "MIT", "dependencies": { - "esprima": "~1.0.4" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/redeyed/node_modules/esprima": { - "version": "1.0.4", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/express-jwt": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/express-jwt/-/express-jwt-6.1.1.tgz", + "integrity": "sha512-m8gkY04v5jtiFZn6bYQINYX/DVXq1DVb5nIW7H8l87qJ4BBvtQKFRpxyRE31odct7OPfHdT+B8678zJHhlMrpw==", + "dependencies": { + "async": "^1.5.0", + "express-unless": "^1.0.0", + "jsonwebtoken": "^8.1.0", + "lodash": "^4.17.21" }, "engines": { - "node": ">=0.4.0" + "node": ">= 8.0.0" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, + "node_modules/express-unless": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/express-unless/-/express-unless-1.0.0.tgz", + "integrity": "sha512-zXSSClWBPfcSYjg0hcQNompkFN/MxQQ53eyrzm9BYgik2ut2I7PxAf2foVqBRMYCwWaZx/aWodi+uk76npdSAw==" + }, + "node_modules/express/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">= 0.6" } }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "dev": true, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", "license": "MIT", "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" + "ms": "2.0.0" } }, - "node_modules/registry-url": { - "version": "5.1.0", + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/express/node_modules/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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, - "license": "MIT", "dependencies": { - "rc": "^1.2.8" + "is-extendable": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/remote-git-tags": { - "version": "3.0.0", + "node_modules/external-editor": { + "version": "3.1.0", "dev": true, "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/repeating": { - "version": "2.0.1", + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, - "license": "MIT", "dependencies": { - "is-finite": "^1.0.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/require-directory": { - "version": "2.1.1", + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, - "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", + "node_modules/extract-files": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", + "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^12.20 || >= 14.13" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" } }, - "node_modules/require-relative": { - "version": "0.8.7", + "node_modules/extract-from-css": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/extract-from-css/-/extract-from-css-0.4.4.tgz", + "integrity": "sha1-HqffLnx8brmSL6COitrqSG9vj5I=", "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.20.0", - "license": "MIT", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "css": "^2.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0", + "npm": ">=2.0.0" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dependencies": { - "resolve-from": "^5.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fast-text-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", + "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", "dev": true, - "license": "MIT", "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "punycode": "^1.3.2" } }, - "node_modules/resolve-from": { - "version": "5.0.0", + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/fast-xml-parser": { + "version": "3.19.0", "license": "MIT", - "engines": { - "node": ">=8" + "bin": { + "xml2js": "cli.js" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" } }, - "node_modules/resolve-global": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "optional": true, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.11.0", + "license": "ISC", "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" + "reusify": "^1.0.4" } }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/responselike": { - "version": "1.0.2", + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "dev": true, - "license": "MIT", "dependencies": { - "lowercase-keys": "^1.0.0" + "bser": "2.1.1" } }, - "node_modules/restore-cursor": { + "node_modules/fecha": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", + "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "dev": true, + "license": "ISC" + }, + "node_modules/figures": { "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=4" } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "1.2.0", + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.8.0" } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "2.0.1", - "dev": true, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^1.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/ret": { - "version": "0.1.15", - "license": "MIT", + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, "engines": { - "node": ">=0.12" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, "engines": { - "node": ">= 4" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/retry-request": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", - "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "dev": true + }, + "node_modules/file-system-cache": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", + "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", + "dev": true, "dependencies": { - "debug": "^4.1.1", - "extend": "^3.0.2" - }, - "engines": { - "node": ">=8.10.0" + "bluebird": "^3.3.5", + "fs-extra": "^0.30.0", + "ramda": "^0.21.0" } }, - "node_modules/reusify": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node_modules/file-system-cache/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" } }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "node_modules/file-system-cache/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } }, - "node_modules/rimraf": { - "version": "3.0.2", + "node_modules/file-system-cache/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-async": { - "version": "2.4.1", - "dev": true, - "license": "MIT", + "node_modules/file-uri-to-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", + "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", "engines": { - "node": ">=0.12.0" + "node": ">= 6" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/fill-range": { + "version": "7.0.1", "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/rxjs": { - "version": "6.6.7", - "dev": true, - "license": "Apache-2.0", + "node_modules/finalhandler": { + "version": "1.1.2", + "license": "MIT", "dependencies": { - "tslib": "^1.9.0" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "engines": { - "npm": ">=2.0.0" + "node": ">= 0.8" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", - "engines": { - "node": ">=10" + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", "license": "MIT" }, - "node_modules/sax": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "dependencies": { - "xmlchars": "^2.2.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/selderee": { - "version": "0.6.0", - "license": "MIT", + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "dependencies": { - "parseley": "^0.7.0" + "locate-path": "^3.0.0" }, - "funding": { - "url": "https://ko-fi.com/killymxi" + "engines": { + "node": ">=6" } }, - "node_modules/semantic-release": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.2.tgz", - "integrity": "sha512-7tPonjZxukKECmClhsfyMKDt0GR38feIC2HxgyYaBi+9tDySBLjK/zYDLhh+m6yjnHIJa9eBTKYE7k63ZQcYbw==", + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { - "@semantic-release/commit-analyzer": "^9.0.2", - "@semantic-release/error": "^3.0.0", - "@semantic-release/github": "^8.0.0", - "@semantic-release/npm": "^9.0.0", - "@semantic-release/release-notes-generator": "^10.0.0", - "aggregate-error": "^3.0.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.0.0", - "env-ci": "^5.0.0", - "execa": "^5.0.0", - "figures": "^3.0.0", - "find-versions": "^4.0.0", - "get-stream": "^6.0.0", - "git-log-parser": "^1.2.0", - "hook-std": "^2.0.0", - "hosted-git-info": "^4.0.0", - "lodash": "^4.17.21", - "marked": "^4.0.10", - "marked-terminal": "^5.0.0", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "p-reduce": "^2.0.0", - "read-pkg-up": "^7.0.0", - "resolve-from": "^5.0.0", - "semver": "^7.3.2", - "semver-diff": "^3.1.1", - "signale": "^1.2.1", - "yargs": "^16.2.0" - }, - "bin": { - "semantic-release": "bin/semantic-release.js" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=16 || ^14.17" + "node": ">=6" } }, - "node_modules/semantic-release/node_modules/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=", + "node_modules/find-cache-dir/node_modules/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, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=6" } }, - "node_modules/semantic-release/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "p-limit": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/semantic-release/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/find-cache-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/semantic-release/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "find-up": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/semantic-release/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/find-cache-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "semver": "bin/semver" } }, - "node_modules/semantic-release/node_modules/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==", + "node_modules/find-node-modules": { + "version": "2.1.2", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "findup-sync": "^4.0.0", + "merge": "^2.1.0" } }, - "node_modules/semantic-release/node_modules/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==", + "node_modules/find-root": { + "version": "1.1.0", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/semantic-release/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/find-up": { + "version": "2.1.0", "dev": true, + "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "locate-path": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/semantic-release/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "semver-regex": "^3.1.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/find-versions/node_modules/semver-regex": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz", + "integrity": "sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver": { - "version": "7.3.5", - "license": "ISC", + "node_modules/findup-sync": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/semver-diff": { - "version": "3.1.1", + "node_modules/flat-cache": { + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.3.0" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=8" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", + "node_modules/flatted": { + "version": "3.1.1", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } + "license": "ISC" }, - "node_modules/semver-utils": { - "version": "1.1.4", - "dev": true, - "license": "APACHEv2" + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, + "node_modules/flow-parser": { + "version": "0.174.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.174.1.tgz", + "integrity": "sha512-nDMOvlFR+4doLpB3OJpseHZ7uEr3ENptlF6qMas/kzQmNcLzMwfQeFX0gGJ/+em7UdldB/nGsk55tDTOvjbCuw==", + "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=0.4.0" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, "dependencies": { - "ms": "2.0.0" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "node_modules/fn.name": { + "version": "1.1.0", + "license": "MIT" }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">= 0.8.0" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sharkdown": { - "version": "0.1.1", - "license": "BSD-2-Clause", + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", + "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", + "dev": true, "dependencies": { - "cardinal": "~0.4.2", - "minimist": "0.0.5", - "split": "~0.2.10" + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" }, - "bin": { - "sharkdown": "sharkdown" + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } } }, - "node_modules/sharkdown/node_modules/minimist": { - "version": "0.0.5", - "license": "MIT" - }, - "node_modules/sharkdown/node_modules/split": { - "version": "0.2.10", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, "dependencies": { - "through": "2" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "license": "MIT", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "dependencies": { - "shebang-regex": "^3.0.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" + "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" }, "engines": { - "node": ">=4" - } - }, - "node_modules/shelljs/node_modules/interpret": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/shiki": { - "version": "0.9.12", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.12.tgz", - "integrity": "sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { - "jsonc-parser": "^3.0.0", - "onigasm": "^2.2.5", - "vscode-textmate": "5.2.0" - } - }, - "node_modules/shpjs": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/shpjs/-/shpjs-4.0.2.tgz", - "integrity": "sha512-yiyc7FyOCnVeF6UiJmKMxg5P/x0MQIUnH3m+OhFb2eic39WZo40b7jxh+zkhj309kA2Hh2t5La+kFv8Im94C3g==", - "dependencies": { - "jszip": "^3.5.0", - "lie": "^3.0.1", - "lru-cache": "^2.7.0", - "parsedbf": "^1.1.0", - "proj4": "^2.1.4" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/shpjs/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" - }, - "node_modules/side-channel": { - "version": "1.0.4", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "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, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, - "dependencies": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, "engines": { - "node": ">=6" + "node": ">= 10.0.0" } }, - "node_modules/signale/node_modules/ansi-styles": { - "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, + "node_modules/form-data": { + "version": "3.0.1", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/signale/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, "engines": { - "node": ">=4" + "node": ">=0.4.x" } }, - "node_modules/signale/node_modules/color-convert": { - "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, - "dependencies": { - "color-name": "1.1.3" + "node_modules/formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", + "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" } }, - "node_modules/signale/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/signale/node_modules/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=", + "node_modules/fp-and-or": { + "version": "0.1.3", "dev": true, + "license": "ISC", "engines": { - "node": ">=0.8.0" + "node": ">=10" } }, - "node_modules/signale/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/frac": { + "version": "1.1.2", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true, "engines": { - "node": ">=4" + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" } }, - "node_modules/signale/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "map-cache": "^0.2.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" } }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "license": "MIT" - }, - "node_modules/sisteransi": { - "version": "1.0.5", + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-access": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "null-check": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, + "node_modules/fs-capacitor": { + "version": "6.2.0", "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=10" } }, - "node_modules/snakeize": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz", - "integrity": "sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0=" - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "node_modules/fs-extra": { + "version": "8.1.0", + "license": "MIT", "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 8" } }, - "node_modules/source-map": { - "version": "0.6.1", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, - "node_modules/spawn-error-forwarder": { + "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", - "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/spawn-please": { - "version": "1.0.0", + "node_modules/fsevents": { + "version": "2.3.2", "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" + "node_modules/ftp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "license": "MIT", + "node_modules/ftp/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.8", - "dev": true, - "license": "CC0-1.0" + "node_modules/ftp/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, - "node_modules/splaytree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", - "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" + "node_modules/function-bind": { + "version": "1.1.1", + "license": "MIT" }, - "node_modules/split": { - "version": "1.0.1", + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, - "license": "MIT", "dependencies": { - "through": "2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/split2": { - "version": "3.2.2", - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" - } + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, - "node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "node_modules/functions-have-names": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", + "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", + "node_modules/fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", + "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", "dev": true, - "license": "BSD-3-Clause" + "engines": { + "node": ">=6" + } }, - "node_modules/sql-formatter": { - "version": "4.0.2", + "node_modules/gauge": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.3.tgz", + "integrity": "sha512-ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw==", "dev": true, - "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" }, - "bin": { - "sql-formatter": "bin/sqlfmt.js" + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "node_modules/sql-formatter/node_modules/argparse": { - "version": "2.0.1", + "node_modules/gauge/node_modules/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, - "license": "Python-2.0" - }, - "node_modules/ssf": { - "version": "0.11.2", - "license": "Apache-2.0", - "dependencies": { - "frac": "~1.1.2" - }, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "minipass": "^3.1.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/stack-trace": { - "version": "0.0.10", - "license": "MIT", + "node_modules/gaxios": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", + "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", + "dependencies": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.1" + }, "engines": { - "node": "*" + "node": ">=10" } }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, + "node_modules/gcp-metadata": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", + "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", "dependencies": { - "escape-string-regexp": "^2.0.0" + "gaxios": "^4.0.0", + "json-bigint": "^1.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/stack-utils/node_modules/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==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/standard-version": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.3.2.tgz", - "integrity": "sha512-u1rfKP4o4ew7Yjbfycv80aNMN2feTiqseAhUhrrx2XtdQGmu7gucpziXe68Z4YfHVqlxVEzo4aUA0Iu3VQOTgQ==", - "dev": true, + "node_modules/geojson-rewind": { + "version": "0.3.1", + "license": "ISC", "dependencies": { - "chalk": "^2.4.2", - "conventional-changelog": "3.1.24", - "conventional-changelog-config-spec": "2.1.0", - "conventional-changelog-conventionalcommits": "4.6.1", - "conventional-recommended-bump": "6.1.0", - "detect-indent": "^6.0.0", - "detect-newline": "^3.1.0", - "dotgitignore": "^2.1.0", - "figures": "^3.1.0", - "find-up": "^5.0.0", - "fs-access": "^1.0.1", - "git-semver-tags": "^4.0.0", - "semver": "^7.1.1", - "stringify-package": "^1.0.1", - "yargs": "^16.0.0" + "@mapbox/geojson-area": "0.2.2", + "concat-stream": "~1.6.0", + "minimist": "1.2.0", + "sharkdown": "^0.1.0" }, "bin": { - "standard-version": "bin/cli.js" - }, - "engines": { - "node": ">=10" + "geojson-rewind": "geojson-rewind" } }, - "node_modules/standard-version/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/geojson-rewind/node_modules/minimist": { + "version": "1.2.0", + "license": "MIT" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, + "license": "ISC", "engines": { - "node": ">=4" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/standard-version/node_modules/chalk": { - "version": "2.4.2", + "node_modules/get-intrinsic": { + "version": "1.1.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/standard-version/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/standard-version/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/standard-version/node_modules/compare-func": { - "version": "2.0.0", + "node_modules/get-pkg-repo": { + "version": "1.4.0", "dev": true, "license": "MIT", "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" + }, + "bin": { + "get-pkg-repo": "cli.js" } }, - "node_modules/standard-version/node_modules/conventional-changelog": { - "version": "3.1.24", + "node_modules/get-pkg-repo/node_modules/camelcase": { + "version": "2.1.1", "dev": true, "license": "MIT", - "dependencies": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/conventional-changelog-angular": { - "version": "5.0.12", + "node_modules/get-pkg-repo/node_modules/camelcase-keys": { + "version": "2.1.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/conventional-changelog-core": { - "version": "4.2.2", + "node_modules/get-pkg-repo/node_modules/decamelize": { + "version": "1.2.0", "dev": true, "license": "MIT", - "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^4.0.18", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^1.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "shelljs": "^0.8.3", - "through2": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/conventional-changelog-jquery": { - "version": "3.0.11", + "node_modules/get-pkg-repo/node_modules/find-up": { + "version": "1.1.2", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "q": "^1.5.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/dargs": { - "version": "7.0.0", + "node_modules/get-pkg-repo/node_modules/get-stdin": { + "version": "4.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/dateformat": { - "version": "3.0.3", + "node_modules/get-pkg-repo/node_modules/indent-string": { + "version": "2.1.0", "dev": true, "license": "MIT", + "dependencies": { + "repeating": "^2.0.0" + }, "engines": { - "node": "*" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/dot-prop": { - "version": "5.3.0", + "node_modules/get-pkg-repo/node_modules/load-json-file": { + "version": "1.1.0", "dev": true, "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/get-pkg-repo/node_modules/map-obj": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/figures": { - "version": "3.2.0", + "node_modules/get-pkg-repo/node_modules/meow": { + "version": "3.7.0", "dev": true, "license": "MIT", "dependencies": { - "escape-string-regexp": "^1.0.5" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/find-up": { - "version": "5.0.0", + "node_modules/get-pkg-repo/node_modules/parse-json": { + "version": "2.2.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "error-ex": "^1.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/git-raw-commits": { - "version": "2.0.10", + "node_modules/get-pkg-repo/node_modules/path-exists": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/git-semver-tags": { - "version": "4.1.1", + "node_modules/get-pkg-repo/node_modules/path-type": { + "version": "1.1.0", "dev": true, "license": "MIT", "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/standard-version/node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/get-pkg-repo/node_modules/read-pkg": { + "version": "1.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/standard-version/node_modules/hosted-git-info": { - "version": "4.0.2", - "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/is-obj": { - "version": "2.0.0", + "node_modules/get-pkg-repo/node_modules/read-pkg-up": { + "version": "1.0.1", "dev": true, "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/locate-path": { - "version": "6.0.0", + "node_modules/get-pkg-repo/node_modules/redent": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/meow": { - "version": "8.1.2", + "node_modules/get-pkg-repo/node_modules/strip-bom": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "is-utf8": "^0.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/meow/node_modules/find-up": { - "version": "4.1.0", + "node_modules/get-pkg-repo/node_modules/strip-indent": { + "version": "1.0.1", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/standard-version/node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/get-pkg-repo/node_modules/trim-newlines": { + "version": "1.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/get-stdin": { + "version": "8.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/standard-version/node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/standard-version/node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "dev": true, - "license": "MIT", + "node_modules/get-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", + "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/standard-version/node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" + }, + "node_modules/git-log-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", + "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" + "dependencies": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "~0.6.6" } }, - "node_modules/standard-version/node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/git-log-parser/node_modules/split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "through2": "~2.0.0" } }, - "node_modules/standard-version/node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", + "node_modules/git-remote-origin-url": { + "version": "2.0.0", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "MIT", + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/standard-version/node_modules/meow/node_modules/semver": { - "version": "5.7.1", + "node_modules/gitconfiglocal": { + "version": "1.0.0", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" + "license": "BSD", + "dependencies": { + "ini": "^1.3.2" } }, - "node_modules/standard-version/node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", + "node_modules/glob": { + "version": "7.1.4", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "license": "ISC", + "dependencies": { + "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" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "*" } }, - "node_modules/standard-version/node_modules/normalize-package-data": { - "version": "3.0.2", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", "dependencies": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/standard-version/node_modules/p-locate": { - "version": "5.0.0", + "node_modules/glob-promise": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", + "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "@types/glob": "*" }, "engines": { - "node": ">=10" + "node": ">=4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "glob": "*" } }, - "node_modules/standard-version/node_modules/path-exists": { - "version": "4.0.0", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" } }, - "node_modules/standard-version/node_modules/readable-stream": { - "version": "3.6.0", + "node_modules/global-dirs": { + "version": "0.1.1", "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "ini": "^1.3.4" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/standard-version/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/global-modules": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/through2": { - "version": "4.0.2", + "node_modules/global-prefix": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "readable-stream": "3" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/standard-version/node_modules/yargs-parser": { - "version": "20.2.7", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", "dev": true, "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/statuses": { - "version": "1.5.0", - "license": "MIT", + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "node_modules/globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", "dev": true, "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stream-events": { - "version": "1.0.5", - "license": "MIT", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dependencies": { - "stubs": "^3.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true }, - "node_modules/streamsearch": { - "version": "0.1.2", + "node_modules/google-auth-library": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.12.0.tgz", + "integrity": "sha512-RS/whvFPMoF1hQNxnoVET3DWKPBt1Xgqe2rY0k+Jn7TNhoHlwdnSe7Rlcbo2Nub3Mt2lUVz26X65aDQrWp6x8w==", + "dependencies": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=10" } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", + "node_modules/google-auth-library/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, + "node_modules/google-auth-library/node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", "dependencies": { - "safe-buffer": "~5.1.0" + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" + "node_modules/google-auth-library/node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, + "node_modules/google-p12-pem": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", + "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "node-forge": "^1.0.0" + }, + "bin": { + "gp12-pem": "build/src/bin/gp12-pem.js" }, "engines": { "node": ">=10" } }, - "node_modules/string-width": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/graphql": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.3.0.tgz", + "integrity": "sha512-xm+ANmA16BzCT5pLjuXySbQVFwH3oJctUVdy81w1sV0vBU0KgDdBGtxQOUd5zqOBk/JayAFeG8Dlmeq74rjm/A==", "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.16.0 || >=16.0.0" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", + "node_modules/graphql-fields": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/graphql-react": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/graphql-react/-/graphql-react-15.0.0.tgz", + "integrity": "sha512-isqUWv7nLioxHT09LlZN6RWCvWBVkJUN27RCvoQ8BpflnmxkB0u03/XFQK90+5Y78/G3mdqrcA1J9hGX2V1Xkg==", "dev": true, - "license": "MIT", + "dependencies": { + "extract-files": "^11.0.0", + "isobject": "^4.0.0", + "react-waterfall-render": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": "^12.20 || >= 14.13" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + }, + "peerDependencies": { + "react": "16.14 - 17", + "react-dom": "16.14 - 17" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/graphql-scalars": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.15.0.tgz", + "integrity": "sha512-uLi71egHsfF+A4XmnltPYRUnvy8uBsobRjhW6aBi305gpE/v52xkuKcjygV0CqeqdvRKmFhczh9HRx1lho2MRw==", "dependencies": { - "ansi-regex": "^3.0.0" + "tslib": "~2.3.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "tslib": "^2.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "dev": true, + "node_modules/graphql-type-json": { + "version": "0.3.2", "license": "MIT", + "peerDependencies": { + "graphql": ">=0.8.0" + } + }, + "node_modules/graphql-upload": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-13.0.0.tgz", + "integrity": "sha512-YKhx8m/uOtKu4Y1UzBFJhbBGJTlk7k4CydlUUiNrtxnwZv0WigbRHP+DVhRNKt7u7DXOtcKZeYJlGtnMXvreXA==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "busboy": "^0.3.1", + "fs-capacitor": "^6.2.0", + "http-errors": "^1.8.1", + "object-path": "^0.11.8" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >= 16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jaydenseric" + }, + "peerDependencies": { + "graphql": "0.13.1 - 16" } }, - "node_modules/stringify-package": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "node_modules/gtoken": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", + "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", "dependencies": { - "ansi-regex": "^5.0.1" + "gaxios": "^4.0.0", + "google-p12-pem": "^3.1.3", + "jws": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/gtoken/node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "node_modules/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==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/gtoken/node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" } }, - "node_modules/strip-indent": { - "version": "3.0.0", + "node_modules/handlebars": { + "version": "4.7.7", "dev": true, "license": "MIT", "dependencies": { - "min-indent": "^1.0.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">=8" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/strip-json-comments": { - "version": "3.0.1", + "node_modules/hard-rejection": { + "version": "2.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/stubs": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/superagent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz", - "integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==", - "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>.", + "node_modules/has": { + "version": "1.0.3", + "license": "MIT", "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.2", - "methods": "^1.1.2", - "mime": "^2.4.6", - "qs": "^6.9.4", - "readable-stream": "^3.6.0", - "semver": "^7.3.2" + "function-bind": "^1.1.1" }, "engines": { - "node": ">= 7.0.0" + "node": ">= 0.4.0" } }, - "node_modules/superagent-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-3.0.0.tgz", - "integrity": "sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==", + "node_modules/has-ansi": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "debug": "^4.3.2", - "proxy-agent": "^5.0.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=6" - }, - "peerDependencies": { - "superagent": ">= 0.15.4 || 1 || 2 || 3" + "node": ">=0.10.0" } }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/superagent/node_modules/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==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, + "node_modules/has-bigints": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/supertest": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.2.tgz", - "integrity": "sha512-wCw9WhAtKJsBvh07RaS+/By91NNE0Wh0DN19/hWPlBOU8tAfOtbZoVSV4xXeoKoxgPx0rx2y+y+8660XtE7jzg==", + "node_modules/has-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", "dev": true, "dependencies": { - "methods": "^1.1.2", - "superagent": "^7.1.0" + "is-glob": "^3.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/supertest/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/has-glob/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "is-extglob": "^2.1.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/supertest/node_modules/formidable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", - "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "dependencies": { - "dezalgo": "1.0.3", - "hexoid": "1.0.0", - "once": "1.4.0", - "qs": "6.9.3" + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/supertest/node_modules/formidable/node_modules/qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/supertest/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/supertest/node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "node_modules/has-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/supertest/node_modules/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==", + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/supertest/node_modules/superagent": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.1.tgz", - "integrity": "sha512-CQ2weSS6M+doIwwYFoMatklhRbx6sVNdB99OEJ5czcP3cng76Ljqus694knFWgOj3RkrtxZqIgpe6vhe0J7QWQ==", + "node_modules/has-values/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", - "debug": "^4.3.3", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.0.1", - "methods": "^1.1.2", - "mime": "^2.5.0", - "qs": "^6.10.1", - "readable-stream": "^3.6.0", - "semver": "^7.3.5" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=6.4.0 <13 || >=14" + "node": ">=0.10.0" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "is-buffer": "^1.1.5" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "node_modules/has-yarn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "node_modules/hash-base": { + "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, "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=4" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "node_modules/hash-base/node_modules/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, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">= 6" } }, - "node_modules/table/node_modules/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==", + "node_modules/hash-base/node_modules/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, - "engines": { - "node": ">=8" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "node_modules/hash-stream-validation": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz", + "integrity": "sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==" + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", "dev": true }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "node_modules/hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", "dev": true, "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tarn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", - "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "node_modules/hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "dev": true, "dependencies": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", "dev": true, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "node_modules/hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", "dev": true, "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "node_modules/hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "dev": true, "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/terminal-link/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/he": { + "version": "1.2.0", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/terminal-link/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/history": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.0.0.tgz", + "integrity": "sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==", "dev": true, "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" + "@babel/runtime": "^7.7.6" } }, - "node_modules/text-encoding-polyfill": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/text-encoding-polyfill/-/text-encoding-polyfill-0.6.7.tgz", - "integrity": "sha512-/DZ1XJqhbqRkCop6s9ZFu8JrFRwmVuHg4quIRm+ziFkR3N3ec6ck6yBvJ1GYeEQZhLVwRW0rZE+C3SSJpy0RTg==" - }, - "node_modules/text-extensions": { - "version": "1.9.0", + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/text-hex": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/text-table": { - "version": "0.2.0", + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "dev": true, - "license": "MIT" + "dependencies": { + "react-is": "^16.7.0" + } }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "node_modules/through": { - "version": "2.3.8", - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", + "node_modules/homedir-polyfill": { + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tildify": { + "node_modules/hook-std": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", + "integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/tmp": { - "version": "0.0.33", + "node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, - "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "whatwg-encoding": "^1.0.5" }, "engines": { - "node": ">=0.6.0" + "node": ">=10" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "node_modules/html-entities": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", "dev": true }, - "node_modules/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=", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", + "node_modules/html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "license": "MIT", + "node_modules/html-to-text": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-8.1.0.tgz", + "integrity": "sha512-Z9iYAqYK2c18GswSbnxJSeMs7lyJgwR2oIkDOyOHGBbYsPsG4HvT379jj3Lcbfko8A5ceyyMHAfkmp/BiXA9/Q==", "dependencies": { - "is-number": "^7.0.0" + "@selderee/plugin-htmlparser2": "^0.6.0", + "deepmerge": "^4.2.2", + "he": "^1.2.0", + "htmlparser2": "^6.1.0", + "minimist": "^1.2.5", + "selderee": "^0.6.0" + }, + "bin": { + "html-to-text": "bin/cli.js" }, "engines": { - "node": ">=8.0" + "node": ">=10.23.2" } }, - "node_modules/toidentifier": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.6" + "node_modules/html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/touch": { - "version": "3.1.0", + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", "dev": true, - "license": "ISC", "dependencies": { - "nopt": "~1.0.10" + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" }, - "bin": { - "nodetouch": "bin/nodetouch.js" + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" } }, - "node_modules/touch/node_modules/nopt": { - "version": "1.0.10", + "node_modules/html-webpack-plugin/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "license": "MIT", "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, + "node_modules/http-errors/node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dependencies": { - "punycode": "^2.1.1" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "node_modules/ts-jest": { - "version": "27.1.3", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz", - "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==", - "dev": true, + "node_modules/http-proxy-middleware": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", + "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12.0.0" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "esbuild": "~0.14.0", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" + "@types/express": "^4.17.13" }, "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { + "@types/express": { "optional": true } } }, - "node_modules/ts-jest/node_modules/yargs-parser": { - "version": "20.2.7", - "dev": true, - "license": "ISC", + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "engines": { "node": ">=10" - } - }, - "node_modules/ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", - "dependencies": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "bin": { - "acorn": "bin/acorn" + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=0.4.0" + "node": ">= 6" } }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=10.17.0" } }, - "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" + "ms": "^2.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "node_modules/husky": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "safer-buffer": ">= 2.1.2 < 3" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "node_modules/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, + "dependencies": { + "postcss": "^7.0.14" + }, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/tsutils": { - "version": "3.21.0", + "node_modules/icss-utils/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, - "license": "MIT", "dependencies": { - "tslib": "^1.8.1" + "picocolors": "^0.2.1", + "source-map": "^0.6.1" }, "engines": { - "node": ">= 6" + "node": ">=6.0.0" }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", "dev": true, - "license": "0BSD" + "license": "ISC" }, - "node_modules/tus-node-server": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/tus-node-server/-/tus-node-server-0.5.2.tgz", - "integrity": "sha512-R+tzYO29beg8YNhEekzxtuScP5+IbNUPOM69S4Pc8+xJkCVHuX8VsfPuEzFkpLATLRi4qGi0cKrpIyfQWiVfaA==", + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, "dependencies": { - "@google-cloud/storage": "^5.18.1", - "aws-sdk": "^2.1064.0", - "configstore": "^5.0.1", - "debug": "^4.3.3" - }, - "engines": { - "node": ">=10.0" + "minimatch": "^3.0.4" } }, - "node_modules/type-check": { - "version": "0.4.0", + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "node_modules/import-fresh": { + "version": "3.3.0", "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/type-fest": { - "version": "0.8.1", - "license": "(MIT OR CC0-1.0)", + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "node": ">=12.2" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "license": "MIT" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", + "node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/typedoc": { - "version": "0.21.10", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.21.10.tgz", - "integrity": "sha512-Y0wYIehkjkPfsp3pv86fp3WPHUcOf8pnQUDLwG1PqSccUSqdsv7Pz1Gd5WrTJvXQB2wO1mKlZ8qW8qMiopKyjA==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "glob": "^7.1.7", - "handlebars": "^4.7.7", - "lunr": "^2.3.9", - "marked": "^4.0.10", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shiki": "^0.9.8", - "typedoc-default-themes": "^0.12.10" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "bin": { - "typedoc": "bin/typedoc" + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">= 12.10.0" + "node": ">=8" }, - "peerDependencies": { - "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedoc-default-themes": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz", - "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==", - "dev": true, + "node_modules/imurmurhash": { + "version": "0.1.4", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=0.8.19" } }, - "node_modules/typedoc-plugin-pages-fork": { - "version": "0.0.1", + "node_modules/indent-string": { + "version": "4.0.0", "dev": true, "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", "dependencies": { - "compare-versions": "^3.6.0", - "typedoc-default-themes": "^0.10.1" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/typedoc-plugin-pages-fork/node_modules/typedoc-default-themes": { - "version": "0.10.2", + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", "dev": true, - "license": "Apache-2.0", + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "dev": true + }, + "node_modules/inquirer": { + "version": "6.5.2", + "dev": true, + "license": "MIT", "dependencies": { - "lunr": "^2.3.8" + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "node_modules/typedoc-plugin-sourcefile-url": { - "version": "1.0.6", + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, - "license": "MIT", - "peerDependencies": { - "typedoc": ">=0.16.0" + "engines": { + "node": ">=6" } }, - "node_modules/typedoc/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", "dev": true, + "license": "MIT", "dependencies": { - "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" + "color-convert": "^1.9.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, - "node_modules/typescript": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", - "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "node_modules/inquirer/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=4.2.0" + "node": ">=4" } }, - "node_modules/uglify-js": { - "version": "3.13.7", + "node_modules/inquirer/node_modules/color-convert": { + "version": "1.9.3", "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/inquirer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.1", + "node_modules/inquirer/node_modules/has-flag": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "5.2.0", "dev": true, + "license": "MIT", "dependencies": { - "unique-slug": "^2.0.0" + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "node_modules/inquirer/node_modules/supports-color": { + "version": "5.5.0", "dev": true, + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/unique-string": { - "version": "2.0.0", - "license": "MIT", + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, "dependencies": { - "crypto-random-string": "^2.0.0" + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/unique-string/node_modules/crypto-random-string": { - "version": "2.0.0", + "node_modules/interpret": { + "version": "2.2.0", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } }, - "node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "engines": { - "node": ">= 4.0.0" + "node": ">= 0.10" } }, - "node_modules/unixify": { + "node_modules/is-accessor-descriptor": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "dependencies": { - "normalize-path": "^2.1.1" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" }, "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/update-notifier/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/update-notifier/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "dependencies": { - "ci-info": "^2.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, - "bin": { - "is-ci": "bin.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/url": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "node_modules/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, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", + "node_modules/is-boolean-object": { + "version": "1.1.1", "dev": true, "license": "MIT", "dependencies": { - "prepend-http": "^2.0.0" + "call-bind": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, - "dependencies": { - "fast-url-parser": "^1.1.3" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, "engines": { - "node": ">= 0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uuid": { - "version": "8.3.2", - "license": "MIT", + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, "bin": { - "uuid": "dist/bin/uuid" + "is-ci": "bin.js" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "dev": true, - "license": "MIT" + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", - "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "kind-of": "^6.0.0" }, "engines": { - "node": ">=10.12.0" + "node": ">=0.10.0" } }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "node_modules/is-date-object": { + "version": "1.0.4", "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { - "builtins": "^1.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, "engines": { - "node": ">=12" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node_modules/is-dom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", + "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "dev": true, + "dependencies": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" } }, - "node_modules/vm2": { - "version": "3.9.8", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.8.tgz", - "integrity": "sha512-/1PYg/BwdKzMPo8maOZ0heT7DLI0DAFTm7YQaz/Lim9oIaFZsJs3EdtalvXuBfZwczNwsYhju75NW4d6E+4q+w==", + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" + "acorn": "^7.1.1", + "object-assign": "^4.1.1" } }, - "node_modules/vm2/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "bin": { - "acorn": "bin/acorn" - }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/vm2/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, - "node_modules/vue-eslint-parser": { - "version": "7.1.1", + "node_modules/is-finite": { + "version": "1.1.0", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "eslint-scope": "^5.0.0", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.2.1", - "esquery": "^1.0.1", - "lodash": "^4.17.15" - }, "engines": { - "node": ">=8.10" + "node": ">=0.10.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "1.3.0", + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "6.2.1", + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "license": "BSD-2-Clause", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "dependencies": { - "xml-name-validator": "^3.0.0" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/is-installed-globally/node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "dev": true, "dependencies": { - "makeerror": "1.0.12" + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "node_modules/is-installed-globally/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, "engines": { - "node": ">=10.4" + "node": ">=10" } }, - "node_modules/wgs84": { - "version": "0.0.0", - "license": "BSD-2-Clause" + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/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 - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "node_modules/is-negative-zero": { + "version": "2.0.1", "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/which": { - "version": "2.0.2", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, + "node_modules/is-number": { + "version": "7.0.0", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=0.12.0" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", + "node_modules/is-number-object": { + "version": "1.0.5", "dev": true, "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/widest-line/node_modules/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==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/is-plain-obj": { + "version": "1.1.0", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/winston": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz", - "integrity": "sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w==", - "dependencies": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, "engines": { - "node": ">= 12.0.0" + "node": ">=0.10.0" } }, - "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" - } + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true }, - "node_modules/winston-transport/node_modules/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==", + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/winston/node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/winston/node_modules/readable-stream": { - "version": "3.6.0", + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wkt-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.3.1.tgz", - "integrity": "sha512-XK5qV+Y5gsygQfHx2/cS5a7Zxsgleaw8iX5UPC5eOXPc0TgJAu1JB9lr0iYYX3zAnN3p0aNiaN5c+1Bdblxwrg==" - }, - "node_modules/wmf": { - "version": "1.0.2", - "license": "Apache-2.0", + "node_modules/is-supported-regexp-flag": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", + "dev": true, "engines": { - "node": ">=0.8" + "node": ">=0.10.0" } }, - "node_modules/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==", + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { - "node": ">=0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/word-wrap": { - "version": "1.2.3", + "node_modules/is-text-path": { + "version": "1.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/wordwrap": { + "node_modules/is-typedarray": { "version": "1.0.0", + "license": "MIT" + }, + "node_modules/is-utf8": { + "version": "0.2.1", "dev": true, "license": "MIT" }, - "node_modules/wrap-ansi": { - "version": "7.0.0", + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "call-bind": "^1.0.0" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-whitespace": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", + "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", + "dev": true, "engines": { - "node": ">=10" - }, + "node": ">=0.10.0" + } + }, + "node_modules/is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "dev": true, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.2", + "node_modules/is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "is-docker": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/wrappy": { - "version": "1.0.2", + "node_modules/is-yarn-global": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", "license": "ISC" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "node_modules/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, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "node_modules/issue-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">=10.13" } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "license": "MIT", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/xlsx": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.4.tgz", - "integrity": "sha512-u2plLVR/Ju2NxByPcWuxW3eOHEE/EH8w0vDyvHx8pFa8qO3fpq+l/57msr/Eq4cY5LErFOFD4sp4jIyPd6nFzQ==", + "node_modules/istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dev": true, "dependencies": { - "adler-32": "~1.3.0", - "cfb": "~1.2.1", - "codepage": "~1.15.0", - "crc-32": "~1.2.1", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - }, - "bin": { - "xlsx": "bin/xlsx.njs" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">=0.8" - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" + "node": ">=8" } }, - "node_modules/xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "engines": { - "node": ">=4.0" + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "node_modules/istanbul-lib-report": { + "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, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, "engines": { - "node": ">=0.4" + "node": ">=10" } }, - "node_modules/y18n": { - "version": "5.0.8", + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, - "license": "ISC", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" + "node_modules/iterall": { + "version": "1.3.0", + "license": "MIT" }, - "node_modules/yaml": { - "version": "1.10.2", + "node_modules/iterate-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", + "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs": { - "version": "16.2.0", + "node_modules/iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", + "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", "dev": true, - "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/java-properties": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", + "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6.0" } }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.2", + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "20.2.7", + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, - "license": "ISC", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, "engines": { - "node": ">=10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, "engines": { - "node": ">=6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "license": "MIT", + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">=10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "packages/api": { - "version": "0.38.0", - "license": "AGPL-3.0-or-later", + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, "dependencies": { - "@graphql-tools/graphql-file-loader": "^7.3.5", - "@graphql-tools/load": "^7.5.3", - "@placemarkio/check-geojson": "^0.1.8", - "@sentry/node": "^6.18.2", - "@sentry/types": "^6.18.2", - "@sindresorhus/slugify": "^1.1.2", - "@turf/center": "^6.5.0", - "@turf/intersect": "^6.5.0", - "@types/basic-auth": "^1.1.3", - "@types/bcryptjs": "^2.4.2", - "@types/compression": "1.7.2", - "@types/cookie-parser": "^1.4.2", - "@types/cors": "^2.8.12", - "@types/cron": "^1.7.3", - "@types/dateformat": "^5.0.0", - "@types/express": "^4.17.13", - "@types/express-jwt": "6.0.4", - "@types/express-serve-static-core": "^4.17.28", - "@types/geojson": "^7946.0.8", - "@types/graphql-type-json": "^0.3.2", - "@types/graphql-upload": "^8.0.11", - "@types/jest": "^27.4.1", - "@types/jsonwebtoken": "^8.5.8", - "@types/node": "^17.0.21", - "@types/node-fetch": "^2.5.12", - "@types/node-mailjet": "^3.3.8", - "@types/pg": "^8.6.5", - "@types/proj4": "^2.5.2", - "@types/shpjs": "^3.4.1", - "@types/sql-formatter": "^2.3.0", - "basic-auth": "^2.0.1", - "bcryptjs": "^2.4.3", - "camelcase": "^6.3.0", - "cerbere": "^0.2.3", - "chalk": "^4.1.2", - "compression": "^1.7.4", - "cookie-parser": "^1.4.6", - "cors": "^2.8.5", - "cron": "^1.8.2", - "cross-env": "^7.0.3", - "crypto-random-string": "^3.3.1", - "dateformat": "^4.5.1", - "decamelize": "^5.0.0", - "dotenv": "^16.0.0", - "email-regex": "4.0.0", - "express": "^4.17.3", - "express-graphql": "^0.12.0", - "express-jwt": "^6.1.1", - "geojson-rewind": "^0.3.1", - "graphql": "^16.3.0", - "graphql-fields": "^2.0.3", - "graphql-scalars": "^1.15.0", - "graphql-type-json": "^0.3.2", - "graphql-upload": "^13.0.0", - "html-to-text": "^8.1.0", - "jsondiffpatch": "^0.4.1", - "jsonwebtoken": "^8.5.1", - "jszip": "^3.7.1", - "knex": "1.0.4", - "make-dir": "^3.1.0", - "matomo-tracker": "^2.2.4", - "node-fetch": "^2.6.5", - "node-mailjet": "^3.3.7", - "objection": "^3.0.1", - "p-queue": "^6.6.2", - "pg": "^8.7.3", - "proj4": "^2.8.0", - "shpjs": "^4.0.2", - "ts-node": "^10.7.0", - "tus-node-server": "^0.5.2", - "typescript": "^4.6.2", - "winston": "^3.6.0", - "xlsx": "^0.18.4" - }, - "devDependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", "@jest/types": "^27.5.1", - "@semantic-release/changelog": "^6.0.1", - "@semantic-release/git": "^10.0.1", - "@types/supertest": "^2.0.11", - "@typescript-eslint/eslint-plugin": "^5.15.0", - "@typescript-eslint/parser": "^5.15.0", - "codecov": "^3.8.3", - "commitizen": "^4.2.4", - "cz-conventional-changelog": "^3.3.0", - "eslint": "^8.11.0", - "eslint-config-prettier": "^8.5.0", - "eslint-config-standard": "^17.0.0-1", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-standard": "^5.0.0", - "eslint-plugin-tsdoc": "^0.2.14", - "husky": "^7.0.4", - "jest": "^27.5.1", - "lint-staged": "^12.3.6", - "nodemon": "^2.0.15", - "npm-check-updates": "^12.5.3", - "pg-escape": "^0.2.0", - "prettier-eslint": "^13.0.0", - "semantic-release": "^19.0.2", - "sql-formatter": "^4.0.2", - "standard-version": "^9.3.2", - "supertest": "^6.2.2", - "ts-jest": "^27.1.3", - "typedoc": "^0.21.9", - "typedoc-plugin-pages-fork": "^0.0.1", - "typedoc-plugin-sourcefile-url": "^1.0.6" + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=16.12.0", - "npm": ">=7.24.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", + }, + "node_modules/jest-config/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@babel/core": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", - "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dev": true, - "requires": { - "@babel/code-frame": "^7.15.8", - "@babel/generator": "^7.15.8", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.8", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.8", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, "dependencies": { - "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "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 - } + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/generator": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, - "requires": { - "@babel/types": "^7.15.6", - "jsesc": "^2.5.1", - "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 - } + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "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 - } + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "node_modules/jest-fetch-mock": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz", + "integrity": "sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw==", "dev": true, - "requires": { - "@babel/types": "^7.15.4" + "dependencies": { + "cross-fetch": "^3.0.4", + "promise-polyfill": "^8.1.3" } }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, - "requires": { - "@babel/types": "^7.15.4" + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", "dev": true, - "requires": { - "@babel/types": "^7.15.4" + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, - "requires": { - "@babel/types": "^7.15.4" + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-plugin-utils": { + "node_modules/jest-message-util/node_modules/@babel/code-frame": { "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, - "requires": { - "@babel/types": "^7.15.4" + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true, - "requires": { - "@babel/types": "^7.15.4" + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", "dev": true, - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/jest-serializer-vue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz", + "integrity": "sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM=", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "dependencies": { + "pretty": "2.0.0" } }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/jest-specific-snapshot": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jest-specific-snapshot/-/jest-specific-snapshot-4.0.0.tgz", + "integrity": "sha512-YdW5P/MVwOizWR0MJwURxdrjdXvdG2MMpXKVGr7dZ2YrBmE6E6Ab74UL3DOYmGmzaCnNAW1CL02pY5MTHE3ulQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "jest-snapshot": "^26.3.0" + }, + "peerDependencies": { + "jest": ">= 26.0.0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/jest-specific-snapshot/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" } }, - "@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==", + "node_modules/jest-specific-snapshot/node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "@types/yargs-parser": "*" } }, - "@babel/plugin-syntax-numeric-separator": { - "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==", + "node_modules/jest-specific-snapshot/node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">= 10.14.2" } }, - "@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", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/jest-specific-snapshot/node_modules/expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "engines": { + "node": ">= 10.14.2" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/jest-specific-snapshot/node_modules/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": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@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==", + "node_modules/jest-specific-snapshot/node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/jest-specific-snapshot/node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "engines": { + "node": ">= 10.14.2" } }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "node_modules/jest-specific-snapshot/node_modules/jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "fsevents": "^2.1.2" } }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "node_modules/jest-specific-snapshot/node_modules/jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, "dependencies": { - "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - } + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" } }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", + "node_modules/jest-specific-snapshot/node_modules/jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, "dependencies": { - "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "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 - } + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "engines": { + "node": ">= 10.14.2" } }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "node_modules/jest-specific-snapshot/node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" + "engines": { + "node": ">= 10.14.2" } }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "node_modules/jest-specific-snapshot/node_modules/jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" + "node_modules/jest-specific-snapshot/node_modules/jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": ">= 10.14.2" + } }, - "@commitlint/execute-rule": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.2.0.tgz", - "integrity": "sha512-6nPwpN0hwTYmsH3WM4hCdN+NrMopgRIuQ0aqZa+jnwMoS/g6ljliQNYfL+m5WO306BaIu1W3yYpbW5aI8gEr0g==", + "node_modules/jest-specific-snapshot/node_modules/jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", "dev": true, - "optional": true + "dependencies": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.14.2" + } }, - "@commitlint/load": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.2.0.tgz", - "integrity": "sha512-Nhkv+hwWCCxWGjmE9jd1U8kfGGCkZVpwzlTtdKxpY+Aj2VCFg3BjY+qA81pMF3oAsIpxchSaZG5llb8kduVjYg==", + "node_modules/jest-specific-snapshot/node_modules/jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", "dev": true, - "optional": true, - "requires": { - "@commitlint/execute-rule": "^13.2.0", - "@commitlint/resolve-extends": "^13.2.0", - "@commitlint/types": "^13.2.0", - "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", "chalk": "^4.0.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0" + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">= 10.14.2" } }, - "@commitlint/resolve-extends": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.2.0.tgz", - "integrity": "sha512-HLCMkqMKtvl1yYLZ1Pm0UpFvd0kYjsm1meLOGZ7VkOd9G/XX+Fr1S2G5AT2zeiDw7WUVYK8lGVMNa319bnV+aw==", + "node_modules/jest-specific-snapshot/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "optional": true, - "requires": { - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "@commitlint/types": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.2.0.tgz", - "integrity": "sha512-RRVHEqmk1qn/dIaSQhvuca6k/6Z54G+r/KyimZ8gnAFielGiGUpsFRhIY3qhd5rXClVxDaa3nlcyTWckSccotQ==", + "node_modules/jest-specific-snapshot/node_modules/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, - "optional": true, - "requires": { - "chalk": "^4.0.0" + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" + "node_modules/jest-specific-snapshot/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" + "node_modules/jest-specific-snapshot/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "@dabh/diagnostics": { - "version": "2.0.2", - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" + "node_modules/jest-specific-snapshot/node_modules/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, + "engines": { + "node": ">=8" } }, - "@endemolshinegroup/cosmiconfig-typescript-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", - "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "node_modules/jest-specific-snapshot/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dev": true, - "optional": true, - "requires": { - "lodash.get": "^4", - "make-error": "^1", - "ts-node": "^9", - "tslib": "^2" - }, "dependencies": { - "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "optional": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - } + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" } }, - "@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "node_modules/jest-specific-snapshot/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-specific-snapshot/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "node_modules/jest-specific-snapshot/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-transform-stub": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz", + "integrity": "sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==", "dev": true }, - "@google-cloud/common": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz", - "integrity": "sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg==", - "requires": { - "@google-cloud/projectify": "^2.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", - "extend": "^3.0.2", - "google-auth-library": "^7.9.2", - "retry-request": "^4.2.2", - "teeny-request": "^7.0.0" - }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - } + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@google-cloud/paginator": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz", - "integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==", - "requires": { - "arrify": "^2.0.0", - "extend": "^3.0.2" - }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - } + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "@google-cloud/projectify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", - "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==" + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } }, - "@google-cloud/promisify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", - "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==" + "node_modules/jest-watcher/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@google-cloud/storage": { - "version": "5.18.2", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz", - "integrity": "sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg==", - "requires": { - "@google-cloud/common": "^3.8.1", - "@google-cloud/paginator": "^3.0.7", - "@google-cloud/promisify": "^2.0.0", - "abort-controller": "^3.0.0", - "arrify": "^2.0.0", - "async-retry": "^1.3.3", - "compressible": "^2.0.12", - "configstore": "^5.0.0", - "date-and-time": "^2.0.0", - "duplexify": "^4.0.0", - "extend": "^3.0.2", - "gaxios": "^4.0.0", - "get-stream": "^6.0.0", - "google-auth-library": "^7.0.0", - "hash-stream-validation": "^0.2.2", - "mime": "^3.0.0", - "mime-types": "^2.0.8", - "p-limit": "^3.0.1", - "pumpify": "^2.0.0", - "snakeize": "^0.1.0", - "stream-events": "^1.0.4", - "xdg-basedir": "^4.0.0" + "node_modules/jest-watcher/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" - } + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "@graphql-tools/graphql-file-loader": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.5.tgz", - "integrity": "sha512-TBWDA7EV/cmFFUlN2eT9JqYIkiOGEtwwOgzzPcjM9HlPrbKjQkPIJ9Jaxp7aKWbSGhJ+PnbZ7vFLFLGKsCYOjg==", - "requires": { - "@graphql-tools/import": "6.6.7", - "@graphql-tools/utils": "8.6.3", - "globby": "^11.0.3", - "tslib": "~2.3.0", - "unixify": "^1.0.0" + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "@graphql-tools/import": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.7.tgz", - "integrity": "sha512-zzpnVtmdel3mKz6i46GUib4wn0K5dosq4OTBl4avKV6ElvgZTkvsvfSv2aRhbRGIT4VnZPXLfzSnmYd8e+SRLQ==", - "requires": { - "@graphql-tools/utils": "8.6.3", - "resolve-from": "5.0.0", - "tslib": "~2.3.0" + "node_modules/jju": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jmespath": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", + "engines": { + "node": ">= 0.6.0" } }, - "@graphql-tools/load": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.3.tgz", - "integrity": "sha512-GYwLyGfX1nKUxg6rnTIdryv9d+ugFRTm2q11+IqNsajwNhxJExkx+e/h81AQR5382sAmPEIT+E1J1VS3xNfjyg==", - "requires": { - "@graphql-tools/schema": "8.3.3", - "@graphql-tools/utils": "8.6.3", - "p-limit": "3.1.0", - "tslib": "~2.3.0" + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "node_modules/js-beautify": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", + "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", + "dev": true, + "dependencies": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "nopt": "^5.0.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=10" } }, - "@graphql-tools/merge": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.4.tgz", - "integrity": "sha512-hiNRTsS948F+BB4Q7CZXLaGFOIHQzmimVq3EEI/+PQZsPb7kYDzg0Ow0GyV4conDdEiooLqHf7I1dWzTYwvs0A==", - "requires": { - "@graphql-tools/utils": "8.6.3", - "tslib": "~2.3.0" + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "@graphql-tools/schema": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.3.tgz", - "integrity": "sha512-OrRLU9/7UmkDemeyNUy62uH+FofgV3bpVVZJprc9bhe3gZsY7kQNIdY7H1unINlepjLvGOgk7u7iLo2+EhjyWw==", - "requires": { - "@graphql-tools/merge": "8.2.4", - "@graphql-tools/utils": "8.6.3", - "tslib": "~2.3.0", - "value-or-promise": "1.0.11" + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "@graphql-tools/utils": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.3.tgz", - "integrity": "sha512-CNyP7Uu7dlVMQ32IpHWOxz4yic9BYXXVkDhG0UdTKSszvzHdgMilemE9MpUrGzzBPsTe3aYTtNGyPUkyh9yTXA==", - "requires": { - "tslib": "~2.3.0" + "node_modules/jscodeshift": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.7.1.tgz", + "integrity": "sha512-YMkZSyoc8zg5woZL23cmWlnFLPH/mHilonGA7Qbzs7H6M4v4PH0Qsn4jeDyw+CHhVoAnm9UxQyB0Yw1OT+mktA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.6", + "@babel/parser": "^7.1.6", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/preset-env": "^7.1.6", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-typescript": "^7.1.0", + "@babel/register": "^7.0.0", + "babel-core": "^7.0.0-bridge.0", + "colors": "^1.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.18.1", + "temp": "^0.8.1", + "write-file-atomic": "^2.3.0" + }, + "bin": { + "jscodeshift": "bin/jscodeshift.js" } }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "node_modules/jscodeshift/node_modules/ast-types": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", + "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "engines": { + "node": ">=4" } }, - "@humanwhocodes/momoa": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.3.tgz", - "integrity": "sha512-SytjS6gJk+LXSWFuEm0V9ASdgxlX/BDq6A+6gfh7TaHM90xppBydjcM3SFaziZP4ikKmhUOhPkDi2KktzElnQQ==" + "node_modules/jscodeshift/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/jscodeshift/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/jscodeshift/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "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-limit": { - "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 - } + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/jscodeshift/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "node_modules/jscodeshift/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "node_modules/jscodeshift/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "node_modules/jscodeshift/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "node_modules/jscodeshift/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "node_modules/jscodeshift/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "engines": { + "node": ">=0.10.0" } }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - } - }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "node_modules/jscodeshift/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "node_modules/jscodeshift/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "node_modules/jscodeshift/node_modules/recast": { + "version": "0.18.10", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.18.10.tgz", + "integrity": "sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==", "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "dependencies": { + "ast-types": "0.13.3", + "esprima": "~4.0.0", + "private": "^0.1.8", + "source-map": "~0.6.1" + }, + "engines": { + "node": ">= 4" } }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "node_modules/jscodeshift/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "node_modules/jscodeshift/node_modules/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": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@mapbox/geojson-area": { - "version": "0.2.2", - "requires": { - "wgs84": "0.0.0" + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, - "@microsoft/tsdoc": { - "version": "0.13.2", - "dev": true - }, - "@microsoft/tsdoc-config": { - "version": "0.15.2", + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, - "requires": { - "@microsoft/tsdoc": "0.13.2", - "ajv": "~6.12.6", - "jju": "~1.4.0", - "resolve": "~1.19.0" - }, "dependencies": { - "resolve": { - "version": "1.19.0", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true } } }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" + "node_modules/jsdom/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "@nodelib/fs.stat": { - "version": "2.0.4" - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" } }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" + "node_modules/json-bigint": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" } }, - "@npmcli/git": { + "node_modules/json-buffer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.0.tgz", - "integrity": "sha512-xfSBJ+KBMZWWqRHFbEgIaXG/LtELHrQZMJ72Gkb3yWdHysu/7+VGOs8ME0c3td7QNQX57Ggo3kYL6ylcd70/kA==", "dev": true, - "requires": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^7.3.1", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^7.0.0", - "proc-log": "^2.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - }, - "dependencies": { - "lru-cache": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", - "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", - "dev": true - } - } + "license": "MIT" }, - "@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", "dev": true, - "requires": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - } + "license": "MIT" }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } + "license": "MIT" }, - "@npmcli/node-gyp": { + "node_modules/json-parse-helpfulerror": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "dev": true - }, - "@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, - "requires": { - "infer-owner": "^1.0.4" + "license": "MIT", + "dependencies": { + "jju": "^1.1.0" } }, - "@npmcli/run-script": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.1.tgz", - "integrity": "sha512-o2fkld5hYwu9sKYzoXTpqEocMnDLaigobaPzLaGB63k/ExmLBTaB+KpfKlpcIePPnuP8RFR+0GDI4KopJCM6Xg==", + "node_modules/json-schema-traverse": { + "version": "0.4.1", "dev": true, - "requires": { - "@npmcli/node-gyp": "^1.0.3", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3" - } + "license": "MIT" }, - "@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", "dev": true, - "requires": { - "@octokit/types": "^6.0.3" - } + "license": "MIT" }, - "@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "node_modules/json-stringify-safe": { + "version": "5.0.1", "dev": true, - "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "license": "ISC" + }, + "node_modules/json2csv": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-5.0.7.tgz", + "integrity": "sha512-YRZbUnyaJZLZUJSRi2G/MqahCyRv9n/ds+4oIetjDF3jWQA7AG7iSeKTiZiCNqtMZM7HDyt0e/W6lEnoGEmMGA==", + "dev": true, + "dependencies": { + "commander": "^6.1.0", + "jsonparse": "^1.3.1", + "lodash.get": "^4.4.2" + }, + "bin": { + "json2csv": "bin/json2csv.js" + }, + "engines": { + "node": ">= 10", + "npm": ">= 6.13.0" } }, - "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "node_modules/json2csv/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, - "requires": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "engines": { + "node": ">= 6" } }, - "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "node_modules/json5": { + "version": "2.2.0", "dev": true, - "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "@octokit/openapi-types": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", - "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true }, - "@octokit/plugin-paginate-rest": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", - "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", - "dev": true, - "requires": { - "@octokit/types": "^6.34.0" + "node_modules/jsondiffpatch": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", + "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", + "dependencies": { + "chalk": "^2.3.0", + "diff-match-patch": "^1.0.0" + }, + "bin": { + "jsondiffpatch": "bin/jsondiffpatch" + }, + "engines": { + "node": ">=8.17.0" } }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", - "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", - "dev": true, - "requires": { - "@octokit/types": "^6.34.0", - "deprecation": "^2.3.1" + "node_modules/jsondiffpatch/node_modules/ansi-styles": { + "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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "@octokit/request": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", - "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", - "dev": true, - "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", - "universal-user-agent": "^6.0.0" + "node_modules/jsondiffpatch/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "node_modules/jsondiffpatch/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" } }, - "@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", - "dev": true, - "requires": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + "node_modules/jsondiffpatch/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/jsondiffpatch/node_modules/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=", + "engines": { + "node": ">=0.8.0" } }, - "@octokit/types": { - "version": "6.34.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", - "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^11.2.0" + "node_modules/jsondiffpatch/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" } }, - "@placemarkio/check-geojson": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@placemarkio/check-geojson/-/check-geojson-0.1.8.tgz", - "integrity": "sha512-MLt5Pe6j/iNjG1H55wJUw/g0wu6rcEpnNuLYdfn9d6IfHgYpKY3aID2BOj3DWSGS/1e9MevcPKLOFwaIH/2cLg==", - "requires": { - "@humanwhocodes/momoa": "^2.0.3", - "@types/geojson": "^7946.0.8", - "@types/jest": "^27.4.0", - "type-fest": "^2.12.0" - }, + "node_modules/jsondiffpatch/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "type-fest": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.0.tgz", - "integrity": "sha512-Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==" - } + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "@selderee/plugin-htmlparser2": { - "version": "0.6.0", - "requires": { - "domhandler": "^4.2.0", - "selderee": "^0.6.0" - } + "node_modules/jsonfile": { + "version": "4.0.0", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonlines": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/knex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/knex/-/knex-1.0.4.tgz", + "integrity": "sha512-cMQ81fpkVmr4ia20BtyrD3oPere/ir/Q6IGLAgcREKOzRVhMsasQ4nx1VQuDRJjqq6oK5kfcxmvWoYkHKrnuMA==", + "dependencies": { + "colorette": "2.0.16", + "commander": "^8.3.0", + "debug": "4.3.3", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.5.0", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependenciesMeta": { + "@vscode/sqlite3": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.24.0.tgz", + "integrity": "sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==", + "dev": true + }, + "node_modules/kuler": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/latest-version": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lazy-universal-dotenv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", + "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.5.0", + "app-root-dir": "^1.0.2", + "core-js": "^3.0.4", + "dotenv": "^8.0.0", + "dotenv-expand": "^5.1.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=6.0.0", + "yarn": ">=1.0.0" + } + }, + "node_modules/lazy-universal-dotenv/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/leaflet": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", + "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==", + "dev": true + }, + "node_modules/leaflet-fullscreen": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/leaflet-fullscreen/-/leaflet-fullscreen-1.0.2.tgz", + "integrity": "sha1-CcYcS6xF9jsu4Sav2H5c2XZQ/Bs=", + "dev": true + }, + "node_modules/leaflet-gesture-handling": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/leaflet-gesture-handling/-/leaflet-gesture-handling-1.2.2.tgz", + "integrity": "sha512-Blf5V4PoNphWkzL7Y1qge+Spkd4OCQ2atjwUNhMhLIcjKzPcBH++x/lwOinaR9jSqLWqJ6oKYO8d0XdTffy4hQ==", + "dev": true + }, + "node_modules/leaflet-markers-canvas": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/leaflet-markers-canvas/-/leaflet-markers-canvas-0.2.2.tgz", + "integrity": "sha512-UU/98qrmljhU6Xl3lrsUAUke4Qb/p8BCfmhiw7L1hHtkVMxdRYgwk7RwUW9QNoPbhnmuyxsc90whKjWVVP5cNw==", + "dev": true, + "peerDependencies": { + "leaflet": "^1.7.1", + "rbush": "^3.0.1" + } + }, + "node_modules/leaflet.markercluster": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz", + "integrity": "sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==", + "dev": true, + "peerDependencies": { + "leaflet": "^1.3.1" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libnpmconfig": { + "version": "1.2.1", + "dev": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + } + }, + "node_modules/libnpmconfig/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/libnpmconfig/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/libnpmconfig/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/libnpmconfig/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "dev": true, + "license": "MIT" + }, + "node_modules/lint-staged": { + "version": "12.3.6", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.6.tgz", + "integrity": "sha512-tVNyl/HsAnplKh4oaoRNzyZLm0PE/6VaBUXvd/gA9zhYCC/+ivZwiwpoT6jOxcLzuIOjP19wW+mfOi7/Bw4c1A==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.16", + "commander": "^8.3.0", + "debug": "^4.3.3", + "execa": "^5.1.1", + "lilconfig": "2.0.4", + "listr2": "^4.0.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.0", + "pidtree": "^0.5.0", + "string-argv": "^0.3.1", + "supports-color": "^9.2.1", + "yaml": "^1.10.2" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lint-staged/node_modules/supports-color": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", + "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/listr2": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.4.tgz", + "integrity": "sha512-vJOm5KD6uZXjSsrwajr+mNacIjf87gWvlBEltPWLbTkslUscWAzquyK4xfe9Zd4RDgO5nnwFyV06FC+uVR+5mg==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.4", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/rxjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz", + "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dev": true, + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/localforage/node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" + }, + "node_modules/lodash._baseiteratee": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz", + "integrity": "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI=", + "dev": true, + "dependencies": { + "lodash._stringtopath": "~4.8.0" + } + }, + "node_modules/lodash._basetostring": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz", + "integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8=", + "dev": true + }, + "node_modules/lodash._baseuniq": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", + "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", + "dev": true, + "dependencies": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "node_modules/lodash._createset": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", + "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", + "dev": true + }, + "node_modules/lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "node_modules/lodash._stringtopath": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz", + "integrity": "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ=", + "dev": true, + "dependencies": { + "lodash._basetostring": "~4.12.0" + } + }, + "node_modules/lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "license": "MIT" + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", + "dev": true + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/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, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/logform": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", + "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", + "dependencies": { + "@colors/colors": "1.5.0", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, + "node_modules/loglevel": { + "version": "1.7.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loglevel-colored-level-prefix": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.1.3", + "loglevel": "^1.4.1" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/longest": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lowlight": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", + "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "dev": true, + "dependencies": { + "fault": "^1.0.0", + "highlight.js": "~10.7.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "license": "ISC" + }, + "node_modules/make-fetch-happen": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.6.tgz", + "integrity": "sha512-4Gfh6lV3TLXmj7qz79hBFuvVqjYSMW6v2+sxtdX4LFQU0rK3V/txRjE0DoZb7X0IF3t9f8NO3CxPSWlvdckhVA==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.0.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.5.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.1.1", + "ssri": "^8.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", + "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-or-similar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", + "dev": true + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/markdown-to-jsx": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.7.tgz", + "integrity": "sha512-VI3TyyHlGkO8uFle0IOibzpO1c1iJDcXcS/zBrQrXQQvJ2tpdwVzVZ7XdKsyRz1NdRmre4dqQkMZzUHaKIG/1w==", + "dev": true, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/marked": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/marked-terminal": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.0.0.tgz", + "integrity": "sha512-26604GmGmW63ElxcXpE2xfMdbtgD/qiwIqOh/+5+uPe6NVU4bU433+wvPTfq6NZcGr16KWqwu/dzsKxg3IL2Xw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^5.0.0", + "cardinal": "^2.1.1", + "chalk": "^5.0.0", + "cli-table3": "^0.6.0", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.2.0" + }, + "engines": { + "node": " >=14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked-terminal/node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "dev": true + }, + "node_modules/marked-terminal/node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "dev": true, + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/marked-terminal/node_modules/chalk": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/marked-terminal/node_modules/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/marked-terminal/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/matomo-tracker": { + "version": "2.2.4", + "license": "MIT", + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "dev": true, + "dependencies": { + "unist-util-remove": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "dev": true, + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memoizerific": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", + "dev": true, + "dependencies": { + "map-or-similar": "^1.5.0" + } + }, + "node_modules/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, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/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 + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mgrs": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.4", + "license": "MIT", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha1-P4fDHprxpf1IX7nbE0Qosju7e6g=", + "dev": true, + "dependencies": { + "wildcard": "^1.1.0" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "license": "MIT" + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.0.3.tgz", + "integrity": "sha512-VA+eiiUtaIvpQJXISwE3OiMvQwAWrgKb97F0aXlCS1Ahikr8fEQq8m3Hf7Kv9KT3nokuHigJKsDMB6atU04olQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "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, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mississippi/node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/mississippi/node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/mississippi/node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/moment": { + "version": "2.29.1", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.33", + "license": "MIT", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/moo": { + "version": "0.5.1", + "license": "BSD-3-Clause" + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/move-concurrently/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/move-concurrently/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==", + "dev": true + }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/nearley": { + "version": "2.20.1", + "license": "MIT", + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", + "dev": true + }, + "node_modules/nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", + "dev": true, + "dependencies": { + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.10.5" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", + "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.0.0.tgz", + "integrity": "sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.22 || ^14.13 || >=16" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/node-libs-browser/node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/node-mailjet": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/node-mailjet/-/node-mailjet-3.3.7.tgz", + "integrity": "sha512-kwO0JlQi8MtYEc0DTgL8JeRS1ljjpNqmQ/+attDV3i4YiaCl8SoKs2gBdePWvoFtpCi8uBsfOgU5O9jE/lm2QQ==", + "dependencies": { + "bluebird": "^3.5.0", + "json-bigint": "^1.0.0", + "qs": "^6.5.0", + "superagent": "^6.1.0", + "superagent-proxy": "^3.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, + "node_modules/npm": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.3.1.tgz", + "integrity": "sha512-f552vKhT3r+PpCRnH7UferrrbcnvcFnGusN2T1mQqq/0UQd3pF1+ok4n0WahT0ZKxj10YU3b2VdhGrf39djHAA==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/ci-detect", + "@npmcli/config", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/run-script", + "abbrev", + "ansicolors", + "ansistyles", + "archy", + "cacache", + "chalk", + "chownr", + "cli-columns", + "cli-table3", + "columnify", + "fastest-levenshtein", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minipass", + "minipass-pipeline", + "mkdirp", + "mkdirp-infer-owner", + "ms", + "node-gyp", + "nopt", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "opener", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "read-package-json", + "read-package-json-fast", + "readdir-scoped-modules", + "rimraf", + "semver", + "ssri", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "dependencies": { + "@isaacs/string-locale-compare": "*", + "@npmcli/arborist": "*", + "@npmcli/ci-detect": "*", + "@npmcli/config": "*", + "@npmcli/map-workspaces": "*", + "@npmcli/package-json": "*", + "@npmcli/run-script": "*", + "abbrev": "*", + "ansicolors": "*", + "ansistyles": "*", + "archy": "*", + "cacache": "*", + "chalk": "*", + "chownr": "*", + "cli-columns": "*", + "cli-table3": "*", + "columnify": "*", + "fastest-levenshtein": "*", + "glob": "*", + "graceful-fs": "*", + "hosted-git-info": "*", + "ini": "*", + "init-package-json": "*", + "is-cidr": "*", + "json-parse-even-better-errors": "*", + "libnpmaccess": "*", + "libnpmdiff": "*", + "libnpmexec": "*", + "libnpmfund": "*", + "libnpmhook": "*", + "libnpmorg": "*", + "libnpmpack": "*", + "libnpmpublish": "*", + "libnpmsearch": "*", + "libnpmteam": "*", + "libnpmversion": "*", + "make-fetch-happen": "*", + "minipass": "*", + "minipass-pipeline": "*", + "mkdirp": "*", + "mkdirp-infer-owner": "*", + "ms": "*", + "node-gyp": "*", + "nopt": "*", + "npm-audit-report": "*", + "npm-install-checks": "*", + "npm-package-arg": "*", + "npm-pick-manifest": "*", + "npm-profile": "*", + "npm-registry-fetch": "*", + "npm-user-validate": "*", + "npmlog": "*", + "opener": "*", + "pacote": "*", + "parse-conflict-json": "*", + "proc-log": "*", + "qrcode-terminal": "*", + "read": "*", + "read-package-json": "*", + "read-package-json-fast": "*", + "readdir-scoped-modules": "*", + "rimraf": "*", + "semver": "*", + "ssri": "*", + "tar": "*", + "text-table": "*", + "tiny-relative-date": "*", + "treeverse": "*", + "validate-npm-package-name": "*", + "which": "*", + "write-file-atomic": "*" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-check-updates": { + "version": "12.5.3", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.5.3.tgz", + "integrity": "sha512-siFg/+Un+j4tLA6GJCnk6hz2YU4Yc5bftDnOoiSRLKL6NeAS3FScB32mtKNBtITMJf2nsoZSr8vH+wdUGeP19g==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "cint": "^8.2.1", + "cli-table": "^0.3.11", + "commander": "^9.0.0", + "fast-memoize": "^2.5.2", + "find-up": "5.0.0", + "fp-and-or": "^0.1.3", + "get-stdin": "^8.0.0", + "globby": "^11.0.4", + "hosted-git-info": "^4.1.0", + "json-parse-helpfulerror": "^1.0.3", + "jsonlines": "^0.1.1", + "libnpmconfig": "^1.2.1", + "lodash": "^4.17.21", + "minimatch": "^5.0.1", + "p-map": "^4.0.0", + "pacote": "^13.0.3", + "parse-github-url": "^1.0.2", + "progress": "^2.0.3", + "prompts": "^2.4.2", + "rc-config-loader": "^4.0.0", + "remote-git-tags": "^3.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "semver-utils": "^1.1.4", + "source-map-support": "^0.5.21", + "spawn-please": "^1.0.0", + "update-notifier": "^5.1.0", + "yaml": "^1.10.2" + }, + "bin": { + "ncu": "build/src/bin/cli.js", + "npm-check-updates": "build/src/bin/cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-check-updates/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-check-updates/node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/npm-check-updates/node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-check-updates/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-check-updates/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-check-updates/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-check-updates/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-check-updates/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.1.tgz", + "integrity": "sha512-Xs9wznfEAmZAR61qsYH3iN24V/qMYYkvAR5CRQNMvC6PjN2fHtO8y9XP/xdp5K+Icx+u1wMBMgWRPCmAEChSog==", + "dev": true, + "dependencies": { + "hosted-git-info": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", + "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-package-arg/node_modules/lru-cache": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", + "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-packlist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-4.0.0.tgz", + "integrity": "sha512-gL6XC/iw9YSmqArmZOGSkyy+yIZf2f7uH0p4Vmxef/irn73vd9/rDkCtvm+a9rh/QK2xGYfCAMOghM06ymzC0A==", + "dev": true, + "dependencies": { + "glob": "^7.2.0", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.2", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-packlist/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-packlist/node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-pick-manifest": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.0.tgz", + "integrity": "sha512-njM1AcdioFaKd0JSGtLO09YA1WRwctjGQJbnHGmKS+u+uwP8oFvtZtOQWPYdxrnY5eJud3wn8OpH4sEIx6+GEQ==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-registry-fetch": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.0.1.tgz", + "integrity": "sha512-Ak+LXVtSrCLOdscFW/apUw67OPNph8waHsPKM9UOJosL7i59EF5XoSWQMEsXEOeifM9Bb4/2+WrQC4t/pd8DGg==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^10.0.3", + "minipass": "^3.1.6", + "minipass-fetch": "^2.0.1", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^9.0.0", + "proc-log": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/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, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/@gar/promisify": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/map-workspaces": "^2.0.0", + "@npmcli/metavuln-calculator": "^2.0.0", + "@npmcli/move-file": "^1.1.0", + "@npmcli/name-from-folder": "^1.0.1", + "@npmcli/node-gyp": "^1.0.3", + "@npmcli/package-json": "^1.0.1", + "@npmcli/run-script": "^2.0.0", + "bin-links": "^2.3.0", + "cacache": "^15.0.3", + "common-ancestor-path": "^1.0.1", + "json-parse-even-better-errors": "^2.3.1", + "json-stringify-nice": "^1.1.4", + "mkdirp": "^1.0.4", + "mkdirp-infer-owner": "^2.0.0", + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.1.5", + "npm-pick-manifest": "^6.1.0", + "npm-registry-fetch": "^11.0.0", + "pacote": "^12.0.2", + "parse-conflict-json": "^2.0.1", + "proc-log": "^1.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^1.0.1", + "read-package-json-fast": "^2.0.2", + "readdir-scoped-modules": "^1.1.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "ssri": "^8.0.1", + "treeverse": "^1.0.4", + "walk-up-path": "^1.0.0" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/@npmcli/ci-detect": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "2.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ini": "^2.0.0", + "mkdirp-infer-owner": "^2.0.0", + "nopt": "^5.0.0", + "semver": "^7.3.4", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-styles": "^4.3.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^1.0.1", + "glob": "^7.1.6", + "minimatch": "^3.0.4", + "read-package-json-fast": "^2.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^15.0.5", + "json-parse-even-better-errors": "^2.3.1", + "pacote": "^12.0.0", + "semver": "^7.3.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/@npmcli/move-file": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.1" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^8.2.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/npm/node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/ansicolors": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ansistyles": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^4.0.1", + "mkdirp-infer-owner": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0", + "read-cmd-shim": "^2.0.0", + "rimraf": "^3.0.0", + "write-file-atomic": "^3.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/builtins": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/cacache": { + "version": "15.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "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": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^4.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-columns/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/ansi-regex": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/strip-ansi": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mkdirp-infer-owner": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/npm/node_modules/colors": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/diff": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.12", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gauge": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-regex": "^5.0.1", + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/has": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/npm/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/infer-owner": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "2.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^8.1.5", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "^4.1.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^3.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/is-core-module": { + "version": "2.8.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/disparity-colors": "^1.0.1", + "@npmcli/installed-package-contents": "^1.0.7", + "binary-extensions": "^2.2.0", + "diff": "^5.0.0", + "minimatch": "^3.0.4", + "npm-package-arg": "^8.1.4", + "pacote": "^12.0.0", + "tar": "^6.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^4.0.0", + "@npmcli/ci-detect": "^1.3.0", + "@npmcli/run-script": "^2.0.0", + "chalk": "^4.1.0", + "mkdirp-infer-owner": "^2.0.0", + "npm-package-arg": "^8.1.2", + "pacote": "^12.0.0", + "proc-log": "^1.0.0", + "read": "^1.0.7", + "read-package-json-fast": "^2.0.2", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/run-script": "^2.0.0", + "npm-package-arg": "^8.1.0", + "pacote": "^12.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "normalize-package-data": "^3.0.2", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0", + "semver": "^7.1.3", + "ssri": "^8.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^2.0.7", + "@npmcli/run-script": "^2.0.0", + "json-parse-even-better-errors": "^2.3.1", + "semver": "^7.3.5", + "stringify-package": "^1.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "9.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "3.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-json-stream": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/mkdirp-infer-owner": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "8.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "2.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "8.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "6.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "5.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.0", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.5.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "12.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^2.0.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^3.0.0", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^11.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^3.0.0", + "npm-normalize-package-bin": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.6.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.10", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/ssri": { + "version": "8.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.1.11", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/npm/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npmlog": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", + "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.0", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/null-check": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/objection": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/objection/-/objection-3.0.1.tgz", + "integrity": "sha512-rqNnyQE+C55UHjdpTOJEKQHJGZ/BGtBBtgxdUpKG4DQXRUmqxfmgS/MhPWxB9Pw0mLSVLEltr6soD4c0Sddy0Q==", + "dependencies": { + "ajv": "^8.6.2", + "db-errors": "^0.2.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "knex": ">=0.95.0" + } + }, + "node_modules/objection/node_modules/ajv": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.7.1.tgz", + "integrity": "sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/objection/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/on-finished": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onigasm": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", + "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", + "dev": true, + "dependencies": { + "lru-cache": "^5.1.1" + } + }, + "node_modules/onigasm/node_modules/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, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/onigasm/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/overlayscrollbars": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz", + "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ==", + "dev": true + }, + "node_modules/p-all": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", + "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-all/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-filter/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "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, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dev": true, + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pac-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", + "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^5.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "5" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pac-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", + "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", + "dependencies": { + "degenerator": "^3.0.1", + "ip": "^1.1.5", + "netmask": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/@sindresorhus/is": { + "version": "0.14.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/cacheable-request": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json/node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/got": { + "version": "9.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/package-json/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/p-cancelable": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/packet-reader": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/pacote": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.0.5.tgz", + "integrity": "sha512-6CYfot3/rUAn3qqzF2d/jrrXm5HlBtvaSgfmg0VtOUAdJ8fbSq21BJwftMGArkL71yXHIbUJ7Bt5B04547HELA==", + "dev": true, + "dependencies": { + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^3.0.1", + "cacache": "^16.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.6", + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^4.0.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-github-repo-url": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-github-url": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "bin": { + "parse-github-url": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parsedbf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parsedbf/-/parsedbf-1.1.1.tgz", + "integrity": "sha512-jndFmhcrzSAGCMccM4za+3bIRxqV6L2doQjYN8Xgz0kZUpyBT5I8Gs6Y6hL5GcO2rih9OBkPcLlx2uBoLi8R8Q==", + "dependencies": { + "iconv-lite": "^0.4.15", + "text-encoding-polyfill": "^0.6.7" + } + }, + "node_modules/parseley": { + "version": "0.7.0", + "license": "MIT", + "dependencies": { + "moo": "^0.5.1", + "nearley": "^2.20.1" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pg": { + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", + "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.1", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=2.0.0" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", + "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + }, + "node_modules/pg-escape": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", + "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.5.0", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "split2": "^3.1.1" + } + }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz", + "integrity": "sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pixrem": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-5.0.0.tgz", + "integrity": "sha512-ugJ4Imy92u55zeznaN/5d7iqOBIZjZ7q10/T+dcd0IuFtbLlsGDvAUabFu1cafER+G9f0T1WtTqvzm4KAdcDgQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.3.6", + "postcss": "^7.0.7", + "reduce-css-calc": "^2.1.5" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=1.2.10" + } + }, + "node_modules/pixrem/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/polished": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz", + "integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/polygon-clipping": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", + "integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==", + "dependencies": { + "splaytree": "^3.1.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.2" + }, + "peerDependencies": { + "postcss": "^8.0.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-button": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/postcss-button/-/postcss-button-0.3.17.tgz", + "integrity": "sha512-LbJCmxw5JbeoAmB8V1lmDSXuWVI3jpYBcXkoYnXC45J4ylklyqJysk06/jySj9C3q+r0ypXMM1UTVJcGnueOzw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.17" + } + }, + "node_modules/postcss-button/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", + "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "dev": true, + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-mod-function/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", + "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.2" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", + "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.26" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-grid-fluid": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/postcss-grid-fluid/-/postcss-grid-fluid-0.3.4.tgz", + "integrity": "sha512-HuXvASgRhOHiSCQsIeTY1qSBNaC2oMBIUO9lQbSP7CFjNkYQfPe+Bm15djTPY8GIGOTwVsCyFE8YUWfMq+FVPw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.17" + } + }, + "node_modules/postcss-grid-fluid/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-grid-system": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/postcss-grid-system/-/postcss-grid-system-0.5.2.tgz", + "integrity": "sha512-BR5zSvKENNoQuxvLc2DfLTFLxy4C/aQmjMDmrK1LRdVBbqr6OLG5bf1yd5P1rgClRkd3NEKRWYg3/LnLVKHHjw==", + "dev": true, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-import": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-inline-svg": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-inline-svg/-/postcss-inline-svg-5.0.0.tgz", + "integrity": "sha512-Agqkrn91Qgi+KAO+cTvUS1IAZbHPD4sryPoG0q5U0ThokL4UGoMcmwvNV6tDoRp69B5tgD1VNkn9P09E+xpQAg==", + "dev": true, + "dependencies": { + "css-select": "^3.1.0", + "dom-serializer": "^1.1.0", + "htmlparser2": "^5.0.1", + "postcss-value-parser": "^4.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-inline-svg/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/postcss-inline-svg/node_modules/htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/fb55/htmlparser2?sponsor=1" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", + "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-modules-local-by-default": { + "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, + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/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, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/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, + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-modules-values/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-nesting": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", + "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dev": true, + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", + "dev": true, + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "dev": true, + "dependencies": { + "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-font-format-keywords": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-ic-unit": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-normalize-display-values": "^1.0.0", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^6.5.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.2", + "postcss-color-hex-alpha": "^8.0.3", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.5", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.4", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.3", + "postcss-image-set-function": "^4.0.6", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.1.2", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.3", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.3", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.4", + "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env/node_modules/autoprefixer": { + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-preset-env/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", + "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-typescale": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-typescale/-/postcss-typescale-0.2.3.tgz", + "integrity": "sha512-hbHccnobyhoV6IPYYpgkvGGhv4E80xvQgqK58sSVTxXHAcyMclcepZ9oWVMB5cQB8ZcspickI96/ddbai8K1rA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.17" + } + }, + "node_modules/postcss-typescale/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/postcss/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/preact": { + "version": "10.6.6", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.6.6.tgz", + "integrity": "sha512-dgxpTFV2vs4vizwKohYKkk7g7rmp1wOOcfd4Tz3IB3Wi+ivZzsn/SpeKJhRENSE+n8sUfsAl4S3HiCVT923ABw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.1.20.tgz", + "integrity": "sha512-ivh2oOGzth0o7XqbatWUQ81WQGoJwSqDKP5z917SoqTWYCAr7dlBzMv3SAMTAu3Gr5g47BJwrvyO44H2Y10ubg==", + "dev": true, + "dependencies": { + "pretty-format": "^3.8.0" + }, + "peerDependencies": { + "preact": ">=10" + } + }, + "node_modules/preact-render-to-string/node_modules/pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", + "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-eslint": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-13.0.0.tgz", + "integrity": "sha512-P5K31qWgUOQCtJL/3tpvEe28KfP49qbr6MTVEXC7I2k7ci55bP3YDr+glhyCdhIzxGCVp2f8eobfQ5so52RIIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/parser": "^3.0.0", + "common-tags": "^1.4.0", + "dlv": "^1.1.0", + "eslint": "^7.9.0", + "indent-string": "^4.0.0", + "lodash.merge": "^4.6.0", + "loglevel-colored-level-prefix": "^1.0.0", + "prettier": "^2.0.0", + "pretty-format": "^23.0.1", + "require-relative": "^0.8.7", + "typescript": "^3.9.3", + "vue-eslint-parser": "~7.1.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/prettier-eslint/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/prettier-eslint/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/experimental-utils": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/parser": { + "version": "3.10.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "3.10.1", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/types": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/typescript-estree": { + "version": "3.10.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/visitor-keys": "3.10.1", + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/prettier-eslint/node_modules/@typescript-eslint/visitor-keys": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/prettier-eslint/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier-eslint/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier-eslint/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/prettier-eslint/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/prettier-eslint/node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/prettier-eslint/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier-eslint/node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/prettier-eslint/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/prettier-eslint/node_modules/glob": { + "version": "7.1.7", + "dev": true, + "license": "ISC", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/prettier-eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/prettier-eslint/node_modules/pretty-format": { + "version": "23.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "node_modules/prettier-eslint/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prettier-eslint/node_modules/typescript": { + "version": "3.9.9", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz", + "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", + "dev": true, + "dependencies": { + "condense-newlines": "^0.2.1", + "extend-shallow": "^2.0.1", + "js-beautify": "^1.6.12" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/printj": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz", + "integrity": "sha512-sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/prismjs": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/proc-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.0.tgz", + "integrity": "sha512-I/35MfCX2H8jBUhKN8JB8nmqvQo/nKdrBodBY7L3RhDSPPyvOHwLYNmPuhwuJq7a7C3vgFKWGQM+ecPStcvOHA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proj4": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.8.0.tgz", + "integrity": "sha512-baC+YcD4xsSqJ+CpCZljj2gcQDhlKb+J+Zjv/2KSBwWNjk4M0pafgQsE+mWurd84tflMIsP+7j7mtIpFDHzQfQ==", + "dependencies": { + "mgrs": "1.0.0", + "wkt-parser": "^1.3.1" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-polyfill": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", + "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promise.allsettled": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.5.tgz", + "integrity": "sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ==", + "dev": true, + "dependencies": { + "array.prototype.map": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "iterate-value": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/promise.prototype.finally": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.3.tgz", + "integrity": "sha512-EXRF3fC9/0gz4qkt/f5EP5iW4kj9oFpBICNpCNOb/52+8nlHIX07FPLbi/q4qYBQ1xZqivMzTpNQSnArVASolQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/proper-lockfile": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-2.0.1.tgz", + "integrity": "sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/proper-lockfile/node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "dev": true, + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", + "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", + "dependencies": { + "agent-base": "^6.0.0", + "debug": "4", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^5.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^5.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-agent/node_modules/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==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/proxy-agent/node_modules/socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-agent/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "dev": true, + "license": "MIT" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", + "dependencies": { + "duplexify": "^4.1.1", + "inherits": "^2.0.3", + "pump": "^3.0.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/q": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "dev": true + }, + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "license": "CC0-1.0" + }, + "node_modules/ramda": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", + "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", + "dev": true + }, + "node_modules/randexp": { + "version": "0.4.6", + "license": "MIT", + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/raw-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "dev": true, + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc-config-loader": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "js-yaml": "^4.0.0", + "json5": "^2.1.2", + "require-from-string": "^2.0.2" + } + }, + "node_modules/rc-config-loader/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/rc-config-loader/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-colorful": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.5.1.tgz", + "integrity": "sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==", + "dev": true, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-draggable": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.4.tgz", + "integrity": "sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==", + "dev": true, + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "dev": true + }, + "node_modules/react-helmet-async": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.2.3.tgz", + "integrity": "sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0", + "react-dom": "^16.6.0 || ^17.0.0" + } + }, + "node_modules/react-inspector": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.1.1.tgz", + "integrity": "sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "is-dom": "^1.0.0", + "prop-types": "^15.0.0" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-popper": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", + "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", + "dev": true, + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17" + } + }, + "node_modules/react-popper-tooltip": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz", + "integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@popperjs/core": "^2.5.4", + "react-popper": "^2.2.4" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0", + "react-dom": "^16.6.0 || ^17.0.0" + } + }, + "node_modules/react-router": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz", + "integrity": "sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ==", + "dev": true, + "dependencies": { + "history": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.2.tgz", + "integrity": "sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ==", + "dev": true, + "dependencies": { + "history": "^5.2.0", + "react-router": "6.2.2" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-router-dom/node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, + "node_modules/react-router/node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, + "node_modules/react-shallow-renderer": { + "version": "16.14.1", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz", + "integrity": "sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-sizeme": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-3.0.2.tgz", + "integrity": "sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw==", + "dev": true, + "dependencies": { + "element-resize-detector": "^1.2.2", + "invariant": "^2.2.4", + "shallowequal": "^1.1.0", + "throttle-debounce": "^3.0.1" + } + }, + "node_modules/react-syntax-highlighter": { + "version": "13.5.3", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz", + "integrity": "sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.1.1", + "lowlight": "^1.14.0", + "prismjs": "^1.21.0", + "refractor": "^3.1.0" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/react-test-renderer": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^17.0.2", + "react-shallow-renderer": "^16.13.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz", + "integrity": "sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "use-composed-ref": "^1.0.0", + "use-latest": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/react-waterfall-render": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-waterfall-render/-/react-waterfall-render-2.0.0.tgz", + "integrity": "sha512-PCox1jrpL72KAHVdRTQmo4/O7ElrVmnvExrJU04ioOg9qrYcXtctPC41xVCjTbqzZjes8KCdEfaAS3KolZiUOw==", + "dev": true, + "engines": { + "node": "^12.20 || >= 14.13" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + }, + "peerDependencies": { + "react": "16.14 - 17" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-package-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.0.tgz", + "integrity": "sha512-1cjk2MV5ONDMn34uxSID3X8NY7VKsXfJnjbcVdFMvHEnJOBzU6MJ7/3yg6QFVZDq5/1yFNrKBUK9kGnonyGP2Q==", + "dev": true, + "dependencies": { + "glob": "^7.2.0", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", + "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/read-package-json/node_modules/lru-cache": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", + "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.0.tgz", + "integrity": "sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==", + "dev": true, + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recast": { + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", + "dev": true, + "dependencies": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redeyed": { + "version": "0.4.4", + "license": "MIT", + "dependencies": { + "esprima": "~1.0.4" + } + }, + "node_modules/redeyed/node_modules/esprima": { + "version": "1.0.4", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "dev": true, + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/redux": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz", + "integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/refractor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", + "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "dev": true, + "dependencies": { + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "dev": true, + "dependencies": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { + "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 + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/remark-mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "dev": true, + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "dev": true, + "dependencies": { + "mdast-squeeze-paragraphs": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remote-git-tags": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-relative": { + "version": "0.8.7", + "dev": true, + "license": "MIT" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/retry-request": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", + "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", + "dependencies": { + "debug": "^4.1.1", + "extend": "^3.0.2" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true, + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/run-queue/node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/rxjs": { + "version": "6.6.7", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", + "dev": true, + "dependencies": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/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, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/sane/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sane/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/sane/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/sane/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", + "dev": true + }, + "node_modules/sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/selderee": { + "version": "0.6.0", + "license": "MIT", + "dependencies": { + "parseley": "^0.7.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/semantic-release": { + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.2.tgz", + "integrity": "sha512-7tPonjZxukKECmClhsfyMKDt0GR38feIC2HxgyYaBi+9tDySBLjK/zYDLhh+m6yjnHIJa9eBTKYE7k63ZQcYbw==", + "dev": true, + "dependencies": { + "@semantic-release/commit-analyzer": "^9.0.2", + "@semantic-release/error": "^3.0.0", + "@semantic-release/github": "^8.0.0", + "@semantic-release/npm": "^9.0.0", + "@semantic-release/release-notes-generator": "^10.0.0", + "aggregate-error": "^3.0.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.0.0", + "env-ci": "^5.0.0", + "execa": "^5.0.0", + "figures": "^3.0.0", + "find-versions": "^4.0.0", + "get-stream": "^6.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^2.0.0", + "hosted-git-info": "^4.0.0", + "lodash": "^4.17.21", + "marked": "^4.0.10", + "marked-terminal": "^5.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "p-reduce": "^2.0.0", + "read-pkg-up": "^7.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.2", + "semver-diff": "^3.1.1", + "signale": "^1.2.1", + "yargs": "^16.2.0" + }, + "bin": { + "semantic-release": "bin/semantic-release.js" + }, + "engines": { + "node": ">=16 || ^14.17" + } + }, + "node_modules/semantic-release/node_modules/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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/semantic-release/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-utils": { + "version": "1.1.4", + "dev": true, + "license": "APACHEv2" + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dev": true, + "dependencies": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-favicon/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serve-favicon/node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true + }, + "node_modules/sharkdown": { + "version": "0.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "cardinal": "~0.4.2", + "minimist": "0.0.5", + "split": "~0.2.10" + }, + "bin": { + "sharkdown": "sharkdown" + } + }, + "node_modules/sharkdown/node_modules/minimist": { + "version": "0.0.5", + "license": "MIT" + }, + "node_modules/sharkdown/node_modules/split": { + "version": "0.2.10", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shelljs/node_modules/interpret": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/shiki": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.12.tgz", + "integrity": "sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "onigasm": "^2.2.5", + "vscode-textmate": "5.2.0" + } + }, + "node_modules/shpjs": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/shpjs/-/shpjs-4.0.2.tgz", + "integrity": "sha512-yiyc7FyOCnVeF6UiJmKMxg5P/x0MQIUnH3m+OhFb2eic39WZo40b7jxh+zkhj309kA2Hh2t5La+kFv8Im94C3g==", + "dependencies": { + "jszip": "^3.5.0", + "lie": "^3.0.1", + "lru-cache": "^2.7.0", + "parsedbf": "^1.1.0", + "proj4": "^2.1.4" + } + }, + "node_modules/shpjs/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/signale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", + "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", + "dev": true, + "dependencies": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/signale/node_modules/ansi-styles": { + "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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/chalk": { + "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, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/color-convert": { + "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, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/signale/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/signale/node_modules/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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/signale/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "license": "MIT" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snakeize": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz", + "integrity": "sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0=" + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snarkdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/snarkdown/-/snarkdown-2.0.0.tgz", + "integrity": "sha512-MgL/7k/AZdXCTJiNgrO7chgDqaB9FGM/1Tvlcenenb7div6obaDATzs16JhFyHHBGodHT3B7RzRc5qk8pFhg3A==", + "dev": true + }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", + "dev": true + }, + "node_modules/spawn-please": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.8", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true, + "bin": { + "specificity": "bin/specificity" + } + }, + "node_modules/splaytree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", + "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q==" + }, + "node_modules/split": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-lines": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-1.1.0.tgz", + "integrity": "sha1-Oruo9ZhhQUL5240nq2q4dWYqHgk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sql-formatter": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "sql-formatter": "bin/sqlfmt.js" + } + }, + "node_modules/sql-formatter/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/ssf": { + "version": "0.11.2", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.3.2.tgz", + "integrity": "sha512-u1rfKP4o4ew7Yjbfycv80aNMN2feTiqseAhUhrrx2XtdQGmu7gucpziXe68Z4YfHVqlxVEzo4aUA0Iu3VQOTgQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "conventional-changelog": "3.1.24", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.6.1", + "conventional-recommended-bump": "6.1.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "dotgitignore": "^2.1.0", + "figures": "^3.1.0", + "find-up": "^5.0.0", + "fs-access": "^1.0.1", + "git-semver-tags": "^4.0.0", + "semver": "^7.1.1", + "stringify-package": "^1.0.1", + "yargs": "^16.0.0" + }, + "bin": { + "standard-version": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/standard-version/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/standard-version/node_modules/compare-func": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog": { + "version": "3.1.24", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-angular": { + "version": "5.0.12", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-core": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^4.0.18", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "shelljs": "^0.8.3", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "dev": true, + "license": "ISC", + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/dargs": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/dateformat": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/standard-version/node_modules/dot-prop": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/standard-version/node_modules/figures": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/git-raw-commits": { + "version": "2.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/git-semver-tags": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/standard-version/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/hosted-git-info": { + "version": "4.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/is-obj": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/meow": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/standard-version/node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/standard-version/node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/normalize-package-data": { + "version": "3.0.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "resolve": "^1.20.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/standard-version/node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/standard-version/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-version/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/standard-version/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/standard-version/node_modules/through2": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/store2": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.13.2.tgz", + "integrity": "sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg==", + "dev": true + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "node_modules/streamsearch": { + "version": "0.1.2", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", + "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padstart": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.3.tgz", + "integrity": "sha512-NZydyOMtYxpTjGqp0VN5PYUF/tsU15yDMZnUdj16qRUIUiMJkHHSDElYyQFrMu+/WloTpA7MQSiADhBicDfaoA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stubs": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/style-loader": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", + "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "node_modules/style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "dev": true, + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/stylelint": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.6.0.tgz", + "integrity": "sha512-Xk2sqXYPi9nXgq70nBiZkbQm/QOOKd83NBTaBE1fXEWAEeRlgHnKC/E7kJFlT6K0SaNDOK5yIvR7GFPGsNLuOg==", + "dev": true, + "dependencies": { + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.0.1", + "debug": "^4.3.3", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.1.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.24.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "normalize-selector": "^0.2.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.12", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "stylelint": ">=11.0.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^7.0.0" + }, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "dependencies": { + "is-regexp": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/stylelint/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/superagent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz", + "integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==", + "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at <https://github.com/visionmedia/superagent/releases>.", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.2", + "debug": "^4.1.1", + "fast-safe-stringify": "^2.0.7", + "form-data": "^3.0.0", + "formidable": "^1.2.2", + "methods": "^1.1.2", + "mime": "^2.4.6", + "qs": "^6.9.4", + "readable-stream": "^3.6.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 7.0.0" + } + }, + "node_modules/superagent-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-3.0.0.tgz", + "integrity": "sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==", + "dependencies": { + "debug": "^4.3.2", + "proxy-agent": "^5.0.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "superagent": ">= 0.15.4 || 1 || 2 || 3" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/supertest": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.2.tgz", + "integrity": "sha512-wCw9WhAtKJsBvh07RaS+/By91NNE0Wh0DN19/hWPlBOU8tAfOtbZoVSV4xXeoKoxgPx0rx2y+y+8660XtE7jzg==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^7.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/supertest/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/supertest/node_modules/formidable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", + "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, + "dependencies": { + "dezalgo": "1.0.3", + "hexoid": "1.0.0", + "once": "1.4.0", + "qs": "6.9.3" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/supertest/node_modules/formidable/node_modules/qs": { + "version": "6.9.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/supertest/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/supertest/node_modules/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, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/supertest/node_modules/superagent": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-7.1.1.tgz", + "integrity": "sha512-CQ2weSS6M+doIwwYFoMatklhRbx6sVNdB99OEJ5czcP3cng76Ljqus694knFWgOj3RkrtxZqIgpe6vhe0J7QWQ==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.3", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "^2.5.0", + "qs": "^6.10.1", + "readable-stream": "^3.6.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/symbol.prototype.description": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz", + "integrity": "sha512-x738iXRYsrAt9WBhRCVG5BtIC3B7CUkFwbHW2zOvGtwM33s7JjrCDyq8V0zgMYVb5ymsL8+qkzzpANH63CPQaQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-symbol-description": "^1.0.0", + "has-symbols": "^1.0.2", + "object.getownpropertydescriptors": "^2.1.2" + }, + "engines": { + "node": ">= 0.11.15" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synchronous-promise": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz", + "integrity": "sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/telejson": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.3.3.tgz", + "integrity": "sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA==", + "dev": true, + "dependencies": { + "@types/is-function": "^1.0.0", + "global": "^4.4.0", + "is-function": "^1.0.2", + "is-regex": "^1.1.2", + "is-symbol": "^1.0.3", + "isobject": "^4.0.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3" + } + }, + "node_modules/temp": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "dev": true, + "dependencies": { + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/tempy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "dev": true, + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link/node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "dev": true, + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "dev": true, + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "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": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-encoding-polyfill": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/text-encoding-polyfill/-/text-encoding-polyfill-0.6.7.tgz", + "integrity": "sha512-/DZ1XJqhbqRkCop6s9ZFu8JrFRwmVuHg4quIRm+ziFkR3N3ec6ck6yBvJ1GYeEQZhLVwRW0rZE+C3SSJpy0RTg==" + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "node_modules/throttle-debounce": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", + "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/through": { + "version": "2.3.8", + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/tildify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", + "dev": true + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "dev": true + }, + "node_modules/touch": { + "version": "3.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "node_modules/trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-jest": { + "version": "27.1.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz", + "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^27.0.0", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@types/jest": "^27.0.0", + "babel-jest": ">=27.0.0 <28", + "esbuild": "~0.14.0", + "jest": "^27.0.0", + "typescript": ">=3.8 <5.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.3.0.tgz", + "integrity": "sha512-MgGly4I6cStsJy27ViE32UoqxPTN9Xly4anxxVyaIWR+9BGxboV4EyJBGfR3RePV7Ksjj3rHmPZJeIt+7o4Vag==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^2.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "*" + } + }, + "node_modules/ts-map": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-map/-/ts-map-1.0.3.tgz", + "integrity": "sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==", + "dev": true + }, + "node_modules/ts-node": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.0", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "dependencies": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tsconfig/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tsconfig/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tus-js-client": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tus-js-client/-/tus-js-client-2.3.1.tgz", + "integrity": "sha512-QEM7ySnthWT+wwePLTXVSQP8vBLCy0ZoJNDGFzNlsU+YVoK2WevIZwcRnKyo962xhYMiABe3aMvXvk4Ln+VRzQ==", + "dev": true, + "dependencies": { + "buffer-from": "^0.1.1", + "combine-errors": "^3.0.3", + "is-stream": "^2.0.0", + "js-base64": "^2.6.1", + "lodash.throttle": "^4.1.1", + "proper-lockfile": "^2.0.1", + "url-parse": "^1.5.7" + } + }, + "node_modules/tus-js-client/node_modules/buffer-from": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz", + "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==", + "dev": true + }, + "node_modules/tus-node-server": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/tus-node-server/-/tus-node-server-0.5.2.tgz", + "integrity": "sha512-R+tzYO29beg8YNhEekzxtuScP5+IbNUPOM69S4Pc8+xJkCVHuX8VsfPuEzFkpLATLRi4qGi0cKrpIyfQWiVfaA==", + "dependencies": { + "@google-cloud/storage": "^5.18.1", + "aws-sdk": "^2.1064.0", + "configstore": "^5.0.1", + "debug": "^4.3.3" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "license": "MIT" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typedoc": { + "version": "0.21.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.21.10.tgz", + "integrity": "sha512-Y0wYIehkjkPfsp3pv86fp3WPHUcOf8pnQUDLwG1PqSccUSqdsv7Pz1Gd5WrTJvXQB2wO1mKlZ8qW8qMiopKyjA==", + "dev": true, + "dependencies": { + "glob": "^7.1.7", + "handlebars": "^4.7.7", + "lunr": "^2.3.9", + "marked": "^4.0.10", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shiki": "^0.9.8", + "typedoc-default-themes": "^0.12.10" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 12.10.0" + }, + "peerDependencies": { + "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x" + } + }, + "node_modules/typedoc-default-themes": { + "version": "0.12.10", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz", + "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typedoc-plugin-pages-fork": { + "version": "0.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "compare-versions": "^3.6.0", + "typedoc-default-themes": "^0.10.1" + } + }, + "node_modules/typedoc-plugin-pages-fork/node_modules/typedoc-default-themes": { + "version": "0.10.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lunr": "^2.3.8" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typedoc-plugin-sourcefile-url": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typedoc": ">=0.16.0" + } + }, + "node_modules/typedoc/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.13.7", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unfetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", + "dev": true + }, + "node_modules/unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dev": true, + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unique-string/node_modules/crypto-random-string": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "dev": true, + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "dev": true, + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unixify": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/urlgrey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", + "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "dev": true, + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use-composed-ref": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz", + "integrity": "sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw==", + "dev": true, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz", + "integrity": "sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==", + "dev": true, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.0.tgz", + "integrity": "sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==", + "dev": true, + "dependencies": { + "use-isomorphic-layout-effect": "^1.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/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, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uuid-browser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid-browser/-/uuid-browser-3.1.0.tgz", + "integrity": "sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA=", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", + "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==" + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/value-or-promise": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", + "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.8.6.tgz", + "integrity": "sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==", + "dev": true, + "dependencies": { + "esbuild": "^0.14.14", + "postcss": "^8.4.6", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": ">=12.2.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + } + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/vm2": { + "version": "3.9.8", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.8.tgz", + "integrity": "sha512-/1PYg/BwdKzMPo8maOZ0heT7DLI0DAFTm7YQaz/Lim9oIaFZsJs3EdtalvXuBfZwczNwsYhju75NW4d6E+4q+w==", + "dependencies": { + "acorn": "^8.7.0", + "acorn-walk": "^8.2.0" + }, + "bin": { + "vm2": "bin/vm2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/vm2/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/vm2/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "node_modules/vue": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.31.tgz", + "integrity": "sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-sfc": "3.2.31", + "@vue/runtime-dom": "3.2.31", + "@vue/server-renderer": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "node_modules/vue-docgen-api": { + "version": "4.44.22", + "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.44.22.tgz", + "integrity": "sha512-r99SeIZRqVsu1MJ49sgSmONFbqWXN9HnPxS1W1hfhOGKVqgfBWzXpJsexBuLN7XIerQM8Y1908S7AAV6GJVbRQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.13.12", + "@babel/types": "^7.13.12", + "@vue/compiler-dom": "^3.2.0", + "@vue/compiler-sfc": "^3.2.0", + "ast-types": "0.14.2", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.5", + "pug": "^3.0.2", + "recast": "0.20.5", + "ts-map": "^1.0.3", + "vue-inbrowser-compiler-utils": "^4.44.22" + } + }, + "node_modules/vue-docgen-api/node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-docgen-api/node_modules/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==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/vue-docgen-api/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/vue-docgen-loader": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vue-docgen-loader/-/vue-docgen-loader-1.5.0.tgz", + "integrity": "sha512-LKZ8mxeIQ44uSUMTplnwOXbC4bO4E2vyZDTbn7/1QlVwJPEIjk3ahL0DA1m27IEw6YTlHOwtWS0PrHmDkFgyAg==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "jscodeshift": "^0.7.0", + "loader-utils": "^1.2.3", + "querystring": "^0.2.0" + }, + "engines": { + "node": ">= 8.16" + }, + "peerDependencies": { + "vue-docgen-api": ">=3", + "webpack": ">=4" + } + }, + "node_modules/vue-docgen-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/vue-docgen-loader/node_modules/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, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-eslint-parser": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.0.1", + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=8.10" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "6.2.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/vue-inbrowser-compiler-demi": { + "version": "4.44.22", + "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-demi/-/vue-inbrowser-compiler-demi-4.44.22.tgz", + "integrity": "sha512-J+VcduUx6iwj3cfz+huB2yhwrhL8Gk4cmXe4gspURfmDMc9uukgiDWJEEDUHQCxFT+R/zA4uQgBjKexWcHZKUw==", + "dev": true, + "hasInstallScript": true, + "peerDependencies": { + "vue": ">=2" + } + }, + "node_modules/vue-inbrowser-compiler-utils": { + "version": "4.44.22", + "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-utils/-/vue-inbrowser-compiler-utils-4.44.22.tgz", + "integrity": "sha512-wOW6JSG+YXzrYMglP6AVkERM+1Yp371UT88eTkkZe4z/LFRuTGhZZFUKV1u9SuUEwIzd0nC+seEVzLdEwGGZvA==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "vue-inbrowser-compiler-demi": "^4.44.22" + }, + "peerDependencies": { + "vue": ">=2" + } + }, + "node_modules/vue-inbrowser-compiler-utils/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/vue-loader": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.0.0.tgz", + "integrity": "sha512-OWSXjrzIvbF2LtOUmxT3HYgwwubbfFelN8PAP9R9dwpIkj48TVioHhWWSx7W7fk+iF5cgg3CBJRxwTdtLU4Ecg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + } + }, + "node_modules/vue-loader/node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/vue-meta": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-2.4.0.tgz", + "integrity": "sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==", + "dev": true, + "dependencies": { + "deepmerge": "^4.2.2" + } + }, + "node_modules/vue-router": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.14.tgz", + "integrity": "sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vuex": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", + "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.0.0-beta.11" + }, + "peerDependencies": { + "vue": "^3.0.2" + } + }, + "node_modules/vuex-router-sync": { + "version": "6.0.0-rc.1", + "resolved": "https://registry.npmjs.org/vuex-router-sync/-/vuex-router-sync-6.0.0-rc.1.tgz", + "integrity": "sha512-pzVrX/rmQsDjJiKPAjgKxpkxWdiBBQmxATFA6eFyS2Tmo6jauq8iDk9BWxkw41/OA+pbq4wkONRC0aeErDw8GQ==", + "dev": true, + "peerDependencies": { + "vue-router": "^4.0.0", + "vuex": "^4.0.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "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" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "optional": true + }, + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "optional": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "optional": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/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, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/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, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/webpack-hot-middleware": { + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz", + "integrity": "sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw==", + "dev": true, + "dependencies": { + "ansi-html-community": "0.0.8", + "html-entities": "^2.1.0", + "querystring": "^0.2.0", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-log/node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-log/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", + "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", + "dev": true, + "dependencies": { + "debug": "^3.0.0" + } + }, + "node_modules/webpack-virtual-modules/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true, + "peer": true + }, + "node_modules/webpack/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack/node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "peer": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wgs84": { + "version": "0.0.0", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/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 + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha1-pwIEUwhNjNLv5wup02liY94XEKU=", + "dev": true + }, + "node_modules/winston": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz", + "integrity": "sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w==", + "dependencies": { + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston-transport/node_modules/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wkt-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.3.1.tgz", + "integrity": "sha512-XK5qV+Y5gsygQfHx2/cS5a7Zxsgleaw8iX5UPC5eOXPc0TgJAu1JB9lr0iYYX3zAnN3p0aNiaN5c+1Bdblxwrg==" + }, + "node_modules/wmf": { + "version": "1.0.2", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "dev": true, + "dependencies": { + "microevent.ts": "~0.1.1" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/xlsx": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.4.tgz", + "integrity": "sha512-u2plLVR/Ju2NxByPcWuxW3eOHEE/EH8w0vDyvHx8pFa8qO3fpq+l/57msr/Eq4cY5LErFOFD4sp4jIyPd6nFzQ==", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "engines": { + "node": "*" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "packages/api": { + "name": "camino-api", + "version": "0.38.0", + "license": "AGPL-3.0-or-later", + "dependencies": { + "@graphql-tools/graphql-file-loader": "^7.3.5", + "@graphql-tools/load": "^7.5.3", + "@placemarkio/check-geojson": "^0.1.8", + "@sentry/node": "^6.18.2", + "@sentry/types": "^6.18.2", + "@sindresorhus/slugify": "^1.1.2", + "@turf/center": "^6.5.0", + "@turf/intersect": "^6.5.0", + "@types/basic-auth": "^1.1.3", + "@types/bcryptjs": "^2.4.2", + "@types/compression": "1.7.2", + "@types/cookie-parser": "^1.4.2", + "@types/cors": "^2.8.12", + "@types/cron": "^1.7.3", + "@types/dateformat": "^5.0.0", + "@types/express": "^4.17.13", + "@types/express-jwt": "6.0.4", + "@types/express-serve-static-core": "^4.17.28", + "@types/geojson": "^7946.0.8", + "@types/graphql-type-json": "^0.3.2", + "@types/graphql-upload": "^8.0.11", + "@types/jest": "^27.4.1", + "@types/jsonwebtoken": "^8.5.8", + "@types/node": "^17.0.21", + "@types/node-fetch": "^2.5.12", + "@types/node-mailjet": "^3.3.8", + "@types/pg": "^8.6.5", + "@types/proj4": "^2.5.2", + "@types/shpjs": "^3.4.1", + "@types/sql-formatter": "^2.3.0", + "basic-auth": "^2.0.1", + "bcryptjs": "^2.4.3", + "camelcase": "^6.3.0", + "cerbere": "^0.2.3", + "chalk": "^4.1.2", + "compression": "^1.7.4", + "cookie-parser": "^1.4.6", + "cors": "^2.8.5", + "cron": "^1.8.2", + "cross-env": "^7.0.3", + "crypto-random-string": "^3.3.1", + "dateformat": "^4.5.1", + "decamelize": "^5.0.0", + "dotenv": "^16.0.0", + "email-regex": "4.0.0", + "express": "^4.17.3", + "express-graphql": "^0.12.0", + "express-jwt": "^6.1.1", + "geojson-rewind": "^0.3.1", + "graphql": "^16.3.0", + "graphql-fields": "^2.0.3", + "graphql-scalars": "^1.15.0", + "graphql-type-json": "^0.3.2", + "graphql-upload": "^13.0.0", + "html-to-text": "^8.1.0", + "jsondiffpatch": "^0.4.1", + "jsonwebtoken": "^8.5.1", + "jszip": "^3.7.1", + "knex": "1.0.4", + "make-dir": "^3.1.0", + "matomo-tracker": "^2.2.4", + "node-fetch": "^2.6.5", + "node-mailjet": "^3.3.7", + "objection": "^3.0.1", + "p-queue": "^6.6.2", + "pg": "^8.7.3", + "proj4": "^2.8.0", + "shpjs": "^4.0.2", + "ts-node": "^10.7.0", + "tus-node-server": "^0.5.2", + "typescript": "^4.6.2", + "winston": "^3.6.0", + "xlsx": "^0.18.4" + }, + "devDependencies": { + "@jest/types": "^27.5.1", + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/git": "^10.0.1", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.15.0", + "@typescript-eslint/parser": "^5.15.0", + "codecov": "^3.8.3", + "commitizen": "^4.2.4", + "cz-conventional-changelog": "^3.3.0", + "eslint": "^8.11.0", + "eslint-config-prettier": "^8.5.0", + "eslint-config-standard": "^17.0.0-1", + "eslint-plugin-import": "^2.25.4", + "eslint-plugin-jest": "^26.1.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-standard": "^5.0.0", + "eslint-plugin-tsdoc": "^0.2.14", + "jest": "^27.5.1", + "lint-staged": "^12.3.6", + "nodemon": "^2.0.15", + "npm-check-updates": "^12.5.3", + "pg-escape": "^0.2.0", + "prettier-eslint": "^13.0.0", + "semantic-release": "^19.0.2", + "sql-formatter": "^4.0.2", + "standard-version": "^9.3.2", + "supertest": "^6.2.2", + "ts-jest": "^27.1.3", + "typedoc": "^0.21.9", + "typedoc-plugin-pages-fork": "^0.0.1", + "typedoc-plugin-sourcefile-url": "^1.0.6" + }, + "engines": { + "node": ">=16.12.0", + "npm": ">=7.24.0" + } + }, + "packages/ui": { + "name": "camino-ui", + "version": "0.34.0", + "license": "AGPL-3.0-or-later", + "dependencies": { + "choices.js": "^10.1.0", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "dotenv": "^16.0.0", + "express": "^4.17.3", + "http-proxy-middleware": "^2.0.4" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.17.0", + "@babel/preset-env": "^7.16.11", + "@juggle/resize-observer": "^3.3.1", + "@mapbox/stylelint-processor-arbitrary-tags": "^0.4.0", + "@rollup/plugin-inject": "^4.0.4", + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/git": "^10.0.1", + "@sentry/browser": "^6.18.2", + "@sentry/integrations": "^6.18.2", + "@storybook/addon-actions": "^6.4.19", + "@storybook/addon-controls": "^6.4.19", + "@storybook/addon-postcss": "^2.0.0", + "@storybook/addon-storyshots": "^6.4.19", + "@storybook/vue3": "^6.4.19", + "@types/jest": "^27.4.1", + "@types/leaflet": "^1.7.9", + "@types/leaflet.markercluster": "^1.4.6", + "@types/webpack-env": "^1.16.3", + "@typescript-eslint/parser": "^5.15.0", + "@uppy/core": "^2.1.6", + "@uppy/tus": "^2.2.0", + "@vitejs/plugin-vue": "^2.2.4", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-standard": "^6.1.0", + "@vue/test-utils": "^2.0.0-rc.17", + "@vue/vue3-jest": "27.0.0-alpha.4", + "babel-core": "^7.0.0-bridge.0", + "babel-jest": "^27.5.1", + "babel-loader": "^8.2.3", + "babel-plugin-graphql-tag": "^3.3.0", + "babel-preset-vite": "^1.0.4", + "chalk": "^5.0.1", + "chart.js": "^3.7.1", + "codecov": "^3.8.3", + "commitizen": "^4.2.4", + "core-js": "^3.21.1", + "cross-env": "^7.0.3", + "cross-fetch": "^3.1.5", + "cz-conventional-changelog": "^3.3.0", + "email-validator": "^2.0.4", + "eslint": "^7.32.0", + "eslint-config-prettier": "^8.5.0", + "eslint-config-standard": "^16.0.3", + "eslint-plugin-import": "^2.25.4", + "eslint-plugin-jest": "^26.1.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^5.2.0", + "eslint-plugin-vue": "^7.19.1", + "file-saver": "^2.0.5", + "graphql": "^16.3.0", + "graphql-react": "^15.0.0", + "graphql-tag": "^2.12.6", + "html-webpack-plugin": "^5.5.0", + "jest": "^27.5.1", + "jest-fetch-mock": "^3.0.3", + "jest-serializer-vue": "^2.0.2", + "jest-transform-stub": "^2.0.0", + "jest-util": "^27.5.1", + "json2csv": "^5.0.7", + "jsondiffpatch": "^0.4.1", + "leaflet": "1.7.1", + "leaflet-fullscreen": "^1.0.2", + "leaflet-gesture-handling": "^1.2.2", + "leaflet-markers-canvas": "^0.2.2", + "leaflet.markercluster": "^1.5.3", + "lint-staged": "^12.3.6", + "npm-check-updates": "^12.5.3", + "pixrem": "^5.0.0", + "postcss-button": "^0.3.17", + "postcss-calc": "^8.2.4", + "postcss-color-mod-function": "^3.0.3", + "postcss-grid-fluid": "^0.3.4", + "postcss-grid-system": "^0.5.2", + "postcss-import": "14.0.2", + "postcss-inline-svg": "5.0.0", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.4.2", + "postcss-typescale": "^0.2.3", + "prettier": "^2.6.0", + "rbush": "^3.0.1", + "semantic-release": "^19.0.2", + "snarkdown": "^2.0.0", + "standard-version": "^9.3.2", + "stylelint": "^14.6.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard": "^25.0.0", + "ts-jest": "^27.1.3", + "typescript": "^4.6.2", + "vite": "^2.8.6", + "vue": "^3.2.31", + "vue-loader": "^17.0.0", + "vue-meta": "^2.4.0", + "vue-router": "^4.0.14", + "vuex": "^4.0.2", + "vuex-router-sync": "^6.0.0-rc.1" + }, + "engines": { + "node": ">=16.12.0", + "npm": ">=7.24.0" + } + }, + "packages/ui/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "packages/ui/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "packages/ui/node_modules/@vue/eslint-config-standard": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz", + "integrity": "sha512-9+hrEyflDzsGdlBDl9jPV5DIYUx1TOU5OSQqRDKCrNumrxRj5HRWKuk+ocXWnha6uoNRtLC24mY7d/MwqvBCNw==", + "dev": true, + "dependencies": { + "eslint-config-standard": "^16.0.3", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-webpack": "^0.13.1" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0", + "eslint": "^7.12.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.2.1 || ^5.0.0", + "eslint-plugin-vue": "^7.0.0" + }, + "peerDependenciesMeta": { + "@vue/cli-service": { + "optional": true + } + } + }, + "packages/ui/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "packages/ui/node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ui/node_modules/eslint-config-standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", + "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^7.12.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.2.1 || ^5.0.0" + } + }, + "packages/ui/node_modules/eslint-plugin-promise": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz", + "integrity": "sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw==", + "dev": true, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0" + } + }, + "packages/ui/node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "packages/ui/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "packages/ui/node_modules/espree/node_modules/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "packages/ui/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "packages/ui/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "dev": true + }, + "@babel/core": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", + "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.15.8", + "@babel/generator": "^7.15.8", + "@babel/helper-compilation-targets": "^7.15.4", + "@babel/helper-module-transforms": "^7.15.8", + "@babel/helpers": "^7.15.4", + "@babel/parser": "^7.15.8", + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.15.8", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", + "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "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 + } + } + }, + "@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dev": true, + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "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 + } + } + }, + "@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "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.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "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 + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "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 + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", + "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "dev": true, + "requires": { + "@babel/template": "^7.15.4", + "@babel/traverse": "^7.15.4", + "@babel/types": "^7.15.4" + } + }, + "@babel/highlight": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", + "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", + "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-default-from": "^7.16.7" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", + "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", + "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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.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.10.4" + } + }, + "@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", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "dependencies": { + "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 + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", + "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", + "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "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 + } + } + }, + "@babel/preset-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.7.tgz", + "integrity": "sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-flow-strip-types": "^7.16.7" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "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/preset-react": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + } + }, + "@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + } + }, + "@babel/register": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz", + "integrity": "sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/runtime": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", + "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + } + } + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.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 + } + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" + }, + "@commitlint/execute-rule": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-13.2.0.tgz", + "integrity": "sha512-6nPwpN0hwTYmsH3WM4hCdN+NrMopgRIuQ0aqZa+jnwMoS/g6ljliQNYfL+m5WO306BaIu1W3yYpbW5aI8gEr0g==", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-13.2.0.tgz", + "integrity": "sha512-Nhkv+hwWCCxWGjmE9jd1U8kfGGCkZVpwzlTtdKxpY+Aj2VCFg3BjY+qA81pMF3oAsIpxchSaZG5llb8kduVjYg==", + "dev": true, + "optional": true, + "requires": { + "@commitlint/execute-rule": "^13.2.0", + "@commitlint/resolve-extends": "^13.2.0", + "@commitlint/types": "^13.2.0", + "@endemolshinegroup/cosmiconfig-typescript-loader": "^3.0.2", + "chalk": "^4.0.0", + "cosmiconfig": "^7.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0" + } + }, + "@commitlint/resolve-extends": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-13.2.0.tgz", + "integrity": "sha512-HLCMkqMKtvl1yYLZ1Pm0UpFvd0kYjsm1meLOGZ7VkOd9G/XX+Fr1S2G5AT2zeiDw7WUVYK8lGVMNa319bnV+aw==", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + } + }, + "@commitlint/types": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.2.0.tgz", + "integrity": "sha512-RRVHEqmk1qn/dIaSQhvuca6k/6Z54G+r/KyimZ8gnAFielGiGUpsFRhIY3qhd5rXClVxDaa3nlcyTWckSccotQ==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.0.0" + } + }, + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", + "dev": true + }, + "@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==", + "dev": true + }, + "@csstools/postcss-color-function": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", + "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-font-format-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", + "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-hwb-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", + "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-ic-unit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", + "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", + "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "@csstools/postcss-normalize-display-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", + "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-oklab-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", + "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@dabh/diagnostics": { + "version": "2.0.2", + "requires": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@emotion/cache": { + "version": "10.0.29", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", + "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", + "dev": true, + "requires": { + "@emotion/sheet": "0.9.4", + "@emotion/stylis": "0.8.5", + "@emotion/utils": "0.11.3", + "@emotion/weak-memoize": "0.2.5" + } + }, + "@emotion/core": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz", + "integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/cache": "^10.0.27", + "@emotion/css": "^10.0.27", + "@emotion/serialize": "^0.11.15", + "@emotion/sheet": "0.9.4", + "@emotion/utils": "0.11.3" + } + }, + "@emotion/css": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", + "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", + "dev": true, + "requires": { + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "dev": true + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "dev": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "dev": true + }, + "@emotion/serialize": { + "version": "0.11.16", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", + "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", + "dev": true, + "requires": { + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/unitless": "0.7.5", + "@emotion/utils": "0.11.3", + "csstype": "^2.5.7" + } + }, + "@emotion/sheet": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", + "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", + "dev": true + }, + "@emotion/styled": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.3.0.tgz", + "integrity": "sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==", + "dev": true, + "requires": { + "@emotion/styled-base": "^10.3.0", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/styled-base": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.3.0.tgz", + "integrity": "sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/is-prop-valid": "0.8.8", + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3" + } + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", + "dev": true + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "dev": true + }, + "@emotion/utils": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", + "dev": true + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", + "dev": true + }, + "@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "dev": true, + "optional": true, + "requires": { + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" + }, + "dependencies": { + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "optional": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + } + } + }, + "@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } + } + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@google-cloud/common": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz", + "integrity": "sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg==", + "requires": { + "@google-cloud/projectify": "^2.0.0", + "@google-cloud/promisify": "^2.0.0", + "arrify": "^2.0.1", + "duplexify": "^4.1.1", + "ent": "^2.2.0", + "extend": "^3.0.2", + "google-auth-library": "^7.9.2", + "retry-request": "^4.2.2", + "teeny-request": "^7.0.0" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + } + } + }, + "@google-cloud/paginator": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz", + "integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==", + "requires": { + "arrify": "^2.0.0", + "extend": "^3.0.2" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + } + } + }, + "@google-cloud/projectify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", + "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==" + }, + "@google-cloud/promisify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", + "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==" + }, + "@google-cloud/storage": { + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.18.2.tgz", + "integrity": "sha512-hL/6epBF2uPt7YtJoOKI6mVxe6RsKBs7S8o2grE0bFGdQKSOngVHBcstH8jDw7aN2rXGouA2TfVTxH+VapY5cg==", + "requires": { + "@google-cloud/common": "^3.8.1", + "@google-cloud/paginator": "^3.0.7", + "@google-cloud/promisify": "^2.0.0", + "abort-controller": "^3.0.0", + "arrify": "^2.0.0", + "async-retry": "^1.3.3", + "compressible": "^2.0.12", + "configstore": "^5.0.0", + "date-and-time": "^2.0.0", + "duplexify": "^4.0.0", + "extend": "^3.0.2", + "gaxios": "^4.0.0", + "get-stream": "^6.0.0", + "google-auth-library": "^7.0.0", + "hash-stream-validation": "^0.2.2", + "mime": "^3.0.0", + "mime-types": "^2.0.8", + "p-limit": "^3.0.1", + "pumpify": "^2.0.0", + "snakeize": "^0.1.0", + "stream-events": "^1.0.4", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + } + } + }, + "@graphql-tools/graphql-file-loader": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.5.tgz", + "integrity": "sha512-TBWDA7EV/cmFFUlN2eT9JqYIkiOGEtwwOgzzPcjM9HlPrbKjQkPIJ9Jaxp7aKWbSGhJ+PnbZ7vFLFLGKsCYOjg==", + "requires": { + "@graphql-tools/import": "6.6.7", + "@graphql-tools/utils": "8.6.3", + "globby": "^11.0.3", + "tslib": "~2.3.0", + "unixify": "^1.0.0" + } + }, + "@graphql-tools/import": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.7.tgz", + "integrity": "sha512-zzpnVtmdel3mKz6i46GUib4wn0K5dosq4OTBl4avKV6ElvgZTkvsvfSv2aRhbRGIT4VnZPXLfzSnmYd8e+SRLQ==", + "requires": { + "@graphql-tools/utils": "8.6.3", + "resolve-from": "5.0.0", + "tslib": "~2.3.0" + } + }, + "@graphql-tools/load": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.3.tgz", + "integrity": "sha512-GYwLyGfX1nKUxg6rnTIdryv9d+ugFRTm2q11+IqNsajwNhxJExkx+e/h81AQR5382sAmPEIT+E1J1VS3xNfjyg==", + "requires": { + "@graphql-tools/schema": "8.3.3", + "@graphql-tools/utils": "8.6.3", + "p-limit": "3.1.0", + "tslib": "~2.3.0" + } + }, + "@graphql-tools/merge": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.4.tgz", + "integrity": "sha512-hiNRTsS948F+BB4Q7CZXLaGFOIHQzmimVq3EEI/+PQZsPb7kYDzg0Ow0GyV4conDdEiooLqHf7I1dWzTYwvs0A==", + "requires": { + "@graphql-tools/utils": "8.6.3", + "tslib": "~2.3.0" + } + }, + "@graphql-tools/schema": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.3.tgz", + "integrity": "sha512-OrRLU9/7UmkDemeyNUy62uH+FofgV3bpVVZJprc9bhe3gZsY7kQNIdY7H1unINlepjLvGOgk7u7iLo2+EhjyWw==", + "requires": { + "@graphql-tools/merge": "8.2.4", + "@graphql-tools/utils": "8.6.3", + "tslib": "~2.3.0", + "value-or-promise": "1.0.11" + } + }, + "@graphql-tools/utils": { + "version": "8.6.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.3.tgz", + "integrity": "sha512-CNyP7Uu7dlVMQ32IpHWOxz4yic9BYXXVkDhG0UdTKSszvzHdgMilemE9MpUrGzzBPsTe3aYTtNGyPUkyh9yTXA==", + "requires": { + "tslib": "~2.3.0" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/momoa": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.3.tgz", + "integrity": "sha512-SytjS6gJk+LXSWFuEm0V9ASdgxlX/BDq6A+6gfh7TaHM90xppBydjcM3SFaziZP4ikKmhUOhPkDi2KktzElnQQ==" + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "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-limit": { + "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 + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@juggle/resize-observer": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz", + "integrity": "sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==", + "dev": true + }, + "@mapbox/geojson-area": { + "version": "0.2.2", + "requires": { + "wgs84": "0.0.0" + } + }, + "@mapbox/stylelint-processor-arbitrary-tags": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@mapbox/stylelint-processor-arbitrary-tags/-/stylelint-processor-arbitrary-tags-0.4.0.tgz", + "integrity": "sha512-HTyW4vLgCVrAvmbV4TtXVpkrg3gkRR4WMEveNOo4OBxzA5wl5xQdxe0Iow8B5FRI3ose5yFLA8jvbfU8ZayPJQ==", + "dev": true, + "requires": { + "execall": "^1.0.0", + "split-lines": "^1.1.0" + } + }, + "@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "dev": true, + "requires": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + } + } + }, + "@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "dev": true + }, + "@microsoft/tsdoc": { + "version": "0.13.2", + "dev": true + }, + "@microsoft/tsdoc-config": { + "version": "0.15.2", + "dev": true, + "requires": { + "@microsoft/tsdoc": "0.13.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + }, + "dependencies": { + "resolve": { + "version": "1.19.0", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + } + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "dependencies": { + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4" + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "@npmcli/git": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.0.tgz", + "integrity": "sha512-xfSBJ+KBMZWWqRHFbEgIaXG/LtELHrQZMJ72Gkb3yWdHysu/7+VGOs8ME0c3td7QNQX57Ggo3kYL6ylcd70/kA==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^7.3.1", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.6.0.tgz", + "integrity": "sha512-zjOf6cyMI7rcN+5MtLsT4GnDjc6D9XHi8kYcsfXTqWC+yLdSiU3/jtEPX9wZE77+XLtnmdIWu3+291hkizfH+Q==", + "dev": true + } + } + }, + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "requires": { + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.1.tgz", + "integrity": "sha512-o2fkld5hYwu9sKYzoXTpqEocMnDLaigobaPzLaGB63k/ExmLBTaB+KpfKlpcIePPnuP8RFR+0GDI4KopJCM6Xg==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^1.0.3", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3" + } + }, + "@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dev": true, + "requires": { + "@octokit/types": "^6.0.3" + } + }, + "@octokit/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", + "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "dev": true, + "requires": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.0", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dev": true, + "requires": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dev": true, + "requires": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", + "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", + "dev": true + }, + "@octokit/plugin-paginate-rest": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", + "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", + "dev": true, + "requires": { + "@octokit/types": "^6.34.0" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "requires": {} + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", + "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "dev": true, + "requires": { + "@octokit/types": "^6.34.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", + "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "dev": true, + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dev": true, + "requires": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/rest": { + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "dev": true, + "requires": { + "@octokit/core": "^3.5.1", + "@octokit/plugin-paginate-rest": "^2.16.8", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + } + }, + "@octokit/types": { + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", + "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "dev": true, + "requires": { + "@octokit/openapi-types": "^11.2.0" + } + }, + "@placemarkio/check-geojson": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@placemarkio/check-geojson/-/check-geojson-0.1.8.tgz", + "integrity": "sha512-MLt5Pe6j/iNjG1H55wJUw/g0wu6rcEpnNuLYdfn9d6IfHgYpKY3aID2BOj3DWSGS/1e9MevcPKLOFwaIH/2cLg==", + "requires": { + "@humanwhocodes/momoa": "^2.0.3", + "@types/geojson": "^7946.0.8", + "@types/jest": "^27.4.0", + "type-fest": "^2.12.0" + }, + "dependencies": { + "type-fest": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.0.tgz", + "integrity": "sha512-Qe5GRT+n/4GoqCNGGVp5Snapg1Omq3V7irBJB3EaKsp7HWDo5Gv2d/67gfNyV+d5EXD+x/RF5l1h4yJ7qNkcGA==" + } + } + }, + "@popperjs/core": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.4.tgz", + "integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==", + "dev": true + }, + "@rollup/plugin-inject": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-4.0.4.tgz", + "integrity": "sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "estree-walker": "^2.0.1", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@selderee/plugin-htmlparser2": { + "version": "0.6.0", + "requires": { + "domhandler": "^4.2.0", + "selderee": "^0.6.0" + } + }, + "@semantic-release/changelog": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz", + "integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==", + "dev": true, + "requires": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "fs-extra": "^9.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@semantic-release/commit-analyzer": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", + "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "import-from": "^4.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.2" + }, + "dependencies": { + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + } + } + }, + "@semantic-release/error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", + "dev": true + }, + "@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", + "dev": true, + "requires": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + } + }, + "@semantic-release/github": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.2.tgz", + "integrity": "sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg==", + "dev": true, + "requires": { + "@octokit/rest": "^18.0.0", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^3.0.0", + "bottleneck": "^2.18.1", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "fs-extra": "^10.0.0", + "globby": "^11.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "issue-parser": "^6.0.0", + "lodash": "^4.17.4", + "mime": "^3.0.0", + "p-filter": "^2.0.0", + "p-retry": "^4.0.0", + "url-join": "^4.0.0" + }, + "dependencies": { + "@semantic-release/error": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", + "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", + "dev": true + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@semantic-release/npm": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.0.tgz", + "integrity": "sha512-hj2jqayS2SPUmFtCMCOQMX975uMDfRoymj1HvMSwYdaoI6hVZvhrTFPBgJeM85O0C+G3IFviAUar5gel/1VGDQ==", + "dev": true, + "requires": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "execa": "^5.0.0", + "fs-extra": "^10.0.0", + "lodash": "^4.17.15", + "nerf-dart": "^1.0.0", + "normalize-url": "^6.0.0", + "npm": "^8.3.0", + "rc": "^1.2.8", + "read-pkg": "^5.0.0", + "registry-auth-token": "^4.0.0", + "semver": "^7.1.2", + "tempy": "^1.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@semantic-release/release-notes-generator": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", + "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "get-stream": "^6.0.0", + "import-from": "^4.0.0", + "into-stream": "^6.0.0", + "lodash": "^4.17.4", + "read-pkg-up": "^7.0.0" + }, + "dependencies": { + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "requires": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + } + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.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==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "requires": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "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" + } + }, + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true + }, + "p-limit": { + "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 + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + } + } + }, + "@sentry/browser": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.19.1.tgz", + "integrity": "sha512-nU73PecOoMwrsw2WRJW+oQSSfgGkcY3So3JH7qwRHnnk4Gx56TkDfS0AOrNRsSpIQXj1UbSFIWKzz6ajsOg9OA==", + "dev": true, + "requires": { + "@sentry/core": "6.19.1", + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/core": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.1.tgz", + "integrity": "sha512-ZSIFnwYCzABK1jX1iMwUbaAoWbbJear0wM+gSZvJpSUJ1dAXV1OZyL7kXtEJRtATahIlcrMou5ewIoeJizeWAw==", + "dev": true, + "requires": { + "@sentry/hub": "6.19.1", + "@sentry/minimal": "6.19.1", + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.1.tgz", + "integrity": "sha512-BgUwdxxXntGohAYrXtYrYBA6QzOeRz3NINuS838n7SRTkGf9gBJ/Rd3dyOWUrzJciKty7rmvYIwTA0oo91AMkw==", + "dev": true, + "requires": { + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.1.tgz", + "integrity": "sha512-Xre3J6mjWEcQhDmQ3j4g71J8f0nDgg2p7K41SngibfZVYSOe8jAowxSI9JuWD7juuwT5GVRVCqLs+Y6mWDBaoQ==", + "dev": true, + "requires": { + "@sentry/hub": "6.19.1", + "@sentry/types": "6.19.1", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.1.tgz", + "integrity": "sha512-ovmNYdqD2MKLmru4calxetX1xjJdYim+HEI/GzwvVUYshsaXRq4EiQ17h3DAy90MV7JH279PmMoPGDTOpufq+Q==", + "dev": true + }, + "@sentry/utils": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.1.tgz", + "integrity": "sha512-mWcQbQ1yO7PooLpJpQK84+wOfxGeb8iUKRb8inO+2Eg6VksDbXRuJ89Yd4APBTRxBj5Wihy48bPuVfKtovtm8g==", + "dev": true, + "requires": { + "@sentry/types": "6.19.1", + "tslib": "^1.9.3" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sentry/core": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.18.2.tgz", + "integrity": "sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==", + "requires": { + "@sentry/hub": "6.18.2", + "@sentry/minimal": "6.18.2", + "@sentry/types": "6.18.2", + "@sentry/utils": "6.18.2", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/hub": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.18.2.tgz", + "integrity": "sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==", + "requires": { + "@sentry/types": "6.18.2", + "@sentry/utils": "6.18.2", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/integrations": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.19.1.tgz", + "integrity": "sha512-0ViIiwx9BlPi8jvT97ERpJWmRbBUThGOyjNVzWxaa07OEjOgKI6cNgsBHWbPjaCM00WSzaOFOtYiC4464+Mucg==", + "dev": true, + "requires": { + "@sentry/types": "6.19.1", + "@sentry/utils": "6.19.1", + "localforage": "^1.8.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "@sentry/types": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.1.tgz", + "integrity": "sha512-ovmNYdqD2MKLmru4calxetX1xjJdYim+HEI/GzwvVUYshsaXRq4EiQ17h3DAy90MV7JH279PmMoPGDTOpufq+Q==", + "dev": true + }, + "@sentry/utils": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.1.tgz", + "integrity": "sha512-mWcQbQ1yO7PooLpJpQK84+wOfxGeb8iUKRb8inO+2Eg6VksDbXRuJ89Yd4APBTRxBj5Wihy48bPuVfKtovtm8g==", + "dev": true, + "requires": { + "@sentry/types": "6.19.1", + "tslib": "^1.9.3" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@sentry/minimal": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.18.2.tgz", + "integrity": "sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==", + "requires": { + "@sentry/hub": "6.18.2", + "@sentry/types": "6.18.2", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/node": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.18.2.tgz", + "integrity": "sha512-1S+44c09n3KVpCYjwOfnA9jKvnpPegpQWM81Nu5J6ToGx+ZiddMq6B9GRXUnFfZ7Z6fJHZzFtySasQC7KqkQoA==", + "requires": { + "@sentry/core": "6.18.2", + "@sentry/hub": "6.18.2", + "@sentry/types": "6.18.2", + "@sentry/utils": "6.18.2", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.18.2.tgz", + "integrity": "sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==" + }, + "@sentry/utils": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.18.2.tgz", + "integrity": "sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==", + "requires": { + "@sentry/types": "6.18.2", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sindresorhus/slugify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", + "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", + "requires": { + "@sindresorhus/transliterate": "^0.1.1", + "escape-string-regexp": "^4.0.0" + } + }, + "@sindresorhus/transliterate": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", + "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", + "requires": { + "escape-string-regexp": "^2.0.0", + "lodash.deburr": "^4.1.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==" + } + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@storybook/addon-actions": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.19.tgz", + "integrity": "sha512-GpSvP8xV8GfNkmtGJjfCgaOx6mbjtyTK0aT9FqX9pU0s+KVMmoCTrBh43b7dWrwxxas01yleBK9VpYggzhi/Fw==", + "dev": true, + "requires": { + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/theming": "6.4.19", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "polished": "^4.0.5", + "prop-types": "^15.7.2", + "react-inspector": "^5.1.0", + "regenerator-runtime": "^0.13.7", + "telejson": "^5.3.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "uuid-browser": "^3.1.0" + } + }, + "@storybook/addon-controls": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.19.tgz", + "integrity": "sha512-JHi5z9i6NsgQLfG5WOeQE1AyOrM+QJLrjT+uOYx40bq+OC1yWHH7qHiphPP8kjJJhCZlaQk1qqXYkkQXgaeHSw==", + "dev": true, + "requires": { + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/node-logger": "6.4.19", + "@storybook/store": "6.4.19", + "@storybook/theming": "6.4.19", + "core-js": "^3.8.2", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-postcss": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-postcss/-/addon-postcss-2.0.0.tgz", + "integrity": "sha512-Nt82A7e9zJH4+A+VzLKKswUfru+T6FJTakj4dccP0i8DSn7a0CkzRPrLuZBq8tg4voV6gD74bcDf3gViCVBGtA==", + "dev": true, + "requires": { + "@storybook/node-logger": "^6.1.14", + "css-loader": "^3.6.0", + "postcss": "^7.0.35", + "postcss-loader": "^4.2.0", + "style-loader": "^1.3.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", + "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "@storybook/addon-storyshots": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addon-storyshots/-/addon-storyshots-6.4.19.tgz", + "integrity": "sha512-HhXUJylImQIDxzkd7yvQ8p/mzUuvzPc1PWB3ZiwV+t6kg9LX8qnKdkQ6t/asIn54bARhNk3EURPTI8W2fWDgMg==", + "dev": true, + "requires": { + "@jest/transform": "^26.6.2", + "@storybook/addons": "6.4.19", + "@storybook/babel-plugin-require-context-hook": "1.0.1", + "@storybook/client-api": "6.4.19", + "@storybook/core": "6.4.19", + "@storybook/core-client": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@types/glob": "^7.1.3", + "@types/jest": "^26.0.16", + "@types/jest-specific-snapshot": "^0.5.3", + "core-js": "^3.8.2", + "glob": "^7.1.6", + "global": "^4.4.0", + "jest-specific-snapshot": "^4.0.0", + "preact-render-to-string": "^5.1.19", + "pretty-format": "^26.6.2", + "react-test-renderer": "^16.8.0 || ^17.0.0", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + }, + "dependencies": { + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/jest": { + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", + "dev": true, + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "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" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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" + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "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" + } + }, + "p-limit": { + "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 + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "@storybook/addons": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.19.tgz", + "integrity": "sha512-QNyRYhpqmHV8oJxxTBdkRlLSbDFhpBvfvMfIrIT1UXb/eemdBZTaCGVvXZ9UixoEEI7f8VwAQ44IvkU5B1509w==", + "dev": true, + "requires": { + "@storybook/api": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/router": "6.4.19", + "@storybook/theming": "6.4.19", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7" + } + }, + "@storybook/api": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.19.tgz", + "integrity": "sha512-aDvea+NpQCBjpNp9YidO1Pr7fzzCp15FSdkG+2ihGQfv5raxrN+IIJnGUXecpe71nvlYiB+29UXBVK7AL0j51Q==", + "dev": true, + "requires": { + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/router": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.4.19", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "telejson": "^5.3.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/babel-plugin-require-context-hook": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@storybook/babel-plugin-require-context-hook/-/babel-plugin-require-context-hook-1.0.1.tgz", + "integrity": "sha512-WM4vjgSVi8epvGiYfru7BtC3f0tGwNs7QK3Uc4xQn4t5hHQvISnCqbNrHdDYmNW56Do+bBztE8SwP6NGUvd7ww==", + "dev": true + }, + "@storybook/builder-webpack4": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.19.tgz", + "integrity": "sha512-wxA6SMH11duc9D53aeVVBwrVRemFIoxHp/dOugkkg6ZZFAb4ZmWzf/ENc3vQIZdZpfNRi7IZIZEOfoHc994cmw==", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-decorators": "^7.12.12", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.12", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-api": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/node-logger": "6.4.19", + "@storybook/preview-web": "6.4.19", + "@storybook/router": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.4.19", + "@storybook/theming": "6.4.19", + "@storybook/ui": "6.4.19", + "@types/node": "^14.0.10", + "@types/webpack": "^4.41.26", + "autoprefixer": "^9.8.6", + "babel-loader": "^8.0.0", + "babel-plugin-macros": "^2.8.0", + "babel-plugin-polyfill-corejs3": "^0.1.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "file-loader": "^6.2.0", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^4.1.6", + "glob": "^7.1.6", + "glob-promise": "^3.4.0", + "global": "^4.4.0", + "html-webpack-plugin": "^4.0.0", + "pnp-webpack-plugin": "1.6.4", + "postcss": "^7.0.36", + "postcss-flexbugs-fixes": "^4.2.1", + "postcss-loader": "^4.2.0", + "raw-loader": "^4.0.2", + "stable": "^0.1.8", + "style-loader": "^1.3.0", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-filter-warnings-plugin": "^1.2.1", + "webpack-hot-middleware": "^2.25.1", + "webpack-virtual-modules": "^0.2.2" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "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 + } + } + }, + "@types/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "dev": true + }, + "@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "@webassemblyjs/ast": { + "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.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/helper-api-error": { + "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.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-wasm-bytecode": { + "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.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.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.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.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.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.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.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.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.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.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.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.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.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-printer": { + "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.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "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" + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "cacache": { + "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", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chalk": { + "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", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "color-convert": { + "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" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true + }, + "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 + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", + "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "chalk": "^2.4.1", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + } + }, + "html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "dependencies": { + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "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-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "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" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "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 + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "postcss-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", + "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + } + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "serialize-javascript": { + "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" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "terser": { + "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" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "terser-webpack-plugin": { + "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": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + } + } + }, + "webpack-filter-warnings-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz", + "integrity": "sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==", + "dev": true, + "requires": {} + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@storybook/channel-postmessage": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.19.tgz", + "integrity": "sha512-E5h/itFzQ/6M08LR4kqlgqqmeO3tmavI+nUAlZrkCrotpJFNMHE2i0PQHg0TkFJrRDpYcrwD+AjUW4IwdqrisQ==", + "dev": true, + "requires": { + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "core-js": "^3.8.2", + "global": "^4.4.0", + "qs": "^6.10.0", + "telejson": "^5.3.2" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "@storybook/channel-websocket": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.19.tgz", + "integrity": "sha512-cXKwQjIXttfdUyZlcHORelUmJ5nUKswsnCA/qy7IRWpZjD8yQJcNk1dYC+tTHDVqFgdRT89pL0hRRB1rlaaR8Q==", + "dev": true, + "requires": { + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "core-js": "^3.8.2", + "global": "^4.4.0", + "telejson": "^5.3.2" + } + }, + "@storybook/channels": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.19.tgz", + "integrity": "sha512-EwyoncFvTfmIlfsy8jTfayCxo2XchPkZk/9txipugWSmc057HdklMKPLOHWP0z5hLH0IbVIKXzdNISABm36jwQ==", + "dev": true, + "requires": { + "core-js": "^3.8.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.19.tgz", + "integrity": "sha512-OCrT5Um3FDvZnimQKwWtwsaI+5agPwq2i8YiqlofrI/NPMKp0I7DEkCGwE5IRD1Q8BIKqHcMo5tTmfYi0AxyOg==", + "dev": true, + "requires": { + "@storybook/addons": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/store": "6.4.19", + "@types/qs": "^6.9.5", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "@storybook/client-logger": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.19.tgz", + "integrity": "sha512-zmg/2wyc9W3uZrvxaW4BfHcr40J0v7AGslqYXk9H+ERLVwIvrR4NhxQFaS6uITjBENyRDxwzfU3Va634WcmdDQ==", + "dev": true, + "requires": { + "core-js": "^3.8.2", + "global": "^4.4.0" + } + }, + "@storybook/components": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.19.tgz", + "integrity": "sha512-q/0V37YAJA7CNc+wSiiefeM9+3XVk8ixBNylY36QCGJgIeGQ5/79vPyUe6K4lLmsQwpmZsIq1s1Ad5+VbboeOA==", + "dev": true, + "requires": { + "@popperjs/core": "^2.6.0", + "@storybook/client-logger": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/theming": "6.4.19", + "@types/color-convert": "^2.0.0", + "@types/overlayscrollbars": "^1.12.0", + "@types/react-syntax-highlighter": "11.0.5", + "color-convert": "^2.0.1", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.1.3", + "memoizerific": "^1.11.3", + "overlayscrollbars": "^1.13.1", + "polished": "^4.0.5", + "prop-types": "^15.7.2", + "react-colorful": "^5.1.2", + "react-popper-tooltip": "^3.1.1", + "react-syntax-highlighter": "^13.5.3", + "react-textarea-autosize": "^8.3.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/core": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.19.tgz", + "integrity": "sha512-55LOQ/h/kf1jMhjN85t/pIEdIwWEG9yV7bdwv3niVvmoypCxyyjn9/QNK0RKYAeDSUtdm6FVoJ6k5CpxWz2d8w==", + "dev": true, + "requires": { + "@storybook/core-client": "6.4.19", + "@storybook/core-server": "6.4.19" + } + }, + "@storybook/core-client": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.19.tgz", + "integrity": "sha512-rQHRZjhArPleE7/S8ZUolgzwY+hC0smSKX/3PQxO2GcebDjnJj6+iSV3h+aSMHMmTdoCQvjYw9aBpT8scuRe+A==", + "dev": true, + "requires": { + "@storybook/addons": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/channel-websocket": "6.4.19", + "@storybook/client-api": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/preview-web": "6.4.19", + "@storybook/store": "6.4.19", + "@storybook/ui": "6.4.19", + "airbnb-js-shims": "^2.2.1", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "@storybook/core-common": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.19.tgz", + "integrity": "sha512-X1pJJkO48DFxl6iyEemIKqRkJ7j9/cBh3BRBUr+xZHXBvnD0GKDXIocwh0PjSxSC6XSu3UCQnqtKi3PbjRl8Dg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-decorators": "^7.12.12", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.12", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@babel/register": "^7.12.1", + "@storybook/node-logger": "6.4.19", + "@storybook/semver": "^7.3.2", + "@types/node": "^14.0.10", + "@types/pretty-hrtime": "^1.0.0", + "babel-loader": "^8.0.0", + "babel-plugin-macros": "^3.0.1", + "babel-plugin-polyfill-corejs3": "^0.1.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "express": "^4.17.1", + "file-system-cache": "^1.0.5", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.0.4", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "handlebars": "^4.7.7", + "interpret": "^2.2.0", + "json5": "^2.1.3", + "lazy-universal-dotenv": "^3.0.1", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "slash": "^3.0.0", + "telejson": "^5.3.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "webpack": "4" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "@webassemblyjs/ast": { + "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.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/helper-api-error": { + "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.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-wasm-bytecode": { + "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.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.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.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.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.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.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.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.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.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.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.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.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.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-printer": { + "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.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "cacache": { + "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", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "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 + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "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" + }, + "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" + } + } + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "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" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "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": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "requires": { + "find-up": "^5.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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 + }, + "serialize-javascript": { + "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" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser": { + "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" + } + }, + "terser-webpack-plugin": { + "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": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } }, - "@semantic-release/changelog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.1.tgz", - "integrity": "sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA==", + "@storybook/core-events": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.19.tgz", + "integrity": "sha512-KICzUw6XVQUJzFSCXfvhfHAuyhn4Q5J4IZEfuZkcGJS4ODkrO6tmpdYE5Cfr+so95Nfp0ErWiLUuodBsW9/rtA==", "dev": true, "requires": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "fs-extra": "^9.0.0", - "lodash": "^4.17.4" + "core-js": "^3.8.2" + } + }, + "@storybook/core-server": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.19.tgz", + "integrity": "sha512-bKsUB9f7hl5ya2JXxpIrErmbDQjoH39FVbzYZWjMo4t/b7+Xyi6vYadwyWcqlpUQmis09ZaSMv8L/Tw0TuwLAA==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.3", + "@storybook/builder-webpack4": "6.4.19", + "@storybook/core-client": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/csf-tools": "6.4.19", + "@storybook/manager-webpack4": "6.4.19", + "@storybook/node-logger": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.4.19", + "@types/node": "^14.0.10", + "@types/node-fetch": "^2.5.7", + "@types/pretty-hrtime": "^1.0.0", + "@types/webpack": "^4.41.26", + "better-opn": "^2.1.1", + "boxen": "^5.1.2", + "chalk": "^4.1.0", + "cli-table3": "^0.6.1", + "commander": "^6.2.1", + "compression": "^1.7.4", + "core-js": "^3.8.2", + "cpy": "^8.1.2", + "detect-port": "^1.3.0", + "express": "^4.17.1", + "file-system-cache": "^1.0.5", + "fs-extra": "^9.0.1", + "globby": "^11.0.2", + "ip": "^1.1.5", + "lodash": "^4.17.21", + "node-fetch": "^2.6.1", + "pretty-hrtime": "^1.0.3", + "prompts": "^2.4.0", + "regenerator-runtime": "^0.13.7", + "serve-favicon": "^2.5.0", + "slash": "^3.0.0", + "telejson": "^5.3.3", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "watchpack": "^2.2.0", + "webpack": "4", + "ws": "^8.2.3" + }, + "dependencies": { + "@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "@webassemblyjs/ast": { + "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.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/helper-api-error": { + "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.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-wasm-bytecode": { + "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.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.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.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.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.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.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.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.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.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.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.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.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.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-printer": { + "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.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "cacache": { + "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", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "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 + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "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" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "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", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "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" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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" + } + }, + "serialize-javascript": { + "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" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser": { + "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" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "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": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + } + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "requires": {} + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@storybook/csf": { + "version": "0.0.2--canary.87bc651.0", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.2--canary.87bc651.0.tgz", + "integrity": "sha512-ajk1Uxa+rBpFQHKrCcTmJyQBXZ5slfwHVEaKlkuFaW77it8RgbPJp/ccna3sgoi8oZ7FkkOyvv1Ve4SmwFqRqw==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "@storybook/csf-tools": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.19.tgz", + "integrity": "sha512-gf/zRhGoAVsFwSyV2tc+jeJfZQkxF6QsaZgbUSe24/IUvGFCT/PS/jZq1qy7dECAwrTOfykgu8juyBtj6WhWyw==", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@babel/generator": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/plugin-transform-react-jsx": "^7.12.12", + "@babel/preset-env": "^7.12.11", + "@babel/traverse": "^7.12.11", + "@babel/types": "^7.12.11", + "@mdx-js/mdx": "^1.6.22", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "core-js": "^3.8.2", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.21", + "prettier": ">=2.2.1 <=2.3.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" }, "dependencies": { "fs-extra": { @@ -22471,312 +48688,1338 @@ "universalify": "^2.0.0" } }, + "prettier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", + "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@storybook/manager-webpack4": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.19.tgz", + "integrity": "sha512-R8ugZjTYqXvlc6gDOcw909L65sIleOmIJLZR+N6/H85MivGXHu39jOwONqB7tVACufRty4FNecn8tEiQL2SAKA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/preset-react": "^7.12.10", + "@storybook/addons": "6.4.19", + "@storybook/core-client": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/node-logger": "6.4.19", + "@storybook/theming": "6.4.19", + "@storybook/ui": "6.4.19", + "@types/node": "^14.0.10", + "@types/webpack": "^4.41.26", + "babel-loader": "^8.0.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "express": "^4.17.1", + "file-loader": "^6.2.0", + "file-system-cache": "^1.0.5", + "find-up": "^5.0.0", + "fs-extra": "^9.0.1", + "html-webpack-plugin": "^4.0.0", + "node-fetch": "^2.6.1", + "pnp-webpack-plugin": "1.6.4", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0", + "style-loader": "^1.3.0", + "telejson": "^5.3.2", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-virtual-modules": "^0.2.2" + }, + "dependencies": { + "@types/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "dev": true + }, + "@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "@webassemblyjs/ast": { + "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.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/helper-api-error": { + "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.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-wasm-bytecode": { + "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.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.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.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.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.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.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.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.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.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.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.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.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.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-printer": { + "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.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "cacache": { + "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", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "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 + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + } + }, + "html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "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" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "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" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "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" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "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 + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "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-limit": { + "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" + } + } + } + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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" + } + }, + "serialize-javascript": { + "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" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "terser": { + "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" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "terser-webpack-plugin": { + "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": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + } + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, - "@semantic-release/commit-analyzer": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", - "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", + "@storybook/node-logger": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.19.tgz", + "integrity": "sha512-hO2Aar3PgPnPtNq2fVgiuGlqo3EEVR6TKVBXMq7foL3tN2k4BQFKLDHbm5qZQQntyYKurKsRUGKPJFPuI1ov/w==", "dev": true, "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "import-from": "^4.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.2" + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" }, "dependencies": { - "compare-func": { + "are-we-there-yet": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dev": true, "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" } }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "dev": true, "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "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 + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "dev": true, "requires": { - "is-obj": "^2.0.0" + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "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" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } } } }, - "@semantic-release/error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", - "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", - "dev": true + "@storybook/preview-web": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.19.tgz", + "integrity": "sha512-jqltoBv5j7lvnxEfV9w8dLX9ASWGuvgz97yg8Yo5FqkftEwrHJenyvMGcTgDJKJPorF+wiz/9aIqnmd3LCAcZQ==", + "dev": true, + "requires": { + "@storybook/addons": "6.4.19", + "@storybook/channel-postmessage": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/store": "6.4.19", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } }, - "@semantic-release/git": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", - "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", + "@storybook/router": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.19.tgz", + "integrity": "sha512-KWWwIzuyeEIWVezkCihwY2A76Il9tUNg0I410g9qT7NrEsKyqXGRYOijWub7c1GGyNjLqz0jtrrehtixMcJkuA==", "dev": true, "requires": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "execa": "^5.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.0", - "p-reduce": "^2.0.0" + "@storybook/client-logger": "6.4.19", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "history": "5.0.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "react-router": "^6.0.0", + "react-router-dom": "^6.0.0", + "ts-dedent": "^2.0.0" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "@storybook/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + }, + "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-limit": { + "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 + } + } + }, + "@storybook/store": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.19.tgz", + "integrity": "sha512-N9/ZjemRHGfT3InPIbqQqc6snkcfnf3Qh9oOr0smbfaVGJol//KOX65kzzobtzFcid0WxtTDZ3HmgFVH+GvuhQ==", + "dev": true, + "requires": { + "@storybook/addons": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "slash": "^3.0.0", + "stable": "^0.1.8", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/theming": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.19.tgz", + "integrity": "sha512-V4pWmTvAxmbHR6B3jA4hPkaxZPyExHvCToy7b76DpUTpuHihijNDMAn85KhOQYIeL9q14zP/aiz899tOHsOidg==", + "dev": true, + "requires": { + "@emotion/core": "^10.1.1", + "@emotion/is-prop-valid": "^0.8.6", + "@emotion/styled": "^10.0.27", + "@storybook/client-logger": "6.4.19", + "core-js": "^3.8.2", + "deep-object-diff": "^1.1.0", + "emotion-theming": "^10.0.27", + "global": "^4.4.0", + "memoizerific": "^1.11.3", + "polished": "^4.0.5", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/ui": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.19.tgz", + "integrity": "sha512-gFwdn5LA2U6oQ4bfUFLyHZnNasGQ01YVdwjbi+l6yjmnckBNtZfJoVTZ1rzGUbxSE9rK48InJRU+latTsr7xAg==", + "dev": true, + "requires": { + "@emotion/core": "^10.1.1", + "@storybook/addons": "6.4.19", + "@storybook/api": "6.4.19", + "@storybook/channels": "6.4.19", + "@storybook/client-logger": "6.4.19", + "@storybook/components": "6.4.19", + "@storybook/core-events": "6.4.19", + "@storybook/router": "6.4.19", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.4.19", + "copy-to-clipboard": "^3.3.1", + "core-js": "^3.8.2", + "core-js-pure": "^3.8.2", + "downshift": "^6.0.15", + "emotion-theming": "^10.0.27", + "fuse.js": "^3.6.1", + "global": "^4.4.0", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.1.3", + "memoizerific": "^1.11.3", + "polished": "^4.0.5", + "qs": "^6.10.0", + "react-draggable": "^4.4.3", + "react-helmet-async": "^1.0.7", + "react-sizeme": "^3.0.1", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0", + "store2": "^2.12.0" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } } }, - "@semantic-release/github": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.0.2.tgz", - "integrity": "sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg==", + "@storybook/vue3": { + "version": "6.4.19", + "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-6.4.19.tgz", + "integrity": "sha512-ocW2haoDOXudK3XHC7raBjq9k9gPsApiyQc4dPnjcF8sXmC3WZg6CYSPt0o00UMDmeDL0MDW336fw94jy6+LfA==", "dev": true, "requires": { - "@octokit/rest": "^18.0.0", - "@semantic-release/error": "^2.2.0", - "aggregate-error": "^3.0.0", - "bottleneck": "^2.18.1", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "fs-extra": "^10.0.0", - "globby": "^11.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "issue-parser": "^6.0.0", - "lodash": "^4.17.4", - "mime": "^3.0.0", - "p-filter": "^2.0.0", - "p-retry": "^4.0.0", - "url-join": "^4.0.0" - }, - "dependencies": { - "@semantic-release/error": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", - "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", + "@storybook/addons": "6.4.19", + "@storybook/core": "6.4.19", + "@storybook/core-common": "6.4.19", + "@storybook/csf": "0.0.2--canary.87bc651.0", + "@storybook/store": "6.4.19", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "global": "^4.4.0", + "react": "16.14.0", + "react-dom": "16.14.0", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "ts-loader": "^8.0.14", + "vue-docgen-api": "^4.38.0", + "vue-docgen-loader": "^1.5.0", + "vue-loader": "^16.0.0", + "webpack": "4" + }, + "dependencies": { + "@webassemblyjs/ast": { + "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.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/helper-api-error": { + "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 }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "@webassemblyjs/helper-buffer": { + "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 }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "@webassemblyjs/helper-wasm-bytecode": { + "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.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": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "@xtuc/ieee754": "^1.2.0" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "@xtuc/long": "4.2.2" } }, - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", "dev": true }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } - } - }, - "@semantic-release/npm": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.0.tgz", - "integrity": "sha512-hj2jqayS2SPUmFtCMCOQMX975uMDfRoymj1HvMSwYdaoI6hVZvhrTFPBgJeM85O0C+G3IFviAUar5gel/1VGDQ==", - "dev": true, - "requires": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "execa": "^5.0.0", - "fs-extra": "^10.0.0", - "lodash": "^4.17.15", - "nerf-dart": "^1.0.0", - "normalize-url": "^6.0.0", - "npm": "^8.3.0", - "rc": "^1.2.8", - "read-pkg": "^5.0.0", - "registry-auth-token": "^4.0.0", - "semver": "^7.1.2", - "tempy": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "@webassemblyjs/wasm-edit": { + "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": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@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" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "@webassemblyjs/wasm-gen": { + "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": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "@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" } }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "@webassemblyjs/wasm-opt": { + "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": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true + "@webassemblyjs/wasm-parser": { + "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.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" + } }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } - } - }, - "@semantic-release/release-notes-generator": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", - "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.2.3", - "debug": "^4.0.0", - "get-stream": "^6.0.0", - "import-from": "^4.0.0", - "into-stream": "^6.0.0", - "lodash": "^4.17.4", - "read-pkg-up": "^7.0.0" - }, - "dependencies": { - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "@webassemblyjs/wast-printer": { + "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": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, - "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "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", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" } }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { - "is-obj": "^2.0.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, "find-up": { @@ -22789,29 +50032,81 @@ "path-exists": "^4.0.0" } }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "is-plain-object": "^2.0.4" } }, - "into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "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-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, "locate-path": { @@ -22823,62 +50118,73 @@ "p-locate": "^4.1.0" } }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "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": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } + "yallist": "^3.0.2" } }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "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": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } } } }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -22903,6 +50209,29 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -22915,30 +50244,6 @@ "type-fest": "^0.6.0" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", @@ -22958,177 +50263,173 @@ "type-fest": "^0.8.1" } }, - "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==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "glob": "^7.1.3" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "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": { - "readable-stream": "3" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "@sentry/core": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.18.2.tgz", - "integrity": "sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==", - "requires": { - "@sentry/hub": "6.18.2", - "@sentry/minimal": "6.18.2", - "@sentry/types": "6.18.2", - "@sentry/utils": "6.18.2", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/hub": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.18.2.tgz", - "integrity": "sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==", - "requires": { - "@sentry/types": "6.18.2", - "@sentry/utils": "6.18.2", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/minimal": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.18.2.tgz", - "integrity": "sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==", - "requires": { - "@sentry/hub": "6.18.2", - "@sentry/types": "6.18.2", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/node": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.18.2.tgz", - "integrity": "sha512-1S+44c09n3KVpCYjwOfnA9jKvnpPegpQWM81Nu5J6ToGx+ZiddMq6B9GRXUnFfZ7Z6fJHZzFtySasQC7KqkQoA==", - "requires": { - "@sentry/core": "6.18.2", - "@sentry/hub": "6.18.2", - "@sentry/types": "6.18.2", - "@sentry/utils": "6.18.2", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "@sentry/types": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.18.2.tgz", - "integrity": "sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==" - }, - "@sentry/utils": { - "version": "6.18.2", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.18.2.tgz", - "integrity": "sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==", - "requires": { - "@sentry/types": "6.18.2", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sindresorhus/slugify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", - "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", - "requires": { - "@sindresorhus/transliterate": "^0.1.1", - "escape-string-regexp": "^4.0.0" - } - }, - "@sindresorhus/transliterate": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", - "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", - "requires": { - "escape-string-regexp": "^2.0.0", - "lodash.deburr": "^4.1.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==" + "serialize-javascript": { + "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" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser": { + "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" + } + }, + "terser-webpack-plugin": { + "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": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "vue-loader": { + "version": "16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@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", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "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.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "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" + } + } + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, "@szmarczak/http-timer": { "version": "1.1.2", "dev": true, @@ -23139,6 +50440,12 @@ "@tootallnate/once": { "version": "1.1.2" }, + "@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==", + "dev": true + }, "@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -23273,6 +50580,21 @@ "@types/node": "*" } }, + "@types/color-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", + "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", + "dev": true, + "requires": { + "@types/color-name": "*" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, "@types/compression": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.2.tgz", @@ -23334,10 +50656,38 @@ "resolved": "https://registry.npmjs.org/@types/dateformat/-/dateformat-5.0.0.tgz", "integrity": "sha512-SZg4JdHIWHQGEokbYGZSDvo5wA4TLYPXaqhigs/wH+REDOejcJzgH+qyY+HtEUtWOZxEUkbhbdYPqQDiEgrXeA==" }, + "@types/eslint": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "dev": true, + "peer": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "peer": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "dev": true }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, "@types/express": { "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", @@ -23387,6 +50737,16 @@ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/graceful-fs": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", @@ -23421,6 +50781,21 @@ "graphql": "0.13.1 - 16" } }, + "@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, "@types/http-assert": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", @@ -23431,6 +50806,20 @@ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.1.tgz", "integrity": "sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==" }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "requires": { + "@types/node": "*" + } + }, + "@types/is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha512-A79HEEiwXTFtfY+Bcbo58M2GRYzCr9itHWzbzHVFNEYCcoU/MMGwYYf721gBrnhpj1s6RGVVha/IgNFnR0Iw/Q==", + "dev": true + }, "@types/istanbul-lib-coverage": { "version": "2.0.3", "dev": true @@ -23458,6 +50847,15 @@ "pretty-format": "^27.0.0" } }, + "@types/jest-specific-snapshot": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/jest-specific-snapshot/-/jest-specific-snapshot-0.5.5.tgz", + "integrity": "sha512-AaPPw2tE8ewfjD6qGLkEd4DOfM6pPOK7ob/RSOe1Z8Oo70r9Jgo0SlWyfxslPAOvLfQukQtiVPm6DcnjSoZU5A==", + "dev": true, + "requires": { + "@types/jest": "*" + } + }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -23506,9 +50904,42 @@ "@types/koa": "*" } }, + "@types/leaflet": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.7.9.tgz", + "integrity": "sha512-H8vPgD49HKzqM41ArHGZM70g/tfhp8W+JcPxfnF+5H/Xvp+xiP+KQOUNWU8U89fqS1Jj3cpRY/+nbnaHFzwnFA==", + "dev": true, + "requires": { + "@types/geojson": "*" + } + }, + "@types/leaflet.markercluster": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@types/leaflet.markercluster/-/leaflet.markercluster-1.4.6.tgz", + "integrity": "sha512-MD+bUDzxHznY0zOlSBUAMNQUGB2+xpJPKrR2MNEoBAAKa3QTKJJySBtCqWyGLvYNNO+Cdyc2c64aF2IFwe4fcQ==", + "dev": true, + "requires": { + "@types/leaflet": "*" + } + }, + "@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dev": true, + "requires": { + "@types/unist": "*" + } + }, "@types/mime": { "version": "1.3.2" }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, "@types/minimist": { "version": "1.2.1", "dev": true @@ -23536,10 +50967,28 @@ "version": "2.4.0", "dev": true }, + "@types/npmlog": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.4.tgz", + "integrity": "sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ==", + "dev": true + }, + "@types/overlayscrollbars": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@types/overlayscrollbars/-/overlayscrollbars-1.12.1.tgz", + "integrity": "sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ==", + "dev": true + }, "@types/parse-json": { "version": "4.0.0", "dev": true }, + "@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", + "dev": true + }, "@types/pg": { "version": "8.6.5", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.5.tgz", @@ -23556,23 +51005,69 @@ "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", "dev": true }, + "@types/pretty-hrtime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz", + "integrity": "sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==", + "dev": true + }, "@types/proj4": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/@types/proj4/-/proj4-2.5.2.tgz", "integrity": "sha512-/Nmfn9p08yaYw6xo5f2b0L+2oHk2kZeOkp5v+4VCeNfq+ETlLQbmHmC97/pjDIEZy8jxwz7pdPpwNzDHM5cuJw==" }, + "@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", + "dev": true + }, "@types/qs": { "version": "6.9.6" }, "@types/range-parser": { "version": "1.2.3" }, + "@types/react": { + "version": "17.0.42", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.42.tgz", + "integrity": "sha512-nuab3x3CpJ7VFeNA+3HTUuEkvClYHXqWtWd7Ud6AZYW7Z3NH9WKtgU+tFB0ZLcHq+niB/HnzLcaZPqMJ95+k5Q==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", + "dev": true + } + } + }, + "@types/react-syntax-highlighter": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz", + "integrity": "sha512-VIOi9i2Oj5XsmWWoB72p3KlZoEbdRAcechJa8Ztebw7bDl2YmR+odxIqhtJGp1q2EozHs02US+gzxJ9nuf56qg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, "@types/retry": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, "@types/serve-static": { "version": "1.13.9", "requires": { @@ -23589,155 +51084,793 @@ "@types/node": "*" } }, - "@types/sql-formatter": { - "version": "2.3.0" - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/superagent": { - "version": "4.1.11", + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/sql-formatter": { + "version": "2.3.0" + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", + "dev": true + }, + "@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "@types/superagent": { + "version": "4.1.11", + "dev": true, + "requires": { + "@types/cookiejar": "*", + "@types/node": "*" + } + }, + "@types/supertest": { + "version": "2.0.11", + "dev": true, + "requires": { + "@types/superagent": "*" + } + }, + "@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", + "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "@types/webpack": { + "version": "4.41.32", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", + "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "@types/webpack-env": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz", + "integrity": "sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw==", + "dev": true + }, + "@types/webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@types/yargs": { + "version": "16.0.2", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.0", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", + "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/type-utils": "5.15.0", + "@typescript-eslint/utils": "5.15.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", + "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/typescript-estree": "5.15.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", + "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", + "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.15.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", + "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", + "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/visitor-keys": "5.15.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", + "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.15.0", + "@typescript-eslint/types": "5.15.0", + "@typescript-eslint/typescript-estree": "5.15.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", + "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.15.0", + "eslint-visitor-keys": "^3.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } + } + }, + "@uppy/companion-client": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-2.0.5.tgz", + "integrity": "sha512-yAeYbpQ+yHcklKVbkRy83V1Zv/0kvaTDTHaBvaaPmLtcKgeZE3pUjEI/7v2sTxvCVSy4cRjd9TRSXSSl5UCnuQ==", + "dev": true, + "requires": { + "@uppy/utils": "^4.0.5", + "namespace-emitter": "^2.0.1" + } + }, + "@uppy/core": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@uppy/core/-/core-2.1.6.tgz", + "integrity": "sha512-WTGthAAHMfB6uAtISbu+7jYh4opnBWHSf7A0jsPdREwXc4hrhC/z9lbejZfSLkVDXdbNwpWWH38EgOGCNQb5MQ==", + "dev": true, + "requires": { + "@transloadit/prettier-bytes": "0.0.7", + "@uppy/store-default": "^2.0.3", + "@uppy/utils": "^4.0.5", + "lodash.throttle": "^4.1.1", + "mime-match": "^1.0.2", + "namespace-emitter": "^2.0.1", + "nanoid": "^3.1.25", + "preact": "^10.5.13" + } + }, + "@uppy/store-default": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@uppy/store-default/-/store-default-2.0.3.tgz", + "integrity": "sha512-2BGlN1sW0cFv4rOqTK8dfSg579S984N1HxCJxLFqeW9nWD6zd/O8Omyd85tbxGQ+FLZLTmLOm/feD0YeCBMahg==", + "dev": true + }, + "@uppy/tus": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@uppy/tus/-/tus-2.2.0.tgz", + "integrity": "sha512-AsGEVUoPM9tE0rey+c6Sjn73iDoZkuIt6SCtobkm8LLFW/V3e86UwEPSvAX0tR4LK3P28BBt3odN57dluRD1hA==", + "dev": true, + "requires": { + "@uppy/companion-client": "^2.0.4", + "@uppy/utils": "^4.0.5", + "tus-js-client": "^2.1.1" + } + }, + "@uppy/utils": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@uppy/utils/-/utils-4.0.5.tgz", + "integrity": "sha512-uRv921A69UMjuWCLSC5tKXuIVoMOROVpFstIAQv5CoiCOCXyofcWpvAqELT7qlQJ5VRWha3uF5d/Z94SNnwxew==", + "dev": true, + "requires": { + "lodash.throttle": "^4.1.1" + } + }, + "@vitejs/plugin-vue": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.2.4.tgz", + "integrity": "sha512-ev9AOlp0ljCaDkFZF3JwC/pD2N4Hh+r5srl5JHM6BKg5+99jiiK0rE/XaRs3pVm1wzyKkjUy/StBSoXX5fFzcw==", + "dev": true, + "requires": {} + }, + "@vue/compiler-core": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", + "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-ssr": "3.2.31", + "@vue/reactivity-transform": "3.2.31", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", + "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/devtools-api": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.3.tgz", + "integrity": "sha512-79InfO2xHv+WHIrH1bHXQUiQD/wMls9qBk6WVwGCbdwP7/3zINtvqPNMtmSHXsIKjvUAHc8L0ouOj6ZQQRmcXg==", + "dev": true + }, + "@vue/eslint-config-prettier": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", + "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==", + "dev": true, + "requires": { + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0" + } + }, + "@vue/reactivity": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.31.tgz", + "integrity": "sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==", + "dev": true, + "requires": { + "@vue/shared": "3.2.31" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", + "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", + "dev": true, + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.31.tgz", + "integrity": "sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==", + "dev": true, + "requires": { + "@vue/reactivity": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/runtime-dom": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz", + "integrity": "sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g==", + "dev": true, + "requires": { + "@vue/runtime-core": "3.2.31", + "@vue/shared": "3.2.31", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.31.tgz", + "integrity": "sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==", + "dev": true, + "requires": { + "@vue/compiler-ssr": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "@vue/shared": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", + "dev": true + }, + "@vue/test-utils": { + "version": "2.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-rc.17.tgz", + "integrity": "sha512-7LHZKsFRV/HqDoMVY+cJamFzgHgsrmQFalROHC5FMWrzPzd+utG5e11krj1tVsnxYufGA2ABShX4nlcHXED+zQ==", + "dev": true, + "requires": {} + }, + "@vue/vue3-jest": { + "version": "27.0.0-alpha.4", + "resolved": "https://registry.npmjs.org/@vue/vue3-jest/-/vue3-jest-27.0.0-alpha.4.tgz", + "integrity": "sha512-RgEwjNvwdWmRngHqgt957fLT6riOkv/Kyl0ra8jo0Z8Dgosmu17dNqgBzLn9fTgNlTbHv4TQQdLRjczr+z2mlA==", + "dev": true, + "requires": { + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "chalk": "^2.1.0", + "convert-source-map": "^1.6.0", + "extract-from-css": "^0.4.4", + "source-map": "0.5.6", + "tsconfig": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "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" + } + }, + "chalk": { + "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", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "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" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "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 + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-code-frame": { + "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.9.0" + }, + "dependencies": { + "@webassemblyjs/ast": { + "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.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "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/wast-printer": { + "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.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + } + } + }, + "@webassemblyjs/helper-fsm": { + "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.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.9.0" + }, + "dependencies": { + "@webassemblyjs/ast": { + "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.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "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-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, + "peer": true, "requires": { - "@types/cookiejar": "*", - "@types/node": "*" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "@types/supertest": { - "version": "2.0.11", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true, + "peer": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "peer": true, "requires": { - "@types/superagent": "*" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, - "@types/yargs": { - "version": "16.0.2", + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, + "peer": true, "requires": { - "@types/yargs-parser": "*" + "@xtuc/ieee754": "^1.2.0" } }, - "@types/yargs-parser": { - "version": "20.2.0", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz", - "integrity": "sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA==", + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, + "peer": true, "requires": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/type-utils": "5.15.0", - "@typescript-eslint/utils": "5.15.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "@xtuc/long": "4.2.2" } }, - "@typescript-eslint/parser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.15.0.tgz", - "integrity": "sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ==", + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true, + "peer": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, + "peer": true, "requires": { - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", - "debug": "^4.3.2" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "@typescript-eslint/scope-manager": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz", - "integrity": "sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg==", + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, + "peer": true, "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "@typescript-eslint/type-utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz", - "integrity": "sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA==", + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, + "peer": true, "requires": { - "@typescript-eslint/utils": "5.15.0", - "debug": "^4.3.2", - "tsutils": "^3.21.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "@typescript-eslint/types": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.15.0.tgz", - "integrity": "sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz", - "integrity": "sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA==", + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, + "peer": true, "requires": { - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/visitor-keys": "5.15.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "@typescript-eslint/utils": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.15.0.tgz", - "integrity": "sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA==", + "@webassemblyjs/wast-parser": { + "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": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.15.0", - "@typescript-eslint/types": "5.15.0", - "@typescript-eslint/typescript-estree": "5.15.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@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" }, "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "@webassemblyjs/ast": { + "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": { - "eslint-visitor-keys": "^2.0.0" + "@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.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.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-wasm-bytecode": { + "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 } } }, - "@typescript-eslint/visitor-keys": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz", - "integrity": "sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ==", + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, + "peer": true, "requires": { - "@typescript-eslint/types": "5.15.0", - "eslint-visitor-keys": "^3.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -23794,6 +51927,12 @@ "version": "1.0.0", "dev": true }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true + }, "adler-32": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz", @@ -23829,6 +51968,31 @@ "indent-string": "^4.0.0" } }, + "airbnb-js-shims": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz", + "integrity": "sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "array.prototype.flatmap": "^1.2.1", + "es5-shim": "^4.5.13", + "es6-shim": "^0.35.5", + "function.prototype.name": "^1.1.0", + "globalthis": "^1.0.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0 || ^1.0.0", + "object.getownpropertydescriptors": "^2.0.3", + "object.values": "^1.1.0", + "promise.allsettled": "^1.0.0", + "promise.prototype.finally": "^3.1.0", + "string.prototype.matchall": "^4.0.0 || ^3.0.1", + "string.prototype.padend": "^3.0.0", + "string.prototype.padstart": "^3.0.0", + "symbol.prototype.description": "^1.0.0" + } + }, "ajv": { "version": "6.12.6", "dev": true, @@ -23839,6 +52003,20 @@ "uri-js": "^4.2.2" } }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "requires": {} + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, "ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -23875,6 +52053,12 @@ "version": "3.2.0", "dev": true }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -23886,6 +52070,15 @@ "color-convert": "^2.0.1" } }, + "ansi-to-html": { + "version": "0.6.15", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.15.tgz", + "integrity": "sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==", + "dev": true, + "requires": { + "entities": "^2.0.0" + } + }, "ansicolors": { "version": "0.2.1" }, @@ -23903,6 +52096,12 @@ } } }, + "app-root-dir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", + "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", + "dev": true + }, "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", @@ -23954,6 +52153,30 @@ "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", "dev": true }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "dev": true @@ -23981,6 +52204,18 @@ "array-union": { "version": "2.1.0" }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -23992,6 +52227,30 @@ "es-abstract": "^1.19.0" } }, + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "array.prototype.map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.4.tgz", + "integrity": "sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, "arrify": { "version": "1.0.1", "dev": true @@ -24002,6 +52261,65 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, + "asn1.js": { + "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", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "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" + } + } + } + }, + "assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, "ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", @@ -24017,6 +52335,13 @@ "async": { "version": "1.5.2" }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, "async-retry": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", @@ -24041,6 +52366,39 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, "aws-sdk": { "version": "2.1078.0", "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1078.0.tgz", @@ -24064,6 +52422,13 @@ } } }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true, + "requires": {} + }, "babel-jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", @@ -24080,6 +52445,154 @@ "slash": "^3.0.0" } }, + "babel-literal-to-ast": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/babel-literal-to-ast/-/babel-literal-to-ast-2.1.0.tgz", + "integrity": "sha512-CxfpQ0ysQ0bZOhlaPgcWjl79Em16Rhqc6++UAFn0A3duiXmuyhhj8yyl9PYbj0I0CyjrHovdDbp2QEKT7uIMxw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.6", + "@babel/traverse": "^7.1.6", + "@babel/types": "^7.1.6" + } + }, + "babel-loader": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + } + } + }, + "babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "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-plugin-dynamic-import-node": { + "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" + } + }, + "babel-plugin-emotion": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", + "integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/serialize": "^0.11.16", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^1.0.5", + "find-root": "^1.1.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "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 + }, + "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-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "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-plugin-graphql-tag": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-graphql-tag/-/babel-plugin-graphql-tag-3.3.0.tgz", + "integrity": "sha512-27qfJhFJ2jQg+ktcC3cdppE2RrXZ5uiDz+39YC5lhkmftWPuJW8ET9Ehskwv7ujScZ1jSKhs5/JZKlESCkwIBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/parser": "^7.3.2", + "babel-literal-to-ast": "^2.1.0", + "debug": "^4.1.1" + } + }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -24105,6 +52618,98 @@ "@types/babel__traverse": "^7.0.6" } }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "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 + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-transform-vite-meta-env": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-vite-meta-env/-/babel-plugin-transform-vite-meta-env-1.0.3.tgz", + "integrity": "sha512-eyfuDEXrMu667TQpmctHeTlJrZA6jXYHyEJFjcM0yEa60LS/LXlOg2PBbMb8DVS+V9CnTj/j9itdlDVMcY2zEg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.13.9", + "@types/babel__core": "^7.1.12" + } + }, + "babel-plugin-transform-vite-meta-glob": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-vite-meta-glob/-/babel-plugin-transform-vite-meta-glob-1.0.3.tgz", + "integrity": "sha512-JW3VnwUjJqpj0FM0vJFxrGdxSBcHOa0j5YMvvtXYPmFshroq53nbK9dqRETgjXlMrfIz0oU/6ki+u1GdVWdNHA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.13.9", + "@types/babel__core": "^7.1.12", + "glob": "^7.1.6" + }, + "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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" + } + } + } + }, "babel-preset-current-node-syntax": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", @@ -24135,10 +52740,69 @@ "babel-preset-current-node-syntax": "^1.0.0" } }, + "babel-preset-vite": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/babel-preset-vite/-/babel-preset-vite-1.0.4.tgz", + "integrity": "sha512-RZS/wNfEUD8aMliObxqlPw4ZR7R5OsT1G2IHd5nuUmiYKS6zemur8aZ5WPbfQwPpTPe9VEjcrxQA/6PKBWRTkg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.13.9", + "@types/babel__core": "^7.1.12", + "babel-plugin-transform-vite-meta-env": "1.0.3", + "babel-plugin-transform-vite-meta-glob": "1.0.3" + } + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6" + } + }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true + }, "balanced-match": { "version": "1.0.2", "dev": true }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -24150,6 +52814,12 @@ "safe-buffer": "5.1.2" } }, + "batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", + "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", + "dev": true + }, "bcryptjs": { "version": "2.4.3" }, @@ -24159,6 +52829,21 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, + "better-opn": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz", + "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==", + "dev": true, + "requires": { + "open": "^7.0.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "bignumber.js": { "version": "9.0.1" }, @@ -24168,9 +52853,34 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + }, + "dependencies": { + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + } + } + }, "bluebird": { "version": "3.7.2" }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, "body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", @@ -24208,6 +52918,12 @@ } } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, "bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", @@ -24269,23 +52985,129 @@ "fill-range": "^7.0.1" } }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "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.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "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.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, "browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + } } }, "bs-logger": { @@ -24323,6 +53145,18 @@ "buffer-writer": { "version": "2.0.0" }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", @@ -24386,6 +53220,31 @@ } } }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "cachedir": { "version": "2.2.0", "dev": true @@ -24398,15 +53257,37 @@ "get-intrinsic": "^1.0.2" } }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, "callsites": { "version": "3.1.0", "dev": true }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true + }, "camelcase-keys": { "version": "6.2.2", "dev": true, @@ -24498,7 +53379,6 @@ "graphql-type-json": "^0.3.2", "graphql-upload": "^13.0.0", "html-to-text": "^8.1.0", - "husky": "^7.0.4", "jest": "^27.5.1", "jsondiffpatch": "^0.4.1", "jsonwebtoken": "^8.5.1", @@ -24533,12 +53413,280 @@ "xlsx": "^0.18.4" } }, + "camino-ui": { + "version": "file:packages/ui", + "requires": { + "@babel/eslint-parser": "^7.17.0", + "@babel/preset-env": "^7.16.11", + "@juggle/resize-observer": "^3.3.1", + "@mapbox/stylelint-processor-arbitrary-tags": "^0.4.0", + "@rollup/plugin-inject": "^4.0.4", + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/git": "^10.0.1", + "@sentry/browser": "^6.18.2", + "@sentry/integrations": "^6.18.2", + "@storybook/addon-actions": "^6.4.19", + "@storybook/addon-controls": "^6.4.19", + "@storybook/addon-postcss": "^2.0.0", + "@storybook/addon-storyshots": "^6.4.19", + "@storybook/vue3": "^6.4.19", + "@types/jest": "^27.4.1", + "@types/leaflet": "^1.7.9", + "@types/leaflet.markercluster": "^1.4.6", + "@types/webpack-env": "^1.16.3", + "@typescript-eslint/parser": "^5.15.0", + "@uppy/core": "^2.1.6", + "@uppy/tus": "^2.2.0", + "@vitejs/plugin-vue": "^2.2.4", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-standard": "^6.1.0", + "@vue/test-utils": "^2.0.0-rc.17", + "@vue/vue3-jest": "27.0.0-alpha.4", + "babel-core": "^7.0.0-bridge.0", + "babel-jest": "^27.5.1", + "babel-loader": "^8.2.3", + "babel-plugin-graphql-tag": "^3.3.0", + "babel-preset-vite": "^1.0.4", + "chalk": "^5.0.1", + "chart.js": "^3.7.1", + "choices.js": "^10.1.0", + "codecov": "^3.8.3", + "commitizen": "^4.2.4", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "core-js": "^3.21.1", + "cross-env": "^7.0.3", + "cross-fetch": "^3.1.5", + "cz-conventional-changelog": "^3.3.0", + "dotenv": "^16.0.0", + "email-validator": "^2.0.4", + "eslint": "^7.32.0", + "eslint-config-prettier": "^8.5.0", + "eslint-config-standard": "^16.0.3", + "eslint-plugin-import": "^2.25.4", + "eslint-plugin-jest": "^26.1.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^5.2.0", + "eslint-plugin-vue": "^7.19.1", + "express": "^4.17.3", + "file-saver": "^2.0.5", + "graphql": "^16.3.0", + "graphql-react": "^15.0.0", + "graphql-tag": "^2.12.6", + "html-webpack-plugin": "^5.5.0", + "http-proxy-middleware": "^2.0.4", + "jest": "^27.5.1", + "jest-fetch-mock": "^3.0.3", + "jest-serializer-vue": "^2.0.2", + "jest-transform-stub": "^2.0.0", + "jest-util": "^27.5.1", + "json2csv": "^5.0.7", + "jsondiffpatch": "^0.4.1", + "leaflet": "1.7.1", + "leaflet-fullscreen": "^1.0.2", + "leaflet-gesture-handling": "^1.2.2", + "leaflet-markers-canvas": "^0.2.2", + "leaflet.markercluster": "^1.5.3", + "lint-staged": "^12.3.6", + "npm-check-updates": "^12.5.3", + "pixrem": "^5.0.0", + "postcss-button": "^0.3.17", + "postcss-calc": "^8.2.4", + "postcss-color-mod-function": "^3.0.3", + "postcss-grid-fluid": "^0.3.4", + "postcss-grid-system": "^0.5.2", + "postcss-import": "14.0.2", + "postcss-inline-svg": "5.0.0", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.4.2", + "postcss-typescale": "^0.2.3", + "prettier": "^2.6.0", + "rbush": "^3.0.1", + "semantic-release": "^19.0.2", + "snarkdown": "^2.0.0", + "standard-version": "^9.3.2", + "stylelint": "^14.6.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard": "^25.0.0", + "ts-jest": "^27.1.3", + "typescript": "^4.6.2", + "vite": "^2.8.6", + "vue": "^3.2.31", + "vue-loader": "^17.0.0", + "vue-meta": "^2.4.0", + "vue-router": "^4.0.14", + "vuex": "^4.0.2", + "vuex-router-sync": "^6.0.0-rc.1" + }, + "dependencies": { + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@vue/eslint-config-standard": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-6.1.0.tgz", + "integrity": "sha512-9+hrEyflDzsGdlBDl9jPV5DIYUx1TOU5OSQqRDKCrNumrxRj5HRWKuk+ocXWnha6uoNRtLC24mY7d/MwqvBCNw==", + "dev": true, + "requires": { + "eslint-config-standard": "^16.0.3", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-webpack": "^0.13.1" + } + }, + "chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "eslint-config-standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", + "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", + "dev": true, + "requires": {} + }, + "eslint-plugin-promise": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz", + "integrity": "sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw==", + "dev": true, + "requires": {} + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } + } + }, "caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==", + "version": "1.0.30001319", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", + "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==", "dev": true }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, "cardinal": { "version": "0.4.4", "requires": { @@ -24546,6 +53694,18 @@ "redeyed": "~0.4.0" } }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true + }, + "ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "dev": true + }, "cerbere": { "version": "0.2.3", "requires": { @@ -24585,10 +53745,66 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true + }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "dev": true + }, "chardet": { "version": "0.7.0", "dev": true }, + "chart.js": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.1.tgz", + "integrity": "sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==", + "dev": true + }, + "choices.js": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/choices.js/-/choices.js-10.1.0.tgz", + "integrity": "sha512-NtrFt7c7ZQEGmkWsAV+EHynJhADWoZ82JEfg1+vQ9MMKJD4Ax2rzYPxXe+Q64i0HgUgWG/XTN3gN2pB8UFFFlA==", + "requires": { + "deepmerge": "^4.2.2", + "fuse.js": "^6.5.3", + "redux": "^4.1.2" + }, + "dependencies": { + "fuse.js": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.5.3.tgz", + "integrity": "sha512-sA5etGE7yD/pOqivZRBvUBd/NaL2sjAu6QuSaFoe1H2BrJSkH/T/UXAJ8CdXdw7DvY3Hs8CXKYkDWX7RiP5KOg==" + } + } + }, "chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", @@ -24619,6 +53835,12 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, "ci-info": { "version": "3.2.0", "dev": true @@ -24627,12 +53849,123 @@ "version": "8.2.1", "dev": true }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "cjs-module-lexer": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "clean-css": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", + "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -24791,6 +54124,50 @@ } } }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "clone-regexp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", + "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", + "dev": true, + "requires": { + "is-regexp": "^1.0.0", + "is-supported-regexp-flag": "^1.0.0" + } + }, "clone-response": { "version": "1.0.2", "dev": true, @@ -24798,6 +54175,12 @@ "mimic-response": "^1.0.0" } }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "dev": true + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -24822,12 +54205,28 @@ "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" }, + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "dev": true + }, "collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color": { "version": "3.0.0", "requires": { @@ -24868,6 +54267,12 @@ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "dev": true + }, "colorette": { "version": "2.0.16", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", @@ -24886,12 +54291,40 @@ "text-hex": "1.0.x" } }, + "combine-errors": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz", + "integrity": "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY=", + "dev": true, + "requires": { + "custom-error-instance": "2.1.1", + "lodash.uniqby": "4.5.0" + }, + "dependencies": { + "lodash.uniqby": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz", + "integrity": "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE=", + "dev": true, + "requires": { + "lodash._baseiteratee": "~4.7.0", + "lodash._baseuniq": "~4.6.0" + } + } + } + }, "combined-stream": { "version": "1.0.8", "requires": { "delayed-stream": "~1.0.0" } }, + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "dev": true + }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -24978,6 +54411,12 @@ "version": "1.8.0", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "compare-versions": { "version": "3.6.0", "dev": true @@ -25016,6 +54455,12 @@ } } }, + "compute-scroll-into-view": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", + "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==", + "dev": true + }, "concat-map": { "version": "0.0.1", "dev": true @@ -25029,6 +54474,44 @@ "typedarray": "^0.0.6" } }, + "condense-newlines": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz", + "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-whitespace": "^0.3.0", + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, "configstore": { "version": "5.0.1", "requires": { @@ -25051,12 +54534,39 @@ } } }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -25362,10 +54872,6 @@ "requires": { "readable-stream": "3" } - }, - "yargs-parser": { - "version": "20.2.7", - "dev": true } } }, @@ -25526,10 +55032,6 @@ "requires": { "readable-stream": "3" } - }, - "yargs-parser": { - "version": "20.2.7", - "dev": true } } }, @@ -25724,10 +55226,6 @@ "requires": { "readable-stream": "3" } - }, - "yargs-parser": { - "version": "20.2.7", - "dev": true } } }, @@ -25760,6 +55258,97 @@ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dev": true, + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "core-js": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", + "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", + "dev": true + }, + "core-js-compat": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", + "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "dev": true, + "requires": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "dev": true + }, "core-util-is": { "version": "1.0.2" }, @@ -25783,6 +55372,285 @@ "yaml": "^1.10.0" } }, + "cp-file": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", + "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + } + }, + "cpy": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", + "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "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" + } + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "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" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "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" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "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 + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, "crc-32": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz", @@ -25799,6 +55667,51 @@ } } }, + "create-ecdh": { + "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.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -25816,6 +55729,15 @@ "cross-spawn": "^7.0.1" } }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + } + }, "cross-spawn": { "version": "7.0.3", "requires": { @@ -25824,6 +55746,25 @@ "which": "^2.0.1" } }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, "crypto-random-string": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-3.3.1.tgz", @@ -25832,6 +55773,157 @@ "type-fest": "^0.8.1" } }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-functions-list": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.0.1.tgz", + "integrity": "sha512-PriDuifDt4u4rkDgnqRCLnjfMatufLmWNfQnGCq34xZwpY3oabwhB9SqRBmuvWUgndbemCFlKqg+nO7C2q0SBw==", + "dev": true + }, + "css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "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.32", + "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.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "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 + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.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-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "dev": true, + "requires": {} + }, + "css-select": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", + "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^4.0.0", + "domhandler": "^4.0.0", + "domutils": "^2.4.3", + "nth-check": "^2.0.0" + } + }, + "css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", + "dev": true + }, + "css-what": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", + "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==", + "dev": true + }, + "cssdb": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", + "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==", + "dev": true + }, + "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 + }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -25855,6 +55947,12 @@ } } }, + "csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", + "dev": true + }, "currently-unhandled": { "version": "0.4.1", "dev": true, @@ -25862,6 +55960,18 @@ "array-find-index": "^1.0.1" } }, + "custom-error-instance": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz", + "integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, "cz-conventional-changelog": { "version": "3.3.0", "dev": true, @@ -25985,6 +56095,12 @@ "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, "decompress-response": { "version": "3.3.0", "dev": true, @@ -26003,6 +56119,12 @@ "deep-is": { "version": "0.1.3" }, + "deep-object-diff": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.7.tgz", + "integrity": "sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg==", + "dev": true + }, "deepmerge": { "version": "4.2.2" }, @@ -26017,6 +56139,24 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "degenerator": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", @@ -26111,11 +56251,30 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "dev": true, + "requires": { + "repeat-string": "^1.5.4" + } + }, "detect-file": { "version": "1.0.0", "dev": true @@ -26128,6 +56287,33 @@ "version": "3.1.0", "dev": true }, + "detect-port": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", + "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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 + } + } + }, "dezalgo": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", @@ -26159,6 +56345,25 @@ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, "dir-glob": { "version": "3.0.1", "requires": { @@ -26179,6 +56384,21 @@ "esutils": "^2.0.2" } }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, "dom-serializer": { "version": "1.3.2", "requires": { @@ -26187,6 +56407,18 @@ "entities": "^2.0.0" } }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", + "dev": true + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, "domelementtype": { "version": "2.2.0" }, @@ -26208,24 +56440,44 @@ } }, "domhandler": { - "version": "4.2.0", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "requires": { "domelementtype": "^2.2.0" } }, "domutils": { - "version": "2.6.0", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "dotenv": { "version": "16.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==" }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, "dotgitignore": { "version": "2.1.0", "dev": true, @@ -26265,6 +56517,19 @@ } } }, + "downshift": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.7.tgz", + "integrity": "sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.14.8", + "compute-scroll-into-view": "^1.0.17", + "prop-types": "^15.7.2", + "react-is": "^17.0.2", + "tslib": "^2.3.0" + } + }, "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -26307,20 +56572,100 @@ "safe-buffer": "^5.0.1" } }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "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==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, "ee-first": { "version": "1.1.1" }, "electron-to-chromium": { - "version": "1.3.864", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.864.tgz", - "integrity": "sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==", + "version": "1.4.90", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.90.tgz", + "integrity": "sha512-ZwKgSA0mQMyEhz+NR0F8dRzkrCLeHLzLkjx/CWf16+zV85hQ6meXPQbKanvhnpkYb7b2uJNj+enQJ/N877ND4Q==", "dev": true }, + "element-resize-detector": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", + "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", + "dev": true, + "requires": { + "batch-processor": "1.0.0" + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, "email-regex": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/email-regex/-/email-regex-4.0.0.tgz", "integrity": "sha512-OxR2NqoYS3ZikqOkju2krRTyxngwjJ5Wh4yalpTqbBnUOr+LLwwjY2x5Sksruw6TieyQDswE5Pc83Eh6RQj3GA==" }, + "email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", + "dev": true + }, "emittery": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", @@ -26333,6 +56678,23 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "emotion-theming": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.3.0.tgz", + "integrity": "sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/weak-memoize": "0.2.5", + "hoist-non-react-statics": "^3.3.0" + } + }, "enabled": { "version": "2.0.0" }, @@ -26365,6 +56727,17 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, "enquirer": { "version": "2.3.6", "dev": true, @@ -26403,6 +56776,15 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, "error-ex": { "version": "1.3.2", "dev": true, @@ -26438,6 +56820,43 @@ "unbox-primitive": "^1.0.1" } }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, + "peer": true + }, "es-to-primitive": { "version": "1.2.1", "dev": true, @@ -26447,6 +56866,186 @@ "is-symbol": "^1.0.2" } }, + "es5-shim": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.5.tgz", + "integrity": "sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w==", + "dev": true + }, + "es6-shim": { + "version": "0.35.6", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", + "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", + "dev": true + }, + "esbuild": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.27.tgz", + "integrity": "sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.27", + "esbuild-android-arm64": "0.14.27", + "esbuild-darwin-64": "0.14.27", + "esbuild-darwin-arm64": "0.14.27", + "esbuild-freebsd-64": "0.14.27", + "esbuild-freebsd-arm64": "0.14.27", + "esbuild-linux-32": "0.14.27", + "esbuild-linux-64": "0.14.27", + "esbuild-linux-arm": "0.14.27", + "esbuild-linux-arm64": "0.14.27", + "esbuild-linux-mips64le": "0.14.27", + "esbuild-linux-ppc64le": "0.14.27", + "esbuild-linux-riscv64": "0.14.27", + "esbuild-linux-s390x": "0.14.27", + "esbuild-netbsd-64": "0.14.27", + "esbuild-openbsd-64": "0.14.27", + "esbuild-sunos-64": "0.14.27", + "esbuild-windows-32": "0.14.27", + "esbuild-windows-64": "0.14.27", + "esbuild-windows-arm64": "0.14.27" + } + }, + "esbuild-android-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz", + "integrity": "sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz", + "integrity": "sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz", + "integrity": "sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz", + "integrity": "sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz", + "integrity": "sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz", + "integrity": "sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz", + "integrity": "sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz", + "integrity": "sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz", + "integrity": "sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz", + "integrity": "sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz", + "integrity": "sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz", + "integrity": "sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz", + "integrity": "sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz", + "integrity": "sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz", + "integrity": "sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz", + "integrity": "sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz", + "integrity": "sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz", + "integrity": "sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz", + "integrity": "sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.27", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz", + "integrity": "sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==", + "dev": true, + "optional": true + }, "escalade": { "version": "3.1.1" }, @@ -26667,6 +57266,71 @@ } } }, + "eslint-import-resolver-webpack": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.2.tgz", + "integrity": "sha512-XodIPyg1OgE2h5BDErz3WJoK7lawxKTJNhgPNafRST6csC/MZC+L5P6kKqsZGRInpbgc02s/WZMrb4uGJzcuRg==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^3.2.7", + "enhanced-resolve": "^0.9.1", + "find-root": "^1.1.0", + "has": "^1.0.3", + "interpret": "^1.4.0", + "is-core-module": "^2.7.0", + "is-regex": "^1.1.4", + "lodash": "^4.17.21", + "resolve": "^1.20.0", + "semver": "^5.7.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + } + } + }, "eslint-module-utils": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", @@ -26829,6 +57493,15 @@ } } }, + "eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-plugin-promise": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", @@ -26849,6 +57522,58 @@ "@microsoft/tsdoc-config": "0.15.2" } }, + "eslint-plugin-vue": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz", + "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==", + "dev": true, + "requires": { + "eslint-utils": "^2.1.0", + "natural-compare": "^1.4.0", + "semver": "^6.3.0", + "vue-eslint-parser": "^7.10.0" + }, + "dependencies": { + "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==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.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 + }, + "vue-eslint-parser": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", + "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^6.3.0" + } + } + } + }, "eslint-scope": { "version": "5.1.1", "dev": true, @@ -26934,6 +57659,12 @@ "estraverse": { "version": "4.3.0" }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "esutils": { "version": "2.0.3" }, @@ -26955,6 +57686,22 @@ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", + "dev": true + }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -26972,6 +57719,15 @@ "strip-final-newline": "^2.0.0" } }, + "execall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", + "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", + "dev": true, + "requires": { + "clone-regexp": "^1.0.0" + } + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -26983,6 +57739,110 @@ "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "expand-tilde": { "version": "2.0.2", "dev": true, @@ -27102,6 +57962,15 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, "external-editor": { "version": "3.1.0", "dev": true, @@ -27111,18 +57980,67 @@ "tmp": "^0.0.33" } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "extract-files": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", + "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", + "dev": true + }, + "extract-from-css": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/extract-from-css/-/extract-from-css-0.4.4.tgz", + "integrity": "sha1-HqffLnx8brmSL6COitrqSG9vj5I=", + "dev": true, + "requires": { + "css": "^2.1.0" + } + }, "fast-deep-equal": { "version": "3.1.3" }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { - "version": "3.2.5", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" } }, "fast-json-stable-stringify": { @@ -27168,12 +58086,27 @@ "fast-xml-parser": { "version": "3.19.0" }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, "fastq": { "version": "1.11.0", "requires": { "reusify": "^1.0.4" } }, + "fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dev": true, + "requires": { + "format": "^0.2.0" + } + }, "fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", @@ -27212,6 +58145,79 @@ "flat-cache": "^3.0.4" } }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "dev": true + }, + "file-system-cache": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", + "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", + "dev": true, + "requires": { + "bluebird": "^3.3.5", + "fs-extra": "^0.30.0", + "ramda": "^0.21.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "file-uri-to-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", @@ -27246,6 +58252,87 @@ } } }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "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" + } + }, + "p-limit": { + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "find-node-modules": { "version": "2.1.2", "dev": true, @@ -27304,9 +58391,131 @@ "version": "3.1.1", "dev": true }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "dev": true + }, + "flow-parser": { + "version": "0.174.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.174.1.tgz", + "integrity": "sha512-nDMOvlFR+4doLpB3OJpseHZ7uEr3ENptlF6qMas/kzQmNcLzMwfQeFX0gGJ/+em7UdldB/nGsk55tDTOvjbCuw==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, "fn.name": { "version": "1.1.0" }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", + "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "schema-utils": { + "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": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, "form-data": { "version": "3.0.1", "requires": { @@ -27315,6 +58524,12 @@ "mime-types": "^2.1.12" } }, + "format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "dev": true + }, "formidable": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", @@ -27332,6 +58547,21 @@ "frac": { "version": "1.1.2" }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -27380,6 +58610,24 @@ "minipass": "^3.0.0" } }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "dev": true @@ -27424,10 +58672,34 @@ "function-bind": { "version": "1.1.1" }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "dev": true }, + "functions-have-names": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", + "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", + "dev": true + }, + "fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", + "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", + "dev": true + }, "gauge": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.3.tgz", @@ -27700,6 +58972,12 @@ "ftp": "^0.3.10" } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, "getopts": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", @@ -27763,6 +59041,31 @@ "is-glob": "^4.0.1" } }, + "glob-promise": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", + "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "dev": true, + "requires": { + "@types/glob": "*" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, "global-dirs": { "version": "0.1.1", "dev": true, @@ -27817,19 +59120,34 @@ } } }, + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, "google-auth-library": { "version": "7.12.0", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.12.0.tgz", @@ -27893,6 +59211,17 @@ "graphql-fields": { "version": "2.0.3" }, + "graphql-react": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/graphql-react/-/graphql-react-15.0.0.tgz", + "integrity": "sha512-isqUWv7nLioxHT09LlZN6RWCvWBVkJUN27RCvoQ8BpflnmxkB0u03/XFQK90+5Y78/G3mdqrcA1J9hGX2V1Xkg==", + "dev": true, + "requires": { + "extract-files": "^11.0.0", + "isobject": "^4.0.0", + "react-waterfall-render": "^2.0.0" + } + }, "graphql-scalars": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.15.0.tgz", @@ -27901,6 +59230,15 @@ "tslib": "~2.3.0" } }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, "graphql-type-json": { "version": "0.3.2", "requires": {} @@ -27990,8 +59328,30 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", + "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", + "dev": true, + "requires": { + "is-glob": "^3.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, "has-symbols": { - "version": "1.0.2", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "has-tostringtag": { @@ -28009,15 +59369,206 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "has-yarn": { "version": "2.1.0", "dev": true }, + "hash-base": { + "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.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "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.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, "hash-stream-validation": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz", "integrity": "sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==" }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "dev": true, + "requires": { + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "dev": true + }, + "hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "dev": true, + "requires": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "dev": true, + "requires": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "dev": true, + "requires": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, "he": { "version": "1.2.0" }, @@ -28027,6 +59578,49 @@ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "dev": true }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "history": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.0.0.tgz", + "integrity": "sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.6" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } + } + }, "homedir-polyfill": { "version": "1.0.3", "dev": true, @@ -28053,12 +59647,39 @@ "whatwg-encoding": "^1.0.5" } }, + "html-entities": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", + "dev": true + }, "html-escaper": { "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-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + } + }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true + }, "html-to-text": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-8.1.0.tgz", @@ -28072,6 +59693,33 @@ "selderee": "^0.6.0" } }, + "html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "dev": true + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "dependencies": { + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + } + } + }, "htmlparser2": { "version": "6.1.0", "requires": { @@ -28106,6 +59754,16 @@ } } }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, "http-proxy-agent": { "version": "4.0.1", "requires": { @@ -28114,6 +59772,31 @@ "debug": "4" } }, + "http-proxy-middleware": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", + "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + } + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, "https-proxy-agent": { "version": "5.0.0", "requires": { @@ -28148,11 +59831,38 @@ "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" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -28217,6 +59927,12 @@ "version": "4.0.0", "dev": true }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -28238,6 +59954,12 @@ "version": "1.3.8", "dev": true }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "dev": true + }, "inquirer": { "version": "6.5.2", "dev": true, @@ -28328,6 +60050,15 @@ "interpret": { "version": "2.2.0" }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -28338,6 +60069,41 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "dev": true @@ -28362,12 +60128,35 @@ "call-bind": "^1.0.2" } }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + } + } + }, "is-core-module": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", @@ -28376,10 +60165,68 @@ "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, "is-date-object": { "version": "1.0.4", "dev": true }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-dom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", + "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", + "dev": true, + "requires": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" + } + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, "is-extglob": { "version": "2.1.1" }, @@ -28391,6 +60238,12 @@ "version": "2.0.0", "dev": true }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "dev": true + }, "is-generator-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", @@ -28405,6 +60258,12 @@ "is-extglob": "^2.1.1" } }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true + }, "is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -28438,6 +60297,12 @@ "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true + }, "is-negative-zero": { "version": "2.0.1", "dev": true @@ -28455,6 +60320,12 @@ "version": "1.0.5", "dev": true }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -28483,6 +60354,12 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -28493,6 +60370,18 @@ "has-tostringtag": "^1.0.0" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true + }, "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -28511,6 +60400,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-supported-regexp-flag": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", + "dev": true + }, "is-symbol": { "version": "1.0.4", "dev": true, @@ -28541,10 +60436,43 @@ "call-bind": "^1.0.0" } }, + "is-whitespace": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", + "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", + "dev": true + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "dev": true + }, + "is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", + "dev": true + }, "is-windows": { "version": "1.0.2", "dev": true }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "dev": true + }, + "is-wsl": { + "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" + } + }, "is-yarn-global": { "version": "0.3.0", "dev": true @@ -28555,6 +60483,12 @@ "isexe": { "version": "2.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 + }, "issue-parser": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", @@ -28630,6 +60564,22 @@ "iterall": { "version": "1.3.0" }, + "iterate-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", + "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", + "dev": true + }, + "iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", + "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "dev": true, + "requires": { + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" + } + }, "java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -28807,6 +60757,16 @@ "jest-util": "^27.5.1" } }, + "jest-fetch-mock": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz", + "integrity": "sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw==", + "dev": true, + "requires": { + "cross-fetch": "^3.0.4", + "promise-polyfill": "^8.1.3" + } + }, "jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -29028,6 +60988,15 @@ "graceful-fs": "^4.2.9" } }, + "jest-serializer-vue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz", + "integrity": "sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM=", + "dev": true, + "requires": { + "pretty": "2.0.0" + } + }, "jest-snapshot": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", @@ -29058,6 +61027,301 @@ "semver": "^7.3.2" } }, + "jest-specific-snapshot": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jest-specific-snapshot/-/jest-specific-snapshot-4.0.0.tgz", + "integrity": "sha512-YdW5P/MVwOizWR0MJwURxdrjdXvdG2MMpXKVGr7dZ2YrBmE6E6Ab74UL3DOYmGmzaCnNAW1CL02pY5MTHE3ulQ==", + "dev": true, + "requires": { + "jest-snapshot": "^26.3.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.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==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + } + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "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" + } + }, + "p-limit": { + "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 + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "jest-transform-stub": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz", + "integrity": "sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==", + "dev": true + }, "jest-util": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", @@ -29149,6 +61413,36 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "js-beautify": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz", + "integrity": "sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==", + "dev": true, + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "nopt": "^5.0.0" + } + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": true + }, "js-tokens": { "version": "4.0.0", "dev": true @@ -29161,6 +61455,192 @@ "esprima": "^4.0.0" } }, + "jscodeshift": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.7.1.tgz", + "integrity": "sha512-YMkZSyoc8zg5woZL23cmWlnFLPH/mHilonGA7Qbzs7H6M4v4PH0Qsn4jeDyw+CHhVoAnm9UxQyB0Yw1OT+mktA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.6", + "@babel/parser": "^7.1.6", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/preset-env": "^7.1.6", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-typescript": "^7.1.0", + "@babel/register": "^7.0.0", + "babel-core": "^7.0.0-bridge.0", + "colors": "^1.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.18.1", + "temp": "^0.8.1", + "write-file-atomic": "^2.3.0" + }, + "dependencies": { + "ast-types": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", + "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "recast": { + "version": "0.18.10", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.18.10.tgz", + "integrity": "sha512-XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==", + "dev": true, + "requires": { + "ast-types": "0.13.3", + "esprima": "~4.0.0", + "private": "^0.1.8", + "source-map": "~0.6.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "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" + } + } + } + }, "jsdom": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", @@ -29247,6 +61727,25 @@ "version": "5.0.1", "dev": true }, + "json2csv": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-5.0.7.tgz", + "integrity": "sha512-YRZbUnyaJZLZUJSRi2G/MqahCyRv9n/ds+4oIetjDF3jWQA7AG7iSeKTiZiCNqtMZM7HDyt0e/W6lEnoGEmMGA==", + "dev": true, + "requires": { + "commander": "^6.1.0", + "jsonparse": "^1.3.1", + "lodash.get": "^4.4.2" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + } + } + }, "json5": { "version": "2.2.0", "dev": true, @@ -29362,6 +61861,16 @@ } } }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, "jszip": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", @@ -29373,6 +61882,12 @@ "set-immediate-shim": "~1.0.1" } }, + "junk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", + "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", + "dev": true + }, "jwa": { "version": "1.4.1", "requires": { @@ -29399,10 +61914,25 @@ "version": "6.0.3", "dev": true }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, "kleur": { "version": "3.0.3", "dev": true }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true + }, "knex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/knex/-/knex-1.0.4.tgz", @@ -29433,6 +61963,12 @@ } } }, + "known-css-properties": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.24.0.tgz", + "integrity": "sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==", + "dev": true + }, "kuler": { "version": "2.0.0" }, @@ -29443,6 +61979,59 @@ "package-json": "^6.3.0" } }, + "lazy-universal-dotenv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", + "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.0", + "app-root-dir": "^1.0.2", + "core-js": "^3.0.4", + "dotenv": "^8.0.0", + "dotenv-expand": "^5.1.0" + }, + "dependencies": { + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true + } + } + }, + "leaflet": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", + "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==", + "dev": true + }, + "leaflet-fullscreen": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/leaflet-fullscreen/-/leaflet-fullscreen-1.0.2.tgz", + "integrity": "sha1-CcYcS6xF9jsu4Sav2H5c2XZQ/Bs=", + "dev": true + }, + "leaflet-gesture-handling": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/leaflet-gesture-handling/-/leaflet-gesture-handling-1.2.2.tgz", + "integrity": "sha512-Blf5V4PoNphWkzL7Y1qge+Spkd4OCQ2atjwUNhMhLIcjKzPcBH++x/lwOinaR9jSqLWqJ6oKYO8d0XdTffy4hQ==", + "dev": true + }, + "leaflet-markers-canvas": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/leaflet-markers-canvas/-/leaflet-markers-canvas-0.2.2.tgz", + "integrity": "sha512-UU/98qrmljhU6Xl3lrsUAUke4Qb/p8BCfmhiw7L1hHtkVMxdRYgwk7RwUW9QNoPbhnmuyxsc90whKjWVVP5cNw==", + "dev": true, + "requires": {} + }, + "leaflet.markercluster": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz", + "integrity": "sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==", + "dev": true, + "requires": {} + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -29644,6 +62233,44 @@ } } }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "peer": true + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dev": true, + "requires": { + "lie": "3.1.1" + }, + "dependencies": { + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + } + } + }, "locate-path": { "version": "2.0.0", "dev": true, @@ -29655,12 +62282,64 @@ "lodash": { "version": "4.17.21" }, + "lodash._baseiteratee": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz", + "integrity": "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI=", + "dev": true, + "requires": { + "lodash._stringtopath": "~4.8.0" + } + }, + "lodash._basetostring": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz", + "integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8=", + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", + "integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=", + "dev": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", + "integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash._stringtopath": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz", + "integrity": "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ=", + "dev": true, + "requires": { + "lodash._basetostring": "~4.12.0" + } + }, "lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", "dev": true }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.deburr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", @@ -29676,8 +62355,7 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true, - "optional": true + "dev": true }, "lodash.includes": { "version": "4.3.0" @@ -29718,12 +62396,24 @@ "lodash.once": { "version": "4.1.1" }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "dev": true + }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, "lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", @@ -29870,6 +62560,15 @@ "version": "2.0.1", "dev": true }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "loud-rejection": { "version": "1.6.0", "dev": true, @@ -29878,10 +62577,29 @@ "signal-exit": "^3.0.0" } }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "lowercase-keys": { "version": "1.0.1", "dev": true }, + "lowlight": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", + "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "dev": true, + "requires": { + "fault": "^1.0.0", + "highlight.js": "~10.7.0" + } + }, "lru_map": { "version": "0.3.3" }, @@ -29895,6 +62613,15 @@ "version": "2.3.9", "dev": true }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, "make-dir": { "version": "3.1.0", "requires": { @@ -29967,10 +62694,44 @@ "tmpl": "1.0.5" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, "map-obj": { "version": "4.2.1", "dev": true }, + "map-or-similar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "dev": true + }, + "markdown-to-jsx": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.7.tgz", + "integrity": "sha512-VI3TyyHlGkO8uFle0IOibzpO1c1iJDcXcS/zBrQrXQQvJ2tpdwVzVZ7XdKsyRz1NdRmre4dqQkMZzUHaKIG/1w==", + "dev": true, + "requires": {} + }, "marked": { "version": "4.0.12", "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", @@ -30039,14 +62800,260 @@ } } }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, "matomo-tracker": { "version": "2.2.4" }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "dev": true, + "requires": { + "unist-util-remove": "^2.0.0" + } + }, + "mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "dev": true, + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, + "memoizerific": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", + "dev": true, + "requires": { + "map-or-similar": "^1.5.0" + } + }, + "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" + } + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "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" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.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" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-limit": { + "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 + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, "merge": { "version": "2.1.1", "dev": true @@ -30069,6 +63076,12 @@ "mgrs": { "version": "1.0.0" }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "dev": true + }, "micromatch": { "version": "4.0.4", "requires": { @@ -30076,6 +63089,24 @@ "picomatch": "^2.2.3" } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -30086,6 +63117,15 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, + "mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha1-P4fDHprxpf1IX7nbE0Qosju7e6g=", + "dev": true, + "requires": { + "wildcard": "^1.1.0" + } + }, "mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", @@ -30104,10 +63144,31 @@ "version": "1.0.1", "dev": true }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + } + }, "min-indent": { "version": "1.0.1", "dev": true }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, "minimatch": { "version": "3.0.4", "dev": true, @@ -30204,6 +63265,97 @@ "yallist": "^4.0.0" } }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -30226,6 +63378,52 @@ "moo": { "version": "0.5.1" }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "ms": { "version": "2.1.2" }, @@ -30233,6 +63431,80 @@ "version": "0.0.7", "dev": true }, + "namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==", + "dev": true + }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "natural-compare": { "version": "1.4.0", "dev": true @@ -30266,11 +63538,42 @@ "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", "dev": true }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, "netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", + "dev": true, + "requires": { + "minimatch": "^3.0.2" + } + }, "node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -30338,6 +63641,69 @@ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + } + } + }, "node-mailjet": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/node-mailjet/-/node-mailjet-3.3.7.tgz", @@ -30351,9 +63717,9 @@ } }, "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "nodemon": { @@ -30429,6 +63795,18 @@ "remove-trailing-separator": "^1.0.1" } }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, "npm": { "version": "8.3.1", "resolved": "https://registry.npmjs.org/npm/-/npm-8.3.1.tgz", @@ -32425,10 +65803,25 @@ "set-blocking": "^2.0.0" } }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, "null-check": { "version": "1.0.0", "dev": true }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -32438,6 +65831,80 @@ "object-assign": { "version": "4.1.1" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", @@ -32453,6 +65920,23 @@ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "object.assign": { "version": "4.1.2", "dev": true, @@ -32463,6 +65947,56 @@ "object-keys": "^1.1.1" } }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "object.values": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", @@ -32557,6 +66091,16 @@ } } }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, "optionator": { "version": "0.9.1", "dev": true, @@ -32569,16 +66113,54 @@ "word-wrap": "^1.2.3" } }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, "os-tmpdir": { "version": "1.0.2", "dev": true }, + "overlayscrollbars": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz", + "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ==", + "dev": true + }, + "p-all": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", + "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "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 + } + } + }, "p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", "dev": true }, + "p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, "p-filter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", @@ -32641,16 +66223,6 @@ "requires": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" - }, - "dependencies": { - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - } } }, "p-reduce": { @@ -32677,6 +66249,14 @@ } } }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "2.2.0", "dev": true @@ -32836,11 +66416,59 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, - "parent-module": { - "version": "1.0.1", + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "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": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, "requires": { - "callsites": "^3.0.0" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, "parse-github-repo-url": { @@ -32890,6 +66518,34 @@ "parseurl": { "version": "1.3.3" }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "3.0.0", "dev": true @@ -32912,6 +66568,19 @@ "path-type": { "version": "4.0.0" }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "pg": { "version": "8.7.3", "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", @@ -32970,7 +66639,9 @@ "dev": true }, "picomatch": { - "version": "2.2.3" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pidtree": { "version": "0.5.0", @@ -32994,11 +66665,34 @@ } }, "pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true }, + "pixrem": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-5.0.0.tgz", + "integrity": "sha512-ugJ4Imy92u55zeznaN/5d7iqOBIZjZ7q10/T+dcd0IuFtbLlsGDvAUabFu1cafER+G9f0T1WtTqvzm4KAdcDgQ==", + "dev": true, + "requires": { + "browserslist": "^4.3.6", + "postcss": "^7.0.7", + "reduce-css-calc": "^2.1.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, "pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", @@ -33063,6 +66757,24 @@ } } }, + "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" + } + }, + "polished": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz", + "integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.16.7" + } + }, "polygon-clipping": { "version": "0.15.3", "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz", @@ -33071,6 +66783,671 @@ "splaytree": "^3.1.0" } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "dev": true, + "requires": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + } + } + }, + "postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.2" + } + }, + "postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "dev": true, + "requires": {} + }, + "postcss-button": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/postcss-button/-/postcss-button-0.3.17.tgz", + "integrity": "sha512-LbJCmxw5JbeoAmB8V1lmDSXuWVI3jpYBcXkoYnXC45J4ylklyqJysk06/jySj9C3q+r0ypXMM1UTVJcGnueOzw==", + "dev": true, + "requires": { + "postcss": "^7.0.17" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-functional-notation": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", + "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "dev": true, + "requires": {} + }, + "postcss-custom-properties": { + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", + "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", + "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "dev": true, + "requires": { + "postcss": "^7.0.26" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "requires": {} + }, + "postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "dev": true, + "requires": {} + }, + "postcss-grid-fluid": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/postcss-grid-fluid/-/postcss-grid-fluid-0.3.4.tgz", + "integrity": "sha512-HuXvASgRhOHiSCQsIeTY1qSBNaC2oMBIUO9lQbSP7CFjNkYQfPe+Bm15djTPY8GIGOTwVsCyFE8YUWfMq+FVPw==", + "dev": true, + "requires": { + "postcss": "^7.0.17" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-grid-system": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/postcss-grid-system/-/postcss-grid-system-0.5.2.tgz", + "integrity": "sha512-BR5zSvKENNoQuxvLc2DfLTFLxy4C/aQmjMDmrK1LRdVBbqr6OLG5bf1yd5P1rgClRkd3NEKRWYg3/LnLVKHHjw==", + "dev": true, + "requires": {} + }, + "postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-import": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true, + "requires": {} + }, + "postcss-inline-svg": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-inline-svg/-/postcss-inline-svg-5.0.0.tgz", + "integrity": "sha512-Agqkrn91Qgi+KAO+cTvUS1IAZbHPD4sryPoG0q5U0ThokL4UGoMcmwvNV6tDoRp69B5tgD1VNkn9P09E+xpQAg==", + "dev": true, + "requires": { + "css-select": "^3.1.0", + "dom-serializer": "^1.1.0", + "htmlparser2": "^5.0.1", + "postcss-value-parser": "^4.0.0" + }, + "dependencies": { + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1" + } + }, + "htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + } + } + } + }, + "postcss-lab-function": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", + "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + } + }, + "postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true, + "requires": {} + }, + "postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "dev": true, + "requires": {} + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "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" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-local-by-default": { + "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.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "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" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "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" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-nesting": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", + "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dev": true, + "requires": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + } + }, + "postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", + "dev": true + }, + "postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "dev": true, + "requires": {} + }, + "postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "requires": {} + }, + "postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-preset-env": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "dev": true, + "requires": { + "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-font-format-keywords": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-ic-unit": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-normalize-display-values": "^1.0.0", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^6.5.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.2", + "postcss-color-hex-alpha": "^8.0.3", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.5", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.4", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.3", + "postcss-image-set-function": "^4.0.6", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.1.2", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.3", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.3", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.4", + "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, + "dependencies": { + "autoprefixer": { + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "dev": true, + "requires": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + } + } + }, + "postcss-pseudo-class-any-link": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", + "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "requires": {} + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "requires": {} + }, + "postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-typescale": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-typescale/-/postcss-typescale-0.2.3.tgz", + "integrity": "sha512-hbHccnobyhoV6IPYYpgkvGGhv4E80xvQgqK58sSVTxXHAcyMclcepZ9oWVMB5cQB8ZcspickI96/ddbai8K1rA==", + "dev": true, + "requires": { + "postcss": "^7.0.17" + }, + "dependencies": { + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, "postgres-array": { "version": "2.0.0" }, @@ -33086,6 +67463,29 @@ "xtend": "^4.0.0" } }, + "preact": { + "version": "10.6.6", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.6.6.tgz", + "integrity": "sha512-dgxpTFV2vs4vizwKohYKkk7g7rmp1wOOcfd4Tz3IB3Wi+ivZzsn/SpeKJhRENSE+n8sUfsAl4S3HiCVT923ABw==", + "dev": true + }, + "preact-render-to-string": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.1.20.tgz", + "integrity": "sha512-ivh2oOGzth0o7XqbatWUQ81WQGoJwSqDKP5z917SoqTWYCAr7dlBzMv3SAMTAu3Gr5g47BJwrvyO44H2Y10ubg==", + "dev": true, + "requires": { + "pretty-format": "^3.8.0" + }, + "dependencies": { + "pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=", + "dev": true + } + } + }, "prelude-ls": { "version": "1.2.1", "dev": true @@ -33095,7 +67495,9 @@ "dev": true }, "prettier": { - "version": "2.3.0", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", + "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", "dev": true }, "prettier-eslint": { @@ -33324,6 +67726,36 @@ } } }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz", + "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", + "dev": true, + "requires": { + "condense-newlines": "^0.2.1", + "extend-shallow": "^2.0.1", + "js-beautify": "^1.6.12" + } + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, "pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -33341,17 +67773,41 @@ } } }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, "printj": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz", "integrity": "sha512-sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA==" }, + "prismjs": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "dev": true + }, + "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 + }, "proc-log": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.0.tgz", "integrity": "sha512-I/35MfCX2H8jBUhKN8JB8nmqvQo/nKdrBodBY7L3RhDSPPyvOHwLYNmPuhwuJq7a7C3vgFKWGQM+ecPStcvOHA==", "dev": true }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, "process-nextick-args": { "version": "2.0.1" }, @@ -33368,12 +67824,27 @@ "wkt-parser": "^1.3.1" } }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": 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", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "promise-polyfill": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", + "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==", + "dev": true + }, "promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", @@ -33384,6 +67855,31 @@ "retry": "^0.12.0" } }, + "promise.allsettled": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.5.tgz", + "integrity": "sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ==", + "dev": true, + "requires": { + "array.prototype.map": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "iterate-value": "^1.0.2" + } + }, + "promise.prototype.finally": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.3.tgz", + "integrity": "sha512-EXRF3fC9/0gz4qkt/f5EP5iW4kj9oFpBICNpCNOb/52+8nlHIX07FPLbi/q4qYBQ1xZqivMzTpNQSnArVASolQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -33394,6 +67890,58 @@ "sisteransi": "^1.0.5" } }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } + } + }, + "proper-lockfile": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-2.0.1.tgz", + "integrity": "sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "dev": true, + "requires": { + "xtend": "^4.0.0" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -33448,6 +67996,18 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "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.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -33458,6 +68018,152 @@ "version": "1.1.8", "dev": true }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "requires": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "requires": { + "pug-error": "^2.0.0" + } + }, + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, "pump": { "version": "3.0.0", "requires": { @@ -33499,6 +68205,18 @@ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "queue-microtask": { "version": "1.2.3" }, @@ -33506,9 +68224,21 @@ "version": "4.0.1", "dev": true }, + "quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "dev": true + }, "railroad-diagrams": { "version": "1.0.0" }, + "ramda": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", + "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", + "dev": true + }, "randexp": { "version": "0.4.6", "requires": { @@ -33516,6 +68246,25 @@ "ret": "~0.1.10" } }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -33539,6 +68288,38 @@ } } }, + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "dev": true, + "requires": { + "quickselect": "^2.0.0" + } + }, "rc": { "version": "1.2.8", "dev": true, @@ -33578,11 +68359,217 @@ } } }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-colorful": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.5.1.tgz", + "integrity": "sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==", + "dev": true, + "requires": {} + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-draggable": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.4.tgz", + "integrity": "sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==", + "dev": true, + "requires": { + "clsx": "^1.1.1", + "prop-types": "^15.6.0" + } + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", + "dev": true + }, + "react-helmet-async": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.2.3.tgz", + "integrity": "sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + } + }, + "react-inspector": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.1.1.tgz", + "integrity": "sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "is-dom": "^1.0.0", + "prop-types": "^15.0.0" + } + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-popper": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", + "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", + "dev": true, + "requires": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + } + }, + "react-popper-tooltip": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz", + "integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@popperjs/core": "^2.5.4", + "react-popper": "^2.2.4" + } + }, + "react-router": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz", + "integrity": "sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ==", + "dev": true, + "requires": { + "history": "^5.2.0" + }, + "dependencies": { + "history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.6" + } + } + } + }, + "react-router-dom": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.2.tgz", + "integrity": "sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ==", + "dev": true, + "requires": { + "history": "^5.2.0", + "react-router": "6.2.2" + }, + "dependencies": { + "history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.6" + } + } + } + }, + "react-shallow-renderer": { + "version": "16.14.1", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz", + "integrity": "sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0" + } + }, + "react-sizeme": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-3.0.2.tgz", + "integrity": "sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw==", + "dev": true, + "requires": { + "element-resize-detector": "^1.2.2", + "invariant": "^2.2.4", + "shallowequal": "^1.1.0", + "throttle-debounce": "^3.0.1" + } + }, + "react-syntax-highlighter": { + "version": "13.5.3", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz", + "integrity": "sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.1.1", + "lowlight": "^1.14.0", + "prismjs": "^1.21.0", + "refractor": "^3.1.0" + } + }, + "react-test-renderer": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "react-is": "^17.0.2", + "react-shallow-renderer": "^16.13.1", + "scheduler": "^0.20.2" + } + }, + "react-textarea-autosize": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz", + "integrity": "sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "use-composed-ref": "^1.0.0", + "use-latest": "^1.0.0" + } + }, + "react-waterfall-render": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-waterfall-render/-/react-waterfall-render-2.0.0.tgz", + "integrity": "sha512-PCox1jrpL72KAHVdRTQmo4/O7ElrVmnvExrJU04ioOg9qrYcXtctPC41xVCjTbqzZjes8KCdEfaAS3KolZiUOw==", + "dev": true, + "requires": {} + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, "read-package-json": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.0.tgz", @@ -33699,6 +68686,29 @@ "picomatch": "^2.2.1" } }, + "recast": { + "version": "0.20.5", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", + "dev": true, + "requires": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "dependencies": { + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + } + } + }, "rechoir": { "version": "0.6.2", "dev": true, @@ -33725,12 +68735,148 @@ } } }, + "reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "redux": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz", + "integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==", + "requires": { + "@babel/runtime": "^7.9.2" + } + }, + "refractor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", + "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "dev": true, + "requires": { + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "regenerator-transform": { + "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" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, "registry-auth-token": { "version": "4.2.1", "dev": true, @@ -33745,6 +68891,154 @@ "rc": "^1.2.8" } }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "dev": true + }, + "remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "dev": true, + "requires": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-plugin-utils": { + "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/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + } + } + }, + "remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "dev": true, + "requires": { + "mdast-squeeze-paragraphs": "^4.0.0" + } + }, "remote-git-tags": { "version": "3.0.0", "dev": true @@ -33752,6 +69046,52 @@ "remove-trailing-separator": { "version": "1.1.0" }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, "repeating": { "version": "2.0.1", "dev": true, @@ -33770,11 +69110,19 @@ "version": "0.8.7", "dev": true }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, "resolve": { - "version": "1.20.0", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { @@ -33805,6 +69153,12 @@ "global-dirs": "^0.1.1" } }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "resolve.exports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", @@ -33873,6 +69227,31 @@ "glob": "^7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, "run-async": { "version": "2.4.1", "dev": true @@ -33883,6 +69262,23 @@ "queue-microtask": "^1.2.2" } }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + } + } + }, "rxjs": { "version": "6.6.7", "dev": true, @@ -33899,6 +69295,15 @@ "safe-buffer": { "version": "5.1.2" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, "safe-stable-stringify": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", @@ -33907,6 +69312,252 @@ "safer-buffer": { "version": "2.1.2" }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.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, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "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" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "which": { + "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" + } + } + } + }, + "sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", + "dev": true + }, "sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", @@ -33921,6 +69572,27 @@ "xmlchars": "^2.2.0" } }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, "selderee": { "version": "0.6.0", "requires": { @@ -34128,6 +69800,42 @@ } } }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dev": true, + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + } + } + }, "serve-static": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", @@ -34150,11 +69858,71 @@ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true + }, "sharkdown": { "version": "0.1.1", "requires": { @@ -34239,6 +70007,12 @@ "object-inspect": "^1.9.0" } }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -34356,6 +70130,177 @@ "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz", "integrity": "sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0=" }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "snarkdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/snarkdown/-/snarkdown-2.0.0.tgz", + "integrity": "sha512-MgL/7k/AZdXCTJiNgrO7chgDqaB9FGM/1Tvlcenenb7div6obaDATzs16JhFyHHBGodHT3B7RzRc5qk8pFhg3A==", + "dev": true + }, "socks": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", @@ -34376,10 +70321,35 @@ "socks": "^2.6.1" } }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, "source-map": { "version": "0.6.1", "devOptional": true }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -34390,6 +70360,24 @@ "source-map": "^0.6.0" } }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "dev": true + }, "spawn-error-forwarder": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", @@ -34424,6 +70412,12 @@ "version": "3.0.8", "dev": true }, + "specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true + }, "splaytree": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz", @@ -34436,6 +70430,57 @@ "through": "2" } }, + "split-lines": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-1.1.0.tgz", + "integrity": "sha1-Oruo9ZhhQUL5240nq2q4dWYqHgk=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "split2": { "version": "3.2.2", "requires": { @@ -34484,6 +70529,12 @@ "minipass": "^3.1.1" } }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, "stack-trace": { "version": "0.0.10" }, @@ -34840,9 +70891,95 @@ "requires": { "readable-stream": "3" } + } + } + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, - "yargs-parser": { - "version": "20.2.7", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } @@ -34850,6 +70987,22 @@ "statuses": { "version": "1.5.0" }, + "store2": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.13.2.tgz", + "integrity": "sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg==", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, "stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", @@ -34860,12 +71013,35 @@ "readable-stream": "^2.0.2" } }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, "stream-events": { "version": "1.0.5", "requires": { "stubs": "^3.0.0" } }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", @@ -34917,6 +71093,44 @@ } } }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.padend": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", + "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "string.prototype.padstart": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.3.tgz", + "integrity": "sha512-NZydyOMtYxpTjGqp0VN5PYUF/tsU15yDMZnUdj16qRUIUiMJkHHSDElYyQFrMu+/WloTpA7MQSiADhBicDfaoA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, "string.prototype.trimend": { "version": "1.0.4", "dev": true, @@ -34950,6 +71164,12 @@ "version": "4.0.0", "dev": true }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "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", @@ -34970,6 +71190,209 @@ "stubs": { "version": "3.0.0" }, + "style-loader": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", + "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + } + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "dev": true, + "requires": { + "inline-style-parser": "0.1.1" + } + }, + "stylelint": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.6.0.tgz", + "integrity": "sha512-Xk2sqXYPi9nXgq70nBiZkbQm/QOOKd83NBTaBE1fXEWAEeRlgHnKC/E7kJFlT6K0SaNDOK5yIvR7GFPGsNLuOg==", + "dev": true, + "requires": { + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.0.1", + "debug": "^4.3.3", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.1.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.24.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "normalize-selector": "^0.2.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.12", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "requires": { + "is-regexp": "^2.0.0" + } + }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "requires": { + "clone-regexp": "^2.1.0" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "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-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "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 + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "which": { + "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" + } + }, + "write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + } + } + }, + "stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "requires": {} + }, + "stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "requires": {} + }, + "stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "dev": true, + "requires": { + "stylelint-config-recommended": "^7.0.0" + } + }, "superagent": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz", @@ -35120,12 +71543,41 @@ "supports-color": "^7.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "symbol.prototype.description": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz", + "integrity": "sha512-x738iXRYsrAt9WBhRCVG5BtIC3B7CUkFwbHW2zOvGtwM33s7JjrCDyq8V0zgMYVb5ymsL8+qkzzpANH63CPQaQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-symbol-description": "^1.0.0", + "has-symbols": "^1.0.2", + "object.getownpropertydescriptors": "^2.1.2" + } + }, + "synchronous-promise": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz", + "integrity": "sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg==", + "dev": true + }, "table": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", @@ -35176,6 +71628,12 @@ } } }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, "tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -35207,6 +71665,42 @@ "uuid": "^8.0.0" } }, + "telejson": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.3.3.tgz", + "integrity": "sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA==", + "dev": true, + "requires": { + "@types/is-function": "^1.0.0", + "global": "^4.4.0", + "is-function": "^1.0.2", + "is-regex": "^1.1.2", + "is-symbol": "^1.0.3", + "isobject": "^4.0.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3" + } + }, + "temp": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "dev": true, + "requires": { + "rimraf": "~2.6.2" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -35261,6 +71755,116 @@ } } }, + "terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "dev": true, + "requires": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "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": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -35294,6 +71898,12 @@ "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", "dev": true }, + "throttle-debounce": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", + "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", + "dev": true + }, "through": { "version": "2.3.8" }, @@ -35308,6 +71918,15 @@ "tildify": { "version": "2.0.0" }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, "tmp": { "version": "0.0.33", "dev": true, @@ -35321,25 +71940,117 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, "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 }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "to-readable-stream": { "version": "1.0.0", "dev": true }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "to-regex-range": { "version": "5.0.1", "requires": { "is-number": "^7.0.0" } }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", + "dev": true + }, "toidentifier": { "version": "1.0.0" }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "dev": true + }, "touch": { "version": "3.1.0", "dev": true, @@ -35382,17 +72093,41 @@ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, "trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, + "trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "dev": true + }, "triple-beam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true + }, + "ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true + }, "ts-jest": { "version": "27.1.3", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz", @@ -35407,14 +72142,27 @@ "make-error": "1.x", "semver": "7.x", "yargs-parser": "20.x" - }, - "dependencies": { - "yargs-parser": { - "version": "20.2.7", - "dev": true - } } }, + "ts-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.3.0.tgz", + "integrity": "sha512-MgGly4I6cStsJy27ViE32UoqxPTN9Xly4anxxVyaIWR+9BGxboV4EyJBGfR3RePV7Ksjj3rHmPZJeIt+7o4Vag==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^2.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + } + }, + "ts-map": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-map/-/ts-map-1.0.3.tgz", + "integrity": "sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==", + "dev": true + }, "ts-node": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", @@ -35447,6 +72195,38 @@ } } }, + "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 + }, + "tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "requires": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, "tsconfig-paths": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", @@ -35494,6 +72274,35 @@ } } }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tus-js-client": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tus-js-client/-/tus-js-client-2.3.1.tgz", + "integrity": "sha512-QEM7ySnthWT+wwePLTXVSQP8vBLCy0ZoJNDGFzNlsU+YVoK2WevIZwcRnKyo962xhYMiABe3aMvXvk4Ln+VRzQ==", + "dev": true, + "requires": { + "buffer-from": "^0.1.1", + "combine-errors": "^3.0.3", + "is-stream": "^2.0.0", + "js-base64": "^2.6.1", + "lodash.throttle": "^4.1.1", + "proper-lockfile": "^2.0.1", + "url-parse": "^1.5.7" + }, + "dependencies": { + "buffer-from": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz", + "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==", + "dev": true + } + } + }, "tus-node-server": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/tus-node-server/-/tus-node-server-0.5.2.tgz", @@ -35619,39 +72428,195 @@ "which-boxed-primitive": "^1.0.2" } }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "unfetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", + "dev": true + }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dev": true, + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dev": true, + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + } + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "2.0.0", + "requires": { + "crypto-random-string": "^2.0.0" + }, + "dependencies": { + "crypto-random-string": { + "version": "2.0.0" + } + } + }, + "unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "dev": true + }, + "unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "dev": true + }, + "unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true + }, + "unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "dev": true + }, + "unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "dev": true, + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "dev": true, + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { - "unique-slug": "^2.0.0" + "@types/unist": "^2.0.2" } }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "requires": { - "imurmurhash": "^0.1.4" + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" } }, - "unique-string": { - "version": "2.0.0", + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dev": true, "requires": { - "crypto-random-string": "^2.0.0" - }, - "dependencies": { - "crypto-random-string": { - "version": "2.0.0" - } + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" } }, "universal-user-agent": { @@ -35672,6 +72637,59 @@ "unpipe": { "version": "1.0.0" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "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, + "optional": true + }, "update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -35692,23 +72710,6 @@ "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - } } }, "uri-js": { @@ -35717,6 +72718,12 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", @@ -35739,6 +72746,40 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "url-parse-lax": { "version": "3.0.0", "dev": true, @@ -35755,15 +72796,83 @@ "fast-url-parser": "^1.1.3" } }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "use-composed-ref": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz", + "integrity": "sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw==", + "dev": true, + "requires": {} + }, + "use-isomorphic-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz", + "integrity": "sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==", + "dev": true, + "requires": {} + }, + "use-latest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.0.tgz", + "integrity": "sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==", + "dev": true, + "requires": { + "use-isomorphic-layout-effect": "^1.0.0" + } + }, + "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" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, "util-deprecate": { "version": "1.0.2" }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, "utils-merge": { "version": "1.0.1" }, "uuid": { "version": "8.3.2" }, + "uuid-browser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid-browser/-/uuid-browser-3.1.0.tgz", + "integrity": "sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA=", + "dev": true + }, "v8-compile-cache": { "version": "2.3.0", "dev": true @@ -35817,6 +72926,53 @@ "vary": { "version": "1.1.2" }, + "vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "dev": true + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "vite": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.8.6.tgz", + "integrity": "sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==", + "dev": true, + "requires": { + "esbuild": "^0.14.14", + "fsevents": "~2.3.2", + "postcss": "^8.4.6", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, "vm2": { "version": "3.9.8", "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.8.tgz", @@ -35838,12 +72994,111 @@ } } }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true + }, "vscode-textmate": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", "dev": true }, + "vue": { + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.31.tgz", + "integrity": "sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-sfc": "3.2.31", + "@vue/runtime-dom": "3.2.31", + "@vue/server-renderer": "3.2.31", + "@vue/shared": "3.2.31" + } + }, + "vue-docgen-api": { + "version": "4.44.22", + "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.44.22.tgz", + "integrity": "sha512-r99SeIZRqVsu1MJ49sgSmONFbqWXN9HnPxS1W1hfhOGKVqgfBWzXpJsexBuLN7XIerQM8Y1908S7AAV6GJVbRQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.13.12", + "@babel/types": "^7.13.12", + "@vue/compiler-dom": "^3.2.0", + "@vue/compiler-sfc": "^3.2.0", + "ast-types": "0.14.2", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.5", + "pug": "^3.0.2", + "recast": "0.20.5", + "ts-map": "^1.0.3", + "vue-inbrowser-compiler-utils": "^4.44.22" + }, + "dependencies": { + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "vue-docgen-loader": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vue-docgen-loader/-/vue-docgen-loader-1.5.0.tgz", + "integrity": "sha512-LKZ8mxeIQ44uSUMTplnwOXbC4bO4E2vyZDTbn7/1QlVwJPEIjk3ahL0DA1m27IEw6YTlHOwtWS0PrHmDkFgyAg==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "jscodeshift": "^0.7.0", + "loader-utils": "^1.2.3", + "querystring": "^0.2.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" + } + } + } + }, "vue-eslint-parser": { "version": "7.1.1", "dev": true, @@ -35871,6 +73126,84 @@ } } }, + "vue-inbrowser-compiler-demi": { + "version": "4.44.22", + "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-demi/-/vue-inbrowser-compiler-demi-4.44.22.tgz", + "integrity": "sha512-J+VcduUx6iwj3cfz+huB2yhwrhL8Gk4cmXe4gspURfmDMc9uukgiDWJEEDUHQCxFT+R/zA4uQgBjKexWcHZKUw==", + "dev": true, + "requires": {} + }, + "vue-inbrowser-compiler-utils": { + "version": "4.44.22", + "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-utils/-/vue-inbrowser-compiler-utils-4.44.22.tgz", + "integrity": "sha512-wOW6JSG+YXzrYMglP6AVkERM+1Yp371UT88eTkkZe4z/LFRuTGhZZFUKV1u9SuUEwIzd0nC+seEVzLdEwGGZvA==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "vue-inbrowser-compiler-demi": "^4.44.22" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "vue-loader": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.0.0.tgz", + "integrity": "sha512-OWSXjrzIvbF2LtOUmxT3HYgwwubbfFelN8PAP9R9dwpIkj48TVioHhWWSx7W7fk+iF5cgg3CBJRxwTdtLU4Ecg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + } + } + }, + "vue-meta": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-2.4.0.tgz", + "integrity": "sha512-XEeZUmlVeODclAjCNpWDnjgw+t3WA6gdzs6ENoIAgwO1J1d5p1tezDhtteLUFwcaQaTtayRrsx7GL6oXp/m2Jw==", + "dev": true, + "requires": { + "deepmerge": "^4.2.2" + } + }, + "vue-router": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.14.tgz", + "integrity": "sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==", + "dev": true, + "requires": { + "@vue/devtools-api": "^6.0.0" + } + }, + "vuex": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", + "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", + "dev": true, + "requires": { + "@vue/devtools-api": "^6.0.0-beta.11" + } + }, + "vuex-router-sync": { + "version": "6.0.0-rc.1", + "resolved": "https://registry.npmjs.org/vuex-router-sync/-/vuex-router-sync-6.0.0-rc.1.tgz", + "integrity": "sha512-pzVrX/rmQsDjJiKPAjgKxpkxWdiBBQmxATFA6eFyS2Tmo6jauq8iDk9BWxkw41/OA+pbq4wkONRC0aeErDw8GQ==", + "dev": true, + "requires": {} + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -35898,12 +73231,524 @@ "makeerror": "1.0.12" } }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "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", + "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" + }, + "dependencies": { + "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 + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "optional": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "dev": true + }, "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": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "dev": true, + "peer": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true, + "peer": true + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "peer": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peer": true, + "requires": {} + }, + "enhanced-resolve": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "dev": true, + "peer": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "peer": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "peer": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "peer": true + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "peer": true, + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "peer": true + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "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" + }, + "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.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "webpack-hot-middleware": { + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz", + "integrity": "sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw==", + "dev": true, + "requires": { + "ansi-html-community": "0.0.8", + "html-entities": "^2.1.0", + "querystring": "^0.2.0", + "strip-ansi": "^6.0.0" + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "webpack-virtual-modules": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", + "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", + "dev": true, + "requires": { + "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "wgs84": { "version": "0.0.0" }, @@ -35987,6 +73832,12 @@ } } }, + "wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha1-pwIEUwhNjNLv5wup02liY94XEKU=", + "dev": true + }, "winston": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz", @@ -36041,6 +73892,18 @@ } } }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + }, "wkt-parser": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.3.1.tgz", @@ -36061,6 +73924,24 @@ "version": "1.0.0", "dev": true }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "dev": true, + "requires": { + "microevent.ts": "~0.1.1" + } + }, "wrap-ansi": { "version": "7.0.0", "dev": true, @@ -36191,13 +74072,15 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } - }, - "yargs-parser": { - "version": "20.2.7", - "dev": true } } }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -36205,6 +74088,12 @@ }, "yocto-queue": { "version": "0.1.0" + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true } } } diff --git a/package.json b/package.json index a5d5d1b7f..2ad7f28aa 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,8 @@ "version": "1.0.0", "description": "Le cadastre minier numérique ouvert", "workspaces": [ - "packages/api" + "packages/api", + "packages/ui" ], "private": true, "repository": { @@ -16,9 +17,18 @@ }, "homepage": "https://github.com/MTES-MCT/camino#readme", "scripts": { - "prepare": "husky install" + "prepare": "husky install", + "test": "npm run test -w packages/api && npm run test -w packages/ui" + }, + "lint-staged": { + "packages/ui/*.{js,ts,vue}": "eslint --cache --fix", + "packages/ui/*.css": "stylelint --fix", + "packages/ui/*.{js,css}": "prettier --write", + "packages/api/*.{js,ts}": "eslint --cache --fix", + "packages/api/*.{ts,js,graphql}": "prettier --write" }, "devDependencies": { - "husky": "^7.0.4" + "husky": "^7.0.4", + "lint-staged": "^12.3.6" } } diff --git a/packages/api/Dockerfile b/packages/api/Dockerfile deleted file mode 100644 index a20ffcc08..000000000 --- a/packages/api/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM node:16.12-alpine as build-stage -WORKDIR /app - -COPY package*.json ./ - -# On désactive husky -RUN npm set-script prepare "" -RUN npm ci --only=prod - -COPY tsconfig.json ./ -COPY src src/ -RUN npm run build - -FROM node:16.12-alpine as production-stage -WORKDIR /app - -# redirige les logs sur le collecteur de logs docker -# cf le Dockerfile de nginx -# https://github.com/nginxinc/docker-nginx/blob/8921999083def7ba43a06fabd5f80e4406651353/mainline/jessie/Dockerfile#L21-L23 -RUN ln -sf /dev/stdout /app/app.log - -COPY --from=build-stage /app/package.json ./ -COPY --from=build-stage /app/dist ./dist -COPY --from=build-stage /app/node_modules ./node_modules -# nous avons besoin des sources pour lancer certains scripts manuellement -COPY --from=build-stage /app/src ./src -COPY --from=build-stage /app/tsconfig.json ./ - -CMD ["npm", "start"] diff --git a/packages/api/Dockerfile.docs b/packages/api/Dockerfile.docs deleted file mode 100644 index 616b4168e..000000000 --- a/packages/api/Dockerfile.docs +++ /dev/null @@ -1,2 +0,0 @@ -FROM nginx -COPY docs /usr/share/nginx/html diff --git a/packages/api/README.md b/packages/api/README.md index 40bcbe79f..74a2fceb7 100644 --- a/packages/api/README.md +++ b/packages/api/README.md @@ -1,14 +1,5 @@ # API de Camino -[![Tests Status][ci-img]][ci] [![codecov][codecov-img]][codecov] [![Dependency Status][dep-img]][dep] - -[ci-img]: https://github.com/MTES-MCT/camino-api/workflows/Tests/badge.svg -[ci]: https://github.com/MTES-MCT/camino-api/actions -[codecov-img]: https://codecov.io/gh/MTES-MCT/camino-api/branch/master/graph/badge.svg -[codecov]: https://codecov.io/gh/MTES-MCT/camino-api -[dep-img]: https://david-dm.org/MTES-MCT/camino-api.svg -[dep]: https://david-dm.org/MTES-MCT/camino-api - > API de Camino, le cadastre minier numérique ouvert: [api.camino.beta.gouv.fr](https://api.camino.beta.gouv.fr) L'API de Camino expose les propriétés des titres et autorisations du domaine minier français. @@ -22,17 +13,3 @@ Pour plus de détail sur le périmètre de l'API, voir [cette page](https://cami ## Documentation La documentation de l'API est disponible ici: [docs.camino.beta.gouv.fr](https://docs.camino.beta.gouv.fr). - ---- - -## Crédits - -[La Fabrique Numérique, Ministère de la transition écologique et solidaire](https://www.ecologique-solidaire.gouv.fr/inauguration-fabrique-numerique-lincubateur-des-ministeres-charges-lecologie-et-des-territoires) - ---- - -## Licence - -Camino API, le cadastre minier numérique ouvert - -[AGPL 3 ou plus récent](https://spdx.org/licenses/AGPL-3.0-or-later.html) diff --git a/packages/api/docker-compose.docs.yml b/packages/api/docker-compose.docs.yml deleted file mode 100644 index 7f77495e1..000000000 --- a/packages/api/docker-compose.docs.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3' - -services: - app: - container_name: camino_api_docs - image: caminofr/camino-api-docs - environment: - VIRTUAL_HOST: ${URL} - VIRTUAL_PORT: ${PORT} - LETSENCRYPT_HOST: ${URL} - LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL} - expose: - - ${PORT} - networks: - - default - - nginx-proxy - restart: always - -networks: - nginx-proxy: - external: true diff --git a/packages/api/docker-compose.local.yml b/packages/api/docker-compose.local.yml deleted file mode 100644 index 85782566d..000000000 --- a/packages/api/docker-compose.local.yml +++ /dev/null @@ -1,58 +0,0 @@ -version: '3' - -services: - app: - container_name: camino_api_app - build: . - depends_on: - - db - environment: - VIRTUAL_HOST: ${URL} - VIRTUAL_PORT: ${PORT} - PGHOST: db - expose: - - ${PORT} - networks: - - default - - nginx-proxy - volumes: - - files:/app/files - - ./.env:/app/.env - - cron: - container_name: camino_api_cron - build: . - command: node ./dist/src/cron.js - depends_on: - - db - environment: - PGHOST: db - networks: - - default - - nginx-proxy - volumes: - - files:/app/files - - ./.env:/app/.env - - db: - container_name: camino_api_db - image: postgis/postgis:12-3.2 - environment: - PGUSER: ${PGUSER} - POSTGRES_USER: ${PGUSER} - POSTGRES_PASSWORD: ${PGPASSWORD} - POSTGRES_DB: ${PGDATABASE} - expose: - - ${PGPORT} - networks: - - default - volumes: - - data:/var/lib/postgresql/data - -volumes: - data: {} - files: - -networks: - nginx-proxy: - external: true diff --git a/packages/api/docker-compose.localhost.yml b/packages/api/docker-compose.localhost.yml deleted file mode 100644 index 7142beae3..000000000 --- a/packages/api/docker-compose.localhost.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: '3' - -services: - app: - container_name: camino_api_app - image: node:16.12-alpine - volumes: - - ./:/app - working_dir: /app - depends_on: - - db - environment: - PGHOST: db - ports: - - ${PORT}:${PORT} - command: npm run dev - - db: - container_name: camino_api_db - image: postgis/postgis:12-3.2 - environment: - PGUSER: ${PGUSER} - POSTGRES_USER: ${PGUSER} - POSTGRES_PASSWORD: ${PGPASSWORD} - POSTGRES_DB: ${PGDATABASE} - expose: - - ${PGPORT} - volumes: - - data:/var/lib/postgresql/data - -volumes: - data: {} diff --git a/packages/api/package.json b/packages/api/package.json index 086c25060..576e9fec5 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -22,7 +22,6 @@ "scripts": { "bim": "npm i && npm run build && npm run db:recreate && npm run db:import", "build": "rm -rf dist && tsc && mkdir -p ./dist/src/api/graphql && cp -r ./src/api/graphql/schemas ./dist/src/api/graphql", - "commit": "lint-staged && git-cz", "daily": "node ./dist/src/scripts/daily.js", "monthly": "node ./dist/src/scripts/monthly.js", "db:dump": "pg_dump --host=localhost --username=postgres --clean --if-exists --format=c --no-owner --no-privileges --dbname=camino --file=./backups/camino.sql", @@ -152,7 +151,6 @@ "eslint-plugin-standard": "^5.0.0", "eslint-plugin-tsdoc": "^0.2.14", "jest": "^27.5.1", - "lint-staged": "^12.3.6", "nodemon": "^2.0.15", "npm-check-updates": "^12.5.3", "pg-escape": "^0.2.0", @@ -219,10 +217,6 @@ "path": "./node_modules/cz-conventional-changelog" } }, - "lint-staged": { - "*.{js,ts}": "eslint --cache --fix", - "*.{ts,js,graphql}": "prettier --write" - }, "release": { "branches": [ "master" diff --git a/packages/api/src/config/index.ts b/packages/api/src/config/index.ts index fa71ff800..86fedebfd 100644 --- a/packages/api/src/config/index.ts +++ b/packages/api/src/config/index.ts @@ -1,10 +1,5 @@ -// virtualHost est défini seulement si -// l'application tourne dans un container docker -// voir le fichier DockerFile - const debug = process.env.NODE_DEBUG === 'true' -const virtualHost = process.env.VIRTUAL_HOST -const port = Number(process.env.PORT) -const url = virtualHost ? `http://${virtualHost}/` : `http://localhost:${port}/` +const port = Number(process.env.API_PORT) +const url = `http://localhost:${port}/` export { port, url, debug } diff --git a/packages/ui/.editorconfig b/packages/ui/.editorconfig new file mode 100644 index 000000000..7053c49a0 --- /dev/null +++ b/packages/ui/.editorconfig @@ -0,0 +1,5 @@ +[*.{js,jsx,ts,tsx,vue}] +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/packages/ui/.eslintignore b/packages/ui/.eslintignore new file mode 100644 index 000000000..9b1c8b133 --- /dev/null +++ b/packages/ui/.eslintignore @@ -0,0 +1 @@ +/dist diff --git a/packages/ui/.gitignore b/packages/ui/.gitignore new file mode 100644 index 000000000..e76903302 --- /dev/null +++ b/packages/ui/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +.env +.env.development +.env.production +/dist +/coverage +node_modules +/.idea/ +*.iml +.eslintcache diff --git a/packages/ui/.ncurc.json b/packages/ui/.ncurc.json new file mode 100644 index 000000000..ebaa0a8ba --- /dev/null +++ b/packages/ui/.ncurc.json @@ -0,0 +1,12 @@ +{ + "upgrade": true, + "reject": [ + "eslint", + "eslint-plugin-vue", + "eslint-plugin-promise", + "postcss-button", + "postcss-grid-fluid" , + "postcss-typescale", + "graphql-react" + ] +} diff --git a/packages/ui/.prettierignore b/packages/ui/.prettierignore new file mode 100644 index 000000000..eb189029a --- /dev/null +++ b/packages/ui/.prettierignore @@ -0,0 +1,6 @@ +/node_modules/** +/dist/** +/tests/unit/coverage/** +src/styles/icons/icons.css +src/styles/system/forms.css +src/styles/settings.css diff --git a/packages/ui/.storybook/main.js b/packages/ui/.storybook/main.js new file mode 100644 index 000000000..c507da4c9 --- /dev/null +++ b/packages/ui/.storybook/main.js @@ -0,0 +1,16 @@ +module.exports = { + stories: ['../src/**/*.stories.@(js|jsx|ts|tsx)'], + addons: [ + '@storybook/addon-actions', + '@storybook/addon-controls', + { + name: '@storybook/addon-postcss', + options: { + postcssLoaderOptions: { + implementation: require('postcss') + } + } + } + ], + framework: '@storybook/vue3' +} diff --git a/packages/ui/.storybook/preview.js b/packages/ui/.storybook/preview.js new file mode 100644 index 000000000..ad720e989 --- /dev/null +++ b/packages/ui/.storybook/preview.js @@ -0,0 +1,11 @@ +import '../src/styles/styles.css' + +export const parameters = { + actions: { argTypesRegex: '^on.*' }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/ + } + } +} diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md new file mode 100644 index 000000000..7b3e8b40a --- /dev/null +++ b/packages/ui/CHANGELOG.md @@ -0,0 +1,2035 @@ +# [0.34.0](https://github.com/MTES-MCT/camino-ui/compare/v0.33.0...v0.34.0) (2022-03-17) + + +### Bug Fixes + +* **carte:** corrige les fonds de cartes IGN et supprime les fonds de cartes obsolètes ([#493](https://github.com/MTES-MCT/camino-ui/issues/493)) ([93cf770](https://github.com/MTES-MCT/camino-ui/commit/93cf770dc4535cad7c3500b21a9385bccaeab206)) + + +### Features + +* **apropos:** remplace l’équipe de la page « À propos » par un lien vers la page de l’incubateur ([#494](https://github.com/MTES-MCT/camino-ui/issues/494)) ([a0d8774](https://github.com/MTES-MCT/camino-ui/commit/a0d87741859f92cae9d0780b852add588ef17f38)) +* **étapes:** autorise les utilisateurs pouvant modifier à supprimer aussi une étape ([#491](https://github.com/MTES-MCT/camino-ui/issues/491)) ([863697c](https://github.com/MTES-MCT/camino-ui/commit/863697ca548b64ddf156f57d081ccd9752a711db)) +* **login:** mettre le nom de l’utilisateur connecté à la place du bouton 'bonhomme' ([#495](https://github.com/MTES-MCT/camino-ui/issues/495)) ([e41f9fc](https://github.com/MTES-MCT/camino-ui/commit/e41f9fc681418f0b026573233674f7d0ddf14758)) +* **style:** ajoute une barre horizontale sous les champs d’édition ([78c4294](https://github.com/MTES-MCT/camino-ui/commit/78c4294050ba3eff73551a1d1ca6c6a12396436c)) + +# [0.33.0](https://github.com/MTES-MCT/camino-ui/compare/v0.32.0...v0.33.0) (2022-03-01) + + +### Bug Fixes + +* **activité:** corrige la suppression d’une activité ([#488](https://github.com/MTES-MCT/camino-ui/issues/488)) ([8e0a2df](https://github.com/MTES-MCT/camino-ui/commit/8e0a2dfe6b68699e1e474176bb5443437fcbe80d)) + + +### Features + +* **étapes:** ajoute la sections décisions annexes lors de l’édition d’une étape ([#486](https://github.com/MTES-MCT/camino-ui/issues/486)) ([f1f65b1](https://github.com/MTES-MCT/camino-ui/commit/f1f65b18e4dbccb15c19c510d5abe312522cda2d)) +* **périmètre:** désactive la saisie de lot de points ([#487](https://github.com/MTES-MCT/camino-ui/issues/487)) ([2f9bced](https://github.com/MTES-MCT/camino-ui/commit/2f9bced2c065a16dc6446e91455f3142094f7328)) + +# [0.32.0](https://github.com/MTES-MCT/camino-ui/compare/v0.31.0...v0.32.0) (2022-02-21) + + +### Bug Fixes + +* **étape:** corrige la possibilité de supprimer un titulaire d’une étape ([9677572](https://github.com/MTES-MCT/camino-ui/commit/9677572774b8b9ee3db7ece7a8a6966781c54d68)) + + +### Features + +* **àpropos:** déplace Davy dans la liste des anciens de Camino ([#477](https://github.com/MTES-MCT/camino-ui/issues/477)) ([d43e2de](https://github.com/MTES-MCT/camino-ui/commit/d43e2deb1ecb45e9be54829f01273308051fdb7f)) +* **démarche:** ajoute la possibilité de mettre une description sur une démarche ([#476](https://github.com/MTES-MCT/camino-ui/issues/476)) ([962888f](https://github.com/MTES-MCT/camino-ui/commit/962888fde959e20be018e026afd6e3f6d2b76626)) +* **document:** utilise les paramètres du navigateur pour télécharger les documents ([#475](https://github.com/MTES-MCT/camino-ui/issues/475)) ([054cfb0](https://github.com/MTES-MCT/camino-ui/commit/054cfb075ddda93b33454ba7e3292d09d38af6f0)) +* **graphql:** réactive le cache sur les requêtes GraphQL ([#481](https://github.com/MTES-MCT/camino-ui/issues/481)) ([bb2738b](https://github.com/MTES-MCT/camino-ui/commit/bb2738b83af5a6e72ec1f65e499925da10a6d5e2)) +* **titres:** permet de filtrer les titres avec l’identifiant unique d’une entreprise ([c313a6d](https://github.com/MTES-MCT/camino-ui/commit/c313a6d51ff6fdcb2c64e1465b4f681ca27089de)) +* **titres:** permet de filtrer les titres par une liste d’identifiants uniques ([21f246e](https://github.com/MTES-MCT/camino-ui/commit/21f246e602c37096cbd0eda46815ed588d38b89b)) +* **titres:** utilise l’identifiant unique des substances pour filtrer les titres ([0166057](https://github.com/MTES-MCT/camino-ui/commit/0166057bfc69067add7fe75121b42415a0b5374a)) +* **travaux:** rend visible la liste des travaux que par les administrations ([#479](https://github.com/MTES-MCT/camino-ui/issues/479)) ([8380e5b](https://github.com/MTES-MCT/camino-ui/commit/8380e5bc600ca46cd4c8e6772b895a6d23595c01)) +* **typeform:** ajoute un formulaire de satisfaction ([#482](https://github.com/MTES-MCT/camino-ui/issues/482)) ([c59ba5a](https://github.com/MTES-MCT/camino-ui/commit/c59ba5a50b42731196002d997dd47a9232c59f2f)) +* **utilisateur:** ne peut pas créer d’utilisateur d’une administration/entreprise sans entité ([e2633cd](https://github.com/MTES-MCT/camino-ui/commit/e2633cd9cc0a61ab9cd00a330864e78441f4d99d)) + +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [0.31.0](https://github.com/MTES-MCT/camino-ui/compare/v0.30.0...v0.31.0) (2022-01-25) + + +### Features + +* **autocomplete:** implémente un input d'autocomplétion ([#451](https://github.com/MTES-MCT/camino-ui/issues/451)) ([3c4b352](https://github.com/MTES-MCT/camino-ui/commit/3c4b3524e26a7bd8516b0213e4942a1f5d47b968)) +* **axm:** ajoute l’aide lors d’une demande d’AXM par l’opérateur ([#463](https://github.com/MTES-MCT/camino-ui/issues/463)) ([fcb6233](https://github.com/MTES-MCT/camino-ui/commit/fcb6233823b6d9b7169e8572434b94ae914c1267)) +* **étape:** modifie le libellé des documents spécifiques à l’étape courante ([#461](https://github.com/MTES-MCT/camino-ui/issues/461)) ([816c2df](https://github.com/MTES-MCT/camino-ui/commit/816c2df22f3b7c96647b20f480a615d45d4a7a41)) +* **travaux:** ajoute une nouvelle page dédiée aux démarches de travaux ([#462](https://github.com/MTES-MCT/camino-ui/issues/462)) ([ad4943b](https://github.com/MTES-MCT/camino-ui/commit/ad4943b8187b680b25a0847d12fe2afb81c8c776)) + + +### Bug Fixes + +* **autocomplete:** harmonise la couleur highlight ([#468](https://github.com/MTES-MCT/camino-ui/issues/468)) ([3961677](https://github.com/MTES-MCT/camino-ui/commit/39616778ac624fd48fad6405c8380ef46b7621be)) +* **cerbère:** corrige la connexion via Cerbère ([#470](https://github.com/MTES-MCT/camino-ui/issues/470)) ([4342e56](https://github.com/MTES-MCT/camino-ui/commit/4342e5612ceb4ad8225920807565d801ae718efd)) +* **connexion:** corrige la réinitialisation du mot de passe ([#472](https://github.com/MTES-MCT/camino-ui/issues/472)) ([8c58ac8](https://github.com/MTES-MCT/camino-ui/commit/8c58ac8bcd679abeb3af079addce02714ff9c7c6)) +* **dropdown:** corrige le bug de superposition ([#465](https://github.com/MTES-MCT/camino-ui/issues/465)) ([8fd6404](https://github.com/MTES-MCT/camino-ui/commit/8fd64047a5dc514a82cc43aa0a487954311ff7be)) +* **popup:** corrige la barre verticale dans les popups ([#466](https://github.com/MTES-MCT/camino-ui/issues/466)) ([87ad7da](https://github.com/MTES-MCT/camino-ui/commit/87ad7daf55b9ba1fca23a977cb1970a97341f2d0)) +* **titres:** affiche correctement les périmètres les titres en cours de demande pour les opérateurs ([#467](https://github.com/MTES-MCT/camino-ui/issues/467)) ([d7bf03e](https://github.com/MTES-MCT/camino-ui/commit/d7bf03ef0fdb8ede3bb6bb979c3f03b13c65dbd1)) +* **travaux:** corrige le filtrage des travaux ([#473](https://github.com/MTES-MCT/camino-ui/issues/473)) ([7fe6fc0](https://github.com/MTES-MCT/camino-ui/commit/7fe6fc0421f5164c8dcf819a96e04f144d0b0f8f)) + +## [0.30.0](https://github.com/MTES-MCT/camino-ui/compare/v0.29.0...v0.30.0) (2022-01-13) + + +### Features + +* **authentification:** utilise les cookies pour gérer l’authentification ([#446](https://github.com/MTES-MCT/camino-ui/issues/446)) ([35dc059](https://github.com/MTES-MCT/camino-ui/commit/35dc059baeebc5bb0f6ae50bbb0c4ee32ae37318)) +* **carte:** ajoute la légende sur le fond de carte du Sdom ([#455](https://github.com/MTES-MCT/camino-ui/issues/455)) ([ec1ae65](https://github.com/MTES-MCT/camino-ui/commit/ec1ae6508db4a845c9b9ffeeec0f5f3ccb07532e)) +* **cookies:** supprime les cookies Matomo ([#447](https://github.com/MTES-MCT/camino-ui/issues/447)) ([fb63230](https://github.com/MTES-MCT/camino-ui/commit/fb63230d3caf96a924789f57284d1a1706b87c9a)) +* **étape:** affiche des messages lors de l’édition d’une étape ([#452](https://github.com/MTES-MCT/camino-ui/issues/452)) ([4617808](https://github.com/MTES-MCT/camino-ui/commit/46178087f0d8c2ed99954c6604c7df1f9cb22213)) +* **icons:** met à jour l'icône d'aide ([c296563](https://github.com/MTES-MCT/camino-ui/commit/c2965637804a616129119566eef6772c694bc793)) +* **icons:** met à jours les icônes de la page d'accueil selon le DSFR ([2dbf293](https://github.com/MTES-MCT/camino-ui/commit/2dbf2935aba216a0601a07c1667a6dde0a9e184a)) +* **ign:** met à jour le flux pour afficher le plan IGN ([#448](https://github.com/MTES-MCT/camino-ui/issues/448)) ([95c7de8](https://github.com/MTES-MCT/camino-ui/commit/95c7de87c69f360966d3434ae38cf5af6e29ec47)) +* **pdf:** ajoute les CSP nécessaires pour les prévisualisation des PDFs ([e3db23f](https://github.com/MTES-MCT/camino-ui/commit/e3db23f21400f74b63a462ba85bc7cc9f34a7695)) +* **téléchargement:** utilise directement l’url pour télécharger les fichiers ([#460](https://github.com/MTES-MCT/camino-ui/issues/460)) ([f7701dd](https://github.com/MTES-MCT/camino-ui/commit/f7701ddbb51c9c376dc7fa26a80dcedb6dd59f64)) +* **titres:** transforme les messages en alertes qui contiennent un message et peut-être un lien ([#454](https://github.com/MTES-MCT/camino-ui/issues/454)) ([47902ca](https://github.com/MTES-MCT/camino-ui/commit/47902ca8b43876b7f24340c549223b5a502cab23)) + + +### Bug Fixes + +* **activites:** corrige la prévisualisation des activités ([#456](https://github.com/MTES-MCT/camino-ui/issues/456)) ([c70f7ed](https://github.com/MTES-MCT/camino-ui/commit/c70f7edc14bfe094401dbe06fef29e88a52117e8)) +* **aide:** corrige l’affichage de l’aide sur le bouton enregistrer d’une étape ([#457](https://github.com/MTES-MCT/camino-ui/issues/457)) ([e132c9f](https://github.com/MTES-MCT/camino-ui/commit/e132c9f867c4f7e9e9510117d3c96cec8d4a1bf4)) +* **icone:** corrige l’icone du globe, sa taille est définie par la CSS et non par le SVG ([#458](https://github.com/MTES-MCT/camino-ui/issues/458)) ([3f37a52](https://github.com/MTES-MCT/camino-ui/commit/3f37a52d291fe22a2174f5acf22c0078d0a13004)) +* **téléversement:** corrige le téléversement suite à la mise en place des cookies ([#449](https://github.com/MTES-MCT/camino-ui/issues/449)) ([add4a0b](https://github.com/MTES-MCT/camino-ui/commit/add4a0bf3e49fc0bb9af54524baa6f262cb0b782)) +* **utilisateur:** corrige la création d’utilisateur en passant correctement le jeton ([#459](https://github.com/MTES-MCT/camino-ui/issues/459)) ([f7cb1c3](https://github.com/MTES-MCT/camino-ui/commit/f7cb1c3266943bc07cef577cf9f72a8ee6bdde4a)) + +## [0.29.0](https://github.com/MTES-MCT/camino-ui/compare/v0.28.0...v0.29.0) (2021-12-15) + + +### Features + +* **demande:** permet le téléchargement des documents de l'étape Demande en .zip ([#442](https://github.com/MTES-MCT/camino-ui/issues/442)) ([70743d1](https://github.com/MTES-MCT/camino-ui/commit/70743d12d87e9b794b0f12c5a6f97bc0c4359657)) +* **document:** implémente la préviz des document PDFs dans un nouvel onglet ([e2e266a](https://github.com/MTES-MCT/camino-ui/commit/e2e266a9bb8f7cb15c4ece280dc9515f9bc12b59)) +* **document:** implémente la préviz des documents avec PDF.js ([8ceb0cf](https://github.com/MTES-MCT/camino-ui/commit/8ceb0cf2a9e3a2a067077d95d56e36a565443bc7)) + + +### Bug Fixes + +* **document:** permet l'ouverture de gros fichier PDF sur tous les navigateurs ([11ef475](https://github.com/MTES-MCT/camino-ui/commit/11ef475a3cc24f39ba273cc3abc66dea95637c42)) +* **travaux:** corrige la visibilité de l’onglet travaux pour les administrations locales ([#444](https://github.com/MTES-MCT/camino-ui/issues/444)) ([b00440f](https://github.com/MTES-MCT/camino-ui/commit/b00440f850a42eeae32e24d353838687004ef2fa)) + +## [0.28.0](https://github.com/MTES-MCT/camino-ui/compare/v0.27.0...v0.28.0) (2021-12-13) + + +### Features + +* **activites:** commence l'implémentation des infobulles à Preview et ActiviteEdition pour types 'gra' et 'grp' ([f91c188](https://github.com/MTES-MCT/camino-ui/commit/f91c18854eaa728d4112fe188a457be94e35ec4d)) +* **activites:** termine l'implémentation des infobulles à Preview et ActiviteEdition pour types 'gra' et 'grp' ([63658f4](https://github.com/MTES-MCT/camino-ui/commit/63658f4c952ee2f0286939e4bc689807a8f386e4)) +* **sdom:** vérifie les documents obligatoires en fonction des zones de SDOM ([#438](https://github.com/MTES-MCT/camino-ui/issues/438)) ([b186388](https://github.com/MTES-MCT/camino-ui/commit/b18638867dff2e3a8e725351d71c006f67189bad)) + + +### Bug Fixes + +* **abonnement:** précise l’intitulé du bouton pour s’abonner à un titre ([8c0cbaa](https://github.com/MTES-MCT/camino-ui/commit/8c0cbaa8067074e2fb0e8896af4e86bcc3a5e0d9)) +* **acitvites:** retire l'attribut 'primaire' des boutons d'éditions sur la liste ([26891c8](https://github.com/MTES-MCT/camino-ui/commit/26891c818f3e6e4f2ed3935b5e061851ce15dc25)) + +## [0.27.0](https://github.com/MTES-MCT/camino-ui/compare/v0.26.0...v0.27.0) (2021-12-01) + + +### Features + +* **page/admin:** complète les informations sur l'envoi des emails ([#432](https://github.com/MTES-MCT/camino-ui/issues/432)) ([6b555f7](https://github.com/MTES-MCT/camino-ui/commit/6b555f7dd9a055ee0a8d02a358ae3e72592614e3)) +* **proprietes:** masque l'affichage des dates début/fin pour admin ([#434](https://github.com/MTES-MCT/camino-ui/issues/434)) ([a596e80](https://github.com/MTES-MCT/camino-ui/commit/a596e80dc142f69aa5b4c0e7dc8d8510d3e72338)) +* **titre:** permet aux utilisateurs de s’abonner à un titre ([#433](https://github.com/MTES-MCT/camino-ui/issues/433)) ([41684e1](https://github.com/MTES-MCT/camino-ui/commit/41684e12bce44d1b5c7155f0ac4c906936097f98)) + + +### Bug Fixes + +* **guyane:** corrige les coordonnées de la Guyane sur la carte ([#436](https://github.com/MTES-MCT/camino-ui/issues/436)) ([77bdbf3](https://github.com/MTES-MCT/camino-ui/commit/77bdbf368fb9c3152f9c565dc407a1af9f271126)) + +## [0.26.0](https://github.com/MTES-MCT/camino-ui/compare/v0.25.0...v0.26.0) (2021-11-23) + + +### Features + +* **étape:** calcule automatiquement la surface à partir du périmètre ([#426](https://github.com/MTES-MCT/camino-ui/issues/426)) ([33d60c8](https://github.com/MTES-MCT/camino-ui/commit/33d60c89183a7c64fe2eede6c48abdb1dea7d6fb)) +* **sdom:** affiche les zones du SDOM sur les titres ([#424](https://github.com/MTES-MCT/camino-ui/issues/424)) ([3961490](https://github.com/MTES-MCT/camino-ui/commit/3961490aa904cbebee6bcfe6ca4279385bf34e09)) + + +### Bug Fixes + +* **accordion:** corrige le rognage de l'infobulle ([#428](https://github.com/MTES-MCT/camino-ui/issues/428)) ([9f135ca](https://github.com/MTES-MCT/camino-ui/commit/9f135ca050cdee993b5f184878755a90781b6bad)) +* **accordion:** corriger l'overflow pour les infobulles ([#429](https://github.com/MTES-MCT/camino-ui/issues/429)) ([c3b5449](https://github.com/MTES-MCT/camino-ui/commit/c3b5449c0e7a28a4304452d66f6769e93118725a)) +* **administrations:** harmonise étiquette affichée pour type activité ([#421](https://github.com/MTES-MCT/camino-ui/issues/421)) ([047c51a](https://github.com/MTES-MCT/camino-ui/commit/047c51ac5b433f180a4f63ba3cc798c0e3b74c79)) +* **document:** corrige l'erreur dans modifications de document ([#427](https://github.com/MTES-MCT/camino-ui/issues/427)) ([ee25009](https://github.com/MTES-MCT/camino-ui/commit/ee250094849a94473e203810ecfb73861bd56d87)) +* **email:** ajoute un email à la liste avec le bouton entrée ([#422](https://github.com/MTES-MCT/camino-ui/issues/422)) ([0b532db](https://github.com/MTES-MCT/camino-ui/commit/0b532dbd8b6170c43c158eacb1acbfb099f33cda)) +* **justificatifs:** permet de télécharger les justificatifs pendant l’édition d’une étape ([#425](https://github.com/MTES-MCT/camino-ui/issues/425)) ([3cb707e](https://github.com/MTES-MCT/camino-ui/commit/3cb707e6e61790f5d59671e6b8699e9beeb86607)) +* **surface:** désactive l’héritage de la surface lors de l’import d’un nouveau périmètre ([#430](https://github.com/MTES-MCT/camino-ui/issues/430)) ([ada72c4](https://github.com/MTES-MCT/camino-ui/commit/ada72c4178dcc18c278fe57acc4983d5c0854992)) +* **upload:** corrige la séquence de téléversement pour éviter les fichiers perdus ([#414](https://github.com/MTES-MCT/camino-ui/issues/414)) ([cc01c8b](https://github.com/MTES-MCT/camino-ui/commit/cc01c8b0cc250e908a330d358932a173ece90afc)) + +## [0.25.0](https://github.com/MTES-MCT/camino-ui/compare/v0.24.0...v0.25.0) (2021-11-10) + + +### Features + +* **administration:** notification par email sur activités ([#411](https://github.com/MTES-MCT/camino-ui/issues/411)) ([585ec55](https://github.com/MTES-MCT/camino-ui/commit/585ec550481154022da0ce64142ec8c5275e26b8)) +* **étape:** rend la durée obligatoire pour les demandes d’ARM et d’AXM ([#418](https://github.com/MTES-MCT/camino-ui/issues/418)) ([578d5a1](https://github.com/MTES-MCT/camino-ui/commit/578d5a1f42a28fda11dbd9c2920631b6ced4cf64)) +* **historique:** ajoute une nouvelle page pour afficher les différentes actions sur les titres ([#415](https://github.com/MTES-MCT/camino-ui/issues/415)) ([fff138e](https://github.com/MTES-MCT/camino-ui/commit/fff138ec7a976d8cf8cdfd9883a04973cd53efb9)) +* **sdom:** ajout du fond de carte SDOM Guyane ([#420](https://github.com/MTES-MCT/camino-ui/issues/420)) ([383e662](https://github.com/MTES-MCT/camino-ui/commit/383e662dcbae761d386f9846389c703eb7767411)) + + +### Bug Fixes + +* **carte:** corrige l’affichage des marqueurs quand celui-ci est large ([#419](https://github.com/MTES-MCT/camino-ui/issues/419)) ([06b7c80](https://github.com/MTES-MCT/camino-ui/commit/06b7c808eebce7d5f159be0fd0b60525cf0c6bd4)) +* **liste:** corrige certains bugs avec le filtrage des listes ([d96c419](https://github.com/MTES-MCT/camino-ui/commit/d96c419911fe88e0f663eb67546f3307e181a500)) +* **liste:** corrige l’initialisation des filtres dans certaines listes ([4043ed9](https://github.com/MTES-MCT/camino-ui/commit/4043ed95ab7134f1901e5d4b174a172dc38e98bb)) + +## [0.24.0](https://github.com/MTES-MCT/camino-ui/compare/v0.23.0...v0.24.0) (2021-10-25) + + +### Features + +* **buttons:** améliore l'UX avec des boutons plus clairs ([#395](https://github.com/MTES-MCT/camino-ui/issues/395)) ([b912222](https://github.com/MTES-MCT/camino-ui/commit/b91222207721ef941918b1065e8d702bbda386a7)) +* **login:** applique le style CTA aux boutons de connexion ([#404](https://github.com/MTES-MCT/camino-ui/issues/404)) ([08eb0d6](https://github.com/MTES-MCT/camino-ui/commit/08eb0d6e1d518d89fa211e97d9e1ef02c25dc451)) +* **métas:** ajoute une nouvelle page de métas permettant de configurer une démarche ([#401](https://github.com/MTES-MCT/camino-ui/issues/401)) ([ae6790d](https://github.com/MTES-MCT/camino-ui/commit/ae6790ddab133cbd4e18dca292d260a0cd25197d)) + + +### Bug Fixes + +* **button:** corrige le design de boutons après régression ([#412](https://github.com/MTES-MCT/camino-ui/issues/412)) ([f544a52](https://github.com/MTES-MCT/camino-ui/commit/f544a52140dab0cd4d85239eee8b5259cd9a654d)) +* **buttons:** corrige la fonte sur le bouton primary ([#406](https://github.com/MTES-MCT/camino-ui/issues/406)) ([bb07c75](https://github.com/MTES-MCT/camino-ui/commit/bb07c7531dc065cdf64503bfb79e3117817210da)) +* **buttons:** restaure les couleurs de btn-border, ajoute les CTAs manquants ([#400](https://github.com/MTES-MCT/camino-ui/issues/400)) ([dd2cd9c](https://github.com/MTES-MCT/camino-ui/commit/dd2cd9c0d9eceab243e0caf65c3e60e88468748d)) +* **css:** corrige un problème d'import SVG dans le CSS ([#403](https://github.com/MTES-MCT/camino-ui/issues/403)) ([9192d0d](https://github.com/MTES-MCT/camino-ui/commit/9192d0dc714c12e7d17190592417e6c752db4213)) +* **document:** corrige une régression sur l'upload de doc d'entreprise ([#402](https://github.com/MTES-MCT/camino-ui/issues/402)) ([30f0a9c](https://github.com/MTES-MCT/camino-ui/commit/30f0a9cde3a8966dc0327ee705b4e78fce1a1e0d)) +* **étape:** corrige l’arrondi du bouton pour déplier une étape ([#409](https://github.com/MTES-MCT/camino-ui/issues/409)) ([f5b0f0c](https://github.com/MTES-MCT/camino-ui/commit/f5b0f0c9de2b876519bb59ab6efafd4d7984679f)) +* **métas:** corrige certains bugs graphiques dans les pages métas ([#410](https://github.com/MTES-MCT/camino-ui/issues/410)) ([30b3184](https://github.com/MTES-MCT/camino-ui/commit/30b31841806ccec979716c5a5871788e6eae87a7)) +* corrige les problèmes de layout en utilisant word-break ([#407](https://github.com/MTES-MCT/camino-ui/issues/407)) ([e74a880](https://github.com/MTES-MCT/camino-ui/commit/e74a880c8f8ebff89b6c17b708a9e5dda423ec83)) +* **métas:** corrige les pages de métas ([#408](https://github.com/MTES-MCT/camino-ui/issues/408)) ([9cdbfb2](https://github.com/MTES-MCT/camino-ui/commit/9cdbfb296437195dafbc1f0e575ecfcc9ac97b3e)) +* **titre:** corrige l’ajout de références lors de la création d’un titre ([#399](https://github.com/MTES-MCT/camino-ui/issues/399)) ([6608791](https://github.com/MTES-MCT/camino-ui/commit/6608791b76de7b0623112e1ef211a659d635622b)) + +## [0.23.0](https://github.com/MTES-MCT/camino-ui/compare/v0.22.84...v0.23.0) (2021-10-06) + + +### Features + +* **titre:** permet d’ajouter manuellement une administration sur un titre ([#391](https://github.com/MTES-MCT/camino-ui/issues/391)) ([789cb43](https://github.com/MTES-MCT/camino-ui/commit/789cb43af05808378230088bae3a62092e5b4e8c)) +* **titres:** affiche sur la carte les périmètres des ARM en cours de demande pour les entreprises ([#389](https://github.com/MTES-MCT/camino-ui/issues/389)) ([aa2cc17](https://github.com/MTES-MCT/camino-ui/commit/aa2cc17615fc58abd04a8c7ae805c72d821629b4)) +* **upload:** renforce les capacités de téléversement ([#385](https://github.com/MTES-MCT/camino-ui/issues/385)) ([4340e8c](https://github.com/MTES-MCT/camino-ui/commit/4340e8c73274e9f83cc03e46de44d0ca967aefd6)) + + +### Bug Fixes + +* **accueil:** corrige le lien de l’accueil quand on est sur une page introuvable ([#396](https://github.com/MTES-MCT/camino-ui/issues/396)) ([3fcb34d](https://github.com/MTES-MCT/camino-ui/commit/3fcb34de1c471674a3a208205b10ccb192025ccc)) +* **etape:** corrige bug d'accès à référence de pointReference ([#394](https://github.com/MTES-MCT/camino-ui/issues/394)) ([a0c34ee](https://github.com/MTES-MCT/camino-ui/commit/a0c34eeef5c76d0238ee14ebe74848d7600314c2)) +* **étape:** corrige l’ajout manuel d’un périmètre sur une étape ([#388](https://github.com/MTES-MCT/camino-ui/issues/388)) ([2ea9683](https://github.com/MTES-MCT/camino-ui/commit/2ea968312a56e4b4653cf5e880d407510d1d339b)) +* **git:** corrige husky ([#392](https://github.com/MTES-MCT/camino-ui/issues/392)) ([de9d455](https://github.com/MTES-MCT/camino-ui/commit/de9d4552a839c93e71026e797d94aea25517ff09)) + +### [0.22.84](https://github.com/MTES-MCT/camino-ui/compare/v0.22.83...v0.22.84) (2021-09-27) + + +### Features + +* **àpropos:** mise à jour de la page « à propos » de l’équipe ([#380](https://github.com/MTES-MCT/camino-ui/issues/380)) ([9198266](https://github.com/MTES-MCT/camino-ui/commit/9198266a36f290e6bee30165be24ccb265ec52e7)) +* **logs:** affiche les modifications effectuées par les utilisateurs ([#386](https://github.com/MTES-MCT/camino-ui/issues/386)) ([29c1ed7](https://github.com/MTES-MCT/camino-ui/commit/29c1ed73a0a3833ace701c6f1918ee4667181089)) +* **métas:** permet l’ajout d’un nouveau type de document dans les métas ([#382](https://github.com/MTES-MCT/camino-ui/issues/382)) ([3397c15](https://github.com/MTES-MCT/camino-ui/commit/3397c15b2da42f0b0a7a58a5b726738517b37599)) + + +### Bug Fixes + +* **étape:** corrige l’import d’un périmètre d’une étape ([#387](https://github.com/MTES-MCT/camino-ui/issues/387)) ([2e7b020](https://github.com/MTES-MCT/camino-ui/commit/2e7b0208ddabe719d8abc330b3604d6d325dd011)) +* **map:** corrige nullité de '_latLngToNewLayerPoint' et 'this._map' ([#384](https://github.com/MTES-MCT/camino-ui/issues/384)) ([ba73630](https://github.com/MTES-MCT/camino-ui/commit/ba7363027603e47099b981f5effabc294320c457)) +* **tests:** corrige les scripts de tests locaux 'simple' et 'watch' ([#383](https://github.com/MTES-MCT/camino-ui/issues/383)) ([7fdb23d](https://github.com/MTES-MCT/camino-ui/commit/7fdb23d220df01427308d29baa8198ffa5672c4f)) + +### [0.22.83](https://github.com/MTES-MCT/camino-ui/compare/v0.22.82...v0.22.83) (2021-09-13) + + +### Features + +* **documents:** ajoute une description sur les types de documents ([#377](https://github.com/MTES-MCT/camino-ui/issues/377)) ([e93bf5e](https://github.com/MTES-MCT/camino-ui/commit/e93bf5e9bb858de4644b498c10ee438b6697c951)) + + +### Bug Fixes + +* **étape:** repenser l'UX du bouton Enregistrer sur le formulaire ([#374](https://github.com/MTES-MCT/camino-ui/issues/374)) ([310c6b1](https://github.com/MTES-MCT/camino-ui/commit/310c6b1980472a6872103da28c658b540552ed01)) +* **fichier:** désactive les raccourcis clavier pendant le téléversement d’un fichier ([#378](https://github.com/MTES-MCT/camino-ui/issues/378)) ([f59f56c](https://github.com/MTES-MCT/camino-ui/commit/f59f56c1d877b64fbd4ad3235aeedf9d693812c9)) +* **titre:** ajoute les documents obligatoires pour les ARM mécanisées ([#375](https://github.com/MTES-MCT/camino-ui/issues/375)) ([f538277](https://github.com/MTES-MCT/camino-ui/commit/f53827795823c8cd2e95775175970a5338f57a79)) +* **titre:** corrige l'affichage du lien du titre en doublon ([#373](https://github.com/MTES-MCT/camino-ui/issues/373)) ([f5a0e64](https://github.com/MTES-MCT/camino-ui/commit/f5a0e64029a2fec0ee4f0e88b141a9b4410e83a4)) + +### [0.22.82](https://github.com/MTES-MCT/camino-ui/compare/v0.22.81...v0.22.82) (2021-09-06) + + +### Features + +* **périmètre:** permet l’import du périmètre d’un titre via un fichier shape ou geojson ([#372](https://github.com/MTES-MCT/camino-ui/issues/372)) ([f74ba54](https://github.com/MTES-MCT/camino-ui/commit/f74ba54859b5113a6fae3156095cd708dcdd83db)) +* **titre:** optimise la suppression d'un titre ([c51bbf5](https://github.com/MTES-MCT/camino-ui/commit/c51bbf5a5acde028e997d531ba0223ee8d27d846)) + + +### Bug Fixes + +* **pagination:** réinitialise la pagination si la page courante n'existe pas ([069964d](https://github.com/MTES-MCT/camino-ui/commit/069964dbfc09db84b0ae95f81401ad93b020110b)) + +### [0.22.81](https://github.com/MTES-MCT/camino-ui/compare/v0.22.80...v0.22.81) (2021-08-05) + + +### Features + +* **métas:** permet d'ajouter des métas pour les travaux ([ebf44d1](https://github.com/MTES-MCT/camino-ui/commit/ebf44d157265ad1d4b33078c8f3f1a46668e09d4)) + +### [0.22.80](https://github.com/MTES-MCT/camino-ui/compare/v0.22.79...v0.22.80) (2021-08-05) + + +### Features + +* **arm:** simplifie le formulaire d'ajout de demande d'ARM pour les opérateurs ([#371](https://github.com/MTES-MCT/camino-ui/issues/371)) ([b244895](https://github.com/MTES-MCT/camino-ui/commit/b2448950f0423fe8a4e5471d102722d570998c90)) + + +### Bug Fixes + +* **démarche:** utilise le slug pour ajouter une nouvelle étape à une démarche ([c1551c2](https://github.com/MTES-MCT/camino-ui/commit/c1551c258d6abb12d66796b1048512daaa873bec)) +* **étape:** corrige l’affichage de l’aide sur les demandes d’ARM ([572ac0b](https://github.com/MTES-MCT/camino-ui/commit/572ac0bb425e8fec6fe63d82a86652511d0a6726)) +* **utilisateurs:** supprime les requêtes inutiles pendant la modification d'un utilisateur ([32d4934](https://github.com/MTES-MCT/camino-ui/commit/32d49344c6d8021f25db9840ab7ced5d5989e9df)) + +### [0.22.79](https://github.com/MTES-MCT/camino-ui/compare/v0.22.78...v0.22.79) (2021-08-02) + +### [0.22.78](https://github.com/MTES-MCT/camino-ui/compare/v0.22.77...v0.22.78) (2021-07-21) + + +### Features + +* **étape:** améliore la gestion des documents sur les étapes ([#369](https://github.com/MTES-MCT/camino-ui/issues/369)) ([b065c4e](https://github.com/MTES-MCT/camino-ui/commit/b065c4e77cc1b9093c720b17effb5cfce07a1d35)) +* **metas:** affiche l'id et le nom des metas dans les relations ([#367](https://github.com/MTES-MCT/camino-ui/issues/367)) ([84f8e0e](https://github.com/MTES-MCT/camino-ui/commit/84f8e0e21ef5dba652c41a3a26f807ab13d03bee)) + +### [0.22.77](https://github.com/MTES-MCT/camino-ui/compare/v0.22.76...v0.22.77) (2021-07-07) + + +### Features + +* **justificatifs:** améliore l’interface pour éditer les justificatifs d’une étape ([#368](https://github.com/MTES-MCT/camino-ui/issues/368)) ([375f12a](https://github.com/MTES-MCT/camino-ui/commit/375f12a66acbd0f6d2ebfefb17b3ce8fcb06e9f0)) + + +### Bug Fixes + +* **étape:** redirige vers l’étape que si on a son identifiant ([6b30d56](https://github.com/MTES-MCT/camino-ui/commit/6b30d56ad102bb245164e75e6a0e251748acc729)) + +### [0.22.76](https://github.com/MTES-MCT/camino-ui/compare/v0.22.75...v0.22.76) (2021-07-02) + + +### Features + +* **autoupdate:** met à jour le site automatiquement après la livraison d'une nouvelle version ([#365](https://github.com/MTES-MCT/camino-ui/issues/365)) ([b7cb2a8](https://github.com/MTES-MCT/camino-ui/commit/b7cb2a8bf32ca5654b80efbe99d6ad17033405e0)) +* **connexion:** utilise des labels pour les champs du formulaire de connexion ([5ba4f2c](https://github.com/MTES-MCT/camino-ui/commit/5ba4f2c84b46e8a055c381e49dda69f58f9bd3fc)) + + +### Bug Fixes + +* **documents:** corrige la modification d’un document sans modifier le fichier ([a494748](https://github.com/MTES-MCT/camino-ui/commit/a494748b5f40ae27dc576ad33e3ce5424b6cc116)) +* **filtres:** corrige le tracking des filtres vers matomo ([#364](https://github.com/MTES-MCT/camino-ui/issues/364)) ([d3a1750](https://github.com/MTES-MCT/camino-ui/commit/d3a1750f723ae7b48726c4a3ba57f149cab2e1a0)) +* **firefox:** renomme le fichier de matomo pour corriger le lancement en dev avec Firefox ([6e91e04](https://github.com/MTES-MCT/camino-ui/commit/6e91e045920edf84e312bfe60b56d3dc39b8d2a6)) +* **matomo:** corrige la content security policy pour Matomo ([29fd35b](https://github.com/MTES-MCT/camino-ui/commit/29fd35b89bd175514abc20e66c9dbdf64004640e)) + +### [0.22.75](https://github.com/MTES-MCT/camino-ui/compare/v0.22.74...v0.22.75) (2021-06-24) + + +### Features + +* **arm:** ajoute un message d'aide sur la demande d'ARM à destination des entreprises ([ccfc05d](https://github.com/MTES-MCT/camino-ui/commit/ccfc05d1f6217ca910cb7afac944a2a2e486c042)) + + +### Bug Fixes + +* **activités:** corrige l'affichage des Statuts des travaux ([3c8e8f4](https://github.com/MTES-MCT/camino-ui/commit/3c8e8f4e023eeb66ce88fc17305e80262719053d)) +* **étape:** corrige l’enregistrement des étapes avec des justificatifs ([d5e1f61](https://github.com/MTES-MCT/camino-ui/commit/d5e1f618ec05b25003cf9b316c1535761d0bbbc0)) +* **matomo:** corrige la configuration matomo avec vue 3 ([#363](https://github.com/MTES-MCT/camino-ui/issues/363)) ([2c99a1a](https://github.com/MTES-MCT/camino-ui/commit/2c99a1ab5c69ffdcb09f2c89707da0584c1104f9)) + +### [0.22.74](https://github.com/MTES-MCT/camino-ui/compare/v0.22.73...v0.22.74) (2021-06-21) + + +### Features + +* **étape:** n'affiche pas les dates pour les entreprises sur des arms ([c2000e4](https://github.com/MTES-MCT/camino-ui/commit/c2000e483d4bb30dec6db386610d332a2157473c)) +* **justificatifs:** sélectionne le justificatif qui vient juste d’être ajouté via la popup ([#357](https://github.com/MTES-MCT/camino-ui/issues/357)) ([737f84e](https://github.com/MTES-MCT/camino-ui/commit/737f84efe05fed5dd19edec3b485d9d32eabf421)) + + +### Bug Fixes + +* **carte:** rend les périmètres des titres cliquables quand les marqueurs sont cachés ([#359](https://github.com/MTES-MCT/camino-ui/issues/359)) ([065c53b](https://github.com/MTES-MCT/camino-ui/commit/065c53b0ddf9b27c4f959e40b2af5bb1e14cfd96)) + +### [0.22.73](https://github.com/MTES-MCT/camino-ui/compare/v0.22.72...v0.22.73) (2021-06-15) + + +### Bug Fixes + +* **activités:** permet d’ajouter les fichiers sur les activités ([e0c58ac](https://github.com/MTES-MCT/camino-ui/commit/e0c58ac840f38e10a2bc3311da6365abcd66aef2)) +* **documents:** corrige le style des boutons dans la popup d’édition d’un document ([39c3c2a](https://github.com/MTES-MCT/camino-ui/commit/39c3c2a11110f02effba303e7c76b0ae70d39b3a)) + +### [0.22.72](https://github.com/MTES-MCT/camino-ui/compare/v0.22.71...v0.22.72) (2021-06-14) + + +### Features + +* **étape:** permet d’ajouter à la volée les documents dans une étape ([#353](https://github.com/MTES-MCT/camino-ui/issues/353)) ([42ea50e](https://github.com/MTES-MCT/camino-ui/commit/42ea50e85c40fd1c291eb3064e1832e6b18c7461)) +* ajoute un document d'entreprise lors de l'édition d'une étape ([#351](https://github.com/MTES-MCT/camino-ui/issues/351)) ([93c1593](https://github.com/MTES-MCT/camino-ui/commit/93c159368ca0c74c887e45dda79317fb72d35e76)) +* améliore l'ergonomie de la dépose de demande ([#352](https://github.com/MTES-MCT/camino-ui/issues/352)) ([393aa6e](https://github.com/MTES-MCT/camino-ui/commit/393aa6e1fdfdcbb1636155a579d4f25fcd654bc9)) +* supprime le widget mailjet ([#354](https://github.com/MTES-MCT/camino-ui/issues/354)) ([c8081e5](https://github.com/MTES-MCT/camino-ui/commit/c8081e582e8c17da2ba2daa88fc2d20fbf9f1fc0)) + +### [0.22.71](https://github.com/MTES-MCT/camino-ui/compare/v0.22.70...v0.22.71) (2021-06-02) + + +### Features + +* affiche la carte sur les étapes ([#347](https://github.com/MTES-MCT/camino-ui/issues/347)) ([36f9cdf](https://github.com/MTES-MCT/camino-ui/commit/36f9cdf88857ed18dff2df7b28fe19a7444b6857)) +* **documents:** permet de télécharger les documents dans la page de l’étape ([#346](https://github.com/MTES-MCT/camino-ui/issues/346)) ([b98d78e](https://github.com/MTES-MCT/camino-ui/commit/b98d78e8e4955bacfd19b54d7e8d4908733b0d68)) +* affiche le bouton pour déposer une demande de titre ([#343](https://github.com/MTES-MCT/camino-ui/issues/343)) ([20661e1](https://github.com/MTES-MCT/camino-ui/commit/20661e10cf360d48930920d9727db4a16893bb39)) +* améliore l'affichage de la prévisualisation d'étape ([#341](https://github.com/MTES-MCT/camino-ui/issues/341)) ([cb9dcb2](https://github.com/MTES-MCT/camino-ui/commit/cb9dcb24e7343cab20293144087e27535a2eae08)) +* prévisualise l'étape avant validation ([#339](https://github.com/MTES-MCT/camino-ui/issues/339)) ([132ee46](https://github.com/MTES-MCT/camino-ui/commit/132ee46c733923f2e2550c2171733254adc5e6b9)) +* utilise la nouvelle interface pour créer les étapes ([#342](https://github.com/MTES-MCT/camino-ui/issues/342)) ([3081882](https://github.com/MTES-MCT/camino-ui/commit/308188227a98c9349a3eeaf532d7ad1674022611)) +* **étape:** ajoute les propriétés manquantes dans page d’édition d’une étape ([#335](https://github.com/MTES-MCT/camino-ui/issues/335)) ([67add21](https://github.com/MTES-MCT/camino-ui/commit/67add218534e22bf98d151ce2abfb02adc58701e)) +* **justificatifs:** ajoute l’édition des métas des justificatifs ([#337](https://github.com/MTES-MCT/camino-ui/issues/337)) ([20361ce](https://github.com/MTES-MCT/camino-ui/commit/20361ce333c38a988e08b5628a064dd9e10e4dbc)) +* **justificatifs:** ajoute un bloc permettant de lier les justificatifs dans une étape ([#338](https://github.com/MTES-MCT/camino-ui/issues/338)) ([8474623](https://github.com/MTES-MCT/camino-ui/commit/8474623febba34805ef9d735c7d51113ceb1e310)) + + +### Bug Fixes + +* corrige l'édition de l'étape ([#345](https://github.com/MTES-MCT/camino-ui/issues/345)) ([c563d4c](https://github.com/MTES-MCT/camino-ui/commit/c563d4c834eddfe8deb568994c6daeee812d93c0)), closes [#343](https://github.com/MTES-MCT/camino-ui/issues/343) +* élargi la popup ([#350](https://github.com/MTES-MCT/camino-ui/issues/350)) ([3428c4f](https://github.com/MTES-MCT/camino-ui/commit/3428c4f5ed0e1ebcadb86ddb03f71518d73fcfcd)) +* **points:** corrige l’enregistrement des points renseignés sur une étape ([#344](https://github.com/MTES-MCT/camino-ui/issues/344)) ([5d25f5b](https://github.com/MTES-MCT/camino-ui/commit/5d25f5bf8886e9bf0d05aabe888a1c7526e502ff)) + +### [0.22.70](https://github.com/MTES-MCT/camino-ui/compare/v0.22.69...v0.22.70) (2021-05-19) + + +### Features + +* ajoute une demande de titre ([#325](https://github.com/MTES-MCT/camino-ui/issues/325)) ([bd84dfc](https://github.com/MTES-MCT/camino-ui/commit/bd84dfc111db57c5e2f088c2e83ddf313dfed7a3)) +* ajoute une interface d'édition des étapes ([#330](https://github.com/MTES-MCT/camino-ui/issues/330)) ([ae259d3](https://github.com/MTES-MCT/camino-ui/commit/ae259d304d1676c25f29dc84aac6e8bc237c19b4)) +* édite une étape ([#334](https://github.com/MTES-MCT/camino-ui/issues/334)) ([eafe749](https://github.com/MTES-MCT/camino-ui/commit/eafe74926735cce8c624f92ac8faaa86d6941cb0)) +* **entreprise:** ajoute une propriété titresCreation ([#323](https://github.com/MTES-MCT/camino-ui/issues/323)) ([fb4f6ce](https://github.com/MTES-MCT/camino-ui/commit/fb4f6cea70b81ca0b8fa9114f802713521e7d033)) +* vérifie si l’application est à jour à chaque appel à l’API ([#322](https://github.com/MTES-MCT/camino-ui/issues/322)) ([b18f292](https://github.com/MTES-MCT/camino-ui/commit/b18f2924cd9d741ccbc34ffd994c59b8edbd35eb)) +* **demande:** initialise la mécanisation des demandes mécanisées ([#318](https://github.com/MTES-MCT/camino-ui/issues/318)) ([62ad238](https://github.com/MTES-MCT/camino-ui/commit/62ad2381c626dc953d050c7170b898bb189b552e)) + + +### Bug Fixes + +* **glossaire:** corrige l'affichage des définitions du glossaire ([#333](https://github.com/MTES-MCT/camino-ui/issues/333)) ([078abc2](https://github.com/MTES-MCT/camino-ui/commit/078abc2eb1ee8fdc8f8aaae21f95c0b5acbd7da8)) +* **statistiques:** ajoute les années 2017 et 2018 ([#332](https://github.com/MTES-MCT/camino-ui/issues/332)) ([b19828e](https://github.com/MTES-MCT/camino-ui/commit/b19828e2227891665e981aef634c44cdb005ed3e)) +* corrige l'édition des champs json ([#331](https://github.com/MTES-MCT/camino-ui/issues/331)) ([5efab2e](https://github.com/MTES-MCT/camino-ui/commit/5efab2e81a975f3344e974d9bbed0d1e905dc23e)) +* corrige le lien vers une page entreprise ([#327](https://github.com/MTES-MCT/camino-ui/issues/327)) ([7527058](https://github.com/MTES-MCT/camino-ui/commit/752705875a899b44b30242d2eda63759aa8d4c23)) +* **étape:** corrige l’affichage des dates dans les sections ([#326](https://github.com/MTES-MCT/camino-ui/issues/326)) ([66ab32d](https://github.com/MTES-MCT/camino-ui/commit/66ab32d50a9c4938609aa242885f4af23c7de1b7)) +* **étapes:** les éléments de type radio et checkbox ne sont plus optionnels ([#320](https://github.com/MTES-MCT/camino-ui/issues/320)) ([e2b2c72](https://github.com/MTES-MCT/camino-ui/commit/e2b2c72d16875544ae307fa06c8c6fb1392ae0e7)) +* **map:** corrige les erreurs de type 'this._map is null' lors des zooms ([#321](https://github.com/MTES-MCT/camino-ui/issues/321)) ([c0f86fa](https://github.com/MTES-MCT/camino-ui/commit/c0f86fa67f0d1970bb8b93a974fc58d738588316)) +* **stats:** corrige les échelles et légendes des pages statistiques ([#319](https://github.com/MTES-MCT/camino-ui/issues/319)) ([bb1cf80](https://github.com/MTES-MCT/camino-ui/commit/bb1cf80272affac65accdec4f4782645df05fb44)) +* formate la date dans une section ([#317](https://github.com/MTES-MCT/camino-ui/issues/317)) ([ba452f1](https://github.com/MTES-MCT/camino-ui/commit/ba452f161d65274e959d15f10af4bbbc7cdaa856)) + +### [0.22.69](https://github.com/MTES-MCT/camino-ui/compare/v0.22.68...v0.22.69) (2021-05-04) + + +### Bug Fixes + +* **métas:** corrige une erreur lorsqu'on clique sur une entête ([#315](https://github.com/MTES-MCT/camino-ui/issues/315)) ([531c4e0](https://github.com/MTES-MCT/camino-ui/commit/531c4e02b7a57ea0de6de0f5ea2f86a466028024)) +* corrige le téléchargement de fichier sur ff60 ([1d86964](https://github.com/MTES-MCT/camino-ui/commit/1d869640fdd5b55e0295c8c085d39b21c0478868)) +* **contenu:** corrige une erreur lors de l’utilisation de champ multiple dans les étapes ([6c0d29f](https://github.com/MTES-MCT/camino-ui/commit/6c0d29fac090904e6931a93c737c8580efdcc498)) + +### [0.22.68](https://github.com/MTES-MCT/camino-ui/compare/v0.22.67...v0.22.68) (2021-04-27) + + +### Features + +* affiche les descriptions des types d'activités ([#307](https://github.com/MTES-MCT/camino-ui/issues/307)) ([71c05ca](https://github.com/MTES-MCT/camino-ui/commit/71c05caaa8c99f695f321825c03269ed47fb2360)) + + +### Bug Fixes + +* **titres:** initialise les filtres en fonction des paramètres d'url ([499829d](https://github.com/MTES-MCT/camino-ui/commit/499829db5ee32bde125e57cbe4e09a5cb78c9f76)) +* corrige l'affichage des stats ([#309](https://github.com/MTES-MCT/camino-ui/issues/309)) ([0315cac](https://github.com/MTES-MCT/camino-ui/commit/0315cacdc69aa46a353930a21915d6d760246977)) +* masque le bouton d'ouverture d'une étape si elle est vide ([05a2403](https://github.com/MTES-MCT/camino-ui/commit/05a240377ef13fa386a6e7809f7fecffb3d03718)) +* rend compatible avec les vieilles versions de firefox ([#310](https://github.com/MTES-MCT/camino-ui/issues/310)) ([48a7c12](https://github.com/MTES-MCT/camino-ui/commit/48a7c1265e44635295cfcd1ec76627132ebaa8fb)) +* **statistiques:** corrige l'affichage des graphs ([#308](https://github.com/MTES-MCT/camino-ui/issues/308)) ([d7daa64](https://github.com/MTES-MCT/camino-ui/commit/d7daa6401062810583c33ca3ae49c063e25f433b)) + +### [0.22.67](https://github.com/MTES-MCT/camino-ui/compare/v0.22.66...v0.22.67) (2021-04-21) + + +### Features + +* **activités:** affiche une description pour les types d'activité ([#300](https://github.com/MTES-MCT/camino-ui/issues/300)) ([8b18ee4](https://github.com/MTES-MCT/camino-ui/commit/8b18ee47f98edf611fe62ba89a651641e3de6971)) +* **fichier:** prend en compte les nouveaux éléments de type fichier ([#301](https://github.com/MTES-MCT/camino-ui/issues/301)) ([3202c87](https://github.com/MTES-MCT/camino-ui/commit/3202c87f8200dd24679112ac96d86ac4dd03963a)) +* ajoute des étapes de travaux ([#302](https://github.com/MTES-MCT/camino-ui/issues/302)) ([85a2009](https://github.com/MTES-MCT/camino-ui/commit/85a2009ae4ab6d57c860fc510f22a9fdfa4ea3af)) +* ajoute un indicateur de chargement de fichier ([#291](https://github.com/MTES-MCT/camino-ui/issues/291)) ([bab9c9d](https://github.com/MTES-MCT/camino-ui/commit/bab9c9de0635ab772507d8f07842c3e607224589)) +* édite les méta-données des travaux ([#303](https://github.com/MTES-MCT/camino-ui/issues/303)) ([9fdeee1](https://github.com/MTES-MCT/camino-ui/commit/9fdeee148390d277cde7e2a7617c85099a92fc6c)) +* **étapes:** vérifie si toutes les sections obligatoires sont renseignées ([#286](https://github.com/MTES-MCT/camino-ui/issues/286)) ([0c05f19](https://github.com/MTES-MCT/camino-ui/commit/0c05f19d7de5ebc1a0d7990819d15fa414f3f9d5)) +* **map:** corrige le sélecteur de fond de carte sur la page d'un titre ([#299](https://github.com/MTES-MCT/camino-ui/issues/299)) ([f9427d6](https://github.com/MTES-MCT/camino-ui/commit/f9427d6a5e67b70b392b33b86167872f589d8570)) +* **sections:** permet d’avoir des éléments multiple dans les sections ([#293](https://github.com/MTES-MCT/camino-ui/issues/293)) ([cde4999](https://github.com/MTES-MCT/camino-ui/commit/cde49999a52c2b3b63ab7de67ee47e265dedc024)) +* **sections:** récupère les sections du type d’étape lors de la récupération de l’héritage ([#289](https://github.com/MTES-MCT/camino-ui/issues/289)) ([7e9c706](https://github.com/MTES-MCT/camino-ui/commit/7e9c706f6832712afe9de2fdce25a56e35932eaf)) + + +### Bug Fixes + +* **activités:** corrige la vérification de complétion ([a296008](https://github.com/MTES-MCT/camino-ui/commit/a29600891c568f556e5ea91da9902c49d620956e)) +* **carte:** corrige une erreur quand l’utilisateur change de page pendant un chargement ([#297](https://github.com/MTES-MCT/camino-ui/issues/297)) ([3766ec6](https://github.com/MTES-MCT/camino-ui/commit/3766ec67f1d42ff53391f1e46927d8672c4265bb)) +* **dateformat:** corrige l'erreur sur dateFormat (édition d'étapes) ([#292](https://github.com/MTES-MCT/camino-ui/issues/292)) ([5eeac56](https://github.com/MTES-MCT/camino-ui/commit/5eeac564004d2981ef4cf4fd5d7d87367ececc5c)) +* **démarches:** corrige le sélecteur de types d'étape ([818f9c3](https://github.com/MTES-MCT/camino-ui/commit/818f9c3616e9816e37e92d12492ecf30edb5555a)) +* **documents:** corrige une erreur pendant le chargement des métas ([#294](https://github.com/MTES-MCT/camino-ui/issues/294)) ([b8712d7](https://github.com/MTES-MCT/camino-ui/commit/b8712d7f171545c55393c93c0fa4821a30edeaeb)) +* **documents:** supprime la colonne répertoire ([#306](https://github.com/MTES-MCT/camino-ui/issues/306)) ([533c07d](https://github.com/MTES-MCT/camino-ui/commit/533c07db83f39d99cfb7b1b424a740546298995f)) +* **etape:** corrige l’erreur pendant le changement de type d’étape ([#305](https://github.com/MTES-MCT/camino-ui/issues/305)) ([7161886](https://github.com/MTES-MCT/camino-ui/commit/7161886120f93cbc569a33dc5dfd6fff9464ead0)) +* **étape:** corrige le changement de type lors de l'édition ([1fa4800](https://github.com/MTES-MCT/camino-ui/commit/1fa4800facab7887fb1cee95ea835031523b8922)) +* **étape:** corrige le sélecteur de type ([b95ad9b](https://github.com/MTES-MCT/camino-ui/commit/b95ad9bbba1c373ca61608612b26b7e244136608)) +* **étape:** corrige le sélection des types disponibles lors de la création d’une étape ([1ebfd6b](https://github.com/MTES-MCT/camino-ui/commit/1ebfd6bb8fd08785f0df2a58742afe6c91dd11cb)) +* **map:** corrige les sélecteurs de fond de carte et de type de marker ([#296](https://github.com/MTES-MCT/camino-ui/issues/296)) ([99a6c30](https://github.com/MTES-MCT/camino-ui/commit/99a6c307e241771efd7fb169d74bff2dc14b3d16)) +* corrige l'affichage des métas et le téléchargement ([#287](https://github.com/MTES-MCT/camino-ui/issues/287)) ([da3262f](https://github.com/MTES-MCT/camino-ui/commit/da3262fe110d7af8cffb82074070851332fd2891)) +* corrige le zoom sur leaflet ([#290](https://github.com/MTES-MCT/camino-ui/issues/290)) ([bcddee7](https://github.com/MTES-MCT/camino-ui/commit/bcddee7df9a1d2073ddb3bf9b52e02edaa53b24f)) +* corrige les liens depuis la page statistiques ([893fa7f](https://github.com/MTES-MCT/camino-ui/commit/893fa7f3ea479637fa8fd2f3b41715b143abf737)) +* formate le contenu des champs lors de la validation au clavier ([#288](https://github.com/MTES-MCT/camino-ui/issues/288)) ([e8874a7](https://github.com/MTES-MCT/camino-ui/commit/e8874a7efa8de9acf99daa3380f11ef97eb7a3c7)) +* **menu:** corrige temporairement le menu en attendant la nouvelle version du routeur ([3fc9e4c](https://github.com/MTES-MCT/camino-ui/commit/3fc9e4c035685a0430298eff15a2005b55d23ab8)) + +### [0.22.66](https://github.com/MTES-MCT/camino-ui/compare/v0.22.65...v0.22.66) (2021-03-30) + + +### Features + +* **activités:** édite les métas ([#282](https://github.com/MTES-MCT/camino-ui/issues/282)) ([b9e72cd](https://github.com/MTES-MCT/camino-ui/commit/b9e72cd5f3e0af96bb7827154e1d92c36807b93e)) +* **documents:** édite les types de documents pour chaque type d’étapes ([#276](https://github.com/MTES-MCT/camino-ui/issues/276)) ([1534318](https://github.com/MTES-MCT/camino-ui/commit/15343183f820122e85182794f13f13159bb13e13)) + + +### Bug Fixes + +* **entreprises:** corrige une erreur pourun utilisateur déconnecté ([#281](https://github.com/MTES-MCT/camino-ui/issues/281)) ([68d8dd8](https://github.com/MTES-MCT/camino-ui/commit/68d8dd80343024f8d7145e6ce4c12abd1d355182)) +* **métas:** corrige les métas de Types de travaux - Types d’étapes ([1e0a8c7](https://github.com/MTES-MCT/camino-ui/commit/1e0a8c7047ad981fc2a5ac56b81f4e676f53f1a1)) + +### [0.22.65](https://github.com/MTES-MCT/camino-ui/compare/v0.22.64...v0.22.65) (2021-03-23) + + +### Features + +* **carte:** ajoute une option pour masquer la trame ([#278](https://github.com/MTES-MCT/camino-ui/issues/278)) ([f127c94](https://github.com/MTES-MCT/camino-ui/commit/f127c94d243732d52b0f44a76b9965f4be0e9d91)) +* **travaux:** masque le statut ([f52fbc4](https://github.com/MTES-MCT/camino-ui/commit/f52fbc4dfd074b69c1e7dc0d4d39df98656e83b7)) +* met à jour les permissions ([#277](https://github.com/MTES-MCT/camino-ui/issues/277)) ([0819e12](https://github.com/MTES-MCT/camino-ui/commit/0819e12dbe8d344ad09f91583f8a5ca96dadb974)) + + +### Bug Fixes + +* **titres:** corrige l’affichage du bouton de création de titres ([#280](https://github.com/MTES-MCT/camino-ui/issues/280)) ([df91de9](https://github.com/MTES-MCT/camino-ui/commit/df91de9e5da30f4303016a36c5ec8f7ad3e80b72)) +* **travaux:** corrige des problèmes de mise en page ([#279](https://github.com/MTES-MCT/camino-ui/issues/279)) ([bb93650](https://github.com/MTES-MCT/camino-ui/commit/bb936506f8e5c34b81f9962e86c00fa9d32c756f)) +* **travaux:** corrige l'affichage du statut ([15bf4b3](https://github.com/MTES-MCT/camino-ui/commit/15bf4b34d1aa7e1c2c844a92b4de35b65c716c38)) + +### [0.22.64](https://github.com/MTES-MCT/camino-ui/compare/v0.22.63...v0.22.64) (2021-03-17) + + +### Features + +* **administration:** édite les restrictions sur les types d'activités ([#272](https://github.com/MTES-MCT/camino-ui/issues/272)) ([d557260](https://github.com/MTES-MCT/camino-ui/commit/d55726089d09a60e83f77fd539746b6381c5c8b9)) + + +### Bug Fixes + +* **activités:** prévisualise les champs facultatifs ([#273](https://github.com/MTES-MCT/camino-ui/issues/273)) ([0939407](https://github.com/MTES-MCT/camino-ui/commit/0939407d181bc335844bff77a262a88adcd2cbea)) +* **administrations:** corrige l’interface pour définir les permissions d’une adminstrations ([#275](https://github.com/MTES-MCT/camino-ui/issues/275)) ([8ecf193](https://github.com/MTES-MCT/camino-ui/commit/8ecf193384ccb6a8cbcaf2f2c3fc8cb153526e32)) +* **édition d'étape:** corrige une erreur lors de l'initialisation de l'héritage ([#274](https://github.com/MTES-MCT/camino-ui/issues/274)) ([3354c5c](https://github.com/MTES-MCT/camino-ui/commit/3354c5cb197b264e8ab64400619e9c0c07d83c5d)) + +### [0.22.63](https://github.com/MTES-MCT/camino-ui/compare/v0.22.62...v0.22.63) (2021-03-08) + + +### Features + +* édite la propriété "opérateur" sur les entreprises ([#267](https://github.com/MTES-MCT/camino-ui/issues/267)) ([b2913f3](https://github.com/MTES-MCT/camino-ui/commit/b2913f30f91354024a3364a90f5b566fdd71b7e2)) +* hérite les contenus entres les étapes ([#261](https://github.com/MTES-MCT/camino-ui/issues/261)) ([318128a](https://github.com/MTES-MCT/camino-ui/commit/318128a52b327abab5d0592feeae07321fd7d92c)) +* met à jour les profils de l'équipe ([#207](https://github.com/MTES-MCT/camino-ui/issues/207)) ([e6ac29d](https://github.com/MTES-MCT/camino-ui/commit/e6ac29dd9d494a895dfb95de9c7bf16c5f73d696)) + + +### Bug Fixes + +* corrige une erreur si aucune référence de point n'est opposable ([#271](https://github.com/MTES-MCT/camino-ui/issues/271)) ([4d23989](https://github.com/MTES-MCT/camino-ui/commit/4d2398926126af7bd8101b7a253707965fde9397)) +* **etape:** affiche le type de titre dans la pop-up de suppression d'étape ([#270](https://github.com/MTES-MCT/camino-ui/issues/270)) ([2dc9527](https://github.com/MTES-MCT/camino-ui/commit/2dc9527f30308788247d77efe3db246a54bba605)) +* corrige la marge sur le bouton supprimer des activités ([633fd68](https://github.com/MTES-MCT/camino-ui/commit/633fd68272369adfbd5e14ffdd212c65ad7c8bdb)) +* **a-propos:** corrige le nom de l'intrapreneuse ([#268](https://github.com/MTES-MCT/camino-ui/issues/268)) ([354798d](https://github.com/MTES-MCT/camino-ui/commit/354798d6d928e82a5d6e07aa8ff5c4767c0cb9bc)) +* **a-propos:** corrige les dates d'arrivée ([#269](https://github.com/MTES-MCT/camino-ui/issues/269)) ([6e77086](https://github.com/MTES-MCT/camino-ui/commit/6e7708658012db9b0bae5452e0d237d5fd92a61b)) +* **coordonnees:** corrige l'erreur de saisie de coordonnées vides ([#264](https://github.com/MTES-MCT/camino-ui/issues/264)) ([a70188b](https://github.com/MTES-MCT/camino-ui/commit/a70188b8d832031a4d5625f4a297c8a47cfedee5)) +* **étape:** supprime l’ancienne colonne « ordre » des métas des statuts d’étapes ([#266](https://github.com/MTES-MCT/camino-ui/issues/266)) ([0cbf37a](https://github.com/MTES-MCT/camino-ui/commit/0cbf37a4c0a023d2903a2192e5a06d2991667f5a)) +* **rapport:** corrige l'onglet courant ('Droits miniers' par défaut) ([#265](https://github.com/MTES-MCT/camino-ui/issues/265)) ([0d3eefe](https://github.com/MTES-MCT/camino-ui/commit/0d3eefe691580f056c1880f58e93f8e2fbcb6956)) +* corrige la validation au clavier de la date d'une étape ([f126d48](https://github.com/MTES-MCT/camino-ui/commit/f126d48f8c8d74bc9133df178fee0877dd699e78)) + +### [0.22.62](https://github.com/MTES-MCT/camino-ui/compare/v0.22.61...v0.22.62) (2021-03-02) + + +### Features + +* **héritage:** ajoute l’héritage de l’incertitude entre 2 étapes fondamentales ([#260](https://github.com/MTES-MCT/camino-ui/issues/260)) ([320ca6c](https://github.com/MTES-MCT/camino-ui/commit/320ca6c548389a579e6ac7765521f4c8a11dcbc3)) +* hérite les propriétés entre les étapes ([#258](https://github.com/MTES-MCT/camino-ui/issues/258)) ([1e741c6](https://github.com/MTES-MCT/camino-ui/commit/1e741c62ba67d3f64aa513838431e83bf902dbd3)) + + +### Bug Fixes + +* affiche l'incertitude sur la date ([c316fda](https://github.com/MTES-MCT/camino-ui/commit/c316fda41f6dd8dc67cc137f40e0aeaf5de9981b)) +* **étape:** utilise la bonne date pour la récupération des métas lors de la modification d’une étape ([#263](https://github.com/MTES-MCT/camino-ui/issues/263)) ([0f18db0](https://github.com/MTES-MCT/camino-ui/commit/0f18db05290dfa5011de17ca05b196ccb6b46b06)) +* initialise les incertitudes si la propriété est modifiée ([#262](https://github.com/MTES-MCT/camino-ui/issues/262)) ([0698efb](https://github.com/MTES-MCT/camino-ui/commit/0698efb4a077c01c50892de1f7936f6bb320d5b6)) + +### [0.22.61](https://github.com/MTES-MCT/camino-ui/compare/v0.22.60...v0.22.61) (2021-02-18) + + +### Features + +* **démarches:** ajoute la colonne 'Références' dans la liste ([#256](https://github.com/MTES-MCT/camino-ui/issues/256)) ([4eb088c](https://github.com/MTES-MCT/camino-ui/commit/4eb088c234519bfe9ae7f28a28e90a21e21ae7f4)) +* **liste:** ajoute la colonne 'périmètre' à la liste des titres ([#253](https://github.com/MTES-MCT/camino-ui/issues/253)) ([cbf714d](https://github.com/MTES-MCT/camino-ui/commit/cbf714d189d04547af391749d5c1df0823eddabe)) + + +### Bug Fixes + +* corrige la valeur par défaut des champs de saisie des coordonnées ([#254](https://github.com/MTES-MCT/camino-ui/issues/254)) ([d78b9f3](https://github.com/MTES-MCT/camino-ui/commit/d78b9f3c45b448db1f51db38accbbfb81113ef5f)) +* masque l'icone si l'étape ne contient aucune propriété ([#255](https://github.com/MTES-MCT/camino-ui/issues/255)) ([62af1b6](https://github.com/MTES-MCT/camino-ui/commit/62af1b62eff81e245a40e1f04671e2e06fd8cd92)) + +### [0.22.60](https://github.com/MTES-MCT/camino-ui/compare/v0.22.59...v0.22.60) (2021-02-15) + + +### Features + +* **liste:** ajoute les régions et les départements dans la liste des titres ([#250](https://github.com/MTES-MCT/camino-ui/issues/250)) ([a15f8cc](https://github.com/MTES-MCT/camino-ui/commit/a15f8cc3e6ce552c5a81ca4c3fdd362b3fb573e3)) +* ajoute un bouton pour supprimer une activité ([c63c677](https://github.com/MTES-MCT/camino-ui/commit/c63c6772cc1900e0493932a56685163c295e6ee0)) +* **étape:** initialise la date à aujourd’hui lors de l’ajout d’une étape ([#252](https://github.com/MTES-MCT/camino-ui/issues/252)) ([25d3478](https://github.com/MTES-MCT/camino-ui/commit/25d3478a8841d9d8236236ff32453615362b938e)) +* **liste:** ajoute la colonne 'Références' dans la liste de titres ([#248](https://github.com/MTES-MCT/camino-ui/issues/248)) ([b6a2f09](https://github.com/MTES-MCT/camino-ui/commit/b6a2f0944707cf430e8f1008e34772ae5bdfe2c9)) +* **statistiques:** ajoute le graph des stocks de concessions granulats marins ([#247](https://github.com/MTES-MCT/camino-ui/issues/247)) ([eb67819](https://github.com/MTES-MCT/camino-ui/commit/eb678193f2a9ea8ff247a2072a2ee4f57071713c)) + + +### Bug Fixes + +* **utilisateur:** permet d’affecter un utilisateur à son administration ([#251](https://github.com/MTES-MCT/camino-ui/issues/251)) ([d279ccd](https://github.com/MTES-MCT/camino-ui/commit/d279ccdf113ea9fb31063c8b6527ccdc719a26a6)) +* limite la liste des entreprises lors de l'ajout d'une entreprise ([#249](https://github.com/MTES-MCT/camino-ui/issues/249)) ([0c64234](https://github.com/MTES-MCT/camino-ui/commit/0c64234418d19912d13cfcb86294641fe87b2d6d)) + +### [0.22.59](https://github.com/MTES-MCT/camino-ui/compare/v0.22.56...v0.22.59) (2021-02-08) + + +### Features + +* met à jour le nom du ministère et les coordonnées ([#243](https://github.com/MTES-MCT/camino-ui/issues/243)) ([432bb3f](https://github.com/MTES-MCT/camino-ui/commit/432bb3f35d65cb50440ccb04d2370ffcf9183e94)) +* **activités:** prend en compte les documents optionnels ([#241](https://github.com/MTES-MCT/camino-ui/issues/241)) ([bcfe8e6](https://github.com/MTES-MCT/camino-ui/commit/bcfe8e6cb14dfefe19f8a15959ed2db30711edc9)) + + +### Bug Fixes + +* **entreprise:** permet de désarchiver une entreprise ([0384393](https://github.com/MTES-MCT/camino-ui/commit/038439310452387cb7d2f2cb39d5595ec3d594f4)) +* **metas:** ajoute la majuscule manquante sur Types des administrations ([5d38d58](https://github.com/MTES-MCT/camino-ui/commit/5d38d58b3776879e8cb0ec39fdeb11f2e0abb13c)) +* ajoute une majuscule sur le titre des métas ([4af2c19](https://github.com/MTES-MCT/camino-ui/commit/4af2c19e57dd81d7f430397927f192ff60a39303)) +* **activités:** affiche correctement les sections des activités dans le formulaire ([#245](https://github.com/MTES-MCT/camino-ui/issues/245)) ([3086de7](https://github.com/MTES-MCT/camino-ui/commit/3086de7c4663ecbf8f1942ff9d2dfe9b106a4c78)) +* **statistiques:** corrige les libellés et ajoute les liens vers les titres ([#246](https://github.com/MTES-MCT/camino-ui/issues/246)) ([a7a63be](https://github.com/MTES-MCT/camino-ui/commit/a7a63becc7b4b10117bf8e40b07697b7a722d07f)) +* édite les nouveaux champs d'unité ([0421c73](https://github.com/MTES-MCT/camino-ui/commit/0421c73913271142d769be826bd2f719270befb6)) + +### [0.22.58](https://github.com/MTES-MCT/camino-ui/compare/v0.22.57...v0.22.58) (2021-02-05) + + +### Features + +* met à jour le nom du ministère et les coordonnées ([#243](https://github.com/MTES-MCT/camino-ui/issues/243)) ([432bb3f](https://github.com/MTES-MCT/camino-ui/commit/432bb3f35d65cb50440ccb04d2370ffcf9183e94)) + + +### Bug Fixes + +* ajoute une majuscule sur le titre des métas ([4af2c19](https://github.com/MTES-MCT/camino-ui/commit/4af2c19e57dd81d7f430397927f192ff60a39303)) +* **activités:** affiche correctement les sections des activités dans le formulaire ([#245](https://github.com/MTES-MCT/camino-ui/issues/245)) ([3086de7](https://github.com/MTES-MCT/camino-ui/commit/3086de7c4663ecbf8f1942ff9d2dfe9b106a4c78)) +* **statistiques:** corrige les libellés et ajoute les liens vers les titres ([#246](https://github.com/MTES-MCT/camino-ui/issues/246)) ([a7a63be](https://github.com/MTES-MCT/camino-ui/commit/a7a63becc7b4b10117bf8e40b07697b7a722d07f)) +* édite les nouveaux champs d'unité ([0421c73](https://github.com/MTES-MCT/camino-ui/commit/0421c73913271142d769be826bd2f719270befb6)) + +### [0.22.57](https://github.com/MTES-MCT/camino-ui/compare/v0.22.56...v0.22.57) (2021-02-01) + + +### Features + +* **activités:** prend en compte les documents optionnels ([#241](https://github.com/MTES-MCT/camino-ui/issues/241)) ([bcfe8e6](https://github.com/MTES-MCT/camino-ui/commit/bcfe8e6cb14dfefe19f8a15959ed2db30711edc9)) + +### [0.22.56](https://github.com/MTES-MCT/camino-ui/compare/v0.22.53...v0.22.56) (2021-01-25) + + +### Features + +* **demarches:** conditionne l'affichage du bouton de création de démarches ([#229](https://github.com/MTES-MCT/camino-ui/issues/229)) ([014e02e](https://github.com/MTES-MCT/camino-ui/commit/014e02ebfdb77da34cbcdbcec2225ef845639d37)) +* **édition d'étape:** sélectionne la date avant le type ([#237](https://github.com/MTES-MCT/camino-ui/issues/237)) ([5d274d5](https://github.com/MTES-MCT/camino-ui/commit/5d274d553d5443d46efd2f53816179a80552dd6f)) +* **statistiques:** améliorer le rendu ([#233](https://github.com/MTES-MCT/camino-ui/issues/233)) ([320d720](https://github.com/MTES-MCT/camino-ui/commit/320d7209233cace81e89aea7ed1e4bee9f02d3c9)) +* **statistiques:** corrige le commentaire introductif sur la page guyane ([#225](https://github.com/MTES-MCT/camino-ui/issues/225)) ([91183e5](https://github.com/MTES-MCT/camino-ui/commit/91183e5b47118cd167d70ae1ed9a86c52b79e6b4)) +* **statistiques:** désactive l’affichage des statistiques des granulats marins ([ee84d7b](https://github.com/MTES-MCT/camino-ui/commit/ee84d7bb53d10ff2fbc508b42b53055ba01d37cf)) +* édite les métas ([#224](https://github.com/MTES-MCT/camino-ui/issues/224)) ([75d1ff7](https://github.com/MTES-MCT/camino-ui/commit/75d1ff76f5e5f6f27fb6dd0be1d83f8b4408291b)) + + +### Bug Fixes + +* **document:** interverti les champs uri et url ([#236](https://github.com/MTES-MCT/camino-ui/issues/236)) ([4ad2035](https://github.com/MTES-MCT/camino-ui/commit/4ad20351956b0db69e3800e92655dd558f440a0e)) +* **documents:** ajoute un bouton qui pointe vers les uri ([d55af9b](https://github.com/MTES-MCT/camino-ui/commit/d55af9bb6fc02ac9ef544f56cf44a74aea394ab2)) +* **édition d'étape:** autorise l'édition de la date ([0aec1d6](https://github.com/MTES-MCT/camino-ui/commit/0aec1d678e610d216f1514b68f5e46c85b1bce3f)) +* **entreprise:** empêche de choisir un amodiataire si il est titulaire ([#228](https://github.com/MTES-MCT/camino-ui/issues/228)) ([44b859b](https://github.com/MTES-MCT/camino-ui/commit/44b859b39767c8ff84f4ec7f4e6e26d9ce604f3f)) +* **entreprises:** ne peut pas mettre 2 fois le même titulaires sur une étape ([#223](https://github.com/MTES-MCT/camino-ui/issues/223)) ([b2b2ad3](https://github.com/MTES-MCT/camino-ui/commit/b2b2ad30d2aa8d01e944437328651d1be5b1f84b)) +* **étape:** initialise correctement le type d’étape lors de la modification d’une étape ([8102819](https://github.com/MTES-MCT/camino-ui/commit/8102819cee3c6f6aeb127b78530051ffbcd9a4c7)) +* **statistiques:** corrige l'affichage des granulats marins ([#235](https://github.com/MTES-MCT/camino-ui/issues/235)) ([fcfa94e](https://github.com/MTES-MCT/camino-ui/commit/fcfa94e5aa0f5c295ed20761d41203b1963c0493)) +* **statistiques:** corrige le libellé des surfaces sur les concessions ([#238](https://github.com/MTES-MCT/camino-ui/issues/238)) ([eae9e87](https://github.com/MTES-MCT/camino-ui/commit/eae9e87746fdf82faa3fbfd67471c083e2d3f918)) +* **statistiques:** corrige le titre lde la page ([#239](https://github.com/MTES-MCT/camino-ui/issues/239)) ([05efe97](https://github.com/MTES-MCT/camino-ui/commit/05efe979955760348a7f6237daf3fec663a628c5)) +* **statistiques:** corrige une faute d'orthographe ([#240](https://github.com/MTES-MCT/camino-ui/issues/240)) ([d66640f](https://github.com/MTES-MCT/camino-ui/commit/d66640f0063d0b47a4c3a358b7bd1ae43a6bbc4d)) +* affiche l'arrière plan des périmètres de concessions f ([7390e65](https://github.com/MTES-MCT/camino-ui/commit/7390e651f65c1c4b9d3de7756f86e719b76e0e25)) +* change l'icone d'un lien url ([dc9b185](https://github.com/MTES-MCT/camino-ui/commit/dc9b185d939d276533eedf5ae0321e91dbdd0e3a)) +* corrige l'affichage des statistiques ([#234](https://github.com/MTES-MCT/camino-ui/issues/234)) ([c5a04b0](https://github.com/MTES-MCT/camino-ui/commit/c5a04b046e034d61e720e5900be180a015715b80)) +* supprime l'édition de tables de jointure inutilisées ([9d1777f](https://github.com/MTES-MCT/camino-ui/commit/9d1777f687974385a5ac3652e95c6dff52989016)) + +### [0.22.55](https://github.com/MTES-MCT/camino-ui/compare/v0.22.54...v0.22.55) (2020-12-22) + + +### Features + +* **demarches:** conditionne l'affichage du bouton de création de démarches ([#229](https://github.com/MTES-MCT/camino-ui/issues/229)) ([014e02e](https://github.com/MTES-MCT/camino-ui/commit/014e02ebfdb77da34cbcdbcec2225ef845639d37)) +* **statistiques:** corrige le commentaire introductif sur la page guyane ([#225](https://github.com/MTES-MCT/camino-ui/issues/225)) ([91183e5](https://github.com/MTES-MCT/camino-ui/commit/91183e5b47118cd167d70ae1ed9a86c52b79e6b4)) +* **statistiques:** désactive l’affichage des statistiques des granulats marins ([ee84d7b](https://github.com/MTES-MCT/camino-ui/commit/ee84d7bb53d10ff2fbc508b42b53055ba01d37cf)) +* édite les métas ([#224](https://github.com/MTES-MCT/camino-ui/issues/224)) ([75d1ff7](https://github.com/MTES-MCT/camino-ui/commit/75d1ff76f5e5f6f27fb6dd0be1d83f8b4408291b)) + + +### Bug Fixes + +* **étape:** initialise correctement le type d’étape lors de la modification d’une étape ([8102819](https://github.com/MTES-MCT/camino-ui/commit/8102819cee3c6f6aeb127b78530051ffbcd9a4c7)) +* supprime l'édition de tables de jointure inutilisées ([9d1777f](https://github.com/MTES-MCT/camino-ui/commit/9d1777f687974385a5ac3652e95c6dff52989016)) +* **entreprise:** empêche de choisir un amodiataire si il est titulaire ([#228](https://github.com/MTES-MCT/camino-ui/issues/228)) ([44b859b](https://github.com/MTES-MCT/camino-ui/commit/44b859b39767c8ff84f4ec7f4e6e26d9ce604f3f)) + +### [0.22.54](https://github.com/MTES-MCT/camino-ui/compare/v0.22.53...v0.22.54) (2020-12-08) + + +### Bug Fixes + +* affiche l'arrière plan des périmètres de concessions f ([7390e65](https://github.com/MTES-MCT/camino-ui/commit/7390e651f65c1c4b9d3de7756f86e719b76e0e25)) +* **entreprises:** ne peut pas mettre 2 fois le même titulaires sur une étape ([#223](https://github.com/MTES-MCT/camino-ui/issues/223)) ([b2b2ad3](https://github.com/MTES-MCT/camino-ui/commit/b2b2ad30d2aa8d01e944437328651d1be5b1f84b)) + +### [0.22.53](https://github.com/MTES-MCT/camino-ui/compare/v0.22.52...v0.22.53) (2020-11-30) + + +### Bug Fixes + +* corrige le motif du type inconnu ([2840a12](https://github.com/MTES-MCT/camino-ui/commit/2840a12e8d4479b1d98143ea28024afdf1d86fa8)) + +### [0.22.52](https://github.com/MTES-MCT/camino-ui/compare/v0.22.51...v0.22.52) (2020-11-30) + + +### Bug Fixes + +* corrige le style des concessions f ([f2b3bde](https://github.com/MTES-MCT/camino-ui/commit/f2b3bdeed039304bdfcbae84f858cb545677493e)) + +### [0.22.51](https://github.com/MTES-MCT/camino-ui/compare/v0.22.50...v0.22.51) (2020-11-30) + + +### Features + +* ajoute les styles des types et domaines inconnus ([#222](https://github.com/MTES-MCT/camino-ui/issues/222)) ([c7299e1](https://github.com/MTES-MCT/camino-ui/commit/c7299e1e088f8cd0935f0f00d4f57b408817cd8c)) +* **carte:** utilise le centre du titre pour afficher les marqueurs ([#215](https://github.com/MTES-MCT/camino-ui/issues/215)) ([4a665fe](https://github.com/MTES-MCT/camino-ui/commit/4a665fe6832384a92a340b303d868490c53fac7f)) +* affiche les marqueurs sur un canvas ([#220](https://github.com/MTES-MCT/camino-ui/issues/220)) ([471f140](https://github.com/MTES-MCT/camino-ui/commit/471f140975201e71f785c6f06cf2e4bafcd46e25)) + + +### Bug Fixes + +* corrige la modification d’une étape avec des entreprises archivées ([#221](https://github.com/MTES-MCT/camino-ui/issues/221)) ([f283ec5](https://github.com/MTES-MCT/camino-ui/commit/f283ec58cd84645e20c735507d4ab0fe32eb9ae2)) + +### [0.22.50](https://github.com/MTES-MCT/camino-ui/compare/v0.22.49...v0.22.50) (2020-11-19) + + +### Features + +* **entreprise:** permet d’archiver une entreprise ([#213](https://github.com/MTES-MCT/camino-ui/issues/213)) ([ba95641](https://github.com/MTES-MCT/camino-ui/commit/ba95641e4e20f11f2c11c9c61cc776563a8480fb)) +* **etapes:** pouvoir définir le type d’une propriété number ([#212](https://github.com/MTES-MCT/camino-ui/issues/212)) ([a61e6fd](https://github.com/MTES-MCT/camino-ui/commit/a61e6fde6ff08f6c92e700d95ea58871f1e3d651)) +* ajoute des options 'integer' et 'negative' sur le champs nombre ([#211](https://github.com/MTES-MCT/camino-ui/issues/211)) ([80ed5d4](https://github.com/MTES-MCT/camino-ui/commit/80ed5d4b91c05970ca57f2c3849612e426f8e296)) + + +### Bug Fixes + +* **entreprises:** corrige le retour sur la liste des entreprises ([#219](https://github.com/MTES-MCT/camino-ui/issues/219)) ([5229572](https://github.com/MTES-MCT/camino-ui/commit/5229572ad5fe16b292148803de68d6c5c92f7ad9)) +* corrige l'import d'un composant ([1335f8e](https://github.com/MTES-MCT/camino-ui/commit/1335f8e44ca68b65d7b6110cd313cb8c02c73f9d)) + +### [0.22.49](https://github.com/MTES-MCT/camino-ui/compare/v0.22.46...v0.22.49) (2020-11-04) + + +### Features + +* **administration:** édite les permission ([#210](https://github.com/MTES-MCT/camino-ui/issues/210)) ([fc5645c](https://github.com/MTES-MCT/camino-ui/commit/fc5645c8dc8895563494fe5bed04aede080e9db4)) +* ajoute les administrations ([#205](https://github.com/MTES-MCT/camino-ui/issues/205)) ([f3898ab](https://github.com/MTES-MCT/camino-ui/commit/f3898abc70b97bfd1f9b95479bcde26efbe9b916)) +* édite une administration ([#208](https://github.com/MTES-MCT/camino-ui/issues/208)) ([1a9747d](https://github.com/MTES-MCT/camino-ui/commit/1a9747d191611c8cff05d390c455002ae8d54e80)) +* **documents:** masque les boutons si l’utilisateur n’a pas les permissions ([#195](https://github.com/MTES-MCT/camino-ui/issues/195)) ([970816d](https://github.com/MTES-MCT/camino-ui/commit/970816d1852ce969bd7f6fb2ae357a965286145f)) +* **sentry:** active Sentry et Matomo via des variables d’environnement ([#198](https://github.com/MTES-MCT/camino-ui/issues/198)) ([7ad575e](https://github.com/MTES-MCT/camino-ui/commit/7ad575eb93dd858f875929013aecc01109a01671)) + + +### Bug Fixes + +* affiche le nom complet des domaines dans le selecteur de permissions ([91da4d1](https://github.com/MTES-MCT/camino-ui/commit/91da4d1ea5bdea900dfd15a9a304af674a7bf80f)) +* ajoute une icone pour le changement d'email ([9003235](https://github.com/MTES-MCT/camino-ui/commit/90032351cc3388306866bfa6c8c573d6a212dfc6)) +* corrige l'enregistrement des activités ([#202](https://github.com/MTES-MCT/camino-ui/issues/202)) ([920d2ec](https://github.com/MTES-MCT/camino-ui/commit/920d2ec50035567e14add0179ef19f387fc5b0ae)) +* corrige la CSP pour le chragement asynchrone ([3007449](https://github.com/MTES-MCT/camino-ui/commit/30074490197235f0b5aaf2c93e7d9e278bbfcd4c)) +* corrige la csp pour les styles de chartjs ([c72f622](https://github.com/MTES-MCT/camino-ui/commit/c72f6229b24a7cae208c4257ae6bae022ac7a646)) +* corrige la csp pour matomo ([2e2c71c](https://github.com/MTES-MCT/camino-ui/commit/2e2c71cce5ce3b5c8e4b41d325cedbc07ee632e5)) +* corrige la liste d'administration lors de l'édition d'un utilisateur ([0f45ee6](https://github.com/MTES-MCT/camino-ui/commit/0f45ee667b012a27ba35d94bd337969efc4068a9)) +* corrige la mise en page sur safari ([#200](https://github.com/MTES-MCT/camino-ui/issues/200)) ([f9e7d66](https://github.com/MTES-MCT/camino-ui/commit/f9e7d66e5ebc06f9a5d5ca0fe2c388e8f3ce37d1)) +* corrige le selecteur de type d'administrations ([00a2670](https://github.com/MTES-MCT/camino-ui/commit/00a2670ee5311db31ac21a55383943ae88ee7cc5)) +* corrige une faute de français ([29a221e](https://github.com/MTES-MCT/camino-ui/commit/29a221ee015c202d65442a195dc0d78be8ed0b6a)) +* **api:** utilise le refreshToken sur les appels à l’API Rest qui échouent ([#203](https://github.com/MTES-MCT/camino-ui/issues/203)) ([4e54d81](https://github.com/MTES-MCT/camino-ui/commit/4e54d811f1c25fddfe07b62864ab2b38c34899c7)) +* **nombre:** formate la saisie des nombres en français ([#192](https://github.com/MTES-MCT/camino-ui/issues/192)) ([981584f](https://github.com/MTES-MCT/camino-ui/commit/981584fc4dd50330436046b77145be1299458248)) +* **nombres:** formater l'affichage des nombre au standard français ([#179](https://github.com/MTES-MCT/camino-ui/issues/179)) ([75473db](https://github.com/MTES-MCT/camino-ui/commit/75473db6117602fe012b16c90320d86819e291ce)) +* **stats:** corrige une description ([#194](https://github.com/MTES-MCT/camino-ui/issues/194)) ([815bb08](https://github.com/MTES-MCT/camino-ui/commit/815bb08748794e7f008e5879e1ae8c91a3d20f7e)) +* **utilisateur:** vérifie la nouvelle adresse email lors de sa modification ([#199](https://github.com/MTES-MCT/camino-ui/issues/199)) ([c0f37dd](https://github.com/MTES-MCT/camino-ui/commit/c0f37ddab0b39f6038fcea6fc00d0e83808dc36a)) + +### [0.22.48](https://github.com/MTES-MCT/camino-ui/compare/v0.22.47...v0.22.48) (2020-10-20) + + +### Features + +* ajoute les administrations ([#205](https://github.com/MTES-MCT/camino-ui/issues/205)) ([f3898ab](https://github.com/MTES-MCT/camino-ui/commit/f3898abc70b97bfd1f9b95479bcde26efbe9b916)) + + +### Bug Fixes + +* corrige la liste d'administration lors de l'édition d'un utilisateur ([0f45ee6](https://github.com/MTES-MCT/camino-ui/commit/0f45ee667b012a27ba35d94bd337969efc4068a9)) +* corrige une faute de français ([29a221e](https://github.com/MTES-MCT/camino-ui/commit/29a221ee015c202d65442a195dc0d78be8ed0b6a)) +* **api:** utilise le refreshToken sur les appels à l’API Rest qui échouent ([#203](https://github.com/MTES-MCT/camino-ui/issues/203)) ([4e54d81](https://github.com/MTES-MCT/camino-ui/commit/4e54d811f1c25fddfe07b62864ab2b38c34899c7)) +* corrige l'enregistrement des activités ([#202](https://github.com/MTES-MCT/camino-ui/issues/202)) ([920d2ec](https://github.com/MTES-MCT/camino-ui/commit/920d2ec50035567e14add0179ef19f387fc5b0ae)) +* corrige la CSP pour le chragement asynchrone ([3007449](https://github.com/MTES-MCT/camino-ui/commit/30074490197235f0b5aaf2c93e7d9e278bbfcd4c)) +* corrige la mise en page sur safari ([#200](https://github.com/MTES-MCT/camino-ui/issues/200)) ([f9e7d66](https://github.com/MTES-MCT/camino-ui/commit/f9e7d66e5ebc06f9a5d5ca0fe2c388e8f3ce37d1)) + +### [0.22.47](https://github.com/MTES-MCT/camino-ui/compare/v0.22.46...v0.22.47) (2020-10-07) + + +### Features + +* **documents:** masque les boutons si l’utilisateur n’a pas les permissions ([#195](https://github.com/MTES-MCT/camino-ui/issues/195)) ([970816d](https://github.com/MTES-MCT/camino-ui/commit/970816d1852ce969bd7f6fb2ae357a965286145f)) +* **sentry:** active Sentry et Matomo via des variables d’environnement ([#198](https://github.com/MTES-MCT/camino-ui/issues/198)) ([7ad575e](https://github.com/MTES-MCT/camino-ui/commit/7ad575eb93dd858f875929013aecc01109a01671)) + + +### Bug Fixes + +* ajoute une icone pour le changement d'email ([9003235](https://github.com/MTES-MCT/camino-ui/commit/90032351cc3388306866bfa6c8c573d6a212dfc6)) +* corrige la csp pour les styles de chartjs ([c72f622](https://github.com/MTES-MCT/camino-ui/commit/c72f6229b24a7cae208c4257ae6bae022ac7a646)) +* **nombre:** formate la saisie des nombres en français ([#192](https://github.com/MTES-MCT/camino-ui/issues/192)) ([981584f](https://github.com/MTES-MCT/camino-ui/commit/981584fc4dd50330436046b77145be1299458248)) +* **stats:** corrige une description ([#194](https://github.com/MTES-MCT/camino-ui/issues/194)) ([815bb08](https://github.com/MTES-MCT/camino-ui/commit/815bb08748794e7f008e5879e1ae8c91a3d20f7e)) +* **utilisateur:** vérifie la nouvelle adresse email lors de sa modification ([#199](https://github.com/MTES-MCT/camino-ui/issues/199)) ([c0f37dd](https://github.com/MTES-MCT/camino-ui/commit/c0f37ddab0b39f6038fcea6fc00d0e83808dc36a)) +* corrige la csp pour matomo ([2e2c71c](https://github.com/MTES-MCT/camino-ui/commit/2e2c71cce5ce3b5c8e4b41d325cedbc07ee632e5)) +* **nombres:** formater l'affichage des nombre au standard français ([#179](https://github.com/MTES-MCT/camino-ui/issues/179)) ([75473db](https://github.com/MTES-MCT/camino-ui/commit/75473db6117602fe012b16c90320d86819e291ce)) + +### [0.22.46](https://github.com/MTES-MCT/camino-ui/compare/v0.22.45...v0.22.46) (2020-09-29) + + +### Features + +* met à jour le logo de l'état ([#188](https://github.com/MTES-MCT/camino-ui/issues/188)) ([5afa5e0](https://github.com/MTES-MCT/camino-ui/commit/5afa5e007d4fc12eaf94f20db1243a1482de4a29)) +* ouvre une section lorsqu'elle est modifiée ([#187](https://github.com/MTES-MCT/camino-ui/issues/187)) ([cf63db3](https://github.com/MTES-MCT/camino-ui/commit/cf63db3670b36de0948561c69605706774899a62)) +* **documents:** accepte des .pdf jusqu'à 30 mo ([#183](https://github.com/MTES-MCT/camino-ui/issues/183)) ([d14cdca](https://github.com/MTES-MCT/camino-ui/commit/d14cdca98ba5434ddbb3d48fbe84c3034209c907)) +* **forêts:** affiche le nom des forêts sur chaque titre ([#184](https://github.com/MTES-MCT/camino-ui/issues/184)) ([fcbc017](https://github.com/MTES-MCT/camino-ui/commit/fcbc0179e443f9bd95b9a55f3eb0bf7b4faa8c65)) +* **sécurité:** ajoute la gestion du refresh token ([#177](https://github.com/MTES-MCT/camino-ui/issues/177)) ([9398e1a](https://github.com/MTES-MCT/camino-ui/commit/9398e1a6e49a73b6585e91055adf95791b4f9944)) +* **statistique:** change le libellé des champs surface ([#181](https://github.com/MTES-MCT/camino-ui/issues/181)) ([4cce082](https://github.com/MTES-MCT/camino-ui/commit/4cce0825e261df0ccde508e943785c9fdff9176c)) + + +### Bug Fixes + +* corrige l'affichage du selecteur et des onglets ([#182](https://github.com/MTES-MCT/camino-ui/issues/182)) ([a609109](https://github.com/MTES-MCT/camino-ui/commit/a60910929918f18f1e3c274aea5a7d391e18df16)) +* corrige la saisie de d'étape de travaux ([5c2e5d4](https://github.com/MTES-MCT/camino-ui/commit/5c2e5d42619e0b8085aad188bcaa01d722d620be)) +* corrige la saisie des nombres ([417bc7b](https://github.com/MTES-MCT/camino-ui/commit/417bc7b273b17706218ff6e522f8a634198b8556)) +* corrige la saisie des nombres sur les vieux Firefox ([#186](https://github.com/MTES-MCT/camino-ui/issues/186)) ([3b997aa](https://github.com/MTES-MCT/camino-ui/commit/3b997aa83742e8f7476e20d6d4c15024bd2281ac)) +* corrige la saisie des nombres sur les vieux Firefox ([#189](https://github.com/MTES-MCT/camino-ui/issues/189)) ([181862a](https://github.com/MTES-MCT/camino-ui/commit/181862a9260ddcd855441cce19d938953687ca14)) +* corrige la visibilité d'un document d'entreprise ([5d1895d](https://github.com/MTES-MCT/camino-ui/commit/5d1895de41b9bcb2962bb05db9e7cf2eae89a5ba)) +* corrige les accès direct sur la page des titres ([#180](https://github.com/MTES-MCT/camino-ui/issues/180)) ([6490ebb](https://github.com/MTES-MCT/camino-ui/commit/6490ebb03a5360151495fbb98a0fc1570ea484e5)) +* corrige une erreur lors de la selection d'étapes incluses ([afa1a7d](https://github.com/MTES-MCT/camino-ui/commit/afa1a7d044f73f4c68508c5f610880b30fc6f1e9)) +* désactive l'élément "statistique" du menu ([#178](https://github.com/MTES-MCT/camino-ui/issues/178)) ([97f731a](https://github.com/MTES-MCT/camino-ui/commit/97f731aa069a543d4a2dd48b478e15c04c2569ea)) +* vérifie les types des paramètres d'url ([711f269](https://github.com/MTES-MCT/camino-ui/commit/711f269d57c60b3bba3cf1cdf986ea41c5372a76)) +* **authentification:** corrige la création de son compte ([#185](https://github.com/MTES-MCT/camino-ui/issues/185)) ([1a5aa94](https://github.com/MTES-MCT/camino-ui/commit/1a5aa94a9c9f7a40298ad3f2661a77f00e04901e)) + +### [0.22.45](https://github.com/MTES-MCT/camino-ui/compare/v0.22.43...v0.22.45) (2020-09-18) + + +### Features + +* affiches une page statistiques Guyane ([#170](https://github.com/MTES-MCT/camino-ui/issues/170)) ([53d7932](https://github.com/MTES-MCT/camino-ui/commit/53d793246ff08e2b59b803736f66e333674cfb02)) +* **carte:** ajoute un bouton pour cadrer tous les marqueurs ([#169](https://github.com/MTES-MCT/camino-ui/issues/169)) ([e9f6922](https://github.com/MTES-MCT/camino-ui/commit/e9f69225b6b0b05981b133666b474492c2fa3952)) +* affiche les filtres actifs ([#168](https://github.com/MTES-MCT/camino-ui/issues/168)) ([caa69e1](https://github.com/MTES-MCT/camino-ui/commit/caa69e1ab668f00685a764fcd90f31a65c2fcc3a)) +* **filtres:** ajoute un bouton qui permet de réinitialiser les filtres ([#163](https://github.com/MTES-MCT/camino-ui/issues/163)) ([7d555bc](https://github.com/MTES-MCT/camino-ui/commit/7d555bc35663258f45efa579ef42a9451b45d917)) +* **geo:** gère les virgules et les espaces quand l'utilisateur saisit des coordonnées décimales ([#166](https://github.com/MTES-MCT/camino-ui/issues/166)) ([ef43949](https://github.com/MTES-MCT/camino-ui/commit/ef43949496ec2f1a53e7af893905a2229f926b08)) +* **stats:** améliore la page statistiques ([#159](https://github.com/MTES-MCT/camino-ui/issues/159)) ([5060cad](https://github.com/MTES-MCT/camino-ui/commit/5060cada6b1e2f0d4dc7d347ab617f2bf7a49949)) +* ajoute Nicolas Petitot dans l'équipe ([#161](https://github.com/MTES-MCT/camino-ui/issues/161)) ([538d51b](https://github.com/MTES-MCT/camino-ui/commit/538d51baf018d9cc8c7e9ef2066d4c64f76d5bbd)) + + +### Bug Fixes + +* **statistiques:** corrige l’unité de la statistique Protection de l’environnement ([25c6ef4](https://github.com/MTES-MCT/camino-ui/commit/25c6ef4860eb21dd0f02670c66ef42f1b7b48960)) +* affiche l'étiquette des étapes incluses et exclues ([#172](https://github.com/MTES-MCT/camino-ui/issues/172)) ([fa2d3ad](https://github.com/MTES-MCT/camino-ui/commit/fa2d3adcb7d4e19167ef983d52b4b59a946b760f)) +* corrige des fautes remarques ([e828c5d](https://github.com/MTES-MCT/camino-ui/commit/e828c5d4a3e2c6b7653bbdfc3d7a87a98924d1f5)) +* corrige l'affichage des statistiques ([#176](https://github.com/MTES-MCT/camino-ui/issues/176)) ([24d47c4](https://github.com/MTES-MCT/camino-ui/commit/24d47c4fa668c23e1875d07744a20bd471b2abff)) +* corrige la mise en page des statistiques ([#175](https://github.com/MTES-MCT/camino-ui/issues/175)) ([d7e35d4](https://github.com/MTES-MCT/camino-ui/commit/d7e35d4fc8ab8306916509b888f34e12020aba83)) +* **activité:** corrige le dépot des rapports d’activités qui n’ont pas de document ([#160](https://github.com/MTES-MCT/camino-ui/issues/160)) ([71b7854](https://github.com/MTES-MCT/camino-ui/commit/71b78541ba466908a5c5f9076068b92fd3e8fc37)) +* **coordonnées:** enlève la valeur par défaut ([#171](https://github.com/MTES-MCT/camino-ui/issues/171)) ([286a1ea](https://github.com/MTES-MCT/camino-ui/commit/286a1ea4f620a94dc4874f925578f8cb4393f682)) +* **démarches:** améliore l’affichage des filtres d’étapes ([#174](https://github.com/MTES-MCT/camino-ui/issues/174)) ([9f9f15a](https://github.com/MTES-MCT/camino-ui/commit/9f9f15af22fae4e17ab17f07ff1b2b1a489fdb2f)) +* corrige l'affichage des pages stats ([45a73fc](https://github.com/MTES-MCT/camino-ui/commit/45a73fcc8691911dd9ab6fa194bf3e27ad131eb2)) +* **activité:** permet de valider les rapports d’activités où tous les champs sont optionnels ([#162](https://github.com/MTES-MCT/camino-ui/issues/162)) ([e5d167a](https://github.com/MTES-MCT/camino-ui/commit/e5d167aba3ed6d266f52102b6bc1a6b23b86355d)) +* **stats:** améliore la page statistiques ([#164](https://github.com/MTES-MCT/camino-ui/issues/164)) ([2721bd2](https://github.com/MTES-MCT/camino-ui/commit/2721bd25ba4c81cbf39ea22ebb6fbe502b58068a)) + +### [0.22.44](https://github.com/MTES-MCT/camino-ui/compare/v0.22.43...v0.22.44) (2020-08-27) + + +### Features + +* ajoute Nicolas Petitot dans l'équipe ([#161](https://github.com/MTES-MCT/camino-ui/issues/161)) ([538d51b](https://github.com/MTES-MCT/camino-ui/commit/538d51baf018d9cc8c7e9ef2066d4c64f76d5bbd)) + + +### Bug Fixes + +* **activité:** corrige le dépot des rapports d’activités qui n’ont pas de document ([#160](https://github.com/MTES-MCT/camino-ui/issues/160)) ([71b7854](https://github.com/MTES-MCT/camino-ui/commit/71b78541ba466908a5c5f9076068b92fd3e8fc37)) +* **activité:** permet de valider les rapports d’activités où tous les champs sont optionnels ([#162](https://github.com/MTES-MCT/camino-ui/issues/162)) ([e5d167a](https://github.com/MTES-MCT/camino-ui/commit/e5d167aba3ed6d266f52102b6bc1a6b23b86355d)) + +### [0.22.43](https://github.com/MTES-MCT/camino-ui/compare/v0.22.42...v0.22.43) (2020-08-04) + + +### Features + +* ajoute les travaux ([#156](https://github.com/MTES-MCT/camino-ui/issues/156)) ([799ad37](https://github.com/MTES-MCT/camino-ui/commit/799ad374eb7b7db7f3cb28bd5fa88a84a2c8a378)) +* **activités:** ajoute des documents lors de l'enregistrement ([a43852c](https://github.com/MTES-MCT/camino-ui/commit/a43852c9f84ba9b786c2bcfd73d406fe6629a7f3)) + + +### Bug Fixes + +* **activité:** masque le bouton d'ajout de document ([506a472](https://github.com/MTES-MCT/camino-ui/commit/506a4726f7435b3dd775acf1b00001ce98571480)) +* **date:** change la date maximum du selecteur ([f99091a](https://github.com/MTES-MCT/camino-ui/commit/f99091a0a5cd61866184ed7924181e1a3aa1cbef)) +* corrige l'upload ([6d048d4](https://github.com/MTES-MCT/camino-ui/commit/6d048d4fb86c3a4a0aea20e093c53db32ea18a2e)) +* corrige les pages 404 ([8203e97](https://github.com/MTES-MCT/camino-ui/commit/8203e97305b8f2e7af332e7a8818e7d58dde8ab4)) + +### [0.22.42](https://github.com/MTES-MCT/camino-ui/compare/v0.22.40...v0.22.42) (2020-07-23) + + +### Features + +* enregistre l'ordre des substances ([316b172](https://github.com/MTES-MCT/camino-ui/commit/316b17227cd5f48bbda745f0174e3d320168c258)) + + +### Bug Fixes + +* corrige le téléchargement des documents ([b8dca70](https://github.com/MTES-MCT/camino-ui/commit/b8dca701052c220787fee266a0168c723797d071)) + +### [0.22.41](https://github.com/MTES-MCT/camino-ui/compare/v0.22.40...v0.22.41) (2020-07-22) + +### [0.22.40](https://github.com/MTES-MCT/camino-ui/compare/v0.22.39...v0.22.40) (2020-07-22) + +### [0.22.39](https://github.com/MTES-MCT/camino-ui/compare/v0.22.37...v0.22.39) (2020-07-22) + + +### Features + +* **activités:** ajoute des filtres ([#144](https://github.com/MTES-MCT/camino-ui/issues/144)) ([2541dd7](https://github.com/MTES-MCT/camino-ui/commit/2541dd7025e80aba85e3e5de34b97bbd07cbb7ce)) + + +### Bug Fixes + +* affiche un message d'erreur explicite si l'api ne répond pas ([18117fb](https://github.com/MTES-MCT/camino-ui/commit/18117fbfb48b67c6c2c75b17d873f14edd1777dd)) +* **filtres:** corrige une erreur "navigation redondante" ([#146](https://github.com/MTES-MCT/camino-ui/issues/146)) ([a751573](https://github.com/MTES-MCT/camino-ui/commit/a7515734f43f5f26faa5800956acae42f750703b)) +* **footer:** renomme le lien vers la documentation ([#147](https://github.com/MTES-MCT/camino-ui/issues/147)) ([ec945e8](https://github.com/MTES-MCT/camino-ui/commit/ec945e842ad0318cdebf51adae895d4b82bb6d35)) +* **glossaire:** corrige la couleur des statuts de titre ([#148](https://github.com/MTES-MCT/camino-ui/issues/148)) ([1a40c00](https://github.com/MTES-MCT/camino-ui/commit/1a40c00dbc35d86de5b4e62995e9d335d4abb7f8)) + +### [0.22.38](https://github.com/MTES-MCT/camino-ui/compare/v0.22.37...v0.22.38) (2020-07-15) + + +### Features + +* **activités:** ajoute des filtres ([#144](https://github.com/MTES-MCT/camino-ui/issues/144)) ([2541dd7](https://github.com/MTES-MCT/camino-ui/commit/2541dd7025e80aba85e3e5de34b97bbd07cbb7ce)) + + +### Bug Fixes + +* **filtres:** corrige une erreur "navigation redondante" ([#146](https://github.com/MTES-MCT/camino-ui/issues/146)) ([a751573](https://github.com/MTES-MCT/camino-ui/commit/a7515734f43f5f26faa5800956acae42f750703b)) +* **footer:** renomme le lien vers la documentation ([#147](https://github.com/MTES-MCT/camino-ui/issues/147)) ([ec945e8](https://github.com/MTES-MCT/camino-ui/commit/ec945e842ad0318cdebf51adae895d4b82bb6d35)) +* **glossaire:** corrige la couleur des statuts de titre ([#148](https://github.com/MTES-MCT/camino-ui/issues/148)) ([1a40c00](https://github.com/MTES-MCT/camino-ui/commit/1a40c00dbc35d86de5b4e62995e9d335d4abb7f8)) + +### [0.22.37](https://github.com/MTES-MCT/camino-ui/compare/v0.22.36...v0.22.37) (2020-07-01) + + +### Features + +* récupère la couleur des statuts des démarches ([#145](https://github.com/MTES-MCT/camino-ui/issues/145)) ([29ab1e6](https://github.com/MTES-MCT/camino-ui/commit/29ab1e6bb5d6d3ca8c0518916785046d9e776242)) +* **documentation:** ajoute un lien dans le footer ([#143](https://github.com/MTES-MCT/camino-ui/issues/143)) ([a244efa](https://github.com/MTES-MCT/camino-ui/commit/a244efa47eb2a3b48ed3dca5cbf70a5a2cc3e4d5)) +* **glossaire:** ajoute un sommaire et met en page ([#138](https://github.com/MTES-MCT/camino-ui/issues/138)) ([ec05ec5](https://github.com/MTES-MCT/camino-ui/commit/ec05ec5395b75fd41dc126b7e610ac5523a6bcbb)) +* **titres:** ajoute la pagination côté serveur sur la liste de titres ([#131](https://github.com/MTES-MCT/camino-ui/issues/131)) ([1d0f1be](https://github.com/MTES-MCT/camino-ui/commit/1d0f1bec5817011cbf61c944f8708294c18b417d)) +* **titres:** requête les titres dans un périmètre ([#136](https://github.com/MTES-MCT/camino-ui/issues/136)) ([40b9076](https://github.com/MTES-MCT/camino-ui/commit/40b9076595bdeeea8f0017ff1046c19718c59d0c)) + + +### Bug Fixes + +* met en forme les listes ([77100f2](https://github.com/MTES-MCT/camino-ui/commit/77100f2063837cbbc014a408b23342e7289510d8)) +* **carte:** corrige une erreur sur les motifs ([f71aa23](https://github.com/MTES-MCT/camino-ui/commit/f71aa23f2e0279537c6293c14a3a7f62f12d8174)) +* **documents:** corrige l'affichage de l'étiquette ([680a07b](https://github.com/MTES-MCT/camino-ui/commit/680a07b24b59898f358ef29ca94993be8ef9eb59)) +* **documents:** n'affiche l'étiquette que si le parent est modifiable ([#135](https://github.com/MTES-MCT/camino-ui/issues/135)) ([bf97b64](https://github.com/MTES-MCT/camino-ui/commit/bf97b6417fc82722922b434b5c3db7dfa9d36b3a)) +* **entreprise:** corrige une erreur sur la liste de titre ([340bf66](https://github.com/MTES-MCT/camino-ui/commit/340bf6625f7dc5903f1c12c5ab8e700a97f40282)) +* **titres:** empêche de changer de vue pendant le chargement ([#141](https://github.com/MTES-MCT/camino-ui/issues/141)) ([201ba07](https://github.com/MTES-MCT/camino-ui/commit/201ba070c3ba5717c18035a7d1eaed712b0c2d13)) +* **ui:** corrige une erreur bloquante sur IE11 ([#142](https://github.com/MTES-MCT/camino-ui/issues/142)) ([17d0854](https://github.com/MTES-MCT/camino-ui/commit/17d08549044443d4a60c79d5bcb87e664e2e9eb5)) +* corrige le chargement des pages ([#140](https://github.com/MTES-MCT/camino-ui/issues/140)) ([7a3737d](https://github.com/MTES-MCT/camino-ui/commit/7a3737d20c8a3436d9284e6a4febded0db7b0358)) +* modifie le lien vers la documentation des flux ([#134](https://github.com/MTES-MCT/camino-ui/issues/134)) ([f2906e5](https://github.com/MTES-MCT/camino-ui/commit/f2906e5510a0716b25bb36737b4fa2c2da584034)) +* recharge les titres lorsque la position sur la carte change ([#137](https://github.com/MTES-MCT/camino-ui/issues/137)) ([19bba1b](https://github.com/MTES-MCT/camino-ui/commit/19bba1b157f6043841458fb84f7e14b5dbaeb72d)) +* **titres:** corrige l'affichage de la table ([5be4604](https://github.com/MTES-MCT/camino-ui/commit/5be4604abcf5a66eea4b60c92f17a931820ab76d)) + +### [0.22.36](https://github.com/MTES-MCT/camino-ui/compare/v0.22.35...v0.22.36) (2020-06-17) + + +### Features + +* **carte:** affiche le nom du titulaire sur un titre ([3de3459](https://github.com/MTES-MCT/camino-ui/commit/3de3459b217d8e81d98efe04e7dac8a5e4057a3e)) +* **carte:** propose une option pour désactiver les marqueurs ([87a8468](https://github.com/MTES-MCT/camino-ui/commit/87a84682ed82469d0ff9e982b4c34531c4eee26a)) +* crée un nouveau sélecteur de date ([#130](https://github.com/MTES-MCT/camino-ui/issues/130)) ([9911e66](https://github.com/MTES-MCT/camino-ui/commit/9911e662d31043bc72d0b3f55207f6e8f662043c)) +* **utilisateurs:** rassemble les champs 'noms' et 'prénoms' du filtre en un seul champ ([#129](https://github.com/MTES-MCT/camino-ui/issues/129)) ([f8f2a1b](https://github.com/MTES-MCT/camino-ui/commit/f8f2a1bf9f97152b3fda07e7742c67cc387f6bfa)) + + +### Bug Fixes + +* **activités:** corrige une erreur lorsqu'un champs numérique est vide ([#132](https://github.com/MTES-MCT/camino-ui/issues/132)) ([28ee7f4](https://github.com/MTES-MCT/camino-ui/commit/28ee7f4c63afef097082b6c448fa344b14608996)) +* **document:** corrige une erreur lors du choix de la visibilité ([371b6ab](https://github.com/MTES-MCT/camino-ui/commit/371b6ab0839250f5e8767ea96538e21058eb24e2)) +* corrige une erreur lors du rechargement d'une page titre ([bf6803f](https://github.com/MTES-MCT/camino-ui/commit/bf6803fa1918c22f5f84489ee493d46491361ec7)) + +### [0.22.35](https://github.com/MTES-MCT/camino-ui/compare/v0.22.34...v0.22.35) (2020-06-10) + + +### Features + +* ajoute une page glossaire ([#124](https://github.com/MTES-MCT/camino-ui/issues/124)) ([3c01fe2](https://github.com/MTES-MCT/camino-ui/commit/3c01fe21c9cfa7033a24284889098f37c6cb3991)) +* **activités:** ajoute le filtre par statut de rapport d'activité ([#120](https://github.com/MTES-MCT/camino-ui/issues/120)) ([b99fd6b](https://github.com/MTES-MCT/camino-ui/commit/b99fd6bd2555027a7a9939af8d3753c3e5cf51cc)) +* ajoute des documents sur les entreprises et activités ([#121](https://github.com/MTES-MCT/camino-ui/issues/121)) ([f6b7992](https://github.com/MTES-MCT/camino-ui/commit/f6b7992cf16e538dd2c75bbd37308e1a86e4adef)) + + +### Bug Fixes + +* corirge l'orthographe de `inclus` ([#126](https://github.com/MTES-MCT/camino-ui/issues/126)) ([5d52a5f](https://github.com/MTES-MCT/camino-ui/commit/5d52a5f89fcd2d9c741fd25c19b3937db043ac46)) +* corrige l'édition des documents pour les entreprises ([9fbcd74](https://github.com/MTES-MCT/camino-ui/commit/9fbcd740980d1c5d6b98a4761bd8ce973a1df06e)) +* corrige une erreur de permissions lors de l'ajout d'un document ([04b089f](https://github.com/MTES-MCT/camino-ui/commit/04b089f8c26c1a8248e3592e6def588c130156c5)) +* **démarches:** affiche le bouton "téléchargements" ([#127](https://github.com/MTES-MCT/camino-ui/issues/127)) ([9278101](https://github.com/MTES-MCT/camino-ui/commit/9278101f717d0893fd2478b8789fe7c86c216d6e)) +* **filtres:** corrige une erreur sur les cases à cocher ([#123](https://github.com/MTES-MCT/camino-ui/issues/123)) ([66f7d0b](https://github.com/MTES-MCT/camino-ui/commit/66f7d0b8e50268ed99b8216b7248c6b8786970e1)) +* **stats:** corrige le format de rendu des mots-clés de recherche ([#122](https://github.com/MTES-MCT/camino-ui/issues/122)) ([569c117](https://github.com/MTES-MCT/camino-ui/commit/569c117da9ed98aa85cf3ffb1ac4c669cf06a48e)) + +### [0.22.34](https://github.com/MTES-MCT/camino-ui/compare/v0.22.33...v0.22.34) (2020-06-02) + + +### Bug Fixes + +* **matomo:** corrige le tracking des recherches ([#116](https://github.com/MTES-MCT/camino-ui/issues/116)) ([40d020b](https://github.com/MTES-MCT/camino-ui/commit/40d020b8dd8645f8088fc59a6c42006d5084a674)) +* affiche une erreur si un utilisateur déconnecté visite les pages `activités` et `utilisateurs` ([168333b](https://github.com/MTES-MCT/camino-ui/commit/168333b4472dd4a074b47acc816a0f4484157156)) + +### [0.22.33](https://github.com/MTES-MCT/camino-ui/compare/v0.22.32...v0.22.33) (2020-05-20) + + +### Features + +* **activités:** ajoute des filtres par noms, entreprises, etc. ([#111](https://github.com/MTES-MCT/camino-ui/issues/111)) ([97a1af9](https://github.com/MTES-MCT/camino-ui/commit/97a1af9993439ad4cc7131d8170c02e204a639af)) +* **entreprises:** gère les paramètres d'url ([#104](https://github.com/MTES-MCT/camino-ui/issues/104)) ([a845087](https://github.com/MTES-MCT/camino-ui/commit/a84508715908d3f3a11403d5094777b496fe14fa)) +* **footer:** ajoute un lien vers les tuto vidéos ([#110](https://github.com/MTES-MCT/camino-ui/issues/110)) ([e5dd61a](https://github.com/MTES-MCT/camino-ui/commit/e5dd61afc1dc8e6d6a32a746cc08e5d3a3da8c10)) +* **matomo:** améliore le paramétrage de Matomo ([#107](https://github.com/MTES-MCT/camino-ui/issues/107)) ([540241c](https://github.com/MTES-MCT/camino-ui/commit/540241c1116da2ff747ea1379c0bff80af7cac1c)) +* renomme les listes d'entreprises et d'activités en 'elements' ([#113](https://github.com/MTES-MCT/camino-ui/issues/113)) ([74c4b38](https://github.com/MTES-MCT/camino-ui/commit/74c4b38ee129dfc52e091b00556d8187baf67b24)) + + +### Bug Fixes + +* ajoute un fond sur les champs du formulaire de création de compte ([6173769](https://github.com/MTES-MCT/camino-ui/commit/617376913ab8035918afb867f32576112a41e10a)) +* corrige des problèmes d'affichage ([627756c](https://github.com/MTES-MCT/camino-ui/commit/627756c9e30bb9503eeca91f93ab3134b0f13656)) +* corrige l'édition d'utilisateur et d'étape ([7824d05](https://github.com/MTES-MCT/camino-ui/commit/7824d0507521127b2eca52210f07114427dfcc3b)) +* **activité:** recharge la page après la mise à jour ([#115](https://github.com/MTES-MCT/camino-ui/issues/115)) ([d81eb5f](https://github.com/MTES-MCT/camino-ui/commit/d81eb5f8065cc536659430fbf3d5b47e7f79cb69)) +* **carto:** rend visible le motif des autorisations de recherche ([cc44335](https://github.com/MTES-MCT/camino-ui/commit/cc44335fa0d03b33c8bc99ef6a3b4d7946fb8a88)) +* **documents:** empêche d'enregistrer si aucun type n'est sélectionné ([#112](https://github.com/MTES-MCT/camino-ui/issues/112)) ([46fcf95](https://github.com/MTES-MCT/camino-ui/commit/46fcf9597328f522079d3198e0140098490f9c73)) +* **menu:** désactive le lien lorsqu'on est sur la page correspondante ([4fc6651](https://github.com/MTES-MCT/camino-ui/commit/4fc6651109c4c158c4a343b4c1a342b3d10c38f5)) + +### [0.22.32](https://github.com/MTES-MCT/camino-ui/compare/v0.22.29...v0.22.32) (2020-05-18) + + +### Features + +* **utilisateurs:** gère les paramètres d'url ([#105](https://github.com/MTES-MCT/camino-ui/issues/105)) ([566d805](https://github.com/MTES-MCT/camino-ui/commit/566d805105aa517ebf63b819d22703ceaca22050)) +* télécharge les exports de données côté serveur ([#103](https://github.com/MTES-MCT/camino-ui/issues/103)) ([e7a87a4](https://github.com/MTES-MCT/camino-ui/commit/e7a87a4ba8a632a46da37cdf48dfacbec7495c84)) +* **démarches:** filtre par nom de titres, titulaires, substances, etc. ([#102](https://github.com/MTES-MCT/camino-ui/issues/102)) ([c4f84df](https://github.com/MTES-MCT/camino-ui/commit/c4f84df3487a181a8687c32f6bd647347c2cacfc)) +* **design:** améliore le style des statuts ([33892ab](https://github.com/MTES-MCT/camino-ui/commit/33892ab024880d5c1c471bbeeac4ed15af6bf15b)) +* ajoute le statut dans l'étiquette du titre ([24b69d3](https://github.com/MTES-MCT/camino-ui/commit/24b69d310e70a1304aaea4676bca4024c4f0839d)) +* optimise la hiérarchie des informations ([#100](https://github.com/MTES-MCT/camino-ui/issues/100)) ([eda6b69](https://github.com/MTES-MCT/camino-ui/commit/eda6b6935ed948b1ecbd8067adb3ad5fe8d9d961)) +* **activités:** gère les paramètres d'url ([#97](https://github.com/MTES-MCT/camino-ui/issues/97)) ([210488b](https://github.com/MTES-MCT/camino-ui/commit/210488bc8566585d1b38ddc76d2b0e9163386ccc)) + + +### Bug Fixes + +* **utilisateurs:** corrige le paramètre des permissions ([#108](https://github.com/MTES-MCT/camino-ui/issues/108)) ([44f192a](https://github.com/MTES-MCT/camino-ui/commit/44f192a26a087cc46eb5f5381823dd3285877d6b)) +* corrige le tri des démarches ([#106](https://github.com/MTES-MCT/camino-ui/issues/106)) ([54a3f23](https://github.com/MTES-MCT/camino-ui/commit/54a3f23fccc7d3b7f56895a1309fbc7294f4bb7a)) +* **design:** affiche la date en dehors du statut sur les étapes ([9844b80](https://github.com/MTES-MCT/camino-ui/commit/9844b80fbbc8078fe832580dd874fdbdb88c14a8)) +* **design:** corrige des problèmes de lisibilité ([ad3eeb9](https://github.com/MTES-MCT/camino-ui/commit/ad3eeb9bfeea3bc3c3bea07aae8dbaeddc359edf)) +* **utilisateur:** recharge la page si l'id change ([ad7d432](https://github.com/MTES-MCT/camino-ui/commit/ad7d43235760a9ab31710a36442c0c49fd16a374)) +* corrige des problèmes d'affichage ([226e602](https://github.com/MTES-MCT/camino-ui/commit/226e6021871388f368c6b0cb13e6a50b2584745c)) +* uniformise les marges ([c093486](https://github.com/MTES-MCT/camino-ui/commit/c093486dbf8921482c91a94450f509dc489af886)) + +### [0.22.31](https://github.com/MTES-MCT/camino-ui/compare/v0.22.30...v0.22.31) (2020-05-12) + + +### Features + +* télécharge les exports de données côté serveur ([#103](https://github.com/MTES-MCT/camino-ui/issues/103)) ([e7a87a4](https://github.com/MTES-MCT/camino-ui/commit/e7a87a4ba8a632a46da37cdf48dfacbec7495c84)) +* **démarches:** filtre par nom de titres, titulaires, substances, etc. ([#102](https://github.com/MTES-MCT/camino-ui/issues/102)) ([c4f84df](https://github.com/MTES-MCT/camino-ui/commit/c4f84df3487a181a8687c32f6bd647347c2cacfc)) + + +### Bug Fixes + +* corrige le tri des démarches ([#106](https://github.com/MTES-MCT/camino-ui/issues/106)) ([54a3f23](https://github.com/MTES-MCT/camino-ui/commit/54a3f23fccc7d3b7f56895a1309fbc7294f4bb7a)) + +### [0.22.30](https://github.com/MTES-MCT/camino-ui/compare/v0.22.29...v0.22.30) (2020-05-05) + + +### Features + +* **design:** améliore le style des statuts ([33892ab](https://github.com/MTES-MCT/camino-ui/commit/33892ab024880d5c1c471bbeeac4ed15af6bf15b)) +* ajoute le statut dans l'étiquette du titre ([24b69d3](https://github.com/MTES-MCT/camino-ui/commit/24b69d310e70a1304aaea4676bca4024c4f0839d)) +* optimise la hiérarchie des informations ([#100](https://github.com/MTES-MCT/camino-ui/issues/100)) ([eda6b69](https://github.com/MTES-MCT/camino-ui/commit/eda6b6935ed948b1ecbd8067adb3ad5fe8d9d961)) +* **activités:** gère les paramètres d'url ([#97](https://github.com/MTES-MCT/camino-ui/issues/97)) ([210488b](https://github.com/MTES-MCT/camino-ui/commit/210488bc8566585d1b38ddc76d2b0e9163386ccc)) + + +### Bug Fixes + +* **design:** affiche la date en dehors du statut sur les étapes ([9844b80](https://github.com/MTES-MCT/camino-ui/commit/9844b80fbbc8078fe832580dd874fdbdb88c14a8)) +* **design:** corrige des problèmes de lisibilité ([ad3eeb9](https://github.com/MTES-MCT/camino-ui/commit/ad3eeb9bfeea3bc3c3bea07aae8dbaeddc359edf)) +* **utilisateur:** recharge la page si l'id change ([ad7d432](https://github.com/MTES-MCT/camino-ui/commit/ad7d43235760a9ab31710a36442c0c49fd16a374)) +* corrige des problèmes d'affichage ([226e602](https://github.com/MTES-MCT/camino-ui/commit/226e6021871388f368c6b0cb13e6a50b2584745c)) +* uniformise les marges ([c093486](https://github.com/MTES-MCT/camino-ui/commit/c093486dbf8921482c91a94450f509dc489af886)) + +### [0.22.29](https://github.com/MTES-MCT/camino-ui/compare/v0.22.28...v0.22.29) (2020-04-27) + + +### Bug Fixes + +* corrige une erreur dans la config de l'url des titres ([88b03bc](https://github.com/MTES-MCT/camino-ui/commit/88b03bc99e42bd2a8b76d42ff3d3f138249e6f00)) + +### [0.22.28](https://github.com/MTES-MCT/camino-ui/compare/v0.22.27...v0.22.28) (2020-04-27) + + +### Features + +* gère les paramètres d'url pour les filtres etapesIncluses/etapesExclues ([#99](https://github.com/MTES-MCT/camino-ui/issues/99)) ([defadd9](https://github.com/MTES-MCT/camino-ui/commit/defadd9f03566cd29bbce46177a0fdfe43685ef2)) +* **demarches:** filtre par étapes incluses ou exclues ([#98](https://github.com/MTES-MCT/camino-ui/issues/98)) ([2ca1d88](https://github.com/MTES-MCT/camino-ui/commit/2ca1d88a3b6fcfde83916876a3c03a56e1c5c993)) +* ajoute un lien depuis l'utilisateur vers l'entreprise ([126e86f](https://github.com/MTES-MCT/camino-ui/commit/126e86f5461ba5c6c93cd28511ef225ba1c53293)) +* **carte:** précisie le message sur carte BRGM ([#95](https://github.com/MTES-MCT/camino-ui/issues/95)) ([96be248](https://github.com/MTES-MCT/camino-ui/commit/96be2489bfdbb97933a87e1e74eef9a87e591583)) + + +### Bug Fixes + +* corrige la pagination des tables ([#96](https://github.com/MTES-MCT/camino-ui/issues/96)) ([083ebaf](https://github.com/MTES-MCT/camino-ui/commit/083ebaf4a2dddfa6c611662b0bea0274c69a7906)) +* **stats:** corrige le suivi des téléchargements ([#94](https://github.com/MTES-MCT/camino-ui/issues/94)) ([87ba25f](https://github.com/MTES-MCT/camino-ui/commit/87ba25ffe0b944b190b6233c98b2e65e167edbc6)) + +### [0.22.27](https://github.com/MTES-MCT/camino-ui/compare/v0.22.26...v0.22.27) (2020-04-20) + + +### Features + +* **stats:** enregistre les actions utilisateurs ([#89](https://github.com/MTES-MCT/camino-ui/issues/89)) ([ade3835](https://github.com/MTES-MCT/camino-ui/commit/ade383521adaa5ba2ee3e85ecff7f605edc25d3b)) + + +### Bug Fixes + +* **stats:** corrige l'implémentation des trackers ([6735912](https://github.com/MTES-MCT/camino-ui/commit/6735912f6b77b9bc6d1b3210705c40895a36c968)) +* **stats:** corrige le paramètre site search ([a683bf7](https://github.com/MTES-MCT/camino-ui/commit/a683bf7ee5a7c376515bd9af932d40c7e884ceed)) +* **stats:** corrige les trackers ([45233fa](https://github.com/MTES-MCT/camino-ui/commit/45233fa9b5628563edfb7b5ca1a328c966e18332)) +* corrige une erreur s'il aucun type d'activité n'est retourné par l'API ([09ec1cb](https://github.com/MTES-MCT/camino-ui/commit/09ec1cb47ac8f5c3ada579586cfa3b34edd67014)) +* **utilisateur:** restreint la visibilité de l'édition du mot de passe ([#93](https://github.com/MTES-MCT/camino-ui/issues/93)) ([e96c8ce](https://github.com/MTES-MCT/camino-ui/commit/e96c8cee1579e6cd1457821dd59c23f40a8ea9a9)) +* ajoute une csp 'unsafe eval' qui génère une erreur dans firefox ([56048ac](https://github.com/MTES-MCT/camino-ui/commit/56048ac6564dd7dfe0f5956de6faab81ab8fe277)) +* corrige une requête en doublon lors du chargement de l'app ([f759dcb](https://github.com/MTES-MCT/camino-ui/commit/f759dcb3e3736da7fd4f481489c63f0175dfc037)) +* enlève la position fixe du footer de la popup sur mobile ([36c0e09](https://github.com/MTES-MCT/camino-ui/commit/36c0e09f3e8dca93d5f2a1fea415c656560151f7)) +* vérifie les paramètres d'url ([#92](https://github.com/MTES-MCT/camino-ui/issues/92)) ([769378a](https://github.com/MTES-MCT/camino-ui/commit/769378a46779f2e06247e6c7cf3b512303b3018b)) + +### [0.22.26](https://github.com/MTES-MCT/camino-ui/compare/v0.22.25...v0.22.26) (2020-04-09) + + +### Bug Fixes + +* ajoute des paramètres d'url numériques ([8e8bfe6](https://github.com/MTES-MCT/camino-ui/commit/8e8bfe6e20dc890c2b6b8e2bbc72222d74f34b15)) +* corrige l'affichage des selects ([ce3cac7](https://github.com/MTES-MCT/camino-ui/commit/ce3cac79423abb9d13283d14199bef61174c455e)) +* corrige une erreur lorsqu'il y a un nombre dans un paramètre d'url ([adb7ae2](https://github.com/MTES-MCT/camino-ui/commit/adb7ae2644abfc95f3e1b258b03cc47a334192b7)) +* n'autorise qu'une administration par utilisateur ([3200a95](https://github.com/MTES-MCT/camino-ui/commit/3200a95b0c19bf34d999275d76a20554aff0d229)) + +### [0.22.25](https://github.com/MTES-MCT/camino-ui/compare/v0.22.24...v0.22.25) (2020-03-30) + + +### Features + +* **export:** exporte la nature des titres (exploration ou exploitation) ([#85](https://github.com/MTES-MCT/camino-ui/issues/85)) ([1c43cc9](https://github.com/MTES-MCT/camino-ui/commit/1c43cc90d0d0c2aa2480058b92c6eae408760a9e)) +* ajoute des textures sur les périmètres des titres ([#86](https://github.com/MTES-MCT/camino-ui/issues/86)) ([7f55870](https://github.com/MTES-MCT/camino-ui/commit/7f558706932ca2ab251410553dfe79f8b60bc793)) + + +### Bug Fixes + +* corrige une erreur dans le nom d'une action ([f59a099](https://github.com/MTES-MCT/camino-ui/commit/f59a099c4298d493943554bfbbd2cad5c561ba76)) + +### [0.22.24](https://github.com/MTES-MCT/camino-ui/compare/v0.22.23...v0.22.24) (2020-03-23) + + +### Features + +* ajoute l'authentification avec Cerbère ([#84](https://github.com/MTES-MCT/camino-ui/issues/84)) ([7fcf5cc](https://github.com/MTES-MCT/camino-ui/commit/7fcf5cc0ccede83d36be08520d1dbcd4bfdb32fd)) +* utilise l'api pour obtenir l'url de Cerbère ([8cd88d5](https://github.com/MTES-MCT/camino-ui/commit/8cd88d56f34b3a2c10854abd6bae8b1b3d9ee139)) + +### [0.22.23](https://github.com/MTES-MCT/camino-ui/compare/v0.22.22...v0.22.23) (2020-03-12) + + +### Features + +* **api:** affiche les données spécifiques remontées à la racine titre ([#80](https://github.com/MTES-MCT/camino-ui/issues/80)) ([b03c903](https://github.com/MTES-MCT/camino-ui/commit/b03c903254a3b124ac8d112b11d13b8a2daa92d2)) +* **étape:** affiche les sections dont le contenu est vide ([44c32dd](https://github.com/MTES-MCT/camino-ui/commit/44c32dd645e40b7adacf5caad32a6bf84fe91e4d)) + + +### Bug Fixes + +* **démarches:** évite une double requête lors du changement de filtres ([a359c62](https://github.com/MTES-MCT/camino-ui/commit/a359c62f982c0544984ec8f92606de9605a64989)) +* affiche les contenus non remplis ([#82](https://github.com/MTES-MCT/camino-ui/issues/82)) ([8385fb0](https://github.com/MTES-MCT/camino-ui/commit/8385fb08408e49324dc65b732cf1cdb6f943120d)) +* corrige l'affichage des sections d'activités ([4bbb454](https://github.com/MTES-MCT/camino-ui/commit/4bbb454e1306157849183a47ab8c87f7708af142)) +* corrige l'affichage du contenu d'étapes avec sections spécifiques ([#79](https://github.com/MTES-MCT/camino-ui/issues/79)) ([bac1303](https://github.com/MTES-MCT/camino-ui/commit/bac13035fc260c72e98890f1abee7b2b39c7c448)) +* corrige l'édition d'un document ([d28aa57](https://github.com/MTES-MCT/camino-ui/commit/d28aa57ec404f04cd1d9aa267d7da0e2f5027341)) + +### [0.22.22](https://github.com/MTES-MCT/camino-ui/compare/v0.22.21...v0.22.22) (2020-02-27) + + +### Features + +* affiche le bouton d'ajout d'étapes en fonction des droits ([2bb9b85](https://github.com/MTES-MCT/camino-ui/commit/2bb9b856ff0fe2c6cb48e64bc6f164935695be1f)) +* affiche une liste de démarches ([b8bb3da](https://github.com/MTES-MCT/camino-ui/commit/b8bb3dab3f98073d78dd3b3714e80df45e0f8360)) + + +### Bug Fixes + +* corrige le style des boutons ([a9105c6](https://github.com/MTES-MCT/camino-ui/commit/a9105c67bc0e2442d5916ca50cdc19a202959497)) + +### [0.22.21](https://github.com/MTES-MCT/camino-ui/compare/v0.22.20...v0.22.21) (2020-02-20) + + +### Features + +* ajoute la surface dans la liste des propriétés d'une étape ([#73](https://github.com/MTES-MCT/camino-ui/issues/73)) ([9500538](https://github.com/MTES-MCT/camino-ui/commit/9500538d329ad1e38d2d0f93ddc220ea568e40cd)) +* interdit d'éditer les administrations dont l'utilisateur ne fait pas partie ([6c25a2c](https://github.com/MTES-MCT/camino-ui/commit/6c25a2cc909d9f1d3c3bf0db499b43c6a7a8dbed)) + + +### Bug Fixes + +* corrige des erreurs du au mauvais usage de la prop "native" ([39e9d8c](https://github.com/MTES-MCT/camino-ui/commit/39e9d8cf7ece7b1a845333e48f0465276ae6e36c)) +* corrige l'affichage des administrations pour les super users ([b0c36de](https://github.com/MTES-MCT/camino-ui/commit/b0c36de536fc167ce44cacb3ad499e6c40da89ea)) +* corrige la création d'étape ([8f7d6fd](https://github.com/MTES-MCT/camino-ui/commit/8f7d6fd43924e61da53ae8259754d86c1d3ced5f)) +* n'ajoute que les administrations sélectionnables dans la liste ([1732722](https://github.com/MTES-MCT/camino-ui/commit/1732722441cd35c302708db5db5da8552bca3dfa)) +* n'utilise pas le cache lors du chargement des métas ([a801882](https://github.com/MTES-MCT/camino-ui/commit/a8018826e7b2fd4c030475bf6a7e6732a6865e16)) +* **ui:** affiche le type de titre vue liste et fiche titre ([#75](https://github.com/MTES-MCT/camino-ui/issues/75)) ([5c21318](https://github.com/MTES-MCT/camino-ui/commit/5c21318ec0199f0e6a15d24f70123cedb577f1e3)) + +### [0.22.20](https://github.com/MTES-MCT/camino-ui/compare/v0.22.19...v0.22.20) (2020-02-11) + + +### Features + +* **mentions-legales:** ajouter le directeur de publication ONF ([#69](https://github.com/MTES-MCT/camino-ui/issues/69)) ([02ad85e](https://github.com/MTES-MCT/camino-ui/commit/02ad85ea6f2163bff890a9b959ab3ae4b6fa109c)) +* ajoute des types aux types de titres ([#70](https://github.com/MTES-MCT/camino-ui/issues/70)) ([7578314](https://github.com/MTES-MCT/camino-ui/commit/757831489b9e4324e2ff6aba4ca781fb349d6326)) + + +### Bug Fixes + +* corrige l'affichage du type dans les téléchargements ([0a39115](https://github.com/MTES-MCT/camino-ui/commit/0a3911536e870b0979ddfffb8056e62ad351ba57)) +* corrige la création d'un utilisateur ([#72](https://github.com/MTES-MCT/camino-ui/issues/72)) ([a81998f](https://github.com/MTES-MCT/camino-ui/commit/a81998fb42c4316c84ecfb26d00129c33c76b199)) +* test si les élémnts sont présents dans la page ([9cee314](https://github.com/MTES-MCT/camino-ui/commit/9cee314e070ccbf19ac87e18ea01e29f9ad8ecd7)) + +### [0.22.19](https://github.com/MTES-MCT/camino-ui/compare/v0.22.18...v0.22.19) (2020-01-31) + + +### Features + +* **activité:** met en page le contenu d'une activité ([010f2bc](https://github.com/MTES-MCT/camino-ui/commit/010f2bcfb35ac8d31cec7ae3a17baf72a213bb59)) +* **étape:** affiche le contenu des sections ([9a8ca52](https://github.com/MTES-MCT/camino-ui/commit/9a8ca527ad3ada7392078cba0d7c2b4cd00971e4)) +* **mentions légales:** modifie les directeurs de publication ([#64](https://github.com/MTES-MCT/camino-ui/issues/64)) ([c55aaf7](https://github.com/MTES-MCT/camino-ui/commit/c55aaf7b62fce61fb6a2b4d1e3c240e9b3da94ae)) +* affiche un bloc pour signaler un titre en doublon ([394af90](https://github.com/MTES-MCT/camino-ui/commit/394af90bf105737ddb06d422676ab672214c9542)) + + +### Bug Fixes + +* affiche le bouton de suppression d'un fichier ([2efd5ba](https://github.com/MTES-MCT/camino-ui/commit/2efd5badc7a9a9307ee9fa35156174d3ef2aa9dd)) +* change le message en cas de titre en doublon ([7c00b1f](https://github.com/MTES-MCT/camino-ui/commit/7c00b1f2fe378f3d883fdeb57bb3841ff8c00565)) +* corrige l'affichage d'une activité ([0f8fad7](https://github.com/MTES-MCT/camino-ui/commit/0f8fad7dd80509dadf2e8070202e92ab29a22ed4)) +* corrige l'affichage d'une liste de titres avec des params d'url ([6863489](https://github.com/MTES-MCT/camino-ui/commit/6863489411b84cf539dbbc8f243b5192d0fb01d3)) +* corrige l'affichage du contenu d'étape ([2375550](https://github.com/MTES-MCT/camino-ui/commit/2375550075f987fdc4666f2f2b72a7a327dbbbbf)) +* **utilisateur:** affiche les permissions dans la popup d'édition ([6a91f04](https://github.com/MTES-MCT/camino-ui/commit/6a91f040b9a4d441cbdbea644c7b5f58eba1e5ee)) +* corrige l'enregistrement ([5fde1ba](https://github.com/MTES-MCT/camino-ui/commit/5fde1badc011ffc45f39b3c9a5f7348ef8c93c63)) +* **api:** affiche l'édition des documents en fonction des droits ([#65](https://github.com/MTES-MCT/camino-ui/issues/65)) ([1690d19](https://github.com/MTES-MCT/camino-ui/commit/1690d19819385827044b3074291f6910f5802f06)) +* **étape:** affiche le contenu de l'étape dans l'accordéon ([7beefbf](https://github.com/MTES-MCT/camino-ui/commit/7beefbf3f8e9ab3db47f595308ede34ed1283e61)) + +### [0.22.18](https://github.com/MTES-MCT/camino-ui/compare/v0.22.17...v0.22.18) (2020-01-20) + + +### Bug Fixes + +* supprime un bloc dans l'en†ête de page ([366450e](https://github.com/MTES-MCT/camino-ui/commit/366450e53eaa0284dd2a93e02b65325bdddcf158)) + +### [0.22.17](https://github.com/MTES-MCT/camino-ui/compare/v0.22.16...v0.22.17) (2020-01-20) + + +### Features + +* supprime le badeau de grève ([538f394](https://github.com/MTES-MCT/camino-ui/commit/538f394f99704f68f811cbcae844d592eddc7dc5)) + +### [0.22.16](https://github.com/MTES-MCT/camino-ui/compare/v0.22.15...v0.22.16) (2020-01-20) + + +### Features + +* affiche les amodiataires sur la page entreprise ([a943dc1](https://github.com/MTES-MCT/camino-ui/commit/a943dc142c99492b6ccba2e9b258122da9f0236f)) +* change l'ordre des éléments dans le menu ([f351148](https://github.com/MTES-MCT/camino-ui/commit/f351148025b18b32ca5f1cc79989da4921a46322)) +* **activités:** ajoute un lien dans le menu vers la page des activités ([#63](https://github.com/MTES-MCT/camino-ui/issues/63)) ([ebd2927](https://github.com/MTES-MCT/camino-ui/commit/ebd29274638112849ac97b9bcbcd4a8b59db248d)) +* affiche un bandeau de soutient à la grève ([e7e6f34](https://github.com/MTES-MCT/camino-ui/commit/e7e6f348adea58bd52419258585d54199a8689cc)) +* ajoute le fond de carte ign cadastre ([6c46595](https://github.com/MTES-MCT/camino-ui/commit/6c46595f111b701c4e3b73b9e3a7b680abe811b8)) + + +### Bug Fixes + +* **documents:** affiche l'option "public" ([d778777](https://github.com/MTES-MCT/camino-ui/commit/d778777066844504b4d378bf7f8f4424a4166e2b)) +* construit les fichiers à télécharger au moment du clic ([#62](https://github.com/MTES-MCT/camino-ui/issues/62)) ([ed64e51](https://github.com/MTES-MCT/camino-ui/commit/ed64e51e949778eb7da0a46ab55314844af16c2a)) +* corrige l'affichage du fond de carte parcelles cadastrales ([2a2fd5b](https://github.com/MTES-MCT/camino-ui/commit/2a2fd5b964f61eaba1e1dd73a8917551ce073811)) +* corrige le schéma graphql ([1c277f0](https://github.com/MTES-MCT/camino-ui/commit/1c277f019959cc8c4cbca30c2d80b4b0ea91dfbe)) +* corrige les téléchargements volumineux ([4ce7b03](https://github.com/MTES-MCT/camino-ui/commit/4ce7b03b31b92bf7d4d80f6955fe3205845429f7)) +* reformule le contenu du bandeau ([4f5dc45](https://github.com/MTES-MCT/camino-ui/commit/4f5dc454edb5f859a630609398b779546316a2cb)) +* simplifie le message du bandeau ([7f1da51](https://github.com/MTES-MCT/camino-ui/commit/7f1da512f826932ff96621d170a452a5b5ea69b1)) +* **édition d'étape:** corrige l'effacement de contenu lorsqu'on modifie la date ([#60](https://github.com/MTES-MCT/camino-ui/issues/60)) ([4ecb33e](https://github.com/MTES-MCT/camino-ui/commit/4ecb33e6bdf1d9c327580722422d07d3864e5d4a)) +* **recherche:** prend en compte les tirets dans les champs texte ([#61](https://github.com/MTES-MCT/camino-ui/issues/61)) ([5f79885](https://github.com/MTES-MCT/camino-ui/commit/5f7988562a2c025895dae3c5e05a5bc632494f72)) + +### [0.22.15](https://github.com/MTES-MCT/camino-ui/compare/v0.22.14...v0.22.15) (2019-12-20) + + +### Bug Fixes + +* tests ([7e668f7](https://github.com/MTES-MCT/camino-ui/commit/7e668f7b2f6a2f41efd58af80d918f58aa150b6e)) + +### [0.22.14](https://github.com/MTES-MCT/camino-ui/compare/v0.22.13...v0.22.14) (2019-12-20) + + +### Bug Fixes + +* **activités:** corrige l'affichage des rapports annuels ([914b31c](https://github.com/MTES-MCT/camino-ui/commit/914b31cbacebb0b842a45a2e19751b288acccabd)) +* corrige l'ordre des métas ([#59](https://github.com/MTES-MCT/camino-ui/issues/59)) ([00a2c97](https://github.com/MTES-MCT/camino-ui/commit/00a2c970735b11b842e620772017ae22adfded76)) + +### [0.22.13](https://github.com/MTES-MCT/camino-ui/compare/v0.22.12...v0.22.13) (2019-12-19) + + +### Features + +* **édition:** ajoute un champs date ([9705892](https://github.com/MTES-MCT/camino-ui/commit/970589248527e4a088bbe9e31373b1d4485dbcd7)) + +### [0.22.12](https://github.com/MTES-MCT/camino-ui/compare/v0.22.11...v0.22.12) (2019-12-10) + + +### Features + +* ajoute la surface couverte par le titre dans l'export CSV ([98929e9](https://github.com/MTES-MCT/camino-ui/commit/98929e9b755e92413bf88f16a634ee3699ee3892)) +* ajoute une interface pour les activités ([#56](https://github.com/MTES-MCT/camino-ui/issues/56)) ([d65b2d8](https://github.com/MTES-MCT/camino-ui/commit/d65b2d8390f9dd045caddabdd1d9dfc2222de0a9)) +* **export csv:** ajoute l'adresse des entreprises et amodiataires ([#54](https://github.com/MTES-MCT/camino-ui/issues/54)) ([1fbe623](https://github.com/MTES-MCT/camino-ui/commit/1fbe62344891169848719105a8952ee388df0954)) + + +### Bug Fixes + +* affiche les entreprise dans l'édition d'étape ([a357a6e](https://github.com/MTES-MCT/camino-ui/commit/a357a6e6724bbe439a48e80b0d7240ef9070bf21)) +* corrige une erreur lors du retour sur la page activités ([e26f81b](https://github.com/MTES-MCT/camino-ui/commit/e26f81bd8d0d21d032c905c8b7eda4ea6fe9f83c)) + +### [0.22.11](https://github.com/MTES-MCT/camino-ui/compare/v0.22.8...v0.22.11) (2019-12-06) + + +### Features + +* ajoute deux fonds de carte Géoportail ([#51](https://github.com/MTES-MCT/camino-ui/issues/51)) ([6e105d3](https://github.com/MTES-MCT/camino-ui/commit/6e105d388bf73677da198c88cf65bb48c7b8f2b9)) +* **édition:** n'affiche que les sections ayant du contenu lors de la prévisualisation ([c2143d7](https://github.com/MTES-MCT/camino-ui/commit/c2143d739df81f001ac2f68171ce37507ca160db)) +* **export csv:** ajoute les colonnes régions, départements et communes ([#52](https://github.com/MTES-MCT/camino-ui/issues/52)) ([75c7150](https://github.com/MTES-MCT/camino-ui/commit/75c7150c41768a945b7a84023c47fb10f50adab8)) +* **ui:** limite la liste des types de références métier ([#43](https://github.com/MTES-MCT/camino-ui/issues/43)) ([1f1d2c7](https://github.com/MTES-MCT/camino-ui/commit/1f1d2c7f5342953258faa28b3eac78f4efd30c01)) +* **ui:** prend en compte les paramètres de tri dans l'URL ([#47](https://github.com/MTES-MCT/camino-ui/issues/47)) ([f0914b3](https://github.com/MTES-MCT/camino-ui/commit/f0914b329cf562d575a9324c8b8d11eaa335bdaa)) +* affiche les boutons d'éditions selon les permissions ([#46](https://github.com/MTES-MCT/camino-ui/issues/46)) ([0d50c1f](https://github.com/MTES-MCT/camino-ui/commit/0d50c1fc903020c294c117c72a2ae78eed21f629)) +* charge contextuellement les metas lors de l'édition ([#49](https://github.com/MTES-MCT/camino-ui/issues/49)) ([c3958cb](https://github.com/MTES-MCT/camino-ui/commit/c3958cb449783b7255ee306f536c41c61a94bd1f)) +* restreint les domaines et types de titre en fonction des permissions ([#48](https://github.com/MTES-MCT/camino-ui/issues/48)) ([109ad21](https://github.com/MTES-MCT/camino-ui/commit/109ad213d6f358572e23c2270acc9e70a9df23dd)) + + +### Bug Fixes + +* affiche des infos manquantes dans le fichier csv ([6024cb5](https://github.com/MTES-MCT/camino-ui/commit/6024cb5f59784585f3e8e861fe5b739d72afb8f3)) +* affiche le bouton document qui manque sur certaines étapes ([cd743a8](https://github.com/MTES-MCT/camino-ui/commit/cd743a80559a534820ee11d0eaf6694ea779ad61)) +* corrige l'affichage des points d'un titre ([c40884f](https://github.com/MTES-MCT/camino-ui/commit/c40884fe7eb6241ad8adc9de6b26d9ef0b7bfe9a)) +* corrige l'édition de documents ([8746d7f](https://github.com/MTES-MCT/camino-ui/commit/8746d7f7adaa9fcc1253117de5890648ebbae8e6)) +* corrige la gestion des filtres ([dcd2558](https://github.com/MTES-MCT/camino-ui/commit/dcd255809d0fb7fff7a89a9a23bb653550837dde)) +* corrige le chargement de la liste des types de documents ([e7cbc84](https://github.com/MTES-MCT/camino-ui/commit/e7cbc849087b27cabd5f5bc41a015456130021c1)) +* corrige le chargement des entreprises dans l'initialisation des metas ([d9b00f6](https://github.com/MTES-MCT/camino-ui/commit/d9b00f698c00e3cd2c2668f46028416303e378ea)) +* corrige les permissions sur l'édition de documents ([0b73486](https://github.com/MTES-MCT/camino-ui/commit/0b734862bf0672f0e434150d86de2c7e219ad77e)) +* corrige une erreur lors du chargement des metas ([46fffec](https://github.com/MTES-MCT/camino-ui/commit/46fffec5907d4231b60072e39aa915561c0385e7)) +* initialise la colonne de tri si l'id sélectionnée n'existe pas ([2a0775a](https://github.com/MTES-MCT/camino-ui/commit/2a0775a138bc2ba726515ea557381c258689db4b)) +* supprime un log ([c38bad0](https://github.com/MTES-MCT/camino-ui/commit/c38bad0528eb0990beade6b5d09ba2590bf7651b)) +* **api:** contourne le cache sur certaines requêtes ([dde0ac3](https://github.com/MTES-MCT/camino-ui/commit/dde0ac34cfa8e35985194d793d19c0da6de30191)) +* **export csv:** affiche engagement et surface ([#53](https://github.com/MTES-MCT/camino-ui/issues/53)) ([8bbf9e5](https://github.com/MTES-MCT/camino-ui/commit/8bbf9e556fe375b1a6a8270634cf3a1b85438bf0)) +* désactive les boutons lors de l'édition ([f79d39d](https://github.com/MTES-MCT/camino-ui/commit/f79d39d9f6ca78e2eb38cd122de4d2eb946709c0)) +* **édition:** désactive le bouton supprimer après avoir cliqué dessus ([#50](https://github.com/MTES-MCT/camino-ui/issues/50)) ([4b24dcd](https://github.com/MTES-MCT/camino-ui/commit/4b24dcd8f6b918fbb39d773af3264798db64baad)) +* supprime une erreur 404 si l'utilisateur se loggue ([76edccb](https://github.com/MTES-MCT/camino-ui/commit/76edccbb044d57dd38d3389d8ce361f10be23a0b)) + +### [0.22.10](https://github.com/MTES-MCT/camino-ui/compare/v0.22.9...v0.22.10) (2019-11-27) + + +### Features + +* affiche les boutons d'éditions selon les permissions ([#46](https://github.com/MTES-MCT/camino-ui/issues/46)) ([0d50c1f](https://github.com/MTES-MCT/camino-ui/commit/0d50c1fc903020c294c117c72a2ae78eed21f629)) +* restreint les domaines et types de titre en fonction des permissions ([#48](https://github.com/MTES-MCT/camino-ui/issues/48)) ([109ad21](https://github.com/MTES-MCT/camino-ui/commit/109ad213d6f358572e23c2270acc9e70a9df23dd)) + + +### Bug Fixes + +* corrige l'affichage des points d'un titre ([c40884f](https://github.com/MTES-MCT/camino-ui/commit/c40884fe7eb6241ad8adc9de6b26d9ef0b7bfe9a)) +* corrige les permissions sur l'édition de documents ([0b73486](https://github.com/MTES-MCT/camino-ui/commit/0b734862bf0672f0e434150d86de2c7e219ad77e)) +* corrige une erreur lors du chargement des metas ([46fffec](https://github.com/MTES-MCT/camino-ui/commit/46fffec5907d4231b60072e39aa915561c0385e7)) + +### [0.22.9](https://github.com/MTES-MCT/camino-ui/compare/v0.22.8...v0.22.9) (2019-11-21) + + +### Bug Fixes + +* **api:** contourne le cache sur certaines requêtes ([dde0ac3](https://github.com/MTES-MCT/camino-ui/commit/dde0ac3)) +* corrige l'édition de documents ([8746d7f](https://github.com/MTES-MCT/camino-ui/commit/8746d7f)) +* corrige la gestion des filtres ([dcd2558](https://github.com/MTES-MCT/camino-ui/commit/dcd2558)) +* supprime une erreur 404 si l'utilisateur se loggue ([76edccb](https://github.com/MTES-MCT/camino-ui/commit/76edccb)) + + +### Features + +* **ui:** limite la liste des types de références métier ([#43](https://github.com/MTES-MCT/camino-ui/issues/43)) ([1f1d2c7](https://github.com/MTES-MCT/camino-ui/commit/1f1d2c7)) + +### [0.22.8](https://github.com/MTES-MCT/camino-ui/compare/v0.22.7...v0.22.8) (2019-11-13) + + +### Bug Fixes + +* empêche de valider un rapport si il est incomplet ([4794720](https://github.com/MTES-MCT/camino-ui/commit/4794720)) +* **édition:** empêche de valider un formulaire incomplet ([9e5c2f0](https://github.com/MTES-MCT/camino-ui/commit/9e5c2f0)) +* corrige l'enregistrement d'une étape ([9820683](https://github.com/MTES-MCT/camino-ui/commit/9820683)) +* n'affiche pas les utilisateurs dans la requête sur les titres ([898fb60](https://github.com/MTES-MCT/camino-ui/commit/898fb60)) +* optimise les définitions graphql ([80da07c](https://github.com/MTES-MCT/camino-ui/commit/80da07c)) +* supprime un log inutile ([9da3068](https://github.com/MTES-MCT/camino-ui/commit/9da3068)) + + +### Features + +* **édition:** ajoute une entreprise ([#40](https://github.com/MTES-MCT/camino-ui/issues/40)) ([34e994f](https://github.com/MTES-MCT/camino-ui/commit/34e994f)) +* **édition:** gère l'unicité des étapes pendant l'édition ([#42](https://github.com/MTES-MCT/camino-ui/issues/42)) ([0d2f49e](https://github.com/MTES-MCT/camino-ui/commit/0d2f49e)) +* lie un utilisateur à des entreprises ou des administrations ([#41](https://github.com/MTES-MCT/camino-ui/issues/41)) ([828958c](https://github.com/MTES-MCT/camino-ui/commit/828958c)) + +### [0.22.7](https://github.com/MTES-MCT/camino-ui/compare/v0.22.6...v0.22.7) (2019-10-28) + + +### Bug Fixes + +* **édition de documents:** masque le bouton pendant l'enregistrement ([0ff79b3](https://github.com/MTES-MCT/camino-ui/commit/0ff79b3)) +* classe les entreprises et les administrations par ordre alphabétique ([f60d920](https://github.com/MTES-MCT/camino-ui/commit/f60d920)) +* supprime une instruction erronée ([0d0cdd6](https://github.com/MTES-MCT/camino-ui/commit/0d0cdd6)) +* **édition de documents:** corrige des problèmes d'affichage ([8db280b](https://github.com/MTES-MCT/camino-ui/commit/8db280b)) +* ajoute l'option "public" à l'édition de document ([ad5ca69](https://github.com/MTES-MCT/camino-ui/commit/ad5ca69)) +* corrige la mise en page sur tablette ([dd7a75e](https://github.com/MTES-MCT/camino-ui/commit/dd7a75e)) +* **actvités:** supprime le cartouche d'erreur lors de la validation d'une activité ([3620b19](https://github.com/MTES-MCT/camino-ui/commit/3620b19)) +* **édition:** corrige une erreur lors de l'ajout d'un utilisateur ([7ac8daa](https://github.com/MTES-MCT/camino-ui/commit/7ac8daa)) + + +### Features + +* **édition de documents:** affiche "optionel" sur le champs nom ([ec95e67](https://github.com/MTES-MCT/camino-ui/commit/ec95e67)) +* rend visible le bouton d'ajout de document si la liste est masquée ([ea5d103](https://github.com/MTES-MCT/camino-ui/commit/ea5d103)) +* **édition:** désactive les boutons lors de l'enregistrement ([3cc92a9](https://github.com/MTES-MCT/camino-ui/commit/3cc92a9)) + +### [0.22.6](https://github.com/MTES-MCT/camino-ui/compare/v0.22.5...v0.22.6) (2019-10-23) + + +### Bug Fixes + +* affiche l'icône de dépliage de documents pour les super utilisateurs même s'il l'étape ne possède pas de documents ([5451226](https://github.com/MTES-MCT/camino-ui/commit/5451226)) +* enlève un caractère en trop dans l'affichage des administrations ([412535a](https://github.com/MTES-MCT/camino-ui/commit/412535a)) +* identifie l'utilisateur après un changement de mot de passe ([#38](https://github.com/MTES-MCT/camino-ui/issues/38)) ([5c314c4](https://github.com/MTES-MCT/camino-ui/commit/5c314c4)) + + +### Features + +* **édition d'étape:** sélectionne le statut s'il n'y a q'un seul choix ([72382fe](https://github.com/MTES-MCT/camino-ui/commit/72382fe)) +* ajoute les administrations aux utilisateurs ([#37](https://github.com/MTES-MCT/camino-ui/issues/37)) ([4a0405f](https://github.com/MTES-MCT/camino-ui/commit/4a0405f)) +* ajoute une mention "optionel" sur le champs description ([252ff01](https://github.com/MTES-MCT/camino-ui/commit/252ff01)) +* empêche les durées négatives sur les champs "number" ([5a2925a](https://github.com/MTES-MCT/camino-ui/commit/5a2925a)) +* téléverse des fichiers ([#39](https://github.com/MTES-MCT/camino-ui/issues/39)) ([27e6ad9](https://github.com/MTES-MCT/camino-ui/commit/27e6ad9)) + +### [0.22.5](https://github.com/MTES-MCT/camino-ui/compare/v0.22.4...v0.22.5) (2019-10-16) + + +### Bug Fixes + +* corrige l'affichage de la date ([6cce484](https://github.com/MTES-MCT/camino-ui/commit/6cce484)) +* **activités:** corrige l'affichage des listes ([5ef97f0](https://github.com/MTES-MCT/camino-ui/commit/5ef97f0)) +* **filtres:** prend en compte les champs textes lorsqu'on valide au clavier ([e9fed23](https://github.com/MTES-MCT/camino-ui/commit/e9fed23)) +* affiche les dates correctement quelque soit le fuseau horaire ([15ab04c](https://github.com/MTES-MCT/camino-ui/commit/15ab04c)) +* corrige la construction d'un groupe de points ([36fee75](https://github.com/MTES-MCT/camino-ui/commit/36fee75)) +* corrige un bug d'url qui empêche le chargement des titres ([53b9f11](https://github.com/MTES-MCT/camino-ui/commit/53b9f11)) +* corrige une alerte de vue-router NavigationDuplicated ([809c475](https://github.com/MTES-MCT/camino-ui/commit/809c475)) +* valide les filtres avec la touche "entrée" ([6fe3531](https://github.com/MTES-MCT/camino-ui/commit/6fe3531)) +* **édition d'activité:** affiche un message différent lors de l'enregistrement et de la validation ([4a6d5f2](https://github.com/MTES-MCT/camino-ui/commit/4a6d5f2)) +* **édition d'étape:** supprime le nom du point s'il fait parti d'un lot ([e9a8cff](https://github.com/MTES-MCT/camino-ui/commit/e9a8cff)) +* **table:** affiche le bouton de la dernière page manquant ([3869e73](https://github.com/MTES-MCT/camino-ui/commit/3869e73)) +* met à jour l'url de la page après l'ajout d'une étape ([d3daf6b](https://github.com/MTES-MCT/camino-ui/commit/d3daf6b)) +* **filtres:** corrige la recherche filtrée avec un slash ([#34](https://github.com/MTES-MCT/camino-ui/issues/34)) ([8fcb059](https://github.com/MTES-MCT/camino-ui/commit/8fcb059)) + + +### Features + +* **statistiques:** met à jour les données ([dd279d5](https://github.com/MTES-MCT/camino-ui/commit/dd279d5)) +* **table:** propose le tri par colonne pour une colonne sans intitulé (p.e.: "domaine") ([ccc3473](https://github.com/MTES-MCT/camino-ui/commit/ccc3473)) +* affiche l'étiquette "subsidiaire" dans la liste de points ([19f1390](https://github.com/MTES-MCT/camino-ui/commit/19f1390)) +* améliore la présentation de la liste de points ([#36](https://github.com/MTES-MCT/camino-ui/issues/36)) ([480da0b](https://github.com/MTES-MCT/camino-ui/commit/480da0b)) +* change l'affichage de la liste de points [#33](https://github.com/MTES-MCT/camino-ui/issues/33) ([db1825e](https://github.com/MTES-MCT/camino-ui/commit/db1825e)) +* supprime les unités sur les références de points ([#35](https://github.com/MTES-MCT/camino-ui/issues/35)) ([0a55934](https://github.com/MTES-MCT/camino-ui/commit/0a55934)) + +### [0.22.4](https://github.com/MTES-MCT/camino-ui/compare/v0.22.3...v0.22.4) (2019-10-02) + + +### Bug Fixes + +* **carte:** rafraichit l'affichage après la mise à jour de points ([c1f1470](https://github.com/MTES-MCT/camino-ui/commit/c1f1470)) + + +### Features + +* affiche l'id du système géographique dans le sélecteur ([925a8b6](https://github.com/MTES-MCT/camino-ui/commit/925a8b6)) +* affiche le champs date au format français ([d9e78d1](https://github.com/MTES-MCT/camino-ui/commit/d9e78d1)) +* édite un lot de points de périmètre géo ([#30](https://github.com/MTES-MCT/camino-ui/issues/30)) ([67688fb](https://github.com/MTES-MCT/camino-ui/commit/67688fb)) + +### [0.22.3](https://github.com/MTES-MCT/camino-ui/compare/v0.22.2...v0.22.3) (2019-09-23) + + +### Bug Fixes + +* affiche le tag opposable dans le tableau de coordonnées ([8af9f40](https://github.com/MTES-MCT/camino-ui/commit/8af9f40)) +* corrige erreur Cannot read property 'references' of undefined ([fb8de80](https://github.com/MTES-MCT/camino-ui/commit/fb8de80)) +* définit le format des coordonnnées de références en nombres ([a88d251](https://github.com/MTES-MCT/camino-ui/commit/a88d251)) +* uniformise la description d'un point ([6cf326a](https://github.com/MTES-MCT/camino-ui/commit/6cf326a)) + + +### Features + +* affiche le lien vers la fiche entreprise depuis un titre ([64a3f3d](https://github.com/MTES-MCT/camino-ui/commit/64a3f3d)) +* **entreprise:** rend les entreprises visible au public ([#28](https://github.com/MTES-MCT/camino-ui/issues/28)) ([02501c6](https://github.com/MTES-MCT/camino-ui/commit/02501c6)) + +### [0.22.2](https://github.com/MTES-MCT/camino-ui/compare/v0.22.1...v0.22.2) (2019-08-15) + + +### Bug Fixes + +* corrige les appels à l'API ([892e252](https://github.com/MTES-MCT/camino-ui/commit/892e252)) +* **édition d'étape:** supprime les champs dont les ids sont vides ([a47ec99](https://github.com/MTES-MCT/camino-ui/commit/a47ec99)) + + +### Features + +* affiche l'unités du sytème de coordonnées géo ([375c48b](https://github.com/MTES-MCT/camino-ui/commit/375c48b)) +* ajoute les tags coordonnées opposables et subsidiaires ([8894a41](https://github.com/MTES-MCT/camino-ui/commit/8894a41)) +* ajoute les utilisateurs et les titres dans la vue entreprise ([fe480e7](https://github.com/MTES-MCT/camino-ui/commit/fe480e7)) +* crée un composant table générique ([ba009fb](https://github.com/MTES-MCT/camino-ui/commit/ba009fb)) +* désactive gestureHandling sur la carte en plein écran ([1e77e52](https://github.com/MTES-MCT/camino-ui/commit/1e77e52)) +* édite les références des points géo ([8346309](https://github.com/MTES-MCT/camino-ui/commit/8346309)) +* met à jour l'API ([d19c60e](https://github.com/MTES-MCT/camino-ui/commit/d19c60e)) +* organise les tables par colonnes en clic ([e862856](https://github.com/MTES-MCT/camino-ui/commit/e862856)) + +### [0.22.1](https://github.com/MTES-MCT/camino-ui/compare/v0.22.0...v0.22.1) (2019-07-31) + + +### Bug Fixes + +* ajoute dynamiquement l'url de l'API à la CSP ([29dfc73](https://github.com/MTES-MCT/camino-ui/commit/29dfc73)) +* ajuste l'affichage des clusters ([2b74a41](https://github.com/MTES-MCT/camino-ui/commit/2b74a41)) +* corrige l'édition des points ([2b45137](https://github.com/MTES-MCT/camino-ui/commit/2b45137)) +* corrige la création d'un utilisateur ([213c0bb](https://github.com/MTES-MCT/camino-ui/commit/213c0bb)) +* corrige la création de titres, démarches, étapes ([b98fe00](https://github.com/MTES-MCT/camino-ui/commit/b98fe00)) +* corrige la mise en page de l'entête d'un accordéon ([e9226a2](https://github.com/MTES-MCT/camino-ui/commit/e9226a2)) +* supprime un composant inutile ([bfefc9d](https://github.com/MTES-MCT/camino-ui/commit/bfefc9d)) + + +### Features + +* affiche la carte en plein écran ([25f04f8](https://github.com/MTES-MCT/camino-ui/commit/25f04f8)) +* affiche la durée en années / mois ([328178f](https://github.com/MTES-MCT/camino-ui/commit/328178f)) +* affiche les infos géographiques sur un titre ([581eeed](https://github.com/MTES-MCT/camino-ui/commit/581eeed)) +* ajoute des champs dynamiques sur une étape (pe: ONF) ([b96e7df](https://github.com/MTES-MCT/camino-ui/commit/b96e7df)) +* ajoute une url de serveur d'api ([3daf611](https://github.com/MTES-MCT/camino-ui/commit/3daf611)) +* améliore la mise en page des étapes ([c8ce8b8](https://github.com/MTES-MCT/camino-ui/commit/c8ce8b8)) +* corrige l'extension lors du téléchargement du geojson ([#27](https://github.com/MTES-MCT/camino-ui/issues/27)) ([defa988](https://github.com/MTES-MCT/camino-ui/commit/defa988)) +* regroupe les marqueurs en clusters ([2ff959a](https://github.com/MTES-MCT/camino-ui/commit/2ff959a)) +* uniformise les boutons pour passer de la vue carte à la vue liste ([10d711d](https://github.com/MTES-MCT/camino-ui/commit/10d711d)) + +## [0.22.0](https://github.com/MTES-MCT/camino-ui/compare/v0.21.0...v0.22.0) (2019-07-04) + + +### Bug Fixes + +* corrige un bug lors de l'ajout d'une entreprise vide à un utilisateur ([#24](https://github.com/MTES-MCT/camino-ui/issues/24)) ([97b16a4](https://github.com/MTES-MCT/camino-ui/commit/97b16a4)) +* **export:** corrige le format de la date dans le nom du fichier ([#21](https://github.com/MTES-MCT/camino-ui/issues/21)) ([4905d9b](https://github.com/MTES-MCT/camino-ui/commit/4905d9b)) +* corrige la navigation dans l'historique du navigateur ([747bc10](https://github.com/MTES-MCT/camino-ui/commit/747bc10)) +* **firefox:** prévient un double appel à l'api sur la liste des titres ([4e33bd2](https://github.com/MTES-MCT/camino-ui/commit/4e33bd2)) +* ajoute l'api de preprod à la csp ([a570525](https://github.com/MTES-MCT/camino-ui/commit/a570525)) +* met à jour les filtres lorsqu'un utilisateur se connecte / déconnecte ([3ec6ccd](https://github.com/MTES-MCT/camino-ui/commit/3ec6ccd)) + + +### Build System + +* met à jour les dépendances ([e2a89b1](https://github.com/MTES-MCT/camino-ui/commit/e2a89b1)) +* revient à eslint 5 ([cf19557](https://github.com/MTES-MCT/camino-ui/commit/cf19557)) + + +### Features + +* ajoute le docker-compose de preprod ([2262d71](https://github.com/MTES-MCT/camino-ui/commit/2262d71)) +* ajoute une redirection de stats vers statistiques ([ae94755](https://github.com/MTES-MCT/camino-ui/commit/ae94755)) +* corrige l'édition des étapes ([#25](https://github.com/MTES-MCT/camino-ui/issues/25)) ([c17456e](https://github.com/MTES-MCT/camino-ui/commit/c17456e)) +* télécharge un geojson des titres ([#22](https://github.com/MTES-MCT/camino-ui/issues/22)) ([fb2d9ab](https://github.com/MTES-MCT/camino-ui/commit/fb2d9ab)) + + + +## [0.21.0](https://github.com/MTES-MCT/camino-ui/compare/v0.20.0...v0.21.0) (2019-06-17) + + +### Bug Fixes + +* désactive le lien sur le logo sur la pages titres ([aff40a7](https://github.com/MTES-MCT/camino-ui/commit/aff40a7)) +* supprime un test inutile ([f1e27ee](https://github.com/MTES-MCT/camino-ui/commit/f1e27ee)) + + +### Build System + +* met à jour les dépendances ([8320b8b](https://github.com/MTES-MCT/camino-ui/commit/8320b8b)) + + +### Features + +* affiche la durée en mois ([a6e15c4](https://github.com/MTES-MCT/camino-ui/commit/a6e15c4)) +* ajoute une page entreprise ([18e84ae](https://github.com/MTES-MCT/camino-ui/commit/18e84ae)) +* autorise plusieurs entreprises par utilisateurs ([99661ad](https://github.com/MTES-MCT/camino-ui/commit/99661ad)) + + +### Tests + +* teste l'état des entreprises ([418dffa](https://github.com/MTES-MCT/camino-ui/commit/418dffa)) +* teste si l'api retourne null sur une liste d'entreprises ([5167791](https://github.com/MTES-MCT/camino-ui/commit/5167791)) + + + +## [0.20.0](https://github.com/MTES-MCT/camino-ui/compare/v0.19.0...v0.20.0) (2019-06-11) + + +### Build System + +* met à jour les dépendances ([481eee7](https://github.com/MTES-MCT/camino-ui/commit/481eee7)) +* met à jour les dépendances ([08c70e9](https://github.com/MTES-MCT/camino-ui/commit/08c70e9)) + + +### Features + +* utilise les date de demande, de début et de fin exposées par l'api ([c64a6f9](https://github.com/MTES-MCT/camino-ui/commit/c64a6f9)) + + + +## [0.19.0](https://github.com/MTES-MCT/camino-ui/compare/v0.18.0...v0.19.0) (2019-06-04) + + +### Bug Fixes + +* **carte:** ajoute la dépendance à leaflet.markercluster ([d3d1fe8](https://github.com/MTES-MCT/camino-ui/commit/d3d1fe8)) +* **titres:** corrige la liste des titres qui se charge 2 fois si un utilisateur est connecté ([4c4b513](https://github.com/MTES-MCT/camino-ui/commit/4c4b513)) +* corrige la position du bouton "ajouter un titre" ([8cb7b57](https://github.com/MTES-MCT/camino-ui/commit/8cb7b57)) +* corrige une erreur graphql lors du passage des titres à un titre ([bed037d](https://github.com/MTES-MCT/camino-ui/commit/bed037d)) + + +### Build System + +* met à jour les dépendances ([f7a14c1](https://github.com/MTES-MCT/camino-ui/commit/f7a14c1)) +* met à jour les dépendances (vue-cli@4-alpha) ([e0082e7](https://github.com/MTES-MCT/camino-ui/commit/e0082e7)) + + +### Features + +* **carte:** regroupe les marqueurs en groupes ([#19](https://github.com/MTES-MCT/camino-ui/issues/19)) ([5851251](https://github.com/MTES-MCT/camino-ui/commit/5851251)) + + + +## [0.18.0](https://github.com/MTES-MCT/camino-ui/compare/v0.17.0...v0.18.0) (2019-05-23) + + +### Bug Fixes + +* corrige un problème de chargement des titres lors de la création de compte ([1e83fbc](https://github.com/MTES-MCT/camino-ui/commit/1e83fbc)) +* **fichiers:** affiche l'extension pdf ([8b917fd](https://github.com/MTES-MCT/camino-ui/commit/8b917fd)) +* **fichiers:** retourne une erreur si le fichier est introuvable ([e1cdbcd](https://github.com/MTES-MCT/camino-ui/commit/e1cdbcd)) +* activtés ([780d37e](https://github.com/MTES-MCT/camino-ui/commit/780d37e)) +* affiche les bouton de zoom sur la carte ([a444d13](https://github.com/MTES-MCT/camino-ui/commit/a444d13)) +* affiche une légende "source indisponible" ([10d08f1](https://github.com/MTES-MCT/camino-ui/commit/10d08f1)) +* corrige la fonction de tri des entreprises ([143e98b](https://github.com/MTES-MCT/camino-ui/commit/143e98b)) +* remplace le label "présumé" par une icone ([a03429c](https://github.com/MTES-MCT/camino-ui/commit/a03429c)) +* **fichiers:** ajoute l'extension pdf au fichier téléchargé ([00f01b6](https://github.com/MTES-MCT/camino-ui/commit/00f01b6)) + + +### Build System + +* ajoute codecov ([0ce0930](https://github.com/MTES-MCT/camino-ui/commit/0ce0930)) +* met à jour les dépendances ([f2d126c](https://github.com/MTES-MCT/camino-ui/commit/f2d126c)) +* met à jour les dépendances ([e7383c7](https://github.com/MTES-MCT/camino-ui/commit/e7383c7)) + + +### Features + +* redirige vers la page du titre avec sa nouvelle id lors de la mise à jour ([37fc1d3](https://github.com/MTES-MCT/camino-ui/commit/37fc1d3)) +* renomme l'onglet titres en droits miniers ([af579e5](https://github.com/MTES-MCT/camino-ui/commit/af579e5)) +* **recherche:** permet de combiner des mots dans un filtre de recherche ([d1018ee](https://github.com/MTES-MCT/camino-ui/commit/d1018ee)) +* dynamise certaines statistiques ([#17](https://github.com/MTES-MCT/camino-ui/issues/17)) ([424de04](https://github.com/MTES-MCT/camino-ui/commit/424de04)) +* édite les incertitudes au sein d'une étape ([cecc0fc](https://github.com/MTES-MCT/camino-ui/commit/cecc0fc)) +* remplace le champs source indisponible par des champs incertitudes ([9753029](https://github.com/MTES-MCT/camino-ui/commit/9753029)) +* **activités:** prend en compte la date de fin d'une activité ([ae3c560](https://github.com/MTES-MCT/camino-ui/commit/ae3c560)) +* **fichiers:** met à jour le téléchargement selon la nouvelle api ([e1662a8](https://github.com/MTES-MCT/camino-ui/commit/e1662a8)) +* **fichiers:** télécharge un fichier pdf ([b297721](https://github.com/MTES-MCT/camino-ui/commit/b297721)) +* **stats:** ajout d'une page de stats ([10d98ac](https://github.com/MTES-MCT/camino-ui/commit/10d98ac)) + + +### Tests + +* Ajoute des tests ([2d755aa](https://github.com/MTES-MCT/camino-ui/commit/2d755aa)) +* corrige la config jest et ajoute les badges ([23ca762](https://github.com/MTES-MCT/camino-ui/commit/23ca762)) +* elabore router sur index ([6fbb9b6](https://github.com/MTES-MCT/camino-ui/commit/6fbb9b6)) +* modifie user,index ([022d598](https://github.com/MTES-MCT/camino-ui/commit/022d598)) +* modify index ([cc64e1c](https://github.com/MTES-MCT/camino-ui/commit/cc64e1c)) +* supprime un message d'erreur ([1cff0a2](https://github.com/MTES-MCT/camino-ui/commit/1cff0a2)) +* supprime un message d'erreur [#16](https://github.com/MTES-MCT/camino-ui/issues/16) ([5ad8370](https://github.com/MTES-MCT/camino-ui/commit/5ad8370)) +* termine les tests sur le store ([1d5793a](https://github.com/MTES-MCT/camino-ui/commit/1d5793a)) +* teste en cours ([663505a](https://github.com/MTES-MCT/camino-ui/commit/663505a)) +* teste partiellement utilisateurs ([de3f943](https://github.com/MTES-MCT/camino-ui/commit/de3f943)) +* teste titre,utilisateurs,metas,titre-activites,utilisateur ([02047c8](https://github.com/MTES-MCT/camino-ui/commit/02047c8)) +* teste user,index ([62a92b2](https://github.com/MTES-MCT/camino-ui/commit/62a92b2)) +* update metas ([1d0f707](https://github.com/MTES-MCT/camino-ui/commit/1d0f707)) + + + +## [0.17.0](https://github.com/MTES-MCT/camino-ui/compare/v0.16.0...v0.17.0) (2019-05-07) + + +### Bug Fixes + +* affiche le type de titre lors de la suppression d'une étape ([64676ae](https://github.com/MTES-MCT/camino-ui/commit/64676ae)) +* **édition:** corrige des erreurs dans le formulaire d'ajout d'étapes ([024d036](https://github.com/MTES-MCT/camino-ui/commit/024d036)) +* **édition:** limite les types de titre au domaine selectionné ([816d170](https://github.com/MTES-MCT/camino-ui/commit/816d170)) + + +### Build System + +* met à jour les dépendances ([c6c63d0](https://github.com/MTES-MCT/camino-ui/commit/c6c63d0)) +* met à jour les dépendances ([b5947e3](https://github.com/MTES-MCT/camino-ui/commit/b5947e3)) + + +### Features + +* **carte:** utilise ctrl + click pour zoomer (ou 2 doigts sur support tactile) ([3901ee4](https://github.com/MTES-MCT/camino-ui/commit/3901ee4)) +* **design:** agrandit la carte ([e3cb612](https://github.com/MTES-MCT/camino-ui/commit/e3cb612)) +* ajoute un nouveau titre ([038134b](https://github.com/MTES-MCT/camino-ui/commit/038134b)) + + +### Tests + +* **store:** teste utilisateur et substances ([c8f96c9](https://github.com/MTES-MCT/camino-ui/commit/c8f96c9)) + + + +# [0.16.0](https://github.com/MTES-MCT/camino-ui/compare/v0.15.0...v0.16.0) (2019-04-30) + + +### Bug Fixes + +* converti les évènements click sur les lignes des tableaux en liens ([2bb312c](https://github.com/MTES-MCT/camino-ui/commit/2bb312c)) +* créé une copie du titre avant de le modifier ([1094287](https://github.com/MTES-MCT/camino-ui/commit/1094287)) +* édite une démarche ([df14ed4](https://github.com/MTES-MCT/camino-ui/commit/df14ed4)) +* supprime un filet inutile ([d424d29](https://github.com/MTES-MCT/camino-ui/commit/d424d29)) +* **csv:** exporte le csv si les titres n'ont pas de références ([78f47c4](https://github.com/MTES-MCT/camino-ui/commit/78f47c4)) + + +### Features + +* **activités:** autorise un utilisateur admin à modifier une activité ([ba48d03](https://github.com/MTES-MCT/camino-ui/commit/ba48d03)) +* ajoute une nouvelle démarche ([0260a20](https://github.com/MTES-MCT/camino-ui/commit/0260a20)) +* édite et supprime un titre ([edcdacd](https://github.com/MTES-MCT/camino-ui/commit/edcdacd)) +* édite les démarches ([f21b938](https://github.com/MTES-MCT/camino-ui/commit/f21b938)) +* supprime une démarche ([210f951](https://github.com/MTES-MCT/camino-ui/commit/210f951)) +* supprime une étape ([93a5fbf](https://github.com/MTES-MCT/camino-ui/commit/93a5fbf)) + + + +# [0.15.0](https://github.com/MTES-MCT/camino-ui/compare/v0.14.0...v0.15.0) (2019-04-17) + + +### Bug Fixes + +* **cgu:** corrige la mise en page ([f5aae66](https://github.com/MTES-MCT/camino-ui/commit/f5aae66)) +* supprime un log ([d432516](https://github.com/MTES-MCT/camino-ui/commit/d432516)) +* **filtres:** supprime le bouton inverse ([e2080c7](https://github.com/MTES-MCT/camino-ui/commit/e2080c7)) +* **url:** charge les paramètre de filtres lorsqu'on revient sur la page liste ([8d4bb35](https://github.com/MTES-MCT/camino-ui/commit/8d4bb35)) +* affiche 'établissement' au singulier si il n'y en a qu'un ([17717ce](https://github.com/MTES-MCT/camino-ui/commit/17717ce)) +* change la structure des activités de type checkbox en tableau ([bbbf70b](https://github.com/MTES-MCT/camino-ui/commit/bbbf70b)) +* évite de scroller en haut de page lorsque les paramètres d'url changent ([a553914](https://github.com/MTES-MCT/camino-ui/commit/a553914)) +* gère l'historique des urls ([32cfd34](https://github.com/MTES-MCT/camino-ui/commit/32cfd34)) +* met à jour le contenu de la page si l'url change (bouton back) ([df7bbf3](https://github.com/MTES-MCT/camino-ui/commit/df7bbf3)) +* n'affiche l'accordéon que si une entreprise contient des informations ([a16f120](https://github.com/MTES-MCT/camino-ui/commit/a16f120)) +* retourne des ids sur les éléments lié lors de la mise à jour d'étapes ([63d8e8e](https://github.com/MTES-MCT/camino-ui/commit/63d8e8e)) +* **sentry:** change la config sentry pour être compatible avec la v.5 ([48e0743](https://github.com/MTES-MCT/camino-ui/commit/48e0743)) +* **sentry:** config sentry ([e7becd8](https://github.com/MTES-MCT/camino-ui/commit/e7becd8)) +* **sentry:** désactive sentry qui plante tout ([e8e94fd](https://github.com/MTES-MCT/camino-ui/commit/e8e94fd)) +* met en page ([5fe4eaf](https://github.com/MTES-MCT/camino-ui/commit/5fe4eaf)) + + +### Features + +* ajoute une nouvelle étape ([2859a6f](https://github.com/MTES-MCT/camino-ui/commit/2859a6f)) +* édite l'emprise territoriale d'une étape ([208149c](https://github.com/MTES-MCT/camino-ui/commit/208149c)) +* injecte les paramètres de filtre dans l'url ([92aec76](https://github.com/MTES-MCT/camino-ui/commit/92aec76)) +* met à jour une étape ([f02c0dc](https://github.com/MTES-MCT/camino-ui/commit/f02c0dc)) +* mise à jour des CGU et mentions légales ([cab8881](https://github.com/MTES-MCT/camino-ui/commit/cab8881)) +* **a-propos:** ajout de Florent et d'Adrien ([b085617](https://github.com/MTES-MCT/camino-ui/commit/b085617)) +* **activités:** affiche les activités à traiter dans la liste des titres ([a95e0e1](https://github.com/MTES-MCT/camino-ui/commit/a95e0e1)) +* **activités:** limite l'édition des activités à certains rôles ([ea66c35](https://github.com/MTES-MCT/camino-ui/commit/ea66c35)) +* **entreprises:** affiche la liste des établissements dans l'encart entreprises ([b35e195](https://github.com/MTES-MCT/camino-ui/commit/b35e195)) +* **titre:** affiche les administrations ([79b4e3a](https://github.com/MTES-MCT/camino-ui/commit/79b4e3a)) + + + +# [0.14.0](https://github.com/MTES-MCT/camino-ui/compare/v0.13.0...v0.14.0) (2019-03-22) + + +### Bug Fixes + +* **activités:** affiche la liste des travaux ([c4de22a](https://github.com/MTES-MCT/camino-ui/commit/c4de22a)) +* **build:** fonctionne avec les anciens navigateurs ([a34b2ce](https://github.com/MTES-MCT/camino-ui/commit/a34b2ce)) +* corrige une typeError sur les anciens navigateurs ([5dd872e](https://github.com/MTES-MCT/camino-ui/commit/5dd872e)) +* prend en compte les établissements d'une entreprise sur une requête utilisateur ([d5c4c18](https://github.com/MTES-MCT/camino-ui/commit/d5c4c18)) +* **activités:** classe les années par ordre desc ([c7b3a2d](https://github.com/MTES-MCT/camino-ui/commit/c7b3a2d)) +* **activités:** ouverture de la popup sur une activité dont le statut est absent ([289be48](https://github.com/MTES-MCT/camino-ui/commit/289be48)) +* **activités:** prend en compte les champs optionels ([2049178](https://github.com/MTES-MCT/camino-ui/commit/2049178)) +* **compat:** compatibilité avec iOs 9 ([1445e4e](https://github.com/MTES-MCT/camino-ui/commit/1445e4e)) + + +### Features + +* **activités:** affiche la date de modification si elle existe ([1d8f616](https://github.com/MTES-MCT/camino-ui/commit/1d8f616)) +* **activités:** affiche le formulaire d'édition d'activité ([1b685dc](https://github.com/MTES-MCT/camino-ui/commit/1b685dc)) +* **activités:** affiche les activités dans un onglet ([39480a0](https://github.com/MTES-MCT/camino-ui/commit/39480a0)) +* **activités:** affiche une pastille avec le nombre d'erreurs dans l'onglet ([af954a8](https://github.com/MTES-MCT/camino-ui/commit/af954a8)) +* **activités:** amélioration du design ([c9bc98b](https://github.com/MTES-MCT/camino-ui/commit/c9bc98b)) +* **activités:** enregistre une activité après modification ([4ed603c](https://github.com/MTES-MCT/camino-ui/commit/4ed603c)) +* **activités:** n'affiche un élément archivé que sur les activités concernées ([cd35d56](https://github.com/MTES-MCT/camino-ui/commit/cd35d56)) +* **api:** prend en compte les établissements d'une entreprise ([923f342](https://github.com/MTES-MCT/camino-ui/commit/923f342)) +* **api:** supprime le champs raisonSociale d'une entreprise ([fb8887f](https://github.com/MTES-MCT/camino-ui/commit/fb8887f)) +* **entreprises:** affiche le bloc répertoire ([73e2e79](https://github.com/MTES-MCT/camino-ui/commit/73e2e79)) +* met à jour le schema graphql suivant les évolution de l'API ([fb02f9e](https://github.com/MTES-MCT/camino-ui/commit/fb02f9e)) + + + +# [0.13.0](https://github.com/MTES-MCT/camino-ui/compare/v0.12.0...v0.13.0) (2019-02-28) + + +### Bug Fixes + +* n'affiche le bouton télécharger que si les titres sont chargés ([198e294](https://github.com/MTES-MCT/camino-ui/commit/198e294)) +* remplace l'intitulé engagement par engagement financier ([f93aee8](https://github.com/MTES-MCT/camino-ui/commit/f93aee8)) + + +### Features + +* affiche l'engagement financier sur la page d'un titre ([4c624bd](https://github.com/MTES-MCT/camino-ui/commit/4c624bd)) +* ajoute l'engagement financier dans l'export csv ([505e204](https://github.com/MTES-MCT/camino-ui/commit/505e204)) +* améliore l'ergonomie du formulaire d'édition d'étape ([b1ec692](https://github.com/MTES-MCT/camino-ui/commit/b1ec692)) +* formate l'export csv de la liste des titres ([9d430ca](https://github.com/MTES-MCT/camino-ui/commit/9d430ca)) +* formatte la valeur de l'engagement financier ([ae7965a](https://github.com/MTES-MCT/camino-ui/commit/ae7965a)) +* télécharge la liste des titres en csv ([a5474ea](https://github.com/MTES-MCT/camino-ui/commit/a5474ea)) + + + +<a name="0.11.0"></a> +# [0.11.0](https://github.com/MTES-MCT/camino-ui/compare/v0.10.0...v0.11.0) (2019-02-13) + + +### Features + +* filtre la liste de titres par territoires ([c3ab3d8](https://github.com/MTES-MCT/camino-ui/commit/c3ab3d8)) + + + +<a name="0.10.0"></a> +# [0.10.0](https://github.com/MTES-MCT/camino-ui/compare/v0.9.0...v0.10.0) (2019-02-11) + + +### Bug Fixes + +* corrige une erreur si le titre n'a pas de communes ([ea296cd](https://github.com/MTES-MCT/camino-ui/commit/ea296cd)) +* les metas ne s'ffichent pas dans les filtres ([75fc117](https://github.com/MTES-MCT/camino-ui/commit/75fc117)) + + +### Features + +* affiche les communes sur une page du titre ([6f4deaf](https://github.com/MTES-MCT/camino-ui/commit/6f4deaf)) +* renomme communes en territoires ([baebcc5](https://github.com/MTES-MCT/camino-ui/commit/baebcc5)) +* supprime le tri des communes par ordre alphabétique (fait par l'API) ([ad04b60](https://github.com/MTES-MCT/camino-ui/commit/ad04b60)) + + + +<a name="0.9.0"></a> +# [0.9.0](https://github.com/MTES-MCT/camino-ui/compare/v0.8.0...v0.9.0) (2019-02-04) + + +### Bug Fixes + +* les mots amodiataires et titulaires s'affichent même si le champs est vide ([fc665a8](https://github.com/MTES-MCT/camino-ui/commit/fc665a8)) +* **rapports:** typerror sur la page titre si aucun utilisateur est connecté ([2ab9a2c](https://github.com/MTES-MCT/camino-ui/commit/2ab9a2c)) +* erreur lors de la mise à jour d'un statut d'étape ([de93d8b](https://github.com/MTES-MCT/camino-ui/commit/de93d8b)) +* lorsqu'un utilisateur supprime son compte, il n'est pas dé-loggué ([a9565b4](https://github.com/MTES-MCT/camino-ui/commit/a9565b4)) + + +### Features + +* **rapports:** donne la permission d'éditer un rapport à l'amodiataire si il existe ([6454837](https://github.com/MTES-MCT/camino-ui/commit/6454837)) +* affiche les amodiataires dans l'entête du titre ([a8fa4b4](https://github.com/MTES-MCT/camino-ui/commit/a8fa4b4)) +* mise à jour du type de l'étape ([d6057a0](https://github.com/MTES-MCT/camino-ui/commit/d6057a0)) +* modifie le statut d'une étape ([56ccb6d](https://github.com/MTES-MCT/camino-ui/commit/56ccb6d)) +* récupère le token lors de l'identification d'un utilisateur déjà loggué ([6a0268c](https://github.com/MTES-MCT/camino-ui/commit/6a0268c)) + + + +<a name="0.8.0"></a> +# [0.8.0](https://github.com/MTES-MCT/camino-ui/compare/v0.7.0...v0.8.0) (2019-01-18) + + +### Bug Fixes + +* **rapports:** affiche l'alerte quand un champs vut 0 ([c1266f4](https://github.com/MTES-MCT/camino-ui/commit/c1266f4)) +* **rapports:** erreur si lors de la création de rapport ([c835242](https://github.com/MTES-MCT/camino-ui/commit/c835242)) +* **rapports:** modifications graphiques sur le formulaire ([9a869bf](https://github.com/MTES-MCT/camino-ui/commit/9a869bf)) +* **rapports:** n'affiche pas l'or net dans le récapitulatif ([9c19db2](https://github.com/MTES-MCT/camino-ui/commit/9c19db2)) + + +### Features + +* ajoute DEAL dans le placeholder du champs de filtre references ([07aa359](https://github.com/MTES-MCT/camino-ui/commit/07aa359)) +* filtre la liste de titres par référence métier ([47b7d81](https://github.com/MTES-MCT/camino-ui/commit/47b7d81)) +* **rapports:** ajoute un champs or net pour la déclaration du 4ème trimestre ([3403d65](https://github.com/MTES-MCT/camino-ui/commit/3403d65)) +* **rapports:** permet de prévisualiser et d'enregistrer avant de valider ([871c957](https://github.com/MTES-MCT/camino-ui/commit/871c957)) + + +### Reverts + +* **rapports:** message de confirmation différent selon que l'on enregistre ou valide ([8714355](https://github.com/MTES-MCT/camino-ui/commit/8714355)) + + + +<a name="0.7.0"></a> +# [0.7.0](https://github.com/MTES-MCT/camino-ui/compare/v0.6.0...v0.7.0) (2019-01-11) + + +### Bug Fixes + +* **carte:** erreur lors du changement de fond de carte sur la page titre ([7cc8c60](https://github.com/MTES-MCT/camino-ui/commit/7cc8c60)) +* **csp:** erreur dans la console de Firefox ([d0fe448](https://github.com/MTES-MCT/camino-ui/commit/d0fe448)) +* **csp:** supprime child-src ([8468aea](https://github.com/MTES-MCT/camino-ui/commit/8468aea)) +* **filtres:** met le focus sur le bouton de validation lorsqu'on valide au clavier ([5684c2d](https://github.com/MTES-MCT/camino-ui/commit/5684c2d)) +* **menu:** le nom de l'entreprise ne s'affiche pas si l'utilisateur est déja loggué ([59622fa](https://github.com/MTES-MCT/camino-ui/commit/59622fa)) +* ajoute sentry.io dans la csp ([eb0dc73](https://github.com/MTES-MCT/camino-ui/commit/eb0dc73)) + + +### Features + +* met à jour le titre et la description ([7dd0eea](https://github.com/MTES-MCT/camino-ui/commit/7dd0eea)) +* renseigne la description de Camino qui apparait si js est désactivé (pe: google) ([7b232c1](https://github.com/MTES-MCT/camino-ui/commit/7b232c1)) +* **menu:** affiche le nom de l'entreprise à côté du nom de l'utilisateur ([0c2e960](https://github.com/MTES-MCT/camino-ui/commit/0c2e960)) +* **utilisateur:** affiche le numéro de siren à côté du nom de l'entreprise ([be83083](https://github.com/MTES-MCT/camino-ui/commit/be83083)) +* **utilisateurs:** affiche le nom de l'entreprise dans la liste ([788b995](https://github.com/MTES-MCT/camino-ui/commit/788b995)) +* envoie un email avant de créer un compte ([3b0381f](https://github.com/MTES-MCT/camino-ui/commit/3b0381f)) + + + +<a name="0.6.0"></a> +# [0.6.0](https://github.com/MTES-MCT/camino-ui/compare/v0.5.0...v0.6.0) (2019-01-09) + + +### Bug Fixes + +* ajoute un espace avant les : ([052586f](https://github.com/MTES-MCT/camino-ui/commit/052586f)) +* bug ff 52: supprime code incompatible ([41f05ea](https://github.com/MTES-MCT/camino-ui/commit/41f05ea)) +* bug ff 52: supprime la csp ([e3dcf6b](https://github.com/MTES-MCT/camino-ui/commit/e3dcf6b)) +* bug ff52: ajoute une csp child-policy ([c8c0e8b](https://github.com/MTES-MCT/camino-ui/commit/c8c0e8b)) +* compatibilité firefox 52 ([268a442](https://github.com/MTES-MCT/camino-ui/commit/268a442)) +* deux fragments GraphQl portent le même nom: titre ([e089140](https://github.com/MTES-MCT/camino-ui/commit/e089140)) +* formatage ([c7d3d93](https://github.com/MTES-MCT/camino-ui/commit/c7d3d93)) +* modifie la config browslerslist pour être compatible avec firefox 52 ([8d226a6](https://github.com/MTES-MCT/camino-ui/commit/8d226a6)) +* orthographe ([65c1a53](https://github.com/MTES-MCT/camino-ui/commit/65c1a53)) +* typo ([05de287](https://github.com/MTES-MCT/camino-ui/commit/05de287)) + + +### Features + +* après l'init du mot de passe, redirige vers la home et identifie l'utilisateur ([7af5929](https://github.com/MTES-MCT/camino-ui/commit/7af5929)) +* **footer:** affiche les liens vers mineralinfo et minergies ([264373f](https://github.com/MTES-MCT/camino-ui/commit/264373f)) +* **titres:** affiche le mot 'résultats' devant le nombre de titres ([fd02715](https://github.com/MTES-MCT/camino-ui/commit/fd02715)) + + +### Performance Improvements + +* active vue-cli modern mode ([a82f175](https://github.com/MTES-MCT/camino-ui/commit/a82f175)) + + + +<a name="0.5.0"></a> +# [0.5.0](https://github.com/MTES-MCT/camino-ui/compare/v0.4.1...v0.5.0) (2018-12-14) + + +### Bug Fixes + +* agrandi l'interlignage dans les pills ([20d5894](https://github.com/MTES-MCT/camino-ui/commit/20d5894)) +* diminue la taille du texte sur la vue liste ([ce95ba1](https://github.com/MTES-MCT/camino-ui/commit/ce95ba1)) +* hauteur du bouton connexion et du loader ([e5c03d2](https://github.com/MTES-MCT/camino-ui/commit/e5c03d2)) +* indique la langue à la page dans le document html ([f51f311](https://github.com/MTES-MCT/camino-ui/commit/f51f311)) +* retour à la ligne dans les pills ([d1de30a](https://github.com/MTES-MCT/camino-ui/commit/d1de30a)) +* **header:** logo trop large au format tablette ([1eec463](https://github.com/MTES-MCT/camino-ui/commit/1eec463)) +* **loader:** change la couleur du loader qui n'est pas assez visible en blanc ([06a529a](https://github.com/MTES-MCT/camino-ui/commit/06a529a)) + + +### Features + +* affiche le nom du titulaire dans la liste de titres ([34a757a](https://github.com/MTES-MCT/camino-ui/commit/34a757a)) +* affiche un loader lors des reuietes à l'API ([f33c081](https://github.com/MTES-MCT/camino-ui/commit/f33c081)) +* affiche une information de taille minimum sous les champs de mot de passe ([11ab0dc](https://github.com/MTES-MCT/camino-ui/commit/11ab0dc)) +* génère l'id utilisateur côté serveur ([e53ac10](https://github.com/MTES-MCT/camino-ui/commit/e53ac10)) +* **filtres:** ajoute un bouton de validation sur les filtres ([34ba2af](https://github.com/MTES-MCT/camino-ui/commit/34ba2af)) +* **filtres:** sépare les mots par un espace au lieu d'une virgule ([bf1a48f](https://github.com/MTES-MCT/camino-ui/commit/bf1a48f)) +* **header:** remplace l'icone de connexion par du texte ([79f181a](https://github.com/MTES-MCT/camino-ui/commit/79f181a)) +* remplace l'icone de la vue liste ([0e651ac](https://github.com/MTES-MCT/camino-ui/commit/0e651ac)) + + + +<a name="0.4.1"></a> +## [0.4.1](https://github.com/MTES-MCT/camino-ui/compare/v0.4.0...v0.4.1) (2018-12-12) + + +### Reverts + +* supprime webpack_hash qui n'existe pas dans le bundle de prod ([1e89fad](https://github.com/MTES-MCT/camino-ui/commit/1e89fad)) + + + +<a name="0.4.0"></a> +# [0.4.0](https://github.com/MTES-MCT/camino-ui/compare/v0.3.0...v0.4.0) (2018-12-12) + + +### Bug Fixes + +* **auth:** le token n'est pas effacé quand l'utilisateur de déconnecte ([9096905](https://github.com/MTES-MCT/camino-ui/commit/9096905)) +* **filtres:** ajoute une majuscule à la première lettre des noms des filtres ([f1e25cc](https://github.com/MTES-MCT/camino-ui/commit/f1e25cc)) +* **footer:** supprime la marge en bas de page ([085742f](https://github.com/MTES-MCT/camino-ui/commit/085742f)) + + +### Features + +* ajoute le hash de webpack au numéro de release ([302210c](https://github.com/MTES-MCT/camino-ui/commit/302210c)) + + + +<a name="0.3.0"></a> +# [0.3.0](https://github.com/MTES-MCT/camino-ui/compare/v0.2.1...v0.3.0) (2018-12-11) + + +### Features + +* **footer:** ajoute un lien vers les releases github ([2222446](https://github.com/MTES-MCT/camino-ui/commit/2222446)) +* filtre les titres par entreprises ([9fa9b5d](https://github.com/MTES-MCT/camino-ui/commit/9fa9b5d)) + + + +<a name="0.2.1"></a> + +## [0.2.1](https://github.com/MTES-MCT/camino-ui/compare/v0.2.0...v0.2.1) (2018-12-10) + +<a name="0.2.0"></a> + +## [0.2.0](https://github.com/MTES-MCT/camino-ui/compare/v0.1.0...v0.2.0) (2018-12-10) + +### Features + +- **footer:** affiche le numéro de version de l'ui et de l'Api ([be2d97b](https://github.com/MTES-MCT/camino-ui/commit/be2d97b)) + +<a name="0.1.0"></a> + +## 0.1.0 (2018-12-10) + +- feat: 🎸 expose le numero de version dans l'application ([cd16034](https://github.com/MTES-MCT/camino-ui/commit/cd16034)) +- chore: 🤖 supprime le changelog ([5c6ec13](https://github.com/MTES-MCT/camino-ui/commit/5c6ec13)) diff --git a/packages/ui/README.md b/packages/ui/README.md new file mode 100644 index 000000000..4ee1ccfab --- /dev/null +++ b/packages/ui/README.md @@ -0,0 +1,25 @@ +# Camino UI + +> Interface web de [Camino](https://camino.beta.gouv.fr), le cadastre minier numérique. + + + +--- + +## Technologies + +- [Vue.js](https://v3.vuejs.org/) +- [Vuex](https://vuex.vuejs.org/) +- [Leaflet.js](https://leafletjs.com/) +- [graphql-react](https://github.com/jaydenseric/graphql-react) +- [vite](https://vitejs.dev/) +- [Babel](https://babeljs.io/) +- [Postcss](https://postcss.org/) +- [Postcss-preset-env](https://preset-env.cssdb.org/) +- [Eslint](https://eslint.org/) +- [Prettier](https://prettier.io/) +- [Standardjs](https://standardjs.com/) +- [Stylelint](https://stylelint.io/) +- [Docker](https://www.docker.com/products/docker-engine) +- [Standard version](https://github.com/conventional-changelog/standard-version) +- [Commitizen](http://commitizen.github.io/cz-cli/) diff --git a/packages/ui/_sources/logo-camino.afdesign b/packages/ui/_sources/logo-camino.afdesign new file mode 100644 index 0000000000000000000000000000000000000000..80f3156d07cf8460f9d5f9b42df4425e1603ddca GIT binary patch literal 98832 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 Hr-UW|W`B3; literal 0 HcmV?d00001 diff --git a/packages/ui/babel.config.js b/packages/ui/babel.config.js new file mode 100644 index 000000000..63e6a868a --- /dev/null +++ b/packages/ui/babel.config.js @@ -0,0 +1,12 @@ +module.exports = { + plugins: ['graphql-tag'], + env: { + test: { + plugins: ['babel-plugin-transform-vite-meta-env'], + sourceType: 'module', + presets: [ + ['@babel/preset-env', { targets: { node: 'current', esmodules: true } }] + ] + } + } +} diff --git a/packages/ui/camino-screenshot.png b/packages/ui/camino-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0d6c39b583389512b489b5c1758ac3150489db56 GIT binary patch literal 471220 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%0D?vrg3~wR7`Mk___U*YQ62r=PeDh&vDO5 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�h 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�Ivrs}D*c-;>3>3Z9$nU%zQ zi+&c$$uNB``>--^{;zXZ0uy)>9R8eOV>-acI#Kw@?T2qVGT8U;w)8aOa;mZuog;2% zsHfX|yxk^9`RpC-3eStrJh>aHn;e$5M3|lCT;Ol8EnwA!w<d?>FG{2vE!{E2w_=Bg zl0@H@y0<UiZ97vrZD*5&_@vhi4PuE#>S^4O+a}KM{Z_T3z>I%ejoLi(=}X!**gLLU z&1C!@IB!vffYKAz?>|2ll+9_MUubu(xGzNK<<qp!!6EM(-@W6T|6)_VTZi1C#F-xJ zp1R!J)F30>YOQ$V>ei6hxBFdxG%)R&5#y(~IQsTUiCCWB8J&E=2|to<Ppdu7n8saN z+`aeEstg@%<8Q4T?TdF`&-m!s{jZtbF}~2!dQPuPxHq?Xh9Jv)m2$g_|MdTb*ET#& z?P7mrcjZX?pM~2W<}X+8De{eGKh5p?Kgm_%<9@F<9Git1%8zZx)<~ZDO6%{L)d!4b zE$9kcd{OH`(-)Q<&MpGBzLlcSqB8iH`!_F?vyFMWNG`k7jo18{;_aqO@g9$+zW3I5 zyjj9=HK5)ssZ`?o2B$^0-2bx)d;hs8wQ*@lcY<v9!2qWBF$<;~PA|W^@AgIB|F&=b ztvxEwWm%)FxXv};1OLMLS&M$Hyu|VM=l1_<;RnB--@A*qKC6vmjrqMF<&};O9@*Lj z2U5E>_ix_bz_`ry_PoCwZ?+X%)ENeEWIuPsY{ujD`|rh^+R5^@{ASFCXy(i&g*W#Y zCD|<BU5o8BpKZa}(qAo;&L6Q<M_flwP;tM@H{SvV;hB;8&rdGXcvmZb@$vQ+mW2-6 zpNXwmc_qv2)cwy#ettALFMhLK=6P;fWduXn<9U0w-m|mZxs|QyY>Juu*$*o7pL5&P zXKqM%TsbLfR&jxd=8{JSiiSTfsGqxOCn=Jlx7(xmLQ|}Uk6^R%Ii-Xd3>gt8?woe} ztiqh}!n63!^^iRh{mUcf_iG-pJeazfeSxOO6Q2gZ*u%adv)*hxnj7tD{C#VCb}r+e z$6O3~KFY_>Jga1|HfHT~ZSY+n5FP#dbAj1u_LOho94DscEAl^Am70<G)92cqgx8%W zVvCe*t|z>FXU5lMtUa;qm7VZK3me02W~$!%k{6dVvK`geS+~@({@U}!VzqYF1{+LO zQ#JOBUwX{EDYQo>-?Fg#bin34F)Zi1K08QOOP_vawd<Qu%i*Wr1^*q(<JUa%ert*4 z_i3_QBs{M(J}+3@%y7zodCeM+ANkW=CM^HWn00{5b7xljyjT4TCRo_;^&I7?jANFx z(>7>};k!`$Pn~T=;aPWvj?WLa$ya_0O%QQpVJ|CoW6oQ#nN{wfN<ihVRbDINR#-?2 z^R}K44>-9}vc>rif1>&)Ii0i16<@QuTsLrT2~WsPb$_zVXu+a9wIpR$6RVzA#Voxi z?y%hp%wEm!ow)CQ-EV%WAJxgxyI+=l{n>kWf9==p`)ju@R<y9NapHbC@x0xCRUMuh zDf6r6FY27wX@8R8$3K37e<#^>jtZ1YGv5F4`F3!--V?`jOEME#vi8p~xpaBuP3AQh znk}2n+LM2scVOWE`{V5V8g@aI1x-&rvl^=lDqQfH7-lqqw<RNL$&9AXg-b;qH*1GE zEeg*S@=Z4~v7G(XV$}ihWjjP9pQ_x~mB@JLQJiS<@S~xe*47hul3Cdzf)r(+bMZgE znYR88-;DFmmmV-m&;S4P%`MXp*W}sVj((oWliznX?d5}jaIJh%_UCM`_iwAWJydvf zQG(7UpEr{q)ZCdj^XbkA!`%MKI~OLhzhPJ>X1u!5COGApyT!kG3N6o`cf50&BfHVj z)^bzS1RGX=Mb{c08-u+6yFTn=-*jhf+PcS+GN0}W^*Wv#rycmfQeroE`q}sHPv`JP z7N0#On#cL{mtz}mz^9cw)%R9<uJAd0n?Jp>D_!MWj!~~mn~d6`<cfmw^6*G`!;KRP zOwBmd4n15f`#L(Ap&_}bNczV2Rwq0A$Lt1sTrWF%Z1GBoSY0~h-1A9mC&n~<JE&Y! za3WP^VoL(^jQxi;v@@4Im3p(#Eqv?!r~jQ;o=Mw8Z>!etP&mNNxjcK{x`U<HJZ}B5 zQ}j)Lkz%{3#{WLEONVl^?47Jq&Mg7QcA6Q)E^L``Em2YOXUsuaG4But7t1$Yg4)Y^ zZiGtZ&94=W5cLn0X%aT+SlH*a;+tO90@XRw<PJ|Y%yPNrBoY)Y$gyZ6_gNM$uHM5% zI+L;|+O2uRy2_~g)uSe-dlyW%evWFidGdGpg7@Fv`t6nA{k(AFr1f!s!z6o{eObad zpY4{Gw%+wnM&ZNizPqxrX7V>u=ly;k^>4ZD@29>?**{$7XJGta+AsFsBrc+%VFB;^ zozHCT7-9`7PnkKbU8bVtocd<>7UqJbGJG=*xn3`;E&lUWzu$r7`S+!r{izcdpAoS& z5_-khU%Gngc`xN8x1z?!MjAXp7pFfmzVOEBqR>&V6t*mr17>|)CZAh#<Q5p}IttD% zz2kc;hbeh;p~HzIO48fKFEMR-$N2lST-MXDpE<J_qFZ|2-adJ<myw^}y5WOwr6ya& zp|e5W3I!F{i|<`w?$^|dvQ;b23Xo`8;boYy#j`k4QPn`M(864yeSz`C>WxaL4c8pu z$mE}|e~i`eTvc7RH~%fU4KiD&Ok#5_obY>F>thT5iNXid_2*ADe$o|vl5bM4sAcx% z>#u$9a2$UYRw?;^(SeVj8uFGhUrVWP;3|F@DPUjmepcnTD@)eYp6K519(cv0!>nIT z$Zr2(laRd`uisfb*wmtSOwRK6tEQJ#$1iQzufB6$cZ9kZU&cb!9bZqIZhW#^^pq}- zPjA&)k%x*$Rpm=>-|}jHZ0z`Jb#E!}#|0bL@jUbRHBE<omF~3FeRc-iCQKcC_Fqh{ zMf1t5Ft$3y7Zz{o<oqD1XHt%2e8<_8BWHb=@;-Z6-N3Q=g43=Rr&HUeGlje;6zN>z zd)&n@LgMR{%e5RQr}$-8YR+3ewZm|c<)pnU)asW>DzF))=&e_p{_4S^xzDdMNUwQ& zT%apcy)$&Z*ws#k)Psqe(|h)DY%X{%KP}2&;^fnjB?_lHy9$5qe*C>P{P8>oU+1k% z%_{<q$@drvl}DbAe<RQEf1lRhLr!VyyOPC4j;Ol5c$qh4af{)*gN-W|)cpRr{5D6$ z|Ni>F+wI@hI~z6}yU>2D;rss=JL~^@KUuqWZSwVl90v2nlGilr>v>Lj{>a<f`oF>d z-$BQm6&jY;{gJQ#G}&04-!^mpn<#@O32*kIoiPutdCb}zB-z$>FLwWl3JEn?b=RgR zYaEO+x)yl^>9IHJY<;%EX6o~^0cU2aT5$GOFdNQ`6L}O<6~MxyV&T_wocp4N$I7?& zt~t#SH2PV#dS_-$WwWwl=!4DMG(=hRBw~B*Wi~zCc5Qir&Y3HdPB}A5*Y9tQ``YnY z;gR0NggH9L#MrI7w%ys3Fvp)WGayFd!Qzb)ml@{=Y6valIejx{(gnszoQ@Y%(tpQl zJ@Y(z>7s`8GR785yLnn4&PG2`+IVX7g|)FK{J%c`d1;;Wn!-9Ux1eo|0vU2gW*p{Z z<xfkjR@4dnnH{VU&Fr+yXtl`HrArGp@7=mJ<8|@3oON4E;)}|5HhfT(l1XshyS?=T z^CR9h>Kuzchv`jX{(U@J_{-W8&u%^Y_3V(^#CcDzf7*N}K>6*WN)Gc$Z`XQEaP0Xf zpd5Bxb`N*x`ukUtvkIm1e@mY_C8d^Qm%QHo#@6NQ`4|e~BTJoQx2j5{{IGfX-LSi} z^?=*`GQAJM3IdY0$=O<!_ncq%cNutgeskSx(D9J*e{<`PSy~-7sYx!fA8y1+tqJYQ zJ==ZZqmQ-I<2kWYk13XhHcHK5{PewJYwl$`mGg_%n!Z`puqva%e@<(kOXQbl9;so* zFQ#~Fy?b;l)#bs116u_8E>$c4b!&9Iayp{P#z*?9m~#x*>N#TFS`sJsH#vz<<EdZj zDLLg7U;iJseNE5Y?p@6L{jfN7?(fTH3{5<r4yLd8cGTQLJmq}x`MqU-GB$soafjWb ztH)#anJwqtt0sBf=3dpjwf<}aOU<jP=Kl5dpPoKmd_2l#TJNbEYj^eP7XfPTCT@S^ z!e@3TmElPPGneM9X)5RDElQfCad)c2@q%}g{`*?Y74JW3_`Y(|vz>9?7rieDi7fZA zITtk3Kvk!3zxU0CNY~9~+cLgJanCt^_$KFXmHn6G`ky&wF|0J>(rN1vo9TFdnys|$ zm0f1LE<IN8k<l*MKVK;)=GH}p4ox?KuAK7e8dbA?E=_c|spY>l*<042TS@WU$BSF; z8|8Z!rbO(KI(v_!MN=;8cBtODwWh^^UEJ$GWllQp-aY%?q2szb@=p(oOwZohcKGp6 zllVOodyN{-C)&k7SiCgqhPCGGqo0DW|5~o5zL2Ny+^3(f-v)1<5+in6_CeU{yU)%x z*`?h2P<8$K-0I^T)BnF)Y?V;>d)3^piuLPXzk6}z)URt*N`<=9BN#K{Z_4bQr=UF7 zn}y@l^#yn27$t8SoljloxcVZC=egZFF8t~yCOdu|&|7%&Uh+rA+%M)=uKs+Ud#uf9 zgTso=ZyLYbN2C?LHT|{7*;^(&W>Io*^v)w{f%@eKZT7NU+hCRQYRxO5f(+Z&sm|$F zzAjhI%UZiyH{tY$BOJ$eTJ^rw^pkT`5qW(|qH%tvXoR50!??4>hi^{mxO~z-F#Wng z-&>v!4hxkEnl8M0{~?59)6V0I#aGN~>z4Rr@JVsm@;{whxg%~(@p&WG8_2UxNvKO= zt&qv0zQZfkKSgV3beu|O-4Op*tYaQi<EnbQ1M;7)X?3dB*9Why&cC;ZpN(UFwvub! zz5B}=?$-Z$Ep7018}pwJ{2~W`*I%jmvUa=q*#|9B{ud=11!g=HNL1dNygu>3VQ$Gq zb)OFgc2reA-EExT%zLKo<jz3R1zm?$Tz~voTvFOoEK}O};o{nFJh{f5Jub_c64fT~ zpKWtq{c~RI+~1<%+LjsXCTFWNRCC{(_;AS{cMZ?P{v)64F1m|yKW1Iw|M_&Je`0B# z!cRNTTaV;U+E-TeN-zdmWKFwdb7DtkS*VOpuFenDZMDU<uP;WuPUwDVs&)6Sl1Gbb ziKd;6{gdRn!;a4J?9Wq=I<8)8ar*eoGq%$rMKX>Z+OW~_(ZRh=?%eZ5doFk;ok}|! zGK;hQ`nGMime1Prw#I_z#x&XGd!%1ScdnlqVKtX2b=S(N%#)^j*U3owT3x<*HRI#! zc@>TO*$#fOc_F_xPQb~5i_d{MfvqC{!V}+Pl@(9srTo9OMe5!8&5dWbZsjrFV_^18 z!$|gKjE9x(v0C<3y<ctn`1a2@7knY0a<$2SZ8cT41IDKME^BL_X)+w}N$$6}a$UW# zqGWaYFR_nDJ=~o$R-U|a;|7z+rPA$EMmJ(FI7Zn%lsCG@Ysnub-y(LP>hZo;MlV{+ zI2Q^CrY(`U`*}x2|3262+7H_E%6*#N<YZmkrm|W*V3&L5Ly6NthTP^_lMkO*A?LMh z*`%VrT>tWGw_jLEX*fpw(Xn>Y=DkqB9O8G;OO#RK`gE^o`FYn}4O*>M7`6s4@TpvQ zYssQrN(zGFZ`l^@65Y=C=%t{j&_-2-m;*bO+Xl4u+6gQ@r}-wN)jqW1V%xloeao9( z$M4;!dvd}1C3V-rxegur6}GOy@Xp>3KR=(pzo*iVH=O-dxYGgV`oEX;)^cm@a!mTL zliNLR-?ckjy$w?=A3W^ZduPMmzsb?rhkA5A8geN4R{Z*USl$2shqK%7S=IfRy{v!l z>}+;3p0ZhqF8$m6eOx^=H)`<kpK=tD)Hr=9EkW5yL&fQ?y7TEXbw|`iU4K5xZak^^ zK4i7Icw#b-uVJR1{*Oy6Q{(65Y)`*&v*zOGI<qX}rx_Lg{Hj0sP4zFBM6hy+tPuDt zDY0<3@@bQ&Y;((Vv)>Aed|}pKyC!Gd-v3eDBA56rHc36wIqhq?T6L1dS1z7xvzeFQ zC@J6NHfFkVxT$yN^U7Sq+|31>Bd5)4Eeh{iW@&c7wZH26HM8qt%PQ(}v!CuhZlkkp zL#pTvjnkWsX84)8S{&u?ELEQ)xX@r;>{Cm-*KenPXWlHrZ(d_DS9i^!=tGY-uYUMU zL%Q{tr|_P@84s8Lx*qqfh{e)=7oXu&&ir70mgy0zUcb_d{WPOv9)shZ4>R<(ne_em zdx+)X`4h7?$BX3k_HJYDouh73cu+`0X8SQUH|w>!eur*I6#Pv5>bqm#4&Cp9LSi$% zZMb;&s$TNVgUweDF!Y}LWtV>Q>bzZ*VkW-|0=^u*wod=opY8w5Gny-_lzALxb~&F4 zI>*=`vN_n|c(AMlzxV8l(hm)j{<fJup1V|6ukp0W{AMGwiN6}-*XfjeJM*0Bv5@e_ zokB(l8yqLJ-&u8`cahzS2a7uyj!nsuK50<2Xr9B>P=UG0U&S|C`Ks!~-?p5*e352e zp<}$G<!!yTz@NO|E6zzQFU_)8S<}YD`|#xYeO>kp+nbf$uLXUs$V_`8b7ud-Ui%ph z+V%fhi=V$s4t(-&=Uc-a>*W7^md<!4{^$Mo8m<NG$qF|_KU|)^k6l$fEo-{^am`77 zOKqG!Md)33VSB?6D)DcNrHsC8<<qH;?d|?OyO_VvzVc0BaM9bjymR|axSf{m->cDg z<ejLh{EI%}g+4ou9!~Xe+On2Q#eSZ7@E=#3pyf`lzRX+sY>(yHiJ6`%ssRz1L0bx0 z6ff<6>@fYT8*8JoOvn<`#|oK3R|2X^RLz4L>T(|?Ce{TAw7C9V>@MAJw%q!55p#0# zP7fuc%U4Y&%;{Ux|Mp#5+2bt{S1T{RQamOzFUC<K<qcEtgPe~R7eYTe8lJ8;+RWc> zyLyf-H;35sr*mS>=Jb8qSp7`YNHlrp)PL93)|l<Tc<%H%<LtQp3B8+Fzx<=|;D%|j zP2TGD>*Su^ST<)$Y@Tml%VCuVW?M84@ry1ub`_{ITC?Wgv){9S-*(JP>XtdZ>_y1y zE61*h{4C76A;I+ZTBua8a@Em;-iPP38whSl{+{%fbMeuK`Cq<XwRV`Bq;lQyaO1X= zAdRlNX&a6<d)HjN=-yJaxVL)lIkv@%`OR2fuWDD{_rdheyo?=D`QAShYv!yddw1`( zRmBH~yN=$;$#YjvpSa|z>)5TS~pnX3msfb$=$yrp>%=vL_w58wHsRzV1?rdlM{V zf5FN0i(jDl?3}3{O2-094&487^uy}XAlLNso49&b&Z_BB;5fTZGoej~Z_4ur6U`*~ zt~iOTTdC2$;_kVhJT99IK0TNzlyYe48)>DbOqrrDrmiq??=`zoB*pi`IeSl+OQOY; zEGggPif=Bb$SHqt`D)Lw;MEld^A$6WIr)03+Oa3JUwh6__taE>PXN<__=Ua>GnwnY zU9Z1zL#`$&lrdHR$3X>8mX-&T(+@=M+beq}I*2JZd+X`N*=0s9&(_Y((&>o$@3+79 zPx|rx|3B7FzQ6y^HS@FI9w*OcXfXBB$n*cb$L9RSq*Vfw*dyN?xpw+IO>CKZ%0uLM zu+VPi;EOk>H>`Xny+C$yP?yThkU4TSFA4-!7Z-Q;+~GX&Iq+cKwnEO`cjs+nbJ>61 zziv;VPPy$77uSmt+Hpo}W7k}?*SqeozC3-EREqV~u9=zX(Jb%EUDLi8haMI+_IuvR zJW;Y)z`yhJJc$N1_hV;SmsL+Z%e2<(?524(DwCMkKH|Qx(ndPZe%H3I71?iJ?3&t{ z`s3r)#j`it+}|>f|M|&3)3&!VX12uZR-_wW3)4I+w&~cemmZf=zJ6o=JNZX}>EUON za~B%TT>5iws$1u+ybH`OIp?d7uQZ8HiL^SFvPb0hu5H`QQorgJuG^e??p|#yFH2&v zS<NNYxL73~E9c&v;{oOu1NJUoytJVI>*rK9@5cw(MV2huZDTvn&HL}+Kb!6}TSoDp z`KS=E$0*jf_u+#hxe`*DAEK?SoD?OL3U^w)I(_O_RZRHztCqSCOq7@X35r+{sWu@( zpmx(`rfo-#e~)4~BKb_!*e*A~>X2FL!&5tglFPIn&uz-c%D(?imd$4Cf@{}Kd8D}M znnvCFzQ)+$Nq5uicLMJcw+Bl;{J>-2rjVkr_K=ht_ZM}eYvIRr0_Jirm#Eqh+b#7& z?f(Kdhc6{pbb=4X-jVA#`=?+P=PiRHNBnO0G{-G(+GX{=X+dD)_50IuicD%JoD#k= zLsgPtzB`LRp56M|hj+O3uk2Yc(K*Y@kK_NRum3l@vpN_s>#*zV)LJq*R4P14-8prs zZN2h=){Mq;s>LTS2AuMn@c6Cyvh)iM9OoWZyqx;@c>Rx4ALl#Vc|Y^t;^S+WJEzGV zK6-1#4wov9*T+ky^#*<VH-E}P<ChgHBu;qb)I=m0FUfaVb^rg<b6ruE-}(>sNZ$~g zB)8$@B9{q1a(x?C=LBjT4E~~+zP;Ea<4n>tzl%y+j(lCSX02>0e{Qa-_~k>lt~u!i zZVsI4vu^v^Exo?Z5f{%q{<UrDYVOWez1vzhp5thV^C`EwuDC!~LimOV`>plmt0%De z-8lS-fAP)2JkxBpKc7$NUi};0zyJ1)Tc5Tq`+TK$>*7i^y|r#DKQ8&sW;!)uX~n7C zGav4#aZAzkI;Z}97ProMj+K2o3uY`;TmM{B>wIs)1>wm{T?Ky?h{<zAYW#0b@0FF@ z@a|OH<HM3_VG~-E-pVd_J-#8=Wcl^NYxf??9gj?ozn}5mvG(Vl_%DIpY`@R@{eQe$ z{Wb6H)0xT5Q@1w1>tA)wu0ZZaxLM5p^{?jMb+eky6}I<A*uyoenU0ve$et&&);Q$! zEBDB)YZw1s_r81cKQ`~Zo7Z0~+`5|i%!2ZEk45?+A`<uC?wt2^?HrLNw=9MOpO!l> z$njclSaDI}8uLx(#rq5N^ljFx)==BA(_eXVNR|WNG^?MDO70VU)_ky^W4Pv${ZFH& z2kFtQ(+nBK7kI2~2tKkxK;mI#jH$KXLCX-GRb>VhelB;X1aE&hB`$NSvC>b+HUrlD zExe6C{C6Cm(YB9G&hVPTw4!Bh6Ej{_RlZ}fwAZ-0$E&jN^x`}3du;v-vK?AD;lZRb zK8A>OFMsb|zuL0=-CXgw3p}k;rb|4qkFR(w)3ZBQev|mLe|PThTTsu)xFCjKzV`Qz z5aB0c6B#?76{TF6rE*lD;_Bp|-yBxYI{YzJv;FajkB>DzhU?AA*O}e<%dzmnq%`Ms zjVUVb=|3X^Sr|lS7;MlqlscPkJa6d)|49-HpKhIdRNqP=J~Qgu)<<Vzs$7y7Y$VOL z%y=jn)xnv0&MQv+teoG8inmHTReq_r$Y?BbUoIrQbL-i)YuB14U37aTAMWe#AMTpA zjnN>;&^Fd^@{CRk#ihJTTBRq?oj7%9af@pG+$b~Si*K$)#oaU5GcVD`;YY>4Dw9+F z%xuqAeq9`}D=I&r=<uf<mO2f+B~ekl!i%r{xpFIF#o`BN15dwiuT*q+y5hr|Ugzr? z`vf|I67rbEuJ3OYo3X_s+@9s8GV|ZoqbqtICQj_$w$|QDreWo?54~wdx(3@40~3x( z1PV=iR<%soc)R+uLm|gEd|c4I`Ngv1J(67uSe#e?K6T!%=zsd$ea9HKoC{dJ+Eha4 zUH_@l@?8h^unD~`nUEG<y*zBWu?6GrltU4V_4mJd$9j$9twCz)U0LOSw-+><l!S&i z^EaK2zx$x%E9<e}-}KUMx+cEA;WbI6$nIu3<IP0dwJg`PWKV36yJ*JJ=J993!63%X zxw~~37;mr~Vd$t-4x1AAvS*5Lg|=_DiO!QFt<#UC*5BWJn!$TVyD0P39{*B12TsKm zYg_^r7pl1SD?K^ve|_5m4T}|_6RwswFMpR1mDOSOELG!!%<R|N!3s03C<^W3P0kAJ zRSemBGw7h?(Y4Av?)=SMi~6Q6*p_=ozd6a|{za30e?I;ERBV2~^5GmS(NC+3>wlR$ z9JpWq!C%zq$HD%Z&&TxUzU#FOWoVFK{CeD+zczVaVX~1zwTKJbk2O!e8&49IxuMRy z_H29kX~nr4=3OsWo6Rp@pDO)-pZ%xL@u!#7Zz!CxoO6~~t)hHHjA7G(j-r-+`7bfI z@}4EnJh14AcjrnG$)q%s9HDoNKR>);IsCh9bE!@K=K{%2&Z8?HWliIoz&}&McgYFK z+lP0EJl*5uA;J<B72Tl{7Itm@^P=FBb40xo^+Nwed{5XV%&?(2O8(`Z87ubA(0JeC za;j^a%TcB!-~7t`+#kdz8VKvJGul{?#(P2k>&IKyu3Wp-r0`n!kB-Rx$2(76(-q<h zcX)48zy3h#3JDY6)Au5#sTrU7zU`&;nb((_P1_d!44LKiEcxZn3jQrS8>EusxBb(z zI^&yGsWsd8@WIVD6Vvi0%zbJcV&WYevts9t%m$IKt9NY^7XK=K`_>oJaO>5l=7`Q^ zpVR5~*C+k$+%Dm{=d7G>AN5#%+J8dHo1<yptE;2$glB2}`?zD_H<KCL&FX(VOk_Cl zYkus$nqSGWKed<7zW@8f1jqM34p+aIU3+2Xy}dO*MIYbJ`(AGsoBo1Xc&6oS2md>{ zEAnpKF4)HBGGTSyjm*_$=LDwN1x<?ia^uvpBdu(1>VLLOV_YPBgh7-`Eqt}q;i@Ig z3*0h$QoY_--cfW<U(2O4Km7X1{;X4xAqtD%Ikpscee{;xH`#y6JVz6UPdw+DlrsX~ zu!UIL9eERyE7mN|W^G!_9DPRHk88$O%>^w}qgkeNaFst>p8T(4n{c3OUxj>?w{Ezr ztKl4tX)8FUd&jd?Upuh!*U_tPE*2rJ%+*SJeuZ-WHYwxJVo}#>oXDZ{|KFxPe_GFH zpUPhq{*Ia9-^=<tcWV9I))zmw`x|&t=zp*6?gtFU4yAg2|4)7F-99^S2J?kecb?0u zN?36*Oi*0=?ahxTyawNHpL<vlcl}Duiwh^`|9i6B{_o563;)<waeUzCnR!-*kt=__ zjsN@8riO-z|F+5JwB@I=baDqL#zig7H<U^Le#2EYgYTgHgZaDSX4PG)Q~sY~bN=~d z6$_3Ju3bJ)mnvze&psY4Wh|*5vR6Bpxyhw(ovP5073DYIY*kyk<+w8ECEj&4hZE+= zU3N{=G7}3smZoI<v|mh2=xM)@bndxd`M1hct+nM;#nPl$9WGSt(pVdtUgM-wn~_!X z*kHl@sq+1kVybeJbuXSex@p6W>Z4m`p7J;vp|iH%CThRL|B4%j!)&sYCmFZ7KYcGF z64~ZyRrYqRwDj|pB{EqFf({|4+_*QnD=Ld@zE~0PWbwtDIy(1?3-=lu#%>OZ<C}P} zvwPx^FXnCMj@<D2dC2K`o1I~>?X{hY=Eq6iUNIx`{hb$I8gD3fOg;NfdwopV{<ZI$ zWCWXU$38CH{r|B$L&LIi|9z!L@3LAdP5=L(to%w`;e4C7c8m7cJbiNVa_<C_nqO0+ z?oPOP@nUVd(vw}bf@_$0cdWZ*U-)}+b86{2x8V4#tGO2$CdcXfw&(p;vfX$4lg@|B z(uo0|H(xr`{)C^kYD$6E5jN4CERAy)H6{FOUlsLs+e5#6dscfv)0$I3at9`>p5LPU zC45D<#L5F4FFzccBeXj(sndG#q>ux@c#BM3<-Xq9X2s)?wS4m<*5;*rKe+AV1=}~) zHGR_dp1*#N@~hi!@t$*w4o7Xy66~E55$Y@<%32<Gn7M2d&zh$Bk6yGskzr-XzjvKy z|K7#+<@;mU99$UQ@Bg^|{<{*dzhCq>Nxzcb9d{#?$>9mt=GU`>*UHa6z^!(EqOw!o z4SRkz^(8L1-pZTLJoDh~_04zXtKSs7UKng&>B_fv%Hs|`^O<j(KknEp{;bY9LC4+8 z>C`;q<0>o4UM}@%Q$5KbKXt_fk?u{Bo<cUuVy#!jGweNQn_JZ}b<R!Wzw`I)(P%&6 z_)FTqXq!_*{8Nv9hvtY`4>xJ<zWGpi*|p-6jcXZZCJJ|&<||y9VlvyZ`rNC@XRdkf z{<-GgxeamkD`W06-kkEmm^Yti>4tr)YL30WVl7)$8^GWBe0H4E4;49WBkpXb(_SxY z8t>nl6=n9B)h@n+FXtnxo6z$c)f+Y9A57Dn*KMdEdOqjS_cd9sOYBzMxN<gT&dS*G zGO2ej^vkBb-y2oBXzjMQM|^(zEDq+kcrK)Sfp71gGs_omo>?+yxz~r|yj3>h;m3po z|9V;eS@YtHwyAp9sxYOAQ)jlC{oSP(7%v)G@n+6EGnX`>@YPCl_nJ&uYQ(VX{_aP0 z;ryxV7qT&YSn^x<E<;MjE55lkpEvF1Tx9Y#)V@qUx9tD>_C|?U`n&Jj<Y=}FNhsNr zy3JmEn6+ri`TwrXI{jBd4@VT1UbuSwMah>=UN^IfuoI2<U*+D<t!Hsb)@44DF2PX# zV?v(uqE(F9djmc?1+h!Lyjo(lxIKhv1;Z`BQs&6#+CNtRc%f|n^3uni=S<9&PAR<K zd*3XHviKAJmM3uS3W3bvxCLL+j=lR8bvl(L@08+xZ8x2*eMj9cM=%}C5ef{eU=8cN z_=l4z?&|!2N>00GXWcZx8LN`dp0Em#WBbYFxR9&v$N!ui6MKW}yMN59seacw`~P3o zzt8vInb*-=`nlh{(4R-gVsHItcZLT0RVykU%P=U+W49~+^0s%o&)J_guAeSCtY%IU z)pSgdEGRLX-1zNj+2qYKVYfeSkG|bs^Z%45hmCz*&Dxh4n=*5=bvEuRQ<$K%RKRn2 zaLlP}enw%I+sqScoLg)sKV7_K$E>~Li(7o|Tv>V4o?-vF>2bgK>;Dy5KP@kR{xGP; zDkbAtB&UVQm;Fm_mguBzjXKNfwB(@tss!)6wa>R*+ZHFMy7%5i#^{5yq)u>_^cZj7 zVp93G<n-}pA>D5iwWb=IR%$EtD^*>*W;Dy&O{o7^R8Wt~(aX!WhE05!bm-0jrwQ5& z2Le?t?@QHBJ6?RR@$A&EDmM<EIUeEJG3)lvj6f~6BoTE>`TkIeFPD>F=Zf~PvRW>` zeXaVk@GqT5zU-=V<+p#`x$)(ZFUiYw&+a<)Do8}X{B+7fb}OHyjd4La3+L*`_?!qb zWq81L=f#6kfhG5@U0ZO!By3Ii!MxP;pUTV6B<icBm2{rdZ(#Z*!93-_*3b#__;@ya z>bt$R{_@|VyBrF41rzGz9ar5E-Tw4|=l7G-?}qEum;AKd`!{{U9!my`8_QQ)YH$eG zRZftoi%nJF-@S^FuUTyMVyRsTOMWiU_;Ja2wgLmQQ(qLj+w1aK32#FhFKRWnvc_Fy za_f#b^?6F2ea@eD%ecGe!W_5Ac3cqJ%gbiXQdiKP6+hL`?($@X+kgBod$s#L)R_D5 zWS8t)y%pMixdmbFl^=I!lyIipS>)<mqR_5uGQH7^dt&@bCriPvhirmZ#*0pI($(rZ z&s}5}(4B1&Xgpbj<%sR=4I<p^r6N&=-gi0cI2xw1>@1G><m#Q-tjGA^xzuupqv{`? zEnojP;eY(UPxbF^Zk7MwFUk7zpyvC9{p;EDSUxRjm6P!8RBTK7dGOx7eaUl5C3D>O zTK=@(zw&VO+2wuvYHD7en7rM5_C3FKrcbxcVeVY_vW0ifEYC?xJoKh+Xb$Im%l)y& zZGo|k;3<*k@|!;GnfdTYr|s|mYi4LN{GNR;c$Vq4D+lJb?_-Z|z4&Jdi{1HzE19R4 zxLn$kV|LiUK=S;0R~Bv$MwfH1e0#!P97x!u{6cZE<$Dd;?NvMY3@_$Anl-EMW_xqf z-Ps>6eVzYe&f@3FC+Fx+|6pe{^M*#qQrFMr<|~?dX9{1ReDRHkq1B<npKqL)Se_g? z7V_!a&C0YoJ{NwuDzU@g-=)5D{W(RWYwEcZ$F}5ECD#5r&=k1;!pivdH+Emxw$OgZ zBK@gbUaRv+|C;rcYk7BV#fDjDT@LGP+52Q=&W~+J(z;rmgugJJ%Tc+eyvs$2kzqx7 z={j|}@Uv@t)K`hk$u(j)q|$MQ;p@bi+ooRZJ;&Dh?P7Q8*>|V6m2JPx^7Q@T#RnMt zcmCh_jf3GqW_j@Sr$P+#R{gnf*XF^$4Xch_T4FwTh1DZFPKFyPYgWcGDbD<M|J!|~ zzx%ST--}~3Q&)5P7Ol{?Bj@E7hD}o}HkaL2KY#k-b<UvE3?EmXVwfngaKZeZyjKnR zb2oV|&$|+u)M2bNt3!eN{IRQ7S4tk>+Umlr@@ajPx-w75LqYKa=d1J#Zru)Q;J=?~ zWV%6Zk1?~KX`JJqfWV5tdXpHpYr!Yp%k?i*WOwq7P|MqOZOX}6b~E2rU)ACcz5RhH zgfCm&G2~GDJ-O9V9_Gh3tS*dlD1G;Dzy4myP4%w%UCWYF*ec{S<kA{86#VS|$RF!y z?!Z*9uv`8OBU^{lCHq>=D|h}$oAX5mUpf(VZkE`h?-Ghx**S)?(i<n;*-^Tdvul;% z4UL?--%k%8_n(_-H!mkXJ2u-(&1UERoww63yj=C}p3;A|v~9Q67qWOx4zWAEv|C78 z)ph@i<VOa1W$Y>uH<Lvl#y_uXu-9lTKgiO)k9UWH!-KlZlmCT%SbFZc`ezmQ#<$(2 zJ8kFp85zz?T_(i5v&+5z+S~~(Mhr#o|2Qo6oMHS_hu^Kd+~Q5F^TCZC2dnPh`(gJ` zz+&}xw^Q#Di%xD#$!j>v%cCOpDKakUhGm`d_OBM_IXkEBv@p+M>Hcw4<8^Gq3jTj9 zrf-j(wc706TJJ^)9mfA6N#Dc5A2(U7(7x{Id^YW835&^7k0pD`o*wA*eeSk%Axnew z)7Ndy+NQszZfkb?cqyT)Q%|gU5(D#r$L(iCQcc+x-8>n&>KLch+7<biLtpq^;khEQ zD(p-3>NKrYTC3c&5;|PpuUT>7b%}o1i#Dw}R(J0Ty#0QWefHf?Rj$jMWghn5dG~46 z>Adf$3<sv)eW!hZVIfP~>gm~8buadP`d{?@ePHgKm%H>&-B2sOFJP{$TrB9-w6WM) z_V}DLEb24ohzZWfVxMJlnuEWGV~*Ut%WGP;H7hCW8~HtUm@n{1sCh}qytT8Yr!D>d zX@%lhx0}_vy>g);>5;D97jzxWTXb{;j?K+9a$7F^eb+ac=YN;{+BYdZ?0NnC^(`S< zoC|N>{de~H-+SL{<3uzMdpmf)UHu^|*LQnOZrf7JV_v**v!}-Hl6=9taM_H=>FZ8e zB$@Q|NVPddE4pnn{^O%_Y|VnW2Y*}&>V#C{8MIEEyqw)(Kcl?j>59(J5-bfCYrUUw z2wOb!KK+JY&S8;3C~I<@DDR>dhv%|}dAgiv^8Ur4;W3|mS{GNqlrNn@j?C?^WSXan z+%d4cx_^TFi$^{Ab(8fgm2c*^u%D3+y)x0xw8?$bNsl#|AL36|+ONK9B5^Dw#Gq}C zQd)dv;MWROLkq*rZLKzotwkSAWLIKn>^)%5<PwqL!EsCS44?b2%m06>-;pk2n94ZM z{^FHONusQUcA8F=`4_T`ZYDnN-L!qn9@}jjZv_Nx+E~Bk^^uFqZ@r&mUsdxz=<(fW zbC(}}yjfnx>dQs{damux?R@^0>us*GrZucJI1t28%^X+2GRbDHSH5@S+u73dPBH)d z(`=}GL1@nA89&{x2-O%(=a77+bK!DWhGbUjP9<I6q(kk;YOR9;-dqxYwen(?*RMUY z{gpOP1FptozI$OR-!SVr-{$S^*|ROK|FcpzH{as5?1h_=8p~wqA{8EEbG0+ptNq&N zi`N8JCgeYQJJ&_zfv&2%cd7Scy~N7ehWp=sx^5_uo4Ay}`g*0uk&ZQIcE?=Wv_)zC z4lc2<y^{GS*QK9k_MEUgF5ffl>h5J<*R(oG<!h9PGyHgXDC|Yv$*#Oi={pPmZu0JP zw7mE7Mf=8e+h;$@2<Y?-=AF-W-(lNH!^n9t5wWk08>XLK`gevc>kOec7haiJi*z1c z)EN0#M`c>jwUv!Ump2Nl@6ym<)UhsGwfl8O@3n$A^FF?~J?qqBf3t0JrcF#O+@c@m zdp}<Jygxikx^HgPD&OE0xi(dMmQ|^8airdiWLqmKrF2ho*1oc}ap?^^XXw4)(EFSh zz$2cxFuMJ5#kO~j)*&^0q6%S2KmVPN{MwegMxfW@&8+UK(}tp-g=IfTu3D<4lwK#f zpowSe<#z}3k}tU|S|DQZE8sk<n(e*_M$LcK77}6QCm&eKDXiJ`W})y?V~_8%tgN0G zFI^(Jm_OOO(X&p+%SQObo6j|i?S+m`+7^>^gteaK`Nq(T?yvq&ndz0a#OF^+$jX_& zS?*}`Jk`-+b>Tmip8VV;DUMf2;92XFsQRlG;_n&ie#P1S`!`|xz2EvB4I4!M?fsH; z?c(~?tCub{d^Tf7n`e^e!<@yQS)y_IJFm`KbS&!3YU|#=z31QWw<-Mh<KptTyLa>N z+_%3akoWgNL2{wsk{R6HUF!G$zgRq9&T3EL%Iq7Qi*NtArq(`HJZMd5!qP9>qGR^F zyn8ky^q*{F*Q*@w4OZDdI943kuG@aU{=fV`v9;gt?>D;qN@T%`2oG0TzCaJ_L$<r+ zik}{eIxgnY6>wGN)yt116*k=Ezt2R=#`)ho=92xR&~itL(aF<?INKH64)^-=pH6@K zcA@OUw&+PJ;RYvbUu56m<VnAkw~l@3#h}AMQBN*kxV+FYC}g)$L1pLnZeLE%YZ+|e zJbPY#3fO;rji$~@?Uj~)bKE^sOFNex&bfBTcEgQ33zu${-KyGpJ}XrqKRRmqX;D$v zK!Mt#t>%+IX6(7umJq|kR<W`wbhqrDlkRgFJ^Max+3NdyhT@^$GM9fpo>W{mO^l_C zE2`r1N0Ewox6+pD8R<;zs)>mEmlzsa`qekQw9?V^%!d{uhZUcjxg2s6P46%=WSg4K zx^+1~jU$tPEt}q~&GCN0!39yb=FF7b6z@K5l|gjWGYxI?VqT*|ZGqDT=X@-kc1GZ^ zk<8gkQ?6!B7WMv<&)fL1O)j(d@Qa|mD?ey_nKMWG@Xn;G&l&nzu05XRl(cy2<)V~! zfxl&SZ@CMjj&3yH^<lz!)?+VOjgERaGTkXS#x(oV<2Z{+ykQp|L*!OUsR`=$)yc0} zdHC`r(fTwWA63z{HKKPW^z5Ir>e3Z4ON+yvi81dNvAvU+vB86p@1T4o_qSaKJtxeO z`tx@ECw8vn*ZNC~0|Fb?$JhFAZ3+`(;6IaC^y|Ijk6Pa2^85br&YLikIpL%5_h;vo zy`Qg}cCGE?#}#|-UNPD>#Ve@!+Og#eyRY54bIayZ?DabrEdHFkv-h+6{mS27moKjk zNe-^R&p2b_l+V-aIFFs3TeIf}gVqeofIp9~D=wZ>z~QMKB7Eqde1_NkvlpIZ_a`vO zefbx9-m}T>lF;+a+W-0g-{t>*nE#(o%!YwwtzX6-U#Gyn2i<4izYCphTfT7H%@>@` zJbR?0qTha;QfZUB@YTG#SFifCZV#2RyLZex$Uxz2{KM82SMFW9uj+MJ`uF5y#{D@4 z0YzG=#czApuQmI0a!MlS8m7y28*UqIWs$ySv|G~OvVQZG2y+cj@7J;mi)Jjae)zS5 zP5hls&bFlrJB>54-@c99A(QFlvbeR}dy?bqLe-eLFC%8GS^qX7_Vr4+i9OSgS`<0n z(7VaBWY+ttS7OsnRWCTUemy_i>(;Yo?eP<~ZMS^gW|_BX?P<MR*7_zV9u!H59{4rS zdt-o0pOJXMh6!#T*K&M2D0))Y>-FM*3pSfmCUTeS&uZt|F6Nc%Q+jswfBhA0Wox6` zR{8Z`b6VyczEXPK`;!@27x!CBKQUi-{z5{R!$zN$y>``eAFsQ(g?Cw!RLs}e>k2wD zA7^O9GC35L)QQbdn80ALUn=rq0!xV3|8<KPK5CR$e6jqrGC!2D<K5R6r8XuJy^A`l z!+tie&0p2Zw8yK;OYW17L7%<hQIDI3f+4T0|G7?^9^#jrBxo|xusGt(%9rdxJ9x^M z?DvyR@hjp@+3&mXx%s8br_4_}39Gjj8gOf$k7V1sE-d%4|GC)$OzpS!w3oi`UQo)p zpwLLdujqgpONe(O2iHk9g-7@IhhJz9yC(ba{`{Zw|CLW|(4XtV_(3$|@QzDYZf&_( zHM_~O|71e6*R+;rXS+q7l<(x&^3+)}p6OVuT<vn!Ra4J5TGteR^ga<Vb%u_HNsD&I zqdSj_!{<EcmH%M6G*Qi>f=j2;R+Zg@>4&@`%du_|*J?e+?+FKG<Ng~wpHsZW!qu_k z=q+b$g^M<E`XbifE7Wb}F67i+c>FAqV{RNrV~uf(s@=z5CpVV<lev0phoAmQ=H3Se z$&&X@wD9hgcU!bfbh7vRMKk7Z-H_8ei^qGZx%X0)lvT4`{=Z+fwN|m%eeSmPMTwsl zNlJBCJEc}7|KDJ+BetUa`finZ>mtSNuY_fmOLLied^^;Cn4^5_E$a_^oa0xwvM&}9 z)%*SE#CL~k^DPTndk;@qdnnzwwY=&~^oOU`+e{{ATu?vxZDYY|g+-4}e%!htWz#0j zlj5_pd@YtQi|F#cs5xt8dh&_1`|=Be^P>8WOVo35ee?0#_|1>=aK^hSxzn-|MN{^l zZoj_sm6XNm7V9mm<eTf`rq0%5`@x<WxBAT4rjs|%Y|ZAeVBJ+RZMM04Z_k$PiRmw= z$Rs+jE?d-SrF)P0&ozM=Jne_)%CzJjxf!|D`>gHp*xVz0^1qkW1=~I9b+!HW@9@in zie)GK-tez|ajJc%xWr=K+2Iotf)hF9>N+P&e(*_DDLixDsCU7nC9R#Ewljl&I&9?W zbNI}g(UGLgaoD<;|IPozDbMx^UhCNrVxV6*`}8X<D?#;*C*N3nYB%^*$g}=~43FTH zE#7`#9v#Y_^W@ywUhCqoS{t2JtsCB#ru|%gV*mf&tIOBVN|<x$`TY8?>@5e1|M!?G zNVT_k{b~r~O!qdjd?w4#Y-uQ2zGQktRZdUz{UtXvju(E|WZd{FFlt3{?}0;x*@hNp zo>+Nqk_grL{!k>oqLxpM#d58ajwrW<%uB)ZVatAa=)HYy+41u`x0Azz`@b#!t>kGr z?(e{&7M0g|Eutv>dF1<Buh#8M$u?cwn)32i){6Bh=37i7#iJUc9!)qdBxTkoZ*FFH z??$r8?CRL3d)ro--4xE-@?K|8?V~S~&dl7ADxFi$+v+|o*89(imqB|E-p{f%7mF{G zELmE+a8i$$nZ)~Vj?N#oew>=IbcN|0p_qBL=cBeRRSvcd-ncY&?`H1K{tI`{9Lkz{ zt@!)9yOa8MuP%RIB4P3&#asBx?t}l%zwhrnJ!{@o(-jjUKYnBI+b&m~<Gp*g)UDVD zO$VPkPMa!y->-8c$Kkvdjk*m7t)>=n<tFRY@;11B*74q*sd=b*2G5d}TW&v`aILaV z?a<j<vPJh}b4$M-n)_<izTM^J+N-R$IlXwF?Ogu8&DfNC=9#(kwzj^Sbms2vdB<nG z7VwWwU(0jk#&rSCmy!*0XI`Go-fLvO$6Ui$>;$86Nf-N5Pnm_E1w9x%j5hAjRLQ@v zv&rb{O-WrFyU7XybteqWQzsdmTvDUFvT1G7l=A^aM_#npC>MTnp38cS!yzJg`Bd!- zr|!QF_UQQOT(EK(yTSc}lGQs7YP>lqeP*GU-Q!=g{<xWZnpx=<ZDA3%q5Jei!Rc3~ ztXuVa%JDTFhd)|t?pAEHSh#mpOz27u2ABOlTA3XGPP#O_`SHa#K2flv-fnNz?<~E4 zuFZz`U$ad=aQ(u6_E&HA{CXYz|I6|JCC_^6|IHU*{%_w=e?Fdxk%J*eP-BA$FR$da zRFkIixldoFbxjN6xh~(i;o1y_YaCAYQ*)NCFzi}X^p8uTV*Q>)esh#LY^qrwWvSd> zmdrQbUqk<Wti_Dmj5=)sKcsCB%B8;dU#O7y@b@{r6<ssS-n9ok-oO~1A;q{fbh+-D z%VAkt+}17=$lGhBn^S-D@WW2G_fGq--@ab{aAx1B#o~UMS=pykjlay<`ynmYu`;zX zw=^}iv^2FnHDrDKE4$nXu6tRY2bS!Z?be*VOh06A*rsne$Fmf-h?K9nwsu-)(&K`Z z4Nvk|6_#h!tX+0(^Rl-)xa(i>Y53)PJie*hc-G<k+`dBrE3PpgJ-hl|QOAnJ5aBga zxm&;KJ?ZFGl?>5}2-_FB<D1S4W6nS8A}5RZY>ST6Of^nDWaA$k?A&vP$1TX@G|Pg? zvmV}**xh@I^KS;XV}bjdvT3OrTxpMH?=26z9=6@+s%-h$)_H3WowP0um>BWmtW8iw z`BtfYz1u$cb$-k9Pdqu-E3a#IQs!drALho)OBNqAoxhM>s_j-!L1x9&=7eglb(?Bt zJrC}Zf3UsffD6MkO{<=c9W|^g6au%NKCfx9DZ5>Fqk-9HQH5Qau7)brYs%^$*!TX| z^7FL66PXb7*L{II)BW=zxgN{*PwWVNJ4Kb}-~y-p>tDIHM(=pV$G)#%y%PUn@0mJl zu1T(P<Nm39({st}_}R{LI6mH2J{EV%JkVfe$&H80lBcXt{8-|rsU^K&{e(Z8X2mJ) z)jD-$$@TqJf6vTZJ(u64CdT%EvIpbyZU625%FNq8z53(-e_!^lULRZg_j~;OpZDX> zxgOM?dnT=6_p<}-OHXQX2n!2n1vW{1Kgn3OcWP?THs51f9lnBkthWoVahOie%9h~X z#`yn4g5ZPrb?g0NFO>dSZol`7g$b9l|Bbb3@-ys@wz@o$5phcA{x{*K-JEB_1|@df zwld6%XEQmjxWM?oX?dBM+B%h>q$D4Y7Uz4N1v}1K@5__=#N(#7ZQHhwdXEeKA3J%h z?exQd?C+m8>&L8EUGdE6=*IB**;?!KYD)jLnw!R+ziws|=x+P<&*$%F*qS$9zffIl zt@y!l-xP7)Hm<`$3<Zh&8-!LdexI=~pk2Io<(t*3c`8j+%U3O&|KsL$r+Zrd&o)l% zvyM8vd8XW3+2V-{SD8Ke`{D2e@dYnFu4~Qv^+-vIL#W(tx9F`;*IK@bWnJ5&mz%c5 zESNbeck4Bg2}*YL7gXAw&d|5zN{isU_G-yG{)=Z8h`3+oSfg`x!>1no)Y2uF@(LD} zIprPoyQz9IFIO^ub?e^q^XA3oKb+@oeucre<ldyHFW<d&W|^MfoGm@|t7<uyZF%D2 zFMX9=&X*rOI3|&vSyGidZQfm(rR(``-pKYzo3m(r`s)Ri<vcZiUUU8LVL7t4;3t#7 zjBg7}P0pn~5I=F5X=}0g@zXmsXLK>Ch&D?sO}VG`)1xAQInSbKX{(pfjyH<$Si|mo z5wQPstGf7!!XXaxH$uhLld6yI<ULw4g=GVaOhIsSLeP&n{$e_oQ@u|qlm$7i?eRW8 zKdR+ih|)>}HMQ6!=UcYOA1;;AoNU4^`DNv|`A^n8Uf+~f|Ah7Nl7o?!2X{C8FL`$6 z^V|)ugM)(?udV#@DqP)f4pa1%IsdBPYu(~i`Fv^fU4{Agtv{dt|Hmlffc@M#6--kZ z%3^miF&nNAIQij&i;~u6-YZ7x#wFYg6K+2FQL?(&aGp`&8sjAXUs5gGwmo>f{>cOP zAJg^!{VQ4W@zGKD2i#}l{y+GjyJh!_3@@kd{GwlB?t0gbG8)V@WZz!bvoC+m{>_Kn z&*Yyqx0>6;UvwzE>Fi|b!_phte4EZn=RBQuOX_^2Ui=-7)_nJziM$LCo+gXW%ir<g z@2UUC%j0)ki1_eqwth@S@b5FNn-+`vmF)enUjNTmM&+K5K6%R%Pb^i@6F+f#)9OP8 zOblyw-Zs7<xT;B@eEXv0tx-ne)u&&-yR)<U`#Gnt@0`}BZRZaNe*0<7+`g>$v#j4` zwI4fj>TX@}+iOif`;Hr1-V|)jnx)<88ezUr^!-MTTMKS$F&@sEymG@U=N%!cH&b@r zR_A);)-pMEL;Q}ZGZ)M?d12u8>1Z&|jy6-@Muzg^uhTWvpB8UF)MAmIBg-}GrP=Dw zN;mF(5tYb#r<d`*EXJhbTGqB-C0l38eV%)&!>l^+e}uoAbkyeqT2B-n&2=?3SbXP= z=`=>ROOc8k({E^cG@kh6#WTa(|EKJSsT<`V%;#+U%&PE?<Cyx+llxs5SG}uO`FHkm zXKKW`iE<P7tUR=H>2>=H?;G7Y>`%D=X=}IO?m4-nLm`G~#TiR=<A()T<zBKJW{+C( zrteF3g6;AS0}DkiK5s+QxTEV2hd$kY<qS(q;GqJg*H@ylOP2_K<5l?<>2*`?r^gNl zp;K8lf3x4T{7RUsu<hcntN9mGO|KlgFL}N5c^RW3N83`y!(u<;v%h{;_nTw!Yq6i| zzuNV|E8E)Soeq9qH}B`U@_#>{-mgAi^Yh8%j{4Zno!{1dICdxH#(mLmea1Y;bNDvC zxh!Mt`ngZ!_N=7EnKLRfy|+oe&Y5Txoo#qX_U8Z7$M*lYIloP}onQ9XOaK4RmfyT} zAX~m6k>^NrM#8%<C65J{FmzkX891MHD*RL1WY6UI=S^+8cg3Vdztj%$8BFcyF>Tv> zSUOBg>9pg@v)Z$j*yi53C9}mmZ%rOcjemQh&55puXX`)zX<c_pec$Ipt<Uf6``~hQ ze^v13GqbnGiu;93-~Zv+j&o@*O=k(&73Snrs$`nD$R2fd{d#Lw)QbxOS=_6$7G_q2 z{PtLSFy))W?!460lhfEm!aNVp?eY?+n>C?aHKNk}cH#0RLXYlPPi5M}p%lpNU2ue% zvHiu3xSr=~3>{k+p1jN$f8dI#n&YzOG+)h=TXKY(9<}LwcC&jo`;Ps2)fXbCZ?M-Y zo%Rb1zW%bL>(PyiAvF`*-nNIdY&~yatYdxHBKpSbS=ORFi}waEy!m$JI<_ZwH6>5| z`z!SJ$=p|mtWAxt-V^BRWZYY2qLVjmW~5>Cy4c;voHZ3vte3?YFE2GIw%sC}rhJF% z{l0@Iav0`B-MxQ;>GAU&qI&TR&jQ-Ar%vrkxip87olW6ff`W)ZUgFK^`Rcul9EUy} zeDK5Z@YQ<FzYm(_-|alGqr_!ra7o;}sT#{T&pi}s7T;PlAtlwYX@ke%CyJ3tUmE5! zzb>ekVpK1j6Xd>E(~I}@#Xk#7>epG{oa8dSV9u=PC0=eTR(px4AN=_LsEVM=KC3+~ z_5#zHlk&rL7zG*6GyZ!}@pt#}Tetmd7qT)a{c99zasA=W@#C1Z|GtlV<@bJlS}V}- z`}60|)yI$DHsABGkllZK+pj?0W6Nx=cwIK?Kf-jnC{zA)p>x^oj=~FCyo&a<GXI@q zeeM4D`N;lydEEXew?V~==JI9h85o{V$PEkssGp$gpt5G&JRy&T{|+pA(04(<J~p4< z-0a)+Sh<Fs1?f*Gsy*LPUa`tPb2G13+lK}lvnN_}C0}Q~<+t7|EZpmKM!ff%UGc;A zd?)$0tIx+*e0|ZXUh@AucfU=sV=+I&k29^?SFe6}f3oVNYy2#e_oXgQG2jXcEG(S3 zGOaZ6>9sAHTh_cgkh%NbBJFp!FJJCl{Z%BqEo|$|yIZ$fOKtxCPOQT*IRE~%$jxQt zrK=CuY`2Oka*yWpH_E=+S#dyi%e?~kJBv2FEn6%ow{_hNeKptm^rdFX`@#}+GI!<n zny5q{(sry1__X`EIZNBq1>gF+Pps&_VE8miWq-5jtRq|I6zy*8VLH9wT*9qe`H8x< z<y<Sf8Sd|zw>!Ih@6@!671}!&Yc{?)b1(1f(YvQaec9e@eYfWATfHmI7a7+$a_2C` zIlmO0)~s_P(_~$in#`;xZBaMAzV&^)Y>wY&L-#%JW;?OAAGj~laO6gRk7u}A`2?N~ zTn<n7@LU#p7`X9fxZ%n-+|Q()7yBPw-2Z^naoMfr<@Gy674nuba0#$8?Rn_7!s%6H z!8VE2W}BY6ziJh&TcO-3qS(n-Gif)My2J!7y_0Ek4jIqUIu@#>^?FKL&!5hsRm@ud za+<PiYFy^NT=Hjyv5&|#&C*^Mre|%*b#2GFwCkI9STOt#Vfwb{e~b3KimxXZyYK%# zy*2V*?X1W1z3itpoVWeVQ}OF={p)*s_4RG9-b>mV)GNI~^{CIrYrTc*ub$gryiBa` zUdtx~>(lH$GV&RZQ^Lx4rQQeztG`n|#%OTte*JeDwKvMIKd?U!6k}F%Ra;i=r^H%e z;Qw!~j%C4<1>a9tD8;{fo*sN{|L@)NH~5J*ygw7)@bz%=v9@{Fv$9XU=IIa3T(vsO zWWq%a1HK(RtW&o>6?-jF!oL4<#PnT^c9%|z9@mfg5%=)3_`IM0TEkE4{rOt1w<q%F zo!0bwdkVgEa{qrd^L<vFaYOxKkCz(n#TW0rtGuh@Y(&VP$EQ<GpVn+SnSMo7*U>%Z z;*(p~W_`SQ>SR*w+GR_;b|>iRXlAa~TY155^;VOR=~F^7tbUyloh39oI{1;)x>XS` zF7(BBEf=qKvfB4Z_~?r-oEP8ne^}e(FD2>u{rh%RRz<0|(-S@(JlNZyb34Z@J!5t4 zE4JgyEELt&HVaA|U$>+*@Vi<*v-j06X0NXFnlu-9Z_NG6qnw}RrL}y<t4XU0+>bhO zK3KP8v7FZ?(_3Bv%lb3Dc&d1RyuKo)_vLDq0&9(I7ehMl*UdeB&oUYAo0=F%L|DyR zsKDzKDDJCvYF{S*tXoeK>=;5>R;?{q#c)KyNhWyN&XvW+o-<}!2P$3rbFQz*$yRjo z&0fbhJ63(!`|wn{>Pnxwr99b(+hZC3aWS`-xIK9;cEU|YQ|4s;!vM1@A2!!GH`xTP zIHdpGr}9W9=Z=SO+7~H$X86=i{-Sx9d1ZIlCmoe-=M1glbtm0d-xQR)MER(>#Q#$h zcei!R1scy$ik~X$`}BKgPF)}85367PKYFY4_k2AfeE)A;x>&=8zwF++6T_}o&#(Xg z+u-UaJB<T>*J+>VxR>{I-DSSKQ>P5CuY9;r(#@=wUw5;K^J$Ym(mf7$+f>Sfncpn< zn)Ffoh?l^rSgVUWC;j>$!}MU`HH#tz(TW$%pNkhTFgE;i<Nxxf%;CRuq^znON2B`v z@Z@{*Ma2I7y?^%lE5>#e!9UOV=l^(gXm+V+>eI8OQ)kVJ`<$9w+<P#>`dZo=-4!NV zq_}ys&)%E-SU7Vb>zs9N2Ufq@`Mz)J?D@a%eGKmxGpl=kGWmSwnft#_3$G749$))) zw|^GTrj_qXG*j$dJoWTm=|yc5nX9WMrE9!SXX_fS$%@JAH<lNbzAZJg+PAH2(~9lU zas8eT=5K#6Rk>MovTfq|l<2)XH6#o}Tv;EsNbEM$w>t8oa7JU@%S%gly8Lzvzuwu~ z`MLP50iWhnp_YzZ&AZp`OHBPSQ8is<Q_AGE(+}$wrPL><7pb%C^65J|CoD?NXLn_n z(Z!-W`}e8*UbbDePcV3;$LF1f>ZUALb*4Gq)!A}pVd~uku?IfsZ9yK~D(m-VN8jq+ zd~DV1+{q6Q#yu8r=x01qID0dXmB6<(I-8swtQ*hF5|4WtRJPi4mh0^%!`IK2-QxUo zRv<#OVMc39G)EIZ-@Bv27dLKG-f`;Jl0(5ZT(WZ)w=V1m+a}4!99DTm^+syf>3#qH z`->#ZJ8mSFYMD88?%ic3rxqH^uqX42%`ra7uB7={Ipk=w#RrZOomU3JpLur_N#10y z7k+m_ZqBPI4f9q<PyG4W+S8m{XU@~J-Iq>&n=5s6^-ak?Vqcog8U6p6)kn#BrmbGr zIDa*Zj#kYR^Z5ORuX>-q+xs!=`TxJ~0~zM{RxfDQ(P3J@@7Le-ge}L*_urZS+KY!< zM5ixVvhQ)w78|>hr-hiSx*la*@z82!+sL=`(y@tcBH24Kbk1F_IXc(DdCt$TGQVCZ zXK?O|3ua#Xr@ruqK-z<ahrd6o`&ay-Z=cYe=DO|73=Wh2ywH64<6!*Xq=$d&1762% z>HqWh{@(Z*><8v=iTz<8^-OP1=DLc1z6HluU$!fM*vc(_K>k&H?2Zq6mVMfNLTADC zH?_5gcVFB$(d+Z;O}Pixw94+`&pz`&AwI57a^^AptJ6wmOk7@bvhnz|l~;Y5S$~MX ze5<DwrM1pM@x#r1AMRy6_T#AeY%KXAnftel=G|4x7x|=b$Wgz0kYP#8nNY*|E3YSP z^JOn}Rg);wl&*bb{nqbz%ZrTp4SVg6f7_N^$CR`8*4-qNXC6Lt*bVwr7nT@ZyOlNN zXKLjUH4p7=s*{)A)DHfA)0I<5n>E5rYC&q4eR7FPuz6+Fme(v*!f(&9N-gZ!yt8*# zU2fY%H_Nspi-zm2?@hZ~<yh0j=O&hfFgyF3ED+txUHh>6@j0{Zxs9gQhtuBjr!CLe z^4mSqQloX*&Y6mNMu%gXyN#7IL!>=6Z<IJM=v`A<yP2oW=Fy>jHtHdB76vSh?wjZ$ zrlni(Q?}%QvFh?QCY;Z6|G#8x%i3*d6)KW&@bG$ujk43SJ~;jBo$SOPVQHhesPBQR z?uEmTEl=3`=^S3avLsl-Ex{@1%o2Ov=L<dc!v7kl%$aQ^`s2FS*6v-39)}`Xk4jAA z67^iie*0~*Y?oh$xP6q?v_M6kpAoIoxpJran9k^|{g))xIDh`%R~N7E`}g$vTLq^3 z6^~ynS6~n|cMz@5+RVXnP=C*dqviYe*z>>B4xck+ZtmOV%QU-|u6KTB&SR3YH^6Vx z!Amu>o>op{i?mSM9Wz_6`DjqNLO%D0*aeEu?oT`{FT1bLNWtUV-?Iyy<zwvsm|L>R z&HMNBPI&R<lP>@7b)Ia#^+)Q3yv&6uGJjTgH&`}V>uMa>sm0_FVVobw@X0naZ{LUO z`S$e>TMs?gi>Y`t<>R5&@Pi`jKiy~*m)ckSkh3`c!?&H2CrB-uR?!|~b#wn*BNyMv zZB1QEOMd_O^uA@w{b#c8_sUE?eC*(*j~9NN+hLz~nVF&bprD$rxcr?{6)V4;>C3#K z&hNL*^vkl^Wt%RZypSq;qW7ZXZ09dKt8Ch)Mw~HFT9o7Seuao=@;{4&{AA~z_+2bV z^^@-CDoBTJm-Y#`yRpHZQ+RUT(aFAtBDz;LK1ww^<eqb3TK3{6ysJ{vPu~>VXyy@+ zbMEwl^Djg^T*ZqozPiU}@#uC*53B9$ybQZ;1`C&iQ<RTATeOb(;ES7z*%e)y(pwhp zl)w1ofx?czk<N!7i;FjO^E!)F2`{x@*SPKREsKZ+jGC|2^o?h)nY-CPmap}J>nuOc zI;k7SKk=D~u`~SZS6vXrwwUX{oyvKKMPFWVRrj)4EoPQ%+Hp2`>MOCOi4yTAjU!!+ z^s{HUMs$jW^(~q9OYuC@^HuK(J}IluxgutGC)=&-{)xufM?Nr$i)?h6&|bSt!1B|x zgjLhnRHS{{m<~_e@4rGLKt@;CcKHEs-y{v4v+}<h4=#O{cw)NhpR>9Z+LAY?WJ`qo zvykg``L`(R+We)qnH|gw_x|<Iudn-k=6e1d%g<MY^KA;BY29LE`T3pqZ#(m&PwD&q z^Bg&_+^-~dV^D6h+Ul!QobJuMQzorkaeVLNYYEz>_jc^`Jgqh}@k!)0lL+w`%Un(- zhR;O@-piffbTG+J`Eh}r!M@b-!*B5goPvz@JEr@x#S2Q!dfunRu<Et^!JU;016pM@ z4jfX<+qO)Lzo9k%-`D;G>Gcn9w3^5Nu-A)WVEu9Tmeb=_^V8f16!<U6>i_w0i2E69 zoENXZiCnAQ!_JA9K3?<K>v-$SE|umhrC-Yb&5%FjpCSIz*rb9dG2^yr)wk$cyW000 zDh=IL%A3;9-mWaWJkP^pQe^(R7gO1l>LTS<p7!bMJ2lByPGHiaHLpKj`TcjD=z(aZ zjrXDjOMXu}x#RxDI#t8}W-%>6LWZ@<^9pvmE=bhTP!V6Qe!=3)f=+kN38|W=*ivTa z$Q#W(l&H6PzCde2z_Z6E%%z{0&+dx6mKs;)b9}M)?F%7HlL9x`)qQ*Oc>Z0pSHIV% zYDYzAKj>#neg0Hp?$M4p^LW=WIWLjt;a}kyJM~<`3%MyzHD|hs8pyo*ytHAiOi<%& zHEZUo3s-kf&rDs$RAZvYbuGjph9%~*(2c~u{els3zjzr}_%NOPZm968{{l~8K<Ngh zCr;nF48KM`IVfH5O(NZGij(70{sZ1e_#AsT$=9*22&<d$!f&f**y%Z;(K@U$7K#gI zBxuf6;Zo_)3BDro@$=z*S}AMVoa98qUh()X{lfC@Wc5^E>p!Irr?l)__2#tX^T|?< zf94jy65amiU(`YgMJ3P4Pwcpj|Agync^3INUV87oi#72nN5$_uJB#CMYoC3sPIq7_ z`}gqm>hRDPj;0T;p8I}}`8i9DMDf?}_y7OvSKzK$zk20VDWh+}Vb-^Fo+s6@&+Rj~ z6B3ZI)vUEL<G*?CEfuL;>6uY)*_w0KTu%GAe2K#*hCc_NG)Yd{dF%Cc{^uRb83c?J z+UvXKISbU}=k4;I(_Ff~`N;k*4js*t><`Y%Rkm!3yAt*^c2(u)_I!KZb@Pww{rM0Y zG3&XW&BfI#nfrg-;?~&x`^@*a+OIQ~Iqi$_WR25~e`OyVlzDH1lsEe>>AmwlR2b=~ z)toMz?{Cm*zU`20ZPohnJ276VIaW7g(sbHhY`=bITBe?nj_!JO;YA^<;v>suK5;x) zzU{@wt5*wNZ#r9YGsUYbZ*$(I$G7A7Io{3CPn^n?vR(Si+~|^$T#JhN91J3N?GDZt zxZLM@f+3�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�$=L?w<!M0A|Sm)W9 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 MPgg&ebxsLQ00B}C)&Kwi literal 0 HcmV?d00001 diff --git a/packages/ui/index.js b/packages/ui/index.js new file mode 100644 index 000000000..9fef6e726 --- /dev/null +++ b/packages/ui/index.js @@ -0,0 +1,94 @@ +/** + * Camino API, le cadastre minier numérique ouvert + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +require('dotenv').config() +const path = require('path') +const express = require('express') +const history = require('connect-history-api-fallback') +const compression = require('compression') +const { createProxyMiddleware } = require('http-proxy-middleware') +const { version } = require('./package.json') + +const app = express() +const port = process.env.UI_PORT +const apiUrl = process.env.API_URL +const apiMatomoUrl = process.env.API_MATOMO_URL + +const typeformUrl = '*.typeform.com' + +const staticFileMiddleware = express.static(path.join(__dirname, 'dist'), { + setHeaders: (res, path, stat) => { + res.set({ + 'Content-Security-Policy': `default-src 'none'; script-src 'self' ${apiMatomoUrl} ${typeformUrl}; style-src 'self' ${typeformUrl}; object-src 'self'; frame-src 'self' ${typeformUrl}; connect-src 'self' ${apiUrl} sentry.io ${apiMatomoUrl}; img-src data: 'self' a.tile.openstreetmap.org b.tile.openstreetmap.org c.tile.openstreetmap.org a.tile.openstreetmap.fr b.tile.openstreetmap.fr c.tile.openstreetmap.fr geoservices.brgm.fr wxs.ign.fr datacarto.geoguyane.fr; base-uri 'none'; form-action 'self'; frame-ancestors 'none';`, + 'X-Frame-Options': 'DENY', + 'X-Content-Type-Options': 'nosniff', + 'X-XSS-Protection': '1; mode=block', + 'Access-Control-Allow-Origin': '*', + 'Referrer-Policy': 'same-origin' + }) + } +}) + +app.use( + '/apiUrl', + createProxyMiddleware({ + target: apiUrl, + changeOrigin: true, + pathRewrite: { '^/apiUrl': '' } + }) +) + +app.use( + '/televersement', + createProxyMiddleware({ + target: apiUrl, + changeOrigin: true + }) +) + +app.use('/sentryOptions', (req, res) => + res.json({ + dsn: process.env.API_SENTRY_URL, + environment: process.env.ENV + }) +) +app.use('/matomoOptions', (req, res) => + res.json({ + host: apiMatomoUrl, + siteId: process.env.API_MATOMO_ID + }) +) + +const sendVersion = context => { + const headers = { + 'Content-Type': 'text/event-stream', + Connection: 'keep-alive', + 'Cache-Control': 'no-cache' + } + + context.writeHead(200, headers) + context.write(`id: ${Date.now()}\n`) + context.write(`event: version\n`) + context.write(`data: ${version}\n\n`) +} + +app.get('/stream/version', async (req, res) => { + sendVersion(res) +}) + +app.use(compression()) +app.use('/', staticFileMiddleware) +app.use('/', history()) +// https://stackoverflow.com/a/52327421/2112538 +app.use('/', staticFileMiddleware) + +app.listen(port, () => { + console.info(`Server: ${port}`) +}) diff --git a/packages/ui/jest.config.js b/packages/ui/jest.config.js new file mode 100644 index 000000000..95a294524 --- /dev/null +++ b/packages/ui/jest.config.js @@ -0,0 +1,185 @@ +// For a detailed explanation regarding each configuration property, visit: +// https://jestjs.io/docs/en/configuration.html + +module.exports = { + // All imported modules in your tests should be mocked automatically + automock: false, + + // Stop running tests after the first failure + // bail: false, + + // Respect "browser" field in package.json when resolving modules + // browser: false, + + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/var/folders/k1/qn_ccxjn65lgnjx5d1xh31dm0000gn/T/jest_dx", + + // Automatically clear mock calls and instances between every test + clearMocks: true, + + // Indicates whether the coverage information should be collected while executing the test + collectCoverage: true, + + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: null, + + // The directory where Jest should output its coverage files + // coverageDirectory: '<rootDir>/coverage/', + + // An array of regexp pattern strings used to skip coverage collection + coveragePathIgnorePatterns: ['dist/', 'jest.config.js'], + + // A list of reporter names that Jest uses when writing coverage reports + // coverageReporters: [ + // "json", + // "text", + // "lcov", + // "clover" + // ], + + // An object that configures minimum threshold enforcement for coverage results + // coverageThreshold: null, + + // Make calling deprecated APIs throw helpful error messages + // errorOnDeprecated: false, + + // Force coverage collection from ignored files usin a array of glob patterns + // forceCoverageMatch: [], + + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: null, + + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: null, + + // A set of global variables that need to be available in all test environments + globals: { npmVersion: true, window: {} }, + + // An array of directory names to be searched recursively up from the requiring module's location + // moduleDirectories: [ + // "node_modules" + // ], + + // An array of file extensions your modules use + moduleFileExtensions: ['js', 'jsx', 'json', 'vue', 'ts', 'tsx'], + + // A map from regular expressions to module names that allow to stub out resources with a single module + moduleNameMapper: { + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '<rootDir>/src/__mocks__/file-mock.js', + // '^vue$': 'vue/dist/vue.runtime.min.js', + // '^.+\\.(css)$': '<rootDir>/src/__mocks__/css.js', + '@/(.*)$': '<rootDir>/src/$1' + }, + + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + // modulePathIgnorePatterns: [], + + // Activates notifications for test results + // notify: false, + + // An enum that specifies notification mode. Requires { notify: true } + // notifyMode: "always", + + // A preset that is used as a base for Jest's configuration + // preset: null, + preset: 'ts-jest', + + // Run tests from one or more projects + // projects: null, + + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, + + // Automatically reset mock state between every test + // resetMocks: false, + + // Reset the module registry before running each individual test + // resetModules: false, + + // A path to a custom resolver + // resolver: null, + + // Automatically restore mock state between every test + // restoreMocks: false, + + // The root directory that Jest should scan for tests and modules within + // rootDir: null, + + // A list of paths to directories that Jest should use to search for files in + // roots: ['<rootDir>/src/'], + + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", + + // The paths to modules that run some code to configure or set up the testing environment before each test + setupFiles: ['./src/__mocks__/setupJest.js'], + + // The path to a module that runs some code to configure or set up the testing framework before each test + // setupTestFrameworkScriptFile: null, + + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + snapshotSerializers: ['jest-serializer-vue'], + + // The test environment that will be used for testing + testEnvironment: 'jsdom', + + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, + + // Adds a location field to test results + // testLocationInResults: false, + + // The glob patterns Jest uses to detect test files + testMatch: ['<rootDir>/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}'], + // testMatch: [ + // "**/__tests__/**/*.js?(x)", + // "**/?(*.)+(spec|test).js?(x)" + // ], + // testMatch: [ + // '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' + // ], + + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + testPathIgnorePatterns: ['/node_modules/'], + + // The regexp pattern Jest uses to detect test files + // testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", + + // This option allows the use of a custom results processor + // testResultsProcessor: null, + + // This option allows use of a custom test runner + // testRunner: "jasmine2", + + // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href + testURL: 'http://localhost/', + + // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" + // timers: "real", + + // A map from regular expressions to paths to transformers + transform: { + '^.+\\.vue$': '@vue/vue3-jest', + '^.+\\.js?$': 'babel-jest', + '^.+\\.tsx?$': 'ts-jest', + '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': + 'jest-transform-stub' + }, + + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + transformIgnorePatterns: ['/node_modules/'], + + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, + + // Indicates whether each individual test should be reported during the run + // verbose: null, + + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], + + // Whether to use watchman for file crawling + // watchman: true, + watchPlugins: [] +} diff --git a/packages/ui/manual/docker.md b/packages/ui/manual/docker.md new file mode 100644 index 000000000..bb4e316bf --- /dev/null +++ b/packages/ui/manual/docker.md @@ -0,0 +1,43 @@ +# Déploiement + +--- + +## Docker + +### Serveur local dans un container docker + +```bash +# démarre l'application dans un conteneur Docker +# avec webpack-dev-server en mode `development` +# accessible à http://localhost:PORT +docker-compose -f ./docker-compose.localhost.yml up --build +``` + +### Tester l'application en local dans un environement de production + +Pré-requis: + +- une installation locale active de https://github.com/jwilder/nginx-proxy +- un certificat ssl auto-signé +- [instructions](https://medium.com/@francoisromain/set-a-local-web-development-environment-with-custom-urls-and-https-3fbe91d2eaf0) + +```bash +# Démarre l'application dans un container Docker +# avec un serveur express.js en mode `production` +# accessible à https://camino.local +docker-compose -f ./docker-compose.local.yml up --build +``` + +### Serveur de production + +Pré-requis: + +- une installation active de https://github.com/jwilder/nginx-proxy +- [instructions](https://medium.com/@francoisromain/host-multiple-websites-with-https-inside-docker-containers-on-a-single-server-18467484ab95) + +```bash +# démarre l'application dans un container Docker +# en mode `production` +# accessible à https://{URL} +docker-compose up --build +``` diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 000000000..07b9942dc --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,248 @@ +{ + "name": "camino-ui", + "version": "0.34.0", + "description": "Interface web de Camino, le cadastre minier numérique ouvert", + "private": true, + "license": "AGPL-3.0-or-later", + "engines": { + "node": ">=16.12.0", + "npm": ">=7.24.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/MTES-MCT/camino-ui" + }, + "author": { + "name": "François Romain", + "email": "francoisromain@gmail.com", + "url": "https://francoisromain.com" + }, + "scripts": { + "build": "vite build --emptyOutDir", + "dev": "vite", + "dev:update": "npm-check-updates && npm install && npm audit fix", + "start": "node ./index.js", + "test": "cross-env NODE_ENV=test && prettier --check src && eslint --ext .js,.ts,.vue src && jest --verbose && codecov", + "test:watch": "cross-env NODE_ENV=test jest --watch --verbose", + "test:simple": "cross-env NODE_ENV=test jest --verbose", + "lint": "prettier --write src && eslint --fix --ext .js,.ts,.vue src", + "storybook": "start-storybook -p 6006", + "build-storybook": "build-storybook" + }, + "@comment dependencies": { + "eslint": "eslint et eslint-plugin-vue, bloqués à 0.7.x https://github.com/vuejs/eslint-config-standard/issues/10", + "typescript": "bloqué à 4.4.x https://github.com/xjamundx/eslint-plugin-promise/issues/218", + "postcss-plugins": "la mise à jour des plugins suivants génèrent des problèmes de style: postcss-button, postcss-grid-fluid et postcss-typescale", + "graphql-react": "faut configurer Jest pour qu’il puisse interpréter les .mjs" + }, + "dependencies": { + "choices.js": "^10.1.0", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "dotenv": "^16.0.0", + "express": "^4.17.3", + "http-proxy-middleware": "^2.0.4" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.17.0", + "@babel/preset-env": "^7.16.11", + "@juggle/resize-observer": "^3.3.1", + "@mapbox/stylelint-processor-arbitrary-tags": "^0.4.0", + "@rollup/plugin-inject": "^4.0.4", + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/git": "^10.0.1", + "@sentry/browser": "^6.18.2", + "@sentry/integrations": "^6.18.2", + "@storybook/addon-actions": "^6.4.19", + "@storybook/addon-controls": "^6.4.19", + "@storybook/addon-postcss": "^2.0.0", + "@storybook/addon-storyshots": "^6.4.19", + "@storybook/vue3": "^6.4.19", + "@types/jest": "^27.4.1", + "@types/leaflet": "^1.7.9", + "@types/leaflet.markercluster": "^1.4.6", + "@types/webpack-env": "^1.16.3", + "@typescript-eslint/parser": "^5.15.0", + "@uppy/core": "^2.1.6", + "@uppy/tus": "^2.2.0", + "@vitejs/plugin-vue": "^2.2.4", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-standard": "^6.1.0", + "@vue/test-utils": "^2.0.0-rc.17", + "babel-core": "^7.0.0-bridge.0", + "babel-jest": "^27.5.1", + "babel-loader": "^8.2.3", + "babel-plugin-graphql-tag": "^3.3.0", + "babel-preset-vite": "^1.0.4", + "chalk": "^5.0.1", + "chart.js": "^3.7.1", + "codecov": "^3.8.3", + "commitizen": "^4.2.4", + "core-js": "^3.21.1", + "cross-env": "^7.0.3", + "cross-fetch": "^3.1.5", + "cz-conventional-changelog": "^3.3.0", + "email-validator": "^2.0.4", + "eslint": "^7.32.0", + "eslint-config-prettier": "^8.5.0", + "eslint-config-standard": "^16.0.3", + "eslint-plugin-import": "^2.25.4", + "eslint-plugin-jest": "^26.1.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^5.2.0", + "eslint-plugin-vue": "^7.19.1", + "file-saver": "^2.0.5", + "graphql": "^16.3.0", + "graphql-react": "^15.0.0", + "graphql-tag": "^2.12.6", + "html-webpack-plugin": "^5.5.0", + "jest": "^27.5.1", + "jest-fetch-mock": "^3.0.3", + "jest-serializer-vue": "^2.0.2", + "jest-transform-stub": "^2.0.0", + "jest-util": "^27.5.1", + "json2csv": "^5.0.7", + "jsondiffpatch": "^0.4.1", + "leaflet": "1.7.1", + "leaflet-fullscreen": "^1.0.2", + "leaflet-gesture-handling": "^1.2.2", + "leaflet-markers-canvas": "^0.2.2", + "leaflet.markercluster": "^1.5.3", + "npm-check-updates": "^12.5.3", + "pixrem": "^5.0.0", + "postcss-button": "^0.3.17", + "postcss-calc": "^8.2.4", + "postcss-color-mod-function": "^3.0.3", + "postcss-grid-fluid": "^0.3.4", + "postcss-grid-system": "^0.5.2", + "postcss-import": "14.0.2", + "postcss-inline-svg": "5.0.0", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.4.2", + "postcss-typescale": "^0.2.3", + "prettier": "^2.6.0", + "rbush": "^3.0.1", + "semantic-release": "^19.0.2", + "snarkdown": "^2.0.0", + "standard-version": "^9.3.2", + "stylelint": "^14.6.0", + "stylelint-config-prettier": "^9.0.3", + "stylelint-config-standard": "^25.0.0", + "ts-jest": "^27.1.3", + "typescript": "^4.6.2", + "vite": "^2.8.6", + "vue": "^3.2.31", + "vue-loader": "^17.0.0", + "vue-meta": "^2.4.0", + "vue-router": "^4.0.14", + "@vue/vue3-jest": "27.0.0-alpha.4", + "vuex": "^4.0.2", + "vuex-router-sync": "^6.0.0-rc.1" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true, + "jest/globals": true + }, + "globals": { + "defineProps": "readonly", + "defineEmits": "readonly" + }, + "extends": [ + "plugin:vue/vue3-recommended", + "standard", + "prettier" + ], + "rules": { + "vue/no-mutating-props": 0, + "vue/valid-v-bind-sync": 0 + }, + "parserOptions": { + "parser": "@typescript-eslint/parser" + }, + "plugins": [ + "jest" + ] + }, + "prettier": { + "semi": false, + "singleQuote": true, + "arrowParens": "avoid", + "proseWrap": "never", + "bracketSpacing": true, + "trailingComma": "none" + }, + "postcss": { + "plugins": { + "postcss-import": {}, + "postcss-normalize": {}, + "postcss-typescale": {}, + "postcss-grid-system": {}, + "postcss-grid-fluid": {}, + "postcss-button": {}, + "postcss-inline-svg": {}, + "postcss-color-mod-function": {}, + "pixrem": { + "html": false + }, + "postcss-preset-env": { + "stage": 0 + }, + "postcss-calc": {} + } + }, + "browserslist": [ + "supports es6-module" + ], + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } + }, + "stylelint": { + "extends": [ + "stylelint-config-standard", + "stylelint-config-prettier" + ], + "rules": { + "property-no-unknown": [ + true, + { + "ignoreProperties": [ + "typescale", + "gf", + "/button-/" + ] + } + ], + "function-no-unknown": [ + true, + { + "ignoreFunctions": [ + "color-mod", + "alpha" + ] + } + ] + }, + "ignoreFiles": [ + "./dist/**/*", + "src/styles/system/forms.css" + ] + }, + "release": { + "branches": [ + "master" + ], + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + "@semantic-release/changelog", + "@semantic-release/github", + "@semantic-release/npm", + "@semantic-release/git" + ] + } +} diff --git a/packages/ui/src/__mocks__/file-mock.js b/packages/ui/src/__mocks__/file-mock.js new file mode 100644 index 000000000..eb456c5d9 --- /dev/null +++ b/packages/ui/src/__mocks__/file-mock.js @@ -0,0 +1,3 @@ +// https://jestjs.io/docs/en/webpack + +module.exports = 'test-file-stub' diff --git a/packages/ui/src/__mocks__/setupJest.js b/packages/ui/src/__mocks__/setupJest.js new file mode 100644 index 000000000..e26f10d81 --- /dev/null +++ b/packages/ui/src/__mocks__/setupJest.js @@ -0,0 +1,25 @@ +global.fetch = require('jest-fetch-mock') + +class LocalStorageMock { + constructor() { + this.store = {} + } + + clear() { + this.store = {} + } + + getItem(key) { + return this.store[key] || null + } + + setItem(key, value) { + this.store[key] = String(value) + } + + removeItem(key) { + delete this.store[key] + } +} + +global.localStorage = new LocalStorageMock() diff --git a/packages/ui/src/api/_client.js b/packages/ui/src/api/_client.js new file mode 100644 index 000000000..030f63618 --- /dev/null +++ b/packages/ui/src/api/_client.js @@ -0,0 +1,87 @@ +import { print } from 'graphql/language/printer' +import fetchOptionsGraphQL from 'graphql-react/public/fetchOptionsGraphQL.js' +import fetchGraphQL from 'graphql-react/public/fetchGraphQL.js' +import Cache from 'graphql-react/public/Cache.js' +import Loading from 'graphql-react/public/Loading.js' +import LoadingCacheValue from 'graphql-react/public/LoadingCacheValue.js' + +const apiUrl = '/apiUrl' +const cache = new Cache() +const loading = new Loading() + +const errorThrow = e => { + if ( + e.message === 'aborted' || + e.message === 'Fetch error.' || + e.message === 'Response JSON parse error.' + ) + throw new Error('aborted') + + throw new Error(e.message || e.status) +} + +const graphQLCall = async ( + url, + query, + variables, + cacheKey = query.definitions[0].name.value +) => { + const abortController = new AbortController() + const fetchOptions = fetchOptionsGraphQL({ + query: print(query), + variables + }) + + fetchOptions.signal = abortController.signal + + if (loading.store[cacheKey]) { + loading.store[cacheKey].forEach(a => { + a.abortController.abort() + }) + } + + const req = fetchGraphQL(url, fetchOptions) + + const loadingCacheValue = new LoadingCacheValue( + loading, + cache, + cacheKey, + req, + abortController + ) + + const res = await loadingCacheValue.promise + + if (res.errors?.length) { + res.errors.forEach(e => { + if (e.extensions && e.extensions.client && e.message === 'FETCH_ERROR') + throw new Error('aborted') + + throw new Error(e.message) + }) + } + + const data = res.data + + const keys = Object.keys(data) + const dataContent = keys.length === 1 ? data[keys[0]] : data + + return dataContent +} + +const apiGraphQLFetch = (query, cacheKey) => async variables => { + try { + return await graphQLCall(apiUrl, query, variables, cacheKey) + } catch (e) { + if (e.status === 401 || e.message === 'HTTP 401 status.') { + // la session a été invalidée par un administrateur + // ne sachant pas si il voit des informations confidentielles actuellement, + // il est préférable de rafraichir totalement la page + window.location.reload() + } else { + errorThrow(e) + } + } +} + +export { apiGraphQLFetch, errorThrow } diff --git a/packages/ui/src/api/_client.test.js b/packages/ui/src/api/_client.test.js new file mode 100644 index 000000000..e21dd9ce9 --- /dev/null +++ b/packages/ui/src/api/_client.test.js @@ -0,0 +1,67 @@ +import gql from 'graphql-tag' + +import { apiGraphQLFetch } from './_client.js' + +jest.mock('./fragments/utilisateur', () => ({ + fragmentUtilisateur: gql` + fragment utilisateur on Utilisateur { + id + email + } + ` +})) + +console.info = jest.fn() +console.error = jest.fn() + +describe('api client', () => { + const { location } = window + + beforeEach(() => { + delete window.location + window.location = { reload: jest.fn() } + process.env.NODE_ENV = 'production' + }) + + afterEach(() => { + window.location = location + }) + + test('une réponse 200 du serveur ne génère pas d’erreur', async () => { + fetch.mockResponseOnce(JSON.stringify({ data: { key: 'value' } }), { + status: 200 + }) + + const res = await apiGraphQLFetch(gql` + query fakeQuery { + toto { + id + } + } + `)() + + expect(res).toEqual('value') + }) + + test('une réponse 404 du serveur génère une erreur', async () => { + fetch.mockResponse(JSON.stringify({ data: {} }), { status: 404 }) + + let error + try { + await apiGraphQLFetch( + gql` + query fakeQuery { + toto { + id + } + } + ` + )() + } catch (e) { + error = e + } + + expect(error.message).toBe('HTTP 404 status.') + expect(window.location.reload).not.toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/api/_upload.js b/packages/ui/src/api/_upload.js new file mode 100644 index 000000000..d686bc546 --- /dev/null +++ b/packages/ui/src/api/_upload.js @@ -0,0 +1,45 @@ +import Uppy from '@uppy/core' +import Tus from '@uppy/tus' +import { errorThrow } from './_client' + +const CHUNK_SIZE = 1048576 // 1 Mo +const apiUrl = '/apiUrl' + +const uploadCall = async (file, progressCb) => { + const uppy = new Uppy({ + autoProceed: true + }) + + uppy.use(Tus, { + chunkSize: CHUNK_SIZE, + endpoint: `${apiUrl}/televersement`, + onShouldRetry: () => { + return false + }, + onChunkComplete: (_, bytesAccepted, bytesTotal) => { + progressCb((bytesAccepted / bytesTotal) * 100) + } + }) + + uppy.addFile({ + name: file.name, + data: file + }) + + progressCb(0) + + return new Promise((resolve, reject) => { + uppy.on('complete', result => { + const { successful, failed } = result + + if (failed.length || !successful.length) { + reject(errorThrow(new Error('Échec du téléversement'))) + } + + const [{ uploadURL }] = successful + resolve(uploadURL) + }) + }) +} + +export { uploadCall } diff --git a/packages/ui/src/api/administrations.js b/packages/ui/src/api/administrations.js new file mode 100644 index 000000000..34cb382f4 --- /dev/null +++ b/packages/ui/src/api/administrations.js @@ -0,0 +1,215 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { fragmentAdministration } from './fragments/administration' +import { fragmentAdministrations } from './fragments/administrations' +import { fragmentAdministrationType } from './fragments/metas' + +const administrationMetas = apiGraphQLFetch( + gql` + query AdministrationMetas { + administrationsTypes { + ...administrationType + } + + regions { + id + nom + } + + departements { + id + nom + } + + activitesTypes { + id + nom + } + } + + ${fragmentAdministrationType} + ` +) + +const administrationPermissionsMetas = apiGraphQLFetch( + gql` + query AdministrationPermissionsMetas { + domaines { + id + nom + titresTypes { + id + type { + id + nom + } + } + } + + statuts { + id + nom + } + + etapesTypes { + id + nom + } + } + ` +) + +const administration = apiGraphQLFetch(gql` + query Administration($id: ID!) { + administration(id: $id) { + ...administration + } + } + + ${fragmentAdministration} +`) + +const administrationsMetas = apiGraphQLFetch( + gql` + query AdministrationsMetas { + administrationsTypes { + id + nom + ordre + } + } + ` +) + +const administrations = apiGraphQLFetch(gql` + query Administrations( + $intervalle: Int + $page: Int + $colonne: String + $ordre: String + $noms: String + $typesIds: [ID] + ) { + administrations( + intervalle: $intervalle + page: $page + colonne: $colonne + ordre: $ordre + noms: $noms + typesIds: $typesIds + ) { + elements { + ...administrations + } + total + } + } + + ${fragmentAdministrations} +`) + +const administrationModifier = apiGraphQLFetch(gql` + mutation AdministrationModifier($administration: InputAdministration!) { + administrationModifier(administration: $administration) { + ...administration + } + } + + ${fragmentAdministration} +`) + +const administrationTitreTypeUpdate = apiGraphQLFetch(gql` + mutation AdministrationTitreTypeModifier( + $administrationTitreType: InputAdministrationTitreType! + ) { + administrationTitreTypeModifier( + administrationTitreType: $administrationTitreType + ) { + ...administration + } + } + + ${fragmentAdministration} +`) + +const administrationActiviteTypeUpdate = apiGraphQLFetch(gql` + mutation AdministrationActiviteTypeModifier( + $administrationActiviteType: InputAdministrationActiviteType! + ) { + administrationActiviteTypeModifier( + administrationActiviteType: $administrationActiviteType + ) { + ...administration + } + } + + ${fragmentAdministration} +`) + +const administrationActiviteTypeEmailUpdate = apiGraphQLFetch(gql` + mutation AdministrationActiviteTypeEmailCreer( + $administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail! + ) { + administrationActiviteTypeEmailCreer( + administrationActiviteTypeEmail: $administrationActiviteTypeEmail + ) { + id + } + } +`) + +const administrationActiviteTypeEmailDelete = apiGraphQLFetch(gql` + mutation AdministrationActiviteTypeEmailSupprimer( + $administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail! + ) { + administrationActiviteTypeEmailSupprimer( + administrationActiviteTypeEmail: $administrationActiviteTypeEmail + ) { + id + } + } +`) + +const administrationTitreTypeTitreStatutUpdate = apiGraphQLFetch(gql` + mutation AdministrationTitreTypeTitreStatutModifier( + $administrationTitreTypeTitreStatut: InputAdministrationTitreTypeTitreStatut! + ) { + administrationTitreTypeTitreStatutModifier( + administrationTitreTypeTitreStatut: $administrationTitreTypeTitreStatut + ) { + ...administration + } + } + + ${fragmentAdministration} +`) + +const administrationTitreTypeEtapeTypeUpdate = apiGraphQLFetch(gql` + mutation AdministrationTitreTypeEtapeTypeModifier( + $administrationTitreTypeEtapeType: InputAdministrationTitreTypeEtapeType! + ) { + administrationTitreTypeEtapeTypeModifier( + administrationTitreTypeEtapeType: $administrationTitreTypeEtapeType + ) { + ...administration + } + } + + ${fragmentAdministration} +`) + +export { + administrationMetas, + administration, + administrationsMetas, + administrations, + administrationModifier, + administrationTitreTypeUpdate, + administrationTitreTypeTitreStatutUpdate, + administrationTitreTypeEtapeTypeUpdate, + administrationActiviteTypeUpdate, + administrationActiviteTypeEmailUpdate, + administrationActiviteTypeEmailDelete, + administrationPermissionsMetas +} diff --git a/packages/ui/src/api/documents.js b/packages/ui/src/api/documents.js new file mode 100644 index 000000000..37f2af970 --- /dev/null +++ b/packages/ui/src/api/documents.js @@ -0,0 +1,49 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' +import { fragmentDocument } from './fragments/documents' +import { fragmentDocumentType } from './fragments/metas' + +const documentMetas = apiGraphQLFetch( + gql` + query MetasDocument($repertoire: ID, $typeId: ID) { + documentsTypes(repertoire: $repertoire, typeId: $typeId) { + ...documentType + } + + documentsVisibilites { + id + nom + } + } + + ${fragmentDocumentType} + ` +) + +const documentCreer = apiGraphQLFetch(gql` + mutation DocumentCreer($document: InputDocumentCreation!) { + documentCreer(document: $document) { + ...document + } + } + + ${fragmentDocument} +`) + +const documentModifier = apiGraphQLFetch(gql` + mutation DocumentModifier($document: InputDocumentModification!) { + documentModifier(document: $document) { + ...document + } + } + + ${fragmentDocument} +`) + +const documentSupprimer = apiGraphQLFetch(gql` + mutation DocumentSupprimer($id: ID!) { + documentSupprimer(id: $id) + } +`) + +export { documentMetas, documentCreer, documentModifier, documentSupprimer } diff --git a/packages/ui/src/api/entreprises.js b/packages/ui/src/api/entreprises.js new file mode 100644 index 000000000..c80d51962 --- /dev/null +++ b/packages/ui/src/api/entreprises.js @@ -0,0 +1,103 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { fragmentEntreprises } from './fragments/entreprises' +import { fragmentEntreprise } from './fragments/entreprise' + +const entreprisePermissionsMetas = apiGraphQLFetch( + gql` + query EntreprisePermissionsMetas { + domaines { + id + nom + titresTypes { + id + type { + id + nom + } + } + } + } + ` +) + +const entreprise = apiGraphQLFetch( + gql` + query Entreprise($id: ID!) { + entreprise(id: $id) { + ...entreprise + } + } + + ${fragmentEntreprise} + ` +) + +const entreprises = apiGraphQLFetch(gql` + query Entreprises( + $intervalle: Int + $page: Int + $colonne: String + $ordre: String + $noms: String + $etapeId: ID + ) { + entreprises( + intervalle: $intervalle + page: $page + colonne: $colonne + ordre: $ordre + noms: $noms + etapeId: $etapeId + ) { + elements { + ...entreprises + } + total + } + } + + ${fragmentEntreprises} +`) + +const entrepriseCreer = apiGraphQLFetch(gql` + mutation EntrepriseCreer($entreprise: InputEntrepriseCreation!) { + entrepriseCreer(entreprise: $entreprise) { + ...entreprise + } + } + + ${fragmentEntreprise} +`) + +const entrepriseModifier = apiGraphQLFetch(gql` + mutation EntrepriseModifier($entreprise: InputEntrepriseModification!) { + entrepriseModifier(entreprise: $entreprise) { + ...entreprise + } + } + + ${fragmentEntreprise} +`) + +const entrepriseTitreTypeUpdate = apiGraphQLFetch(gql` + mutation EntrepriseTitreTypeModifier( + $entrepriseTitreType: InputEntrepriseTitreType! + ) { + entrepriseTitreTypeModifier(entrepriseTitreType: $entrepriseTitreType) { + ...entreprise + } + } + + ${fragmentEntreprise} +`) + +export { + entreprise, + entreprises, + entrepriseCreer, + entrepriseModifier, + entrepriseTitreTypeUpdate, + entreprisePermissionsMetas +} diff --git a/packages/ui/src/api/fragments/administration.js b/packages/ui/src/api/fragments/administration.js new file mode 100644 index 000000000..a2774ef8b --- /dev/null +++ b/packages/ui/src/api/fragments/administration.js @@ -0,0 +1,108 @@ +import gql from 'graphql-tag' +import { fragmentUtilisateur } from './utilisateur' + +const fragmentAdministration = gql` + fragment administration on Administration { + id + nom + type { + id + nom + } + abreviation + service + adresse1 + adresse2 + codePostal + commune + cedex + url + telephone + email + emailsModification + emailsLecture + activitesTypesEmails { + id + nom + email + } + utilisateurs { + ...utilisateur + } + departement { + id + nom + } + region { + id + nom + } + titresTypes { + id + domaine { + id + nom + } + type { + id + nom + } + gestionnaire + associee + } + titresTypesTitresStatuts { + titreType { + id + domaine { + id + nom + } + type { + id + nom + } + } + titreStatut { + id + nom + couleur + } + titresModificationInterdit + demarchesModificationInterdit + etapesModificationInterdit + } + titresTypesEtapesTypes { + titreType { + id + type { + id + nom + } + domaine { + id + nom + } + } + etapeType { + id + nom + } + lectureInterdit + creationInterdit + modificationInterdit + } + + activitesTypes { + id + nom + lectureInterdit + modificationInterdit + } + + modification + } + + ${fragmentUtilisateur} +` + +export { fragmentAdministration } diff --git a/packages/ui/src/api/fragments/administrations.js b/packages/ui/src/api/fragments/administrations.js new file mode 100644 index 000000000..bf9d88d31 --- /dev/null +++ b/packages/ui/src/api/fragments/administrations.js @@ -0,0 +1,32 @@ +import gql from 'graphql-tag' + +const fragmentTitreAdministrations = gql` + fragment titreAdministrations on Administration { + id + nom + service + adresse1 + adresse2 + codePostal + commune + cedex + url + telephone + email + } +` + +const fragmentAdministrations = gql` + fragment administrations on Administration { + id + nom + abreviation + service + membre + type { + nom + } + } +` + +export { fragmentAdministrations, fragmentTitreAdministrations } diff --git a/packages/ui/src/api/fragments/documents.js b/packages/ui/src/api/fragments/documents.js new file mode 100644 index 000000000..a0095e464 --- /dev/null +++ b/packages/ui/src/api/fragments/documents.js @@ -0,0 +1,28 @@ +import gql from 'graphql-tag' +import { fragmentDocumentType } from './metas' + +const fragmentDocument = gql` + fragment document on Document { + id + type { + ...documentType + } + date + description + fichier + fichierTypeId + titreEtapeId + url + uri + jorf + nor + publicLecture + entreprisesLecture + modification + suppression + } + + ${fragmentDocumentType} +` + +export { fragmentDocument } diff --git a/packages/ui/src/api/fragments/entreprise.js b/packages/ui/src/api/fragments/entreprise.js new file mode 100644 index 000000000..ae3b9e5db --- /dev/null +++ b/packages/ui/src/api/fragments/entreprise.js @@ -0,0 +1,64 @@ +import gql from 'graphql-tag' + +import { fragmentTitres } from './titre' +import { fragmentUtilisateur } from './utilisateur' +import { fragmentDocument } from './documents' + +const fragmentEntreprise = gql` + fragment entreprise on Entreprise { + id + nom + paysId + legalSiren + legalEtranger + legalForme + adresse + codePostal + commune + cedex + url + telephone + email + archive + etablissements { + id + nom + dateDebut + dateFin + legalSiret + } + utilisateurs { + ...utilisateur + } + titulaireTitres { + ...titres + } + amodiataireTitres { + ...titres + } + + documents { + ...document + } + titresTypes { + id + domaine { + id + nom + } + type { + id + nom + } + titresCreation + } + + modification + } + + ${fragmentTitres} + ${fragmentUtilisateur} + ${fragmentDocument} +` + +export { fragmentEntreprise } diff --git a/packages/ui/src/api/fragments/entreprises.js b/packages/ui/src/api/fragments/entreprises.js new file mode 100644 index 000000000..dd074a94f --- /dev/null +++ b/packages/ui/src/api/fragments/entreprises.js @@ -0,0 +1,78 @@ +import gql from 'graphql-tag' +import { fragmentDocument } from './documents' + +const fragmentEntreprises = gql` + fragment entreprises on Entreprise { + id + nom + paysId + legalSiren + legalEtranger + titresTypes { + id + domaine { + id + nom + } + type { + id + nom + } + titresCreation + } + } +` + +const fragmentEtapeMetasEntreprises = gql` + fragment etapeMetasEntreprises on Entreprise { + id + nom + documents { + ...document + } + } + + ${fragmentDocument} +` + +const fragmentTitreEntreprises = gql` + fragment titreEntreprises on Entreprise { + id + nom + paysId + legalSiren + legalEtranger + legalForme + adresse + codePostal + commune + cedex + url + etablissements { + id + nom + dateDebut + dateFin + } + operateur + } +` + +const fragmentTitresEntreprises = gql` + fragment titresEntreprises on Entreprise { + id + nom + adresse + codePostal + commune + legalSiren + legalEtranger + } +` + +export { + fragmentEntreprises, + fragmentTitreEntreprises, + fragmentTitresEntreprises, + fragmentEtapeMetasEntreprises +} diff --git a/packages/ui/src/api/fragments/geojson.js b/packages/ui/src/api/fragments/geojson.js new file mode 100644 index 000000000..847cf8fce --- /dev/null +++ b/packages/ui/src/api/fragments/geojson.js @@ -0,0 +1,65 @@ +import gql from 'graphql-tag' + +import { fragmentPointReference } from './point' + +const fragmentGeojsonMultiPolygon = gql` + fragment geojsonMultiPolygon on GeojsonMultiPolygon { + type + geometry { + type + coordinates + } + } +` + +const fragmentGeojsonPoints = gql` + fragment geojsonPoints on GeojsonPoints { + type + features { + type + properties { + id + groupe + contour + point + nom + description + references { + ...pointReference + } + } + geometry { + type + coordinates + } + } + } + + ${fragmentPointReference} +` + +const fragmentPerimetreAlerte = gql` + fragment perimetreAlerte on PerimetreAlerte { + message + url + } +` + +const fragmentPerimetreInformations = gql` + fragment perimetreInformations on PerimetreInformations { + surface + documentTypeIds + alertes { + ...perimetreAlerte + } + } + + ${fragmentPerimetreAlerte} +` + +export { + fragmentGeojsonPoints, + fragmentGeojsonMultiPolygon, + fragmentPerimetreInformations, + fragmentPerimetreAlerte +} diff --git a/packages/ui/src/api/fragments/metas-activites.js b/packages/ui/src/api/fragments/metas-activites.js new file mode 100644 index 000000000..6b778e72d --- /dev/null +++ b/packages/ui/src/api/fragments/metas-activites.js @@ -0,0 +1,83 @@ +import gql from 'graphql-tag' +import { fragmentDocumentType } from './metas' + +const fragmentActiviteType = gql` + fragment activiteType on ActiviteType { + id + nom + dateDebut + delaiMois + pays { + id + nom + } + ordre + frequenceId + frequence { + id + nom + trimestres { + id + nom + mois { + id + nom + } + } + mois { + id + nom + } + annees { + id + nom + } + } + sections + documentsTypes { + ...documentType + } + satisfactionUrl + description + } + + ${fragmentDocumentType} +` + +const fragmentActiviteStatut = gql` + fragment activiteStatut on ActiviteStatut { + id + nom + couleur + } +` + +const fragmentActiviteTypeTitreType = gql` + fragment activiteTypeTitreType on ActiviteTypeTitreType { + activiteTypeId + titreTypeId + } +` + +const fragmentActiviteTypeDocumentType = gql` + fragment activiteTypeDocumentType on ActiviteTypeDocumentType { + activiteTypeId + documentTypeId + optionnel + } +` + +const fragmentActiviteTypePays = gql` + fragment activiteTypePays on ActiviteTypePays { + activiteTypeId + paysId + } +` + +export { + fragmentActiviteType, + fragmentActiviteStatut, + fragmentActiviteTypeTitreType, + fragmentActiviteTypeDocumentType, + fragmentActiviteTypePays +} diff --git a/packages/ui/src/api/fragments/metas.js b/packages/ui/src/api/fragments/metas.js new file mode 100644 index 000000000..7944db0de --- /dev/null +++ b/packages/ui/src/api/fragments/metas.js @@ -0,0 +1,305 @@ +import gql from 'graphql-tag' + +const fragmentPermission = gql` + fragment permission on Permission { + id + nom + ordre + } +` + +const fragmentTitreTypeType = gql` + fragment titreTypeType on TitreTypeType { + id + nom + description + ordre + } +` + +const fragmentTitreStatut = gql` + fragment titreStatut on TitreStatut { + id + nom + description + couleur + ordre + } +` + +const fragmentTitreType = gql` + fragment titreType on TitreType { + id + typeId + domaineId + type { + ...titreTypeType + } + domaine { + id + nom + } + titresCreation + contenuIds + } + ${fragmentTitreTypeType} +` + +const fragmentDemarcheStatut = gql` + fragment demarcheStatut on DemarcheStatut { + id + nom + description + couleur + ordre + } +` + +const fragmentUnite = gql` + fragment unite on Unite { + id + nom + symbole + referenceUniteId + referenceUniteRatio + } +` + +const fragmentDevise = gql` + fragment devise on Devise { + id + nom + } +` + +const fragmentDemarcheType = gql` + fragment demarcheType on DemarcheType { + id + nom + description + ordre + duree + points + substances + titulaires + exception + renouvelable + demarchesCreation + titreTypeId + travaux + } +` +const fragmentDomaine = gql` + fragment domaine on Domaine { + id + nom + description + ordre + } +` + +const fragmentDefinition = gql` + fragment definition on Definition { + id + nom + slug + description + couleur + ordre + elements { + id + nom + description + couleur + } + } +` + +const fragmentPhaseStatut = gql` + fragment phaseStatut on PhaseStatut { + id + nom + couleur + } +` + +const fragmentDocumentType = gql` + fragment documentType on DocumentType { + id + nom + optionnel + description + } +` + +const fragmentEtapeType = gql` + fragment etapeType on EtapeType { + id + parentId + nom + description + ordre + sections + legalLien + legalRef + dateDebut + dateFin + fondamentale + unique + acceptationAuto + publicLecture + entreprisesLecture + etapesStatuts { + id + nom + couleur + } + etapesCreation + documentsTypes { + ...documentType + } + justificatifsTypes { + ...documentType + } + } + + ${fragmentDocumentType} +` + +const fragmentEtapeStatut = gql` + fragment etapeStatut on EtapeStatut { + id + nom + description + couleur + ordre + } +` + +const fragmentAdministrationType = gql` + fragment administrationType on AdministrationType { + id + nom + ordre + } +` + +const fragmentReferenceType = gql` + fragment referenceType on ReferenceType { + id + nom + } +` + +const fragmentGeoSysteme = gql` + fragment geoSysteme on GeoSysteme { + id + nom + ordre + zone + uniteId + definitionProj4 + unite { + ...unite + } + } + + ${fragmentUnite} +` + +const fragmentTitreTypeTitreStatut = gql` + fragment titreTypeTitreStatut on TitreTypeTitreStatut { + titreTypeId + titreStatutId + publicLecture + } +` + +const fragmentTitreTypeDemarcheType = gql` + fragment titreTypeDemarcheType on TitreTypeDemarcheType { + titreTypeId + demarcheTypeId + dureeMax + acceptationImplicite + delaiImplicite + delaiRecours + legalRef + legaleLien + dateDebut + dateFin + } +` + +const fragmentTitreTypeDemarcheTypeEtapeType = gql` + fragment titreTypeDemarcheTypeEtapeType on TitreTypeDemarcheTypeEtapeType { + titreTypeId + demarcheTypeId + etapeTypeId + ordre + sections + } +` + +const fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType = gql` + fragment titreTypeDemarcheTypeEtapeTypeDocumentType on TitreTypeDemarcheTypeEtapeTypeDocumentType { + titreTypeId + demarcheTypeId + etapeTypeId + documentTypeId + optionnel + description + } +` + +const fragmentEtapeTypeEtapeStatut = gql` + fragment etapeTypeEtapeStatut on EtapeTypeEtapeStatut { + etapeTypeId + etapeStatutId + ordre + } +` + +const fragmentEtapeTypeDocumentType = gql` + fragment etapeTypeDocumentType on EtapeTypeDocumentType { + etapeTypeId + documentTypeId + optionnel + description + } +` + +const fragmentEtapeTypeJustificatifType = gql` + fragment etapeTypeJustificatifType on EtapeTypeJustificatifType { + etapeTypeId + documentTypeId + optionnel + description + } +` + +export { + fragmentTitreTypeType, + fragmentTitreStatut, + fragmentEtapeType, + fragmentEtapeStatut, + fragmentPermission, + fragmentUnite, + fragmentDevise, + fragmentDemarcheType, + fragmentDemarcheStatut, + fragmentTitreType, + fragmentDomaine, + fragmentDefinition, + fragmentPhaseStatut, + fragmentAdministrationType, + fragmentDocumentType, + fragmentReferenceType, + fragmentGeoSysteme, + fragmentTitreTypeTitreStatut, + fragmentTitreTypeDemarcheType, + fragmentTitreTypeDemarcheTypeEtapeType, + fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType, + fragmentEtapeTypeEtapeStatut, + fragmentEtapeTypeDocumentType, + fragmentEtapeTypeJustificatifType +} diff --git a/packages/ui/src/api/fragments/pays.js b/packages/ui/src/api/fragments/pays.js new file mode 100644 index 000000000..9312993b3 --- /dev/null +++ b/packages/ui/src/api/fragments/pays.js @@ -0,0 +1,22 @@ +import gql from 'graphql-tag' + +const fragmentPays = gql` + fragment pays on Pays { + id + nom + regions { + id + nom + departements { + id + nom + communes { + id + nom + } + } + } + } +` + +export { fragmentPays } diff --git a/packages/ui/src/api/fragments/point.js b/packages/ui/src/api/fragments/point.js new file mode 100644 index 000000000..b07c8f2c4 --- /dev/null +++ b/packages/ui/src/api/fragments/point.js @@ -0,0 +1,48 @@ +import gql from 'graphql-tag' +import { fragmentUnite } from './metas' + +const fragmentPointReference = gql` + fragment pointReference on PointReference { + id + geoSysteme { + id + nom + zone + unite { + ...unite + } + } + coordonnees { + x + y + } + opposable + } + + ${fragmentUnite} +` + +const fragmentPoint = gql` + fragment point on Point { + id + coordonnees { + x + y + } + groupe + contour + point + nom + description + securite + subsidiaire + lot + references { + ...pointReference + } + } + + ${fragmentPointReference} +` + +export { fragmentPoint, fragmentPointReference } diff --git a/packages/ui/src/api/fragments/substance.js b/packages/ui/src/api/fragments/substance.js new file mode 100644 index 000000000..6bec8ec37 --- /dev/null +++ b/packages/ui/src/api/fragments/substance.js @@ -0,0 +1,61 @@ +import gql from 'graphql-tag' + +const fragmentSubstance = gql` + fragment substance on Substance { + id + nom + symbole + gerep + description + legales { + id + nom + description + domaine { + id + nom + } + code { + id + nom + description + lien + } + } + } +` + +const fragmentTitreSubstance = gql` + fragment titreSubstance on TitreSubstance { + id + nom + ordre + symbole + gerep + description + legales { + id + nom + description + domaine { + id + nom + } + code { + id + nom + description + lien + } + } + } +` + +const fragmentTitresSubstance = gql` + fragment titresSubstance on TitreSubstance { + id + nom + } +` + +export { fragmentSubstance, fragmentTitreSubstance, fragmentTitresSubstance } diff --git a/packages/ui/src/api/fragments/titre-activite.js b/packages/ui/src/api/fragments/titre-activite.js new file mode 100644 index 000000000..6e6bc98ba --- /dev/null +++ b/packages/ui/src/api/fragments/titre-activite.js @@ -0,0 +1,142 @@ +import gql from 'graphql-tag' +import { fragmentTitresEntreprises } from './entreprises' +import { fragmentDocument } from './documents' +import { fragmentActiviteType, fragmentActiviteStatut } from './metas-activites' + +const fragmentTitreActivite = gql` + fragment titreActivite on Activite { + id + slug + type { + ...activiteType + } + statut { + ...activiteStatut + } + date + annee + periode + dateSaisie + sections + contenu + + suppression + modification + deposable + + documents { + ...document + } + } + + ${fragmentActiviteType} + + ${fragmentActiviteStatut} + + ${fragmentDocument} +` + +const fragmentActivites = gql` + fragment activites on Activite { + id + slug + titre { + id + nom + titulaires { + ...titresEntreprises + } + amodiataires { + ...titresEntreprises + } + } + type { + ...activiteType + } + statut { + id + nom + couleur + } + date + annee + periode + dateSaisie + sections + contenu + + suppression + modification + deposable + } + + ${fragmentActiviteType} + + ${fragmentTitresEntreprises} +` + +const fragmentActivite = gql` + fragment activite on Activite { + id + slug + titre { + id + slug + nom + titulaires { + ...titresEntreprises + } + amodiataires { + ...titresEntreprises + } + } + type { + ...activiteType + } + statut { + id + nom + couleur + } + date + annee + periode + dateSaisie + sections + contenu + + documents { + ...document + } + + suppression + modification + deposable + } + + ${fragmentActiviteType} + + ${fragmentTitresEntreprises} + + ${fragmentDocument} +` + +const fragmentTitresActivite = gql` + fragment titresActivite on Activite { + id + slug + date + statut { + id + couleur + } + deposable + } +` + +export { + fragmentActivites, + fragmentActivite, + fragmentTitreActivite, + fragmentTitresActivite +} diff --git a/packages/ui/src/api/fragments/titre-demarche.js b/packages/ui/src/api/fragments/titre-demarche.js new file mode 100644 index 000000000..2346ad143 --- /dev/null +++ b/packages/ui/src/api/fragments/titre-demarche.js @@ -0,0 +1,41 @@ +import gql from 'graphql-tag' + +import { fragmentTitreEtape } from './titre-etape' +import { fragmentDemarcheType, fragmentDemarcheStatut } from './metas' + +const fragmentTitreDemarche = gql` + fragment titreDemarche on Demarche { + id + description + slug + ordre + type { + ...demarcheType + } + statut { + ...demarcheStatut + } + phase { + dateDebut + dateFin + statut { + id + nom + couleur + } + } + etapes { + ...titreEtape + } + + modification + etapesCreation + suppression + } + + ${fragmentTitreEtape} + ${fragmentDemarcheType} + ${fragmentDemarcheStatut} +` + +export { fragmentTitreDemarche } diff --git a/packages/ui/src/api/fragments/titre-etape.js b/packages/ui/src/api/fragments/titre-etape.js new file mode 100644 index 000000000..00cc1c13b --- /dev/null +++ b/packages/ui/src/api/fragments/titre-etape.js @@ -0,0 +1,382 @@ +import gql from 'graphql-tag' +import { fragmentTitreAdministrations } from './administrations' +import { fragmentTitreEntreprises } from './entreprises' +import { fragmentTitreSubstance } from './substance' +import { fragmentPoint } from './point' +import { fragmentGeojsonMultiPolygon } from './geojson' +import { fragmentPays } from './pays' +import { + fragmentDemarcheType, + fragmentDocumentType, + fragmentTitreType, + fragmentUnite +} from './metas' + +import { fragmentDocument } from './documents' + +const fragmentIncertitudes = gql` + fragment incertitudes on Incertitudes { + date + dateDebut + dateFin + duree + surface + points + substances + titulaires + amodiataires + } +` + +// fragment qui représente l’étape dont on hérite sur une prop +const fragmentHeritageEtape = gql` + fragment heritageEtape on Etape { + id + titreDemarcheId + ordre + date + dateDebut + dateFin + duree + surface + incertitudes { + ...incertitudes + } + type { + id + nom + sections + } + statut { + id + nom + couleur + } + administrations { + ...titreAdministrations + } + titulaires { + ...titreEntreprises + } + amodiataires { + ...titreEntreprises + } + points { + ...point + } + substances { + ...titreSubstance + } + contenu + } + + ${fragmentIncertitudes} + + ${fragmentTitreAdministrations} + + ${fragmentTitreEntreprises} + + ${fragmentPoint} + + ${fragmentTitreSubstance} + + ${fragmentUnite} +` + +const fragmentHeritageProps = gql` + fragment heritageProps on HeritageProps { + dateDebut { + ...heritageProp + } + dateFin { + ...heritageProp + } + duree { + ...heritageProp + } + surface { + ...heritageProp + } + points { + ...heritageProp + } + substances { + ...heritageProp + } + titulaires { + ...heritageProp + } + amodiataires { + ...heritageProp + } + } + + fragment heritageProp on HeritageProp { + etape { + ...heritageEtape + } + actif + } + + ${fragmentHeritageEtape} +` + +const fragmentTitreEtape = gql` + fragment titreEtape on Etape { + id + slug + ordre + date + dateDebut + dateFin + duree + surface + type { + id + nom + sections + documentsTypes { + ...documentType + } + justificatifsTypes { + ...documentType + } + } + statut { + id + nom + couleur + } + administrations { + ...titreAdministrations + } + titulaires { + ...titreEntreprises + } + amodiataires { + ...titreEntreprises + } + points { + ...point + } + geojsonMultiPolygon { + ...geojsonMultiPolygon + } + substances { + ...titreSubstance + } + documents { + ...document + } + justificatifs { + ...document + } + incertitudes { + ...incertitudes + } + heritageProps { + ...heritageProps + } + pays { + ...pays + } + contenu + heritageContenu + decisionsAnnexesSections + decisionsAnnexesContenu + + modification + deposable + } + + ${fragmentTitreAdministrations} + + ${fragmentTitreEntreprises} + + ${fragmentPoint} + + ${fragmentGeojsonMultiPolygon} + + ${fragmentTitreSubstance} + + ${fragmentPays} + + ${fragmentUnite} + + ${fragmentDocument} + + ${fragmentHeritageProps} + + ${fragmentIncertitudes} + + ${fragmentDocumentType} +` + +const fragmentEtapeHeritage = gql` + fragment etapeHeritage on EtapeHeritage { + dateDebut + dateFin + duree + surface + type { + id + nom + sections + documentsTypes { + ...documentType + } + justificatifsTypes { + ...documentType + } + } + + titulaires { + ...titreEntreprises + } + + amodiataires { + ...titreEntreprises + } + + points { + ...point + } + + substances { + ...titreSubstance + } + + contenu + + heritageProps { + ...heritageProps + } + + heritageContenu + } + + ${fragmentTitreEntreprises} + + ${fragmentPoint} + + ${fragmentTitreSubstance} + + ${fragmentHeritageProps} + + ${fragmentDocumentType} +` + +const fragmentEtape = gql` + fragment etape on Etape { + id + slug + titreDemarcheId + demarche { + id + type { + ...demarcheType + } + titre { + id + slug + nom + domaine { + id + nom + } + type { + ...titreType + } + } + } + ordre + date + dateDebut + dateFin + duree + surface + type { + id + nom + sections + documentsTypes { + ...documentType + } + justificatifsTypes { + ...documentType + } + } + statut { + id + nom + couleur + } + administrations { + ...titreAdministrations + } + titulaires { + ...titreEntreprises + } + amodiataires { + ...titreEntreprises + } + points { + ...point + } + geojsonMultiPolygon { + ...geojsonMultiPolygon + } + substances { + ...titreSubstance + } + documents { + ...document + } + justificatifs { + ...document + } + incertitudes { + ...incertitudes + } + heritageProps { + ...heritageProps + } + pays { + ...pays + } + contenu + heritageContenu + decisionsAnnexesSections + decisionsAnnexesContenu + + modification + } + + ${fragmentDemarcheType} + + ${fragmentTitreType} + + ${fragmentTitreAdministrations} + + ${fragmentTitreEntreprises} + + ${fragmentPoint} + + ${fragmentGeojsonMultiPolygon} + + ${fragmentTitreSubstance} + + ${fragmentPays} + + ${fragmentUnite} + + ${fragmentDocument} + + ${fragmentHeritageProps} + + ${fragmentIncertitudes} + + ${fragmentDocumentType} +` + +export { fragmentTitreEtape, fragmentEtapeHeritage, fragmentEtape } diff --git a/packages/ui/src/api/fragments/titre.js b/packages/ui/src/api/fragments/titre.js new file mode 100644 index 000000000..6cd1706f5 --- /dev/null +++ b/packages/ui/src/api/fragments/titre.js @@ -0,0 +1,269 @@ +import gql from 'graphql-tag' + +import { fragmentTitreType } from './metas' +import { fragmentTitreDemarche } from './titre-demarche' +import { fragmentTitreActivite } from './titre-activite' +import { fragmentTitreSubstance, fragmentTitresSubstance } from './substance' +import { fragmentTitreAdministrations } from './administrations' +import { + fragmentTitreEntreprises, + fragmentTitresEntreprises +} from './entreprises' + +import { fragmentPoint } from './point' +import { fragmentPays } from './pays' + +import { fragmentGeojsonPoints, fragmentGeojsonMultiPolygon } from './geojson' + +const fragmentTitre = gql` + fragment titre on Titre { + id + slug + nom + type { + ...titreType + sections + } + domaine { + id + nom + } + statut { + id + nom + couleur + } + references { + type { + id + nom + } + nom + } + substances { + ...titreSubstance + } + dateDebut + dateFin + activitesEnConstruction + activitesAbsentes + activitesDeposees + surface + administrations { + ...titreAdministrations + } + titresAdministrations { + id + } + titulaires { + ...titreEntreprises + } + amodiataires { + ...titreEntreprises + } + points { + ...point + } + geojsonPoints { + ...geojsonPoints + } + geojsonMultiPolygon { + ...geojsonMultiPolygon + } + pays { + ...pays + } + demarches { + ...titreDemarche + } + activites { + ...titreActivite + } + + forets { + nom + } + + sdomZones { + nom + } + + contenu + + modification + suppression + demarchesCreation + travauxCreation + doublonTitre { + id + nom + } + abonnement + } + + ${fragmentTitreAdministrations} + + ${fragmentTitreEntreprises} + + ${fragmentTitreDemarche} + + ${fragmentTitreActivite} + + ${fragmentTitreSubstance} + + ${fragmentPoint} + + ${fragmentGeojsonPoints} + + ${fragmentGeojsonMultiPolygon} + + ${fragmentPays} + + ${fragmentTitreType} +` + +const fragmentTitres = gql` + fragment titres on Titre { + id + slug + nom + type { + ...titreType + } + domaine { + id + nom + } + coordonnees { + x + y + } + statut { + id + nom + couleur + } + substances { + ...titresSubstance + } + activitesEnConstruction + activitesAbsentes + activitesDeposees + titulaires { + ...titresEntreprises + } + amodiataires { + ...titresEntreprises + } + pays { + regions { + nom + departements { + nom + } + } + } + references { + type { + nom + } + nom + } + } + + ${fragmentTitresEntreprises} + + ${fragmentTitresSubstance} + + ${fragmentTitreType} +` + +const fragmentTitreGeo = gql` + fragment titreGeo on Titre { + id + slug + nom + type { + ...titreType + } + domaine { + id + nom + } + statut { + id + nom + couleur + } + titulaires { + ...titresEntreprises + } + amodiataires { + ...titresEntreprises + } + + geojsonCentre { + geometry { + coordinates + } + } + } + ${fragmentTitresEntreprises} + ${fragmentTitreType} +` + +const fragmentTitresGeo = gql` + fragment titresGeo on Titre { + ...titreGeo + } + + ${fragmentTitreGeo} +` + +const fragmentTitresGeoPolygon = gql` + fragment titresGeoPolygon on Titre { + ...titreGeo + geojsonMultiPolygon { + ...geojsonMultiPolygon + } + } + + ${fragmentTitreGeo} + ${fragmentGeojsonMultiPolygon} +` + +const fragmentDemarchesTitre = gql` + fragment demarchesTitre on Titre { + id + slug + nom + type { + ...titreType + } + domaine { + id + nom + } + statut { + id + nom + couleur + } + references { + type { + nom + } + nom + } + } + + ${fragmentTitreType} +` + +export { + fragmentTitre, + fragmentTitres, + fragmentTitresGeo, + fragmentTitresGeoPolygon, + fragmentDemarchesTitre +} diff --git a/packages/ui/src/api/fragments/titres-demarches.js b/packages/ui/src/api/fragments/titres-demarches.js new file mode 100644 index 000000000..3005b9e0c --- /dev/null +++ b/packages/ui/src/api/fragments/titres-demarches.js @@ -0,0 +1,39 @@ +import gql from 'graphql-tag' + +import { fragmentDemarchesTitre } from './titre' +import { fragmentDemarcheType, fragmentDemarcheStatut } from './metas' + +const fragmentDemarches = gql` + fragment demarches on Demarche { + id + slug + ordre + titre { + ...demarchesTitre + } + type { + ...demarcheType + } + statut { + ...demarcheStatut + } + phase { + dateDebut + dateFin + statut { + id + nom + couleur + } + } + + modification + suppression + } + + ${fragmentDemarcheType} + ${fragmentDemarcheStatut} + ${fragmentDemarchesTitre} +` + +export { fragmentDemarches } diff --git a/packages/ui/src/api/fragments/utilisateur.js b/packages/ui/src/api/fragments/utilisateur.js new file mode 100644 index 000000000..e72dbe19b --- /dev/null +++ b/packages/ui/src/api/fragments/utilisateur.js @@ -0,0 +1,48 @@ +import gql from 'graphql-tag' +import { fragmentPermission } from './metas' +import { fragmentEntreprises } from './entreprises' +import { fragmentAdministrations } from './administrations' + +const fragmentUtilisateur = gql` + fragment utilisateur on Utilisateur { + id + nom + prenom + email + telephoneMobile + telephoneFixe + entreprises { + ...entreprises + } + administrations { + ...administrations + } + permission { + ...permission + } + newsletter + + modification + suppression + permissionModification + entreprisesCreation + utilisateursCreation + + sections { + activites + administrations + utilisateurs + metas + journaux + travaux + } + } + + ${fragmentEntreprises} + + ${fragmentAdministrations} + + ${fragmentPermission} +` + +export { fragmentUtilisateur } diff --git a/packages/ui/src/api/geojson.js b/packages/ui/src/api/geojson.js new file mode 100644 index 000000000..3dd3144e8 --- /dev/null +++ b/packages/ui/src/api/geojson.js @@ -0,0 +1,69 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' +import { fragmentPoint } from './fragments/point' +import { + fragmentPerimetreAlerte, + fragmentPerimetreInformations +} from '@/api/fragments/geojson' + +const pointsImporter = apiGraphQLFetch(gql` + query PointsImporter( + $file: FileUpload! + $geoSystemeId: String! + $titreId: String! + $etapeTypeId: String! + ) { + pointsImporter( + fileUpload: $file + geoSystemeId: $geoSystemeId + titreId: $titreId + etapeTypeId: $etapeTypeId + ) { + points { + ...point + } + surface + documentTypeIds + alertes { + ...perimetreAlerte + } + } + } + + ${fragmentPoint} + ${fragmentPerimetreAlerte} +`) + +const perimetreInformations = apiGraphQLFetch(gql` + query PerimetreInformations( + $points: [InputPoint]! + $titreId: String! + $etapeTypeId: String! + ) { + perimetreInformations( + points: $points + titreId: $titreId + etapeTypeId: $etapeTypeId + ) { + ...perimetreInformations + } + } + + ${fragmentPerimetreInformations} +`) + +const titreEtapePerimetreInformations = apiGraphQLFetch(gql` + query TitreEtapePerimetreInformations($titreEtapeId: String!) { + titreEtapePerimetreInformations(titreEtapeId: $titreEtapeId) { + ...perimetreInformations + } + } + + ${fragmentPerimetreInformations} +`) + +export { + pointsImporter, + perimetreInformations, + titreEtapePerimetreInformations +} diff --git a/packages/ui/src/api/journaux.js b/packages/ui/src/api/journaux.js new file mode 100644 index 000000000..94e3fd8cc --- /dev/null +++ b/packages/ui/src/api/journaux.js @@ -0,0 +1,36 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +const journaux = apiGraphQLFetch(gql` + query Journaux( + $intervalle: Int! + $page: Int! + $recherche: String + $titreId: String + ) { + journaux( + intervalle: $intervalle + page: $page + recherche: $recherche + titreId: $titreId + ) { + elements { + id + date + differences + elementId + operation + utilisateur { + nom + prenom + } + titre { + nom + } + } + total + } + } +`) + +export { journaux } diff --git a/packages/ui/src/api/metas-activites.js b/packages/ui/src/api/metas-activites.js new file mode 100644 index 000000000..e55e1dc91 --- /dev/null +++ b/packages/ui/src/api/metas-activites.js @@ -0,0 +1,247 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { + fragmentActiviteType, + fragmentActiviteStatut, + fragmentActiviteTypeTitreType, + fragmentActiviteTypeDocumentType, + fragmentActiviteTypePays +} from './fragments/metas-activites' + +import { fragmentTitreTypeType } from './fragments/metas' + +const activitesMetas = apiGraphQLFetch( + gql` + query MetasActivites { + activitesTypes { + ...activiteType + } + activitesStatuts { + ...activiteStatut + } + activitesAnnees + + domaines { + id + nom + } + + types { + ...titreTypeType + } + + statuts { + id + nom + couleur + } + } + + ${fragmentActiviteType} + + ${fragmentActiviteStatut} + + ${fragmentTitreTypeType} + ` +) + +const activitesTypes = apiGraphQLFetch( + gql` + query ActivitesTypes { + activitesTypes { + ...activiteType + } + } + + ${fragmentActiviteType} + ` +) + +const activiteTypeModifier = apiGraphQLFetch(gql` + mutation ActiviteTypeModifier($element: InputActiviteType!) { + activiteTypeModifier(activiteType: $element) { + ...activiteType + } + } + + ${fragmentActiviteType} +`) + +const activitesStatuts = apiGraphQLFetch( + gql` + query ActivitesStatuts { + activitesStatuts { + ...activiteStatut + } + } + + ${fragmentActiviteStatut} + ` +) + +const activiteStatutModifier = apiGraphQLFetch(gql` + mutation ActiviteStatutModifier($element: InputActiviteStatut!) { + activiteStatutModifier(activiteStatut: $element) { + ...activiteStatut + } + } + + ${fragmentActiviteStatut} +`) + +const activitesTypesTitresTypes = apiGraphQLFetch( + gql` + query ActivitesTypesTitresTypes { + activitesTypesTitresTypes { + ...activiteTypeTitreType + } + } + + ${fragmentActiviteTypeTitreType} + ` +) + +const activiteTypeTitreTypeModifier = apiGraphQLFetch(gql` + mutation ActiviteTypeTitreTypeModifier( + $element: InputActiviteTypeTitreType! + ) { + activiteTypeTitreTypeModifier(activiteTypeTitreType: $element) { + ...activiteTypeTitreType + } + } + + ${fragmentActiviteTypeTitreType} +`) + +const activiteTypeTitreTypeCreer = apiGraphQLFetch(gql` + mutation ActiviteTypeTitreTypeCreer($element: InputActiviteTypeTitreType!) { + activiteTypeTitreTypeCreer(activiteTypeTitreType: $element) { + ...activiteTypeTitreType + } + } + + ${fragmentActiviteTypeTitreType} +`) + +const activiteTypeTitreTypeSupprimer = apiGraphQLFetch(gql` + mutation ActiviteTypeTitreTypeSupprimer( + $element: InputActiviteTypeTitreType! + ) { + activiteTypeTitreTypeSupprimer(activiteTypeTitreType: $element) { + ...activiteTypeTitreType + } + } + + ${fragmentActiviteTypeTitreType} +`) + +const activitesTypesDocumentsTypes = apiGraphQLFetch( + gql` + query ActivitesTypesDocumentsTypes { + activitesTypesDocumentsTypes { + ...activiteTypeDocumentType + } + } + + ${fragmentActiviteTypeDocumentType} + ` +) + +const activiteTypeDocumentTypeModifier = apiGraphQLFetch(gql` + mutation ActiviteTypeDocumentTypeModifier( + $element: InputActiviteTypeDocumentType! + ) { + activiteTypeDocumentTypeModifier(activiteTypeDocumentType: $element) { + ...activiteTypeDocumentType + } + } + + ${fragmentActiviteTypeDocumentType} +`) + +const activiteTypeDocumentTypeCreer = apiGraphQLFetch(gql` + mutation ActiviteTypeDocumentTypeCreer( + $element: InputActiviteTypeDocumentType! + ) { + activiteTypeDocumentTypeCreer(activiteTypeDocumentType: $element) { + ...activiteTypeDocumentType + } + } + + ${fragmentActiviteTypeDocumentType} +`) + +const activiteTypeDocumentTypeSupprimer = apiGraphQLFetch(gql` + mutation ActiviteTypeDocumentTypeSupprimer( + $element: InputActiviteTypeDocumentType! + ) { + activiteTypeDocumentTypeSupprimer(activiteTypeDocumentType: $element) { + ...activiteTypeDocumentType + } + } + + ${fragmentActiviteTypeDocumentType} +`) + +const activitesTypesPays = apiGraphQLFetch( + gql` + query ActivitesTypesPays { + activitesTypesPays { + ...activiteTypePays + } + } + + ${fragmentActiviteTypePays} + ` +) + +const activiteTypePaysModifier = apiGraphQLFetch(gql` + mutation ActiviteTypePaysModifier($element: InputActiviteTypePays!) { + activiteTypePaysModifier(activiteTypePays: $element) { + ...activiteTypePays + } + } + + ${fragmentActiviteTypePays} +`) + +const activiteTypePaysCreer = apiGraphQLFetch(gql` + mutation ActiviteTypePaysCreer($element: InputActiviteTypePays!) { + activiteTypePaysCreer(activiteTypePays: $element) { + ...activiteTypePays + } + } + + ${fragmentActiviteTypePays} +`) + +const activiteTypePaysSupprimer = apiGraphQLFetch(gql` + mutation ActiviteTypePaysSupprimer($element: InputActiviteTypePays!) { + activiteTypePaysSupprimer(activiteTypePays: $element) { + ...activiteTypePays + } + } + + ${fragmentActiviteTypePays} +`) + +export { + activitesMetas, + activitesTypes, + activiteTypeModifier, + activitesStatuts, + activiteStatutModifier, + activitesTypesTitresTypes, + activiteTypeTitreTypeCreer, + activiteTypeTitreTypeModifier, + activiteTypeTitreTypeSupprimer, + activitesTypesDocumentsTypes, + activiteTypeDocumentTypeCreer, + activiteTypeDocumentTypeModifier, + activiteTypeDocumentTypeSupprimer, + activitesTypesPays, + activiteTypePaysCreer, + activiteTypePaysModifier, + activiteTypePaysSupprimer +} diff --git a/packages/ui/src/api/metas.js b/packages/ui/src/api/metas.js new file mode 100644 index 000000000..b285d201a --- /dev/null +++ b/packages/ui/src/api/metas.js @@ -0,0 +1,926 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' +import { + fragmentDefinition, + fragmentDomaine, + fragmentTitreTypeType, + fragmentTitreStatut, + fragmentDemarcheType, + fragmentDemarcheStatut, + fragmentPhaseStatut, + fragmentEtapeType, + fragmentEtapeStatut, + fragmentDevise, + fragmentUnite, + fragmentAdministrationType, + fragmentPermission, + fragmentDocumentType, + fragmentReferenceType, + fragmentGeoSysteme, + fragmentTitreType, + fragmentTitreTypeTitreStatut, + fragmentTitreTypeDemarcheType, + fragmentTitreTypeDemarcheTypeEtapeType, + fragmentEtapeTypeEtapeStatut, + fragmentEtapeTypeDocumentType, + fragmentEtapeTypeJustificatifType, + fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType +} from './fragments/metas' + +const definitions = apiGraphQLFetch( + gql` + query Definitions { + definitions { + ...definition + } + } + + ${fragmentDefinition} + ` +) + +const definitionModifier = apiGraphQLFetch(gql` + mutation DefinitionModifier($element: InputDefinition!) { + definitionModifier(definition: $element) { + ...definition + } + } + + ${fragmentDefinition} +`) + +const domaines = apiGraphQLFetch( + gql` + query Domaines { + domaines { + ...domaine + } + } + + ${fragmentDomaine} + ` +) + +const domaineModifier = apiGraphQLFetch(gql` + mutation DomaineModifier($element: InputDomaine!) { + domaineModifier(domaine: $element) { + ...domaine + } + } + + ${fragmentDomaine} +`) + +const titresTypesTypes = apiGraphQLFetch( + gql` + query TitresTypesTypes { + types { + ...titreTypeType + } + } + + ${fragmentTitreTypeType} + ` +) + +const titreTypeTypeModifier = apiGraphQLFetch(gql` + mutation TitreTypeTypeModifier($element: InputTitreTypeType!) { + titreTypeTypeModifier(titreType: $element) { + ...titreTypeType + } + } + + ${fragmentTitreTypeType} +`) + +const titreStatutModifier = apiGraphQLFetch(gql` + mutation TitreStatutModifier($element: InputTitreStatut!) { + titreStatutModifier(titreStatut: $element) { + ...titreStatut + } + } + + ${fragmentTitreStatut} +`) + +const titresStatuts = apiGraphQLFetch( + gql` + query Statuts { + statuts { + ...titreStatut + } + } + + ${fragmentTitreStatut} + ` +) + +const demarchesTypes = apiGraphQLFetch( + gql` + query DemarchesTypes { + demarchesTypes { + ...demarcheType + } + } + + ${fragmentDemarcheType} + ` +) + +const demarcheTypeModifier = apiGraphQLFetch(gql` + mutation DemarcheTypeModifier($element: InputDemarcheType!) { + demarcheTypeModifier(demarcheType: $element) { + ...demarcheType + } + } + + ${fragmentDemarcheType} +`) + +const demarchesStatuts = apiGraphQLFetch( + gql` + query DemarchesStatuts { + demarchesStatuts { + ...demarcheStatut + } + } + + ${fragmentDemarcheStatut} + ` +) + +const demarcheStatutModifier = apiGraphQLFetch(gql` + mutation DemarcheStatutModifier($element: InputDemarcheStatut!) { + demarcheStatutModifier(demarcheStatut: $element) { + ...demarcheStatut + } + } + + ${fragmentDemarcheStatut} +`) + +const phasesStatuts = apiGraphQLFetch( + gql` + query PhasesStatuts { + phasesStatuts { + ...phaseStatut + } + } + + ${fragmentPhaseStatut} + ` +) + +const phaseStatutModifier = apiGraphQLFetch(gql` + mutation PhaseStatutModifier($element: InputPhaseStatut!) { + phaseStatutModifier(phaseStatut: $element) { + ...phaseStatut + } + } + + ${fragmentPhaseStatut} +`) + +const etapesStatuts = apiGraphQLFetch( + gql` + query EtapesStatuts { + etapesStatuts { + ...etapeStatut + } + } + + ${fragmentEtapeStatut} + ` +) + +const etapesTypes = apiGraphQLFetch( + gql` + query EtapesTypes { + etapesTypes { + ...etapeType + } + } + + ${fragmentEtapeType} + ` +) + +const etapeTypeModifier = apiGraphQLFetch(gql` + mutation EtapeTypeModifier($element: InputEtapeType!) { + etapeTypeModifier(etapeType: $element) { + ...etapeType + } + } + + ${fragmentEtapeType} +`) + +const etapeStatutModifier = apiGraphQLFetch(gql` + mutation EtapeStatutModifier($element: InputEtapeStatut!) { + etapeStatutModifier(etapeStatut: $element) { + ...etapeStatut + } + } + + ${fragmentEtapeStatut} +`) + +const substancesLegales = apiGraphQLFetch( + gql` + query SubstancesLegales { + substancesLegales { + id + nom + description + ordre + } + } + ` +) + +const unites = apiGraphQLFetch( + gql` + query unites { + unites { + ...unite + } + } + + ${fragmentUnite} + ` +) + +const uniteModifier = apiGraphQLFetch(gql` + mutation UniteModifier($element: InputUnite!) { + uniteModifier(unite: $element) { + ...unite + } + } + + ${fragmentUnite} +`) + +const devises = apiGraphQLFetch( + gql` + query Devises { + devises { + ...devise + } + } + + ${fragmentDevise} + ` +) + +const administrationsTypes = apiGraphQLFetch( + gql` + query AdministrationsTypes { + administrationsTypes { + ...administrationType + } + } + + ${fragmentAdministrationType} + ` +) + +const deviseModifier = apiGraphQLFetch(gql` + mutation DeviseModifier($element: InputDevise!) { + deviseModifier(devise: $element) { + ...devise + } + } + + ${fragmentDevise} +`) + +const administrationTypeModifier = apiGraphQLFetch(gql` + mutation AdministrationTypeModifier($element: InputAdministrationType!) { + administrationTypeModifier(administrationType: $element) { + ...administrationType + } + } + + ${fragmentAdministrationType} +`) + +const permissions = apiGraphQLFetch( + gql` + query Permissions { + permissions { + ...permission + } + } + + ${fragmentPermission} + ` +) + +const permissionModifier = apiGraphQLFetch(gql` + mutation permissionModifier($element: InputPermission!) { + permissionModifier(permission: $element) { + ...permission + } + } + + ${fragmentPermission} +`) + +const documentsTypes = apiGraphQLFetch( + gql` + query DocumentsTypes { + documentsTypes { + ...documentType + } + } + + ${fragmentDocumentType} + ` +) + +const documentTypeCreer = apiGraphQLFetch(gql` + mutation documentTypeCreer($element: InputDocumentType!) { + documentTypeCreer(documentType: $element) { + ...documentType + } + } + + ${fragmentDocumentType} +`) + +const documentTypeModifier = apiGraphQLFetch(gql` + mutation documentTypeModifier($element: InputDocumentType!) { + documentTypeModifier(documentType: $element) { + ...documentType + } + } + + ${fragmentDocumentType} +`) + +const referencesTypes = apiGraphQLFetch( + gql` + query ReferencesTypes { + referencesTypes { + ...referenceType + } + } + + ${fragmentReferenceType} + ` +) + +const referenceTypeModifier = apiGraphQLFetch(gql` + mutation ReferenceTypeModifier($element: InputReferenceType!) { + referenceTypeModifier(referenceType: $element) { + ...referenceType + } + } + + ${fragmentReferenceType} +`) + +const pays = apiGraphQLFetch( + gql` + query pays { + pays { + id + nom + } + } + ` +) + +const geoSystemes = apiGraphQLFetch( + gql` + query GeoSystemes { + geoSystemes { + ...geoSysteme + } + } + + ${fragmentGeoSysteme} + ` +) + +const geoSystemeModifier = apiGraphQLFetch(gql` + mutation GeoSystemeModifier($element: InputGeoSysteme!) { + geoSystemeModifier(geoSysteme: $element) { + ...geoSysteme + } + } + + ${fragmentGeoSysteme} +`) + +const titresTypes = apiGraphQLFetch( + gql` + query TitresTypes { + titresTypes { + ...titreType + } + } + + ${fragmentTitreType} + ` +) + +// tables de jointure + +const titreTypeModifier = apiGraphQLFetch(gql` + mutation TitreTypeModifier($element: InputTitreTypeModification!) { + titreTypeModifier(titreType: $element) { + id + typeId + domaineId + titresCreation + contenuIds + } + } +`) + +const titreTypeCreer = apiGraphQLFetch(gql` + mutation TitreTypeCreer($element: InputTitreTypeCreation!) { + titreTypeCreer(titreType: $element) { + id + typeId + domaineId + titresCreation + contenuIds + } + } +`) + +const titreTypeSupprimer = apiGraphQLFetch(gql` + mutation TitreTypeSupprimer($element: InputTitreTypeModification!) { + titreTypeSupprimer(titreType: $element) { + id + typeId + domaineId + titresCreation + contenuIds + } + } +`) + +const titresTypesTitresStatuts = apiGraphQLFetch( + gql` + query TitresTypesTitresStatuts { + titresTypesTitresStatuts { + ...titreTypeTitreStatut + } + } + + ${fragmentTitreTypeTitreStatut} + ` +) + +const titreTypeTitreStatutModifier = apiGraphQLFetch(gql` + mutation TitreTypeTitreStatutModifier($element: InputTitreTypeTitreStatut!) { + titreTypeTitreStatutModifier(titreTypeTitreStatut: $element) { + ...titreTypeTitreStatut + } + } + + ${fragmentTitreTypeTitreStatut} +`) + +const titreTypeTitreStatutCreer = apiGraphQLFetch(gql` + mutation TitreTypeTitreStatutCreer($element: InputTitreTypeTitreStatut!) { + titreTypeTitreStatutCreer(titreTypeTitreStatut: $element) { + ...titreTypeTitreStatut + } + } + + ${fragmentTitreTypeTitreStatut} +`) + +const titreTypeTitreStatutSupprimer = apiGraphQLFetch(gql` + mutation titreTypeTitreStatutSupprimer($element: InputTitreTypeTitreStatut!) { + titreTypeTitreStatutSupprimer(titreTypeTitreStatut: $element) { + ...titreTypeTitreStatut + } + } + + ${fragmentTitreTypeTitreStatut} +`) + +const titresTypesDemarchesTypes = apiGraphQLFetch( + gql` + query TitresTypesDemarchesTypes { + titresTypesDemarchesTypes { + ...titreTypeDemarcheType + } + } + + ${fragmentTitreTypeDemarcheType} + ` +) + +const titreTypeDemarcheTypeModifier = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeModifier( + $element: InputTitreTypeDemarcheType! + ) { + titreTypeDemarcheTypeModifier(titreTypeDemarcheType: $element) { + ...titreTypeDemarcheType + } + } + + ${fragmentTitreTypeDemarcheType} +`) + +const titreTypeDemarcheTypeCreer = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeCreer($element: InputTitreTypeDemarcheType!) { + titreTypeDemarcheTypeCreer(titreTypeDemarcheType: $element) { + ...titreTypeDemarcheType + } + } + + ${fragmentTitreTypeDemarcheType} +`) + +const titreTypeDemarcheTypeSupprimer = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeSupprimer( + $element: InputTitreTypeDemarcheType! + ) { + titreTypeDemarcheTypeSupprimer(titreTypeDemarcheType: $element) { + ...titreTypeDemarcheType + } + } + + ${fragmentTitreTypeDemarcheType} +`) + +const titresTypesDemarchesTypesEtapesTypes = apiGraphQLFetch( + gql` + query TitresTypesDemarchesTypesEtapesTypes { + titresTypesDemarchesTypesEtapesTypes { + ...titreTypeDemarcheTypeEtapeType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeType} + ` +) + +const titreTypeDemarcheTypeEtapeTypeModifier = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeModifier( + $element: InputTitreTypeDemarcheTypeEtapeType! + ) { + titreTypeDemarcheTypeEtapeTypeModifier( + titreTypeDemarcheTypeEtapeType: $element + ) { + ...titreTypeDemarcheTypeEtapeType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeType} +`) + +const titreTypeDemarcheTypeEtapeTypeCreer = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeCreer( + $element: InputTitreTypeDemarcheTypeEtapeType! + ) { + titreTypeDemarcheTypeEtapeTypeCreer( + titreTypeDemarcheTypeEtapeType: $element + ) { + ...titreTypeDemarcheTypeEtapeType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeType} +`) + +const titreTypeDemarcheTypeEtapeTypeSupprimer = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeSupprimer( + $element: InputTitreTypeDemarcheTypeEtapeType! + ) { + titreTypeDemarcheTypeEtapeTypeSupprimer( + titreTypeDemarcheTypeEtapeType: $element + ) { + ...titreTypeDemarcheTypeEtapeType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeType} +`) + +const titresTypesDemarchesTypesEtapesTypesDocumentsTypes = apiGraphQLFetch( + gql` + query titresTypesDemarchesTypesEtapesTypesDocumentsTypes { + titresTypesDemarchesTypesEtapesTypesDocumentsTypes { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} + ` +) + +const titreTypeDemarcheTypeEtapeTypeDocumentTypeModifier = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeDocumentTypeModifier( + $element: InputTitreTypeDemarcheTypeEtapeTypeDocumentType! + ) { + titreTypeDemarcheTypeEtapeTypeDocumentTypeModifier( + titreTypeDemarcheTypeEtapeTypeDocumentType: $element + ) { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} +`) + +const titreTypeDemarcheTypeEtapeTypeDocumentTypeCreer = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeDocumentTypeCreer( + $element: InputTitreTypeDemarcheTypeEtapeTypeDocumentType! + ) { + titreTypeDemarcheTypeEtapeTypeDocumentTypeCreer( + titreTypeDemarcheTypeEtapeTypeDocumentType: $element + ) { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} +`) + +const titreTypeDemarcheTypeEtapeTypeDocumentTypeSupprimer = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeDocumentTypeSupprimer( + $element: InputTitreTypeDemarcheTypeEtapeTypeDocumentType! + ) { + titreTypeDemarcheTypeEtapeTypeDocumentTypeSupprimer( + titreTypeDemarcheTypeEtapeTypeDocumentType: $element + ) { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} +`) + +const titresTypesDemarchesTypesEtapesTypesJustificatifsTypes = apiGraphQLFetch( + gql` + query titresTypesDemarchesTypesEtapesTypesJustificatifsTypes { + titresTypesDemarchesTypesEtapesTypesJustificatifsTypes { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} + ` +) + +const titreTypeDemarcheTypeEtapeTypeJustificatifTypeModifier = + apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeJustificatifTypeModifier( + $element: InputTitreTypeDemarcheTypeEtapeTypeDocumentType! + ) { + titreTypeDemarcheTypeEtapeTypeJustificatifTypeModifier( + titreTypeDemarcheTypeEtapeTypeJustificatifType: $element + ) { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} + `) + +const titreTypeDemarcheTypeEtapeTypeJustificatifTypeCreer = apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeJustificatifTypeCreer( + $element: InputTitreTypeDemarcheTypeEtapeTypeDocumentType! + ) { + titreTypeDemarcheTypeEtapeTypeJustificatifTypeCreer( + titreTypeDemarcheTypeEtapeTypeJustificatifType: $element + ) { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} +`) + +const titreTypeDemarcheTypeEtapeTypeJustificatifTypeSupprimer = + apiGraphQLFetch(gql` + mutation TitreTypeDemarcheTypeEtapeTypeJustificatifTypeSupprimer( + $element: InputTitreTypeDemarcheTypeEtapeTypeDocumentType! + ) { + titreTypeDemarcheTypeEtapeTypeJustificatifTypeSupprimer( + titreTypeDemarcheTypeEtapeTypeJustificatifType: $element + ) { + ...titreTypeDemarcheTypeEtapeTypeDocumentType + } + } + + ${fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType} + `) + +const etapesTypesEtapesStatuts = apiGraphQLFetch( + gql` + query EtapesTypesEtapesStatuts { + etapesTypesEtapesStatuts { + ...etapeTypeEtapeStatut + } + } + + ${fragmentEtapeTypeEtapeStatut} + ` +) + +const etapeTypeEtapeStatutModifier = apiGraphQLFetch(gql` + mutation EtapeTypeEtapeStatutModifier($element: InputEtapeTypeEtapeStatut!) { + etapeTypeEtapeStatutModifier(etapeTypeEtapeStatut: $element) { + ...etapeTypeEtapeStatut + } + } + + ${fragmentEtapeTypeEtapeStatut} +`) + +const etapeTypeEtapeStatutCreer = apiGraphQLFetch(gql` + mutation EtapeTypeEtapeStatutCreer($element: InputEtapeTypeEtapeStatut!) { + etapeTypeEtapeStatutCreer(etapeTypeEtapeStatut: $element) { + ...etapeTypeEtapeStatut + } + } + + ${fragmentEtapeTypeEtapeStatut} +`) + +const etapeTypeEtapeStatutSupprimer = apiGraphQLFetch(gql` + mutation EtapeTypeEtapeStatutSupprimer($element: InputEtapeTypeEtapeStatut!) { + etapeTypeEtapeStatutSupprimer(etapeTypeEtapeStatut: $element) { + ...etapeTypeEtapeStatut + } + } + + ${fragmentEtapeTypeEtapeStatut} +`) + +const etapesTypesDocumentsTypes = apiGraphQLFetch( + gql` + query EtapesTypesDocumentsTypes { + etapesTypesDocumentsTypes { + ...etapeTypeDocumentType + } + } + + ${fragmentEtapeTypeDocumentType} + ` +) + +const etapeTypeDocumentTypeModifier = apiGraphQLFetch(gql` + mutation EtapeTypeDocumentTypeModifier( + $element: InputEtapeTypeDocumentType! + ) { + etapeTypeDocumentTypeModifier(etapeTypeDocumentType: $element) { + ...etapeTypeDocumentType + } + } + + ${fragmentEtapeTypeDocumentType} +`) + +const etapeTypeDocumentTypeCreer = apiGraphQLFetch(gql` + mutation EtapeTypeDocumentTypeCreer($element: InputEtapeTypeDocumentType!) { + etapeTypeDocumentTypeCreer(etapeTypeDocumentType: $element) { + ...etapeTypeDocumentType + } + } + + ${fragmentEtapeTypeDocumentType} +`) + +const etapeTypeDocumentTypeSupprimer = apiGraphQLFetch(gql` + mutation EtapeTypeDocumentTypeSupprimer( + $element: InputEtapeTypeDocumentType! + ) { + etapeTypeDocumentTypeSupprimer(etapeTypeDocumentType: $element) { + ...etapeTypeDocumentType + } + } + + ${fragmentEtapeTypeDocumentType} +`) + +const etapesTypesJustificatifsTypes = apiGraphQLFetch( + gql` + query EtapesTypesJustificatifsTypes { + etapesTypesJustificatifsTypes { + ...etapeTypeJustificatifType + } + } + + ${fragmentEtapeTypeJustificatifType} + ` +) + +const etapeTypeJustificatifTypeModifier = apiGraphQLFetch(gql` + mutation EtapeTypeJustificatifTypeModifier( + $element: InputEtapeTypeJustificatifType! + ) { + etapeTypeJustificatifTypeModifier(etapeTypeJustificatifType: $element) { + ...etapeTypeJustificatifType + } + } + + ${fragmentEtapeTypeJustificatifType} +`) + +const etapeTypeJustificatifTypeCreer = apiGraphQLFetch(gql` + mutation EtapeTypeJustificatifTypeCreer( + $element: InputEtapeTypeJustificatifType! + ) { + etapeTypeJustificatifTypeCreer(etapeTypeJustificatifType: $element) { + ...etapeTypeJustificatifType + } + } + + ${fragmentEtapeTypeJustificatifType} +`) + +const etapeTypeJustificatifTypeSupprimer = apiGraphQLFetch(gql` + mutation EtapeTypeJustificatifTypeSupprimer( + $element: InputEtapeTypeJustificatifType! + ) { + etapeTypeJustificatifTypeSupprimer(etapeTypeJustificatifType: $element) { + ...etapeTypeJustificatifType + } + } + + ${fragmentEtapeTypeJustificatifType} +`) + +export { + definitions, + definitionModifier, + domaines, + domaineModifier, + titresTypesTypes, + titreTypeTypeModifier, + titresStatuts, + titreStatutModifier, + demarchesTypes, + demarcheTypeModifier, + demarchesStatuts, + demarcheStatutModifier, + phasesStatuts, + phaseStatutModifier, + etapesTypes, + etapeTypeModifier, + etapesStatuts, + etapeStatutModifier, + substancesLegales, + permissions, + devises, + deviseModifier, + unites, + uniteModifier, + administrationsTypes, + administrationTypeModifier, + permissionModifier, + documentsTypes, + documentTypeCreer, + documentTypeModifier, + referencesTypes, + referenceTypeModifier, + pays, + geoSystemes, + geoSystemeModifier, + titresTypes, + titreTypeModifier, + titreTypeCreer, + titreTypeSupprimer, + titresTypesTitresStatuts, + titreTypeTitreStatutModifier, + titreTypeTitreStatutCreer, + titreTypeTitreStatutSupprimer, + titresTypesDemarchesTypes, + titreTypeDemarcheTypeModifier, + titreTypeDemarcheTypeCreer, + titreTypeDemarcheTypeSupprimer, + titresTypesDemarchesTypesEtapesTypes, + titreTypeDemarcheTypeEtapeTypeModifier, + titreTypeDemarcheTypeEtapeTypeCreer, + titreTypeDemarcheTypeEtapeTypeSupprimer, + titresTypesDemarchesTypesEtapesTypesDocumentsTypes, + titreTypeDemarcheTypeEtapeTypeDocumentTypeModifier, + titreTypeDemarcheTypeEtapeTypeDocumentTypeCreer, + titreTypeDemarcheTypeEtapeTypeDocumentTypeSupprimer, + titresTypesDemarchesTypesEtapesTypesJustificatifsTypes, + titreTypeDemarcheTypeEtapeTypeJustificatifTypeModifier, + titreTypeDemarcheTypeEtapeTypeJustificatifTypeCreer, + titreTypeDemarcheTypeEtapeTypeJustificatifTypeSupprimer, + etapesTypesEtapesStatuts, + etapeTypeEtapeStatutModifier, + etapeTypeEtapeStatutCreer, + etapeTypeEtapeStatutSupprimer, + etapesTypesDocumentsTypes, + etapeTypeDocumentTypeModifier, + etapeTypeDocumentTypeCreer, + etapeTypeDocumentTypeSupprimer, + etapesTypesJustificatifsTypes, + etapeTypeJustificatifTypeModifier, + etapeTypeJustificatifTypeCreer, + etapeTypeJustificatifTypeSupprimer +} diff --git a/packages/ui/src/api/statistiques.js b/packages/ui/src/api/statistiques.js new file mode 100644 index 000000000..a897941a0 --- /dev/null +++ b/packages/ui/src/api/statistiques.js @@ -0,0 +1,107 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +const statistiquesGlobales = apiGraphQLFetch(gql` + query StatistiquesGlobales { + statistiquesGlobales { + titresActivitesBeneficesEntreprise + titresActivitesBeneficesAdministration + recherches { + mois + quantite + } + titresModifies { + mois + quantite + } + actions + sessionDuree + telechargements + demarches + signalements + reutilisations + } + } +`) + +const statistiquesGuyane = apiGraphQLFetch(gql` + query StatistiquesGuyane { + statistiquesGuyane { + surfaceExploration + surfaceExploitation + titresArm + titresPrm + titresAxm + titresPxm + titresCxm + annees { + annee + titresArm { + quantite + surface + } + titresPrm { + quantite + surface + } + titresAxm { + quantite + surface + } + titresPxm { + quantite + surface + } + titresCxm { + quantite + surface + } + orNet + carburantConventionnel + carburantDetaxe + mercure + environnementCout + effectifs + activitesDeposesQuantite + activitesDeposesRatio + } + } + } +`) +const statistiquesGranulatsMarins = apiGraphQLFetch(gql` + query StatistiquesGranulatsMarins { + statistiquesGranulatsMarins { + annees { + annee + titresPrw { + quantite + surface + } + titresPxw { + quantite + surface + } + titresCxw { + quantite + surface + } + volume + masse + activitesDeposesQuantite + activitesDeposesRatio + concessionsValides { + quantite + surface + } + } + surfaceExploration + surfaceExploitation + titresInstructionExploration + titresValPrw + titresInstructionExploitation + titresValCxw + } + } +`) + +export { statistiquesGlobales, statistiquesGuyane, statistiquesGranulatsMarins } diff --git a/packages/ui/src/api/titre-demande.js b/packages/ui/src/api/titre-demande.js new file mode 100644 index 000000000..c489bb833 --- /dev/null +++ b/packages/ui/src/api/titre-demande.js @@ -0,0 +1,13 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +const titreDemandeCreer = apiGraphQLFetch(gql` + mutation TitreDemandeCreer($titreDemande: InputTitreDemande!) { + titreDemandeCreer(titreDemande: $titreDemande) { + titreEtapeId + titreId + } + } +`) + +export { titreDemandeCreer } diff --git a/packages/ui/src/api/titres-activites.js b/packages/ui/src/api/titres-activites.js new file mode 100644 index 000000000..31abcf347 --- /dev/null +++ b/packages/ui/src/api/titres-activites.js @@ -0,0 +1,95 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { fragmentActivites, fragmentActivite } from './fragments/titre-activite' + +const activiteModifier = apiGraphQLFetch(gql` + mutation ActiviteModifier($activite: InputActiviteModification!) { + activiteModifier(activite: $activite) { + id + } + } +`) + +const activiteDeposer = apiGraphQLFetch(gql` + mutation ActiviteDeposer($id: ID!) { + activiteDeposer(id: $id) { + id + } + } +`) + +const activiteSupprimer = apiGraphQLFetch(gql` + mutation ActiviteSupprimer($id: ID!) { + activiteSupprimer(id: $id) { + id + } + } +`) + +const activites = apiGraphQLFetch( + gql` + query Activites( + $intervalle: Int + $page: Int + $colonne: String + $ordre: String + $typesIds: [ID] + $statutsIds: [ID] + $annees: [Int] + $titresTypesIds: [ID] + $titresDomainesIds: [ID] + $titresStatutsIds: [ID] + $titresNoms: String + $titresEntreprises: String + $titresSubstances: String + $titresReferences: String + $titresTerritoires: String + ) { + activites( + intervalle: $intervalle + page: $page + colonne: $colonne + ordre: $ordre + typesIds: $typesIds + statutsIds: $statutsIds + annees: $annees + titresTypesIds: $titresTypesIds + titresDomainesIds: $titresDomainesIds + titresStatutsIds: $titresStatutsIds + titresNoms: $titresNoms + titresEntreprises: $titresEntreprises + titresSubstances: $titresSubstances + titresReferences: $titresReferences + titresTerritoires: $titresTerritoires + ) { + elements { + ...activites + } + total + } + } + + ${fragmentActivites} + ` +) + +const activite = apiGraphQLFetch( + gql` + query Activite($id: ID!) { + activite(id: $id) { + ...activite + } + } + + ${fragmentActivite} + ` +) + +export { + activite, + activites, + activiteModifier, + activiteSupprimer, + activiteDeposer +} diff --git a/packages/ui/src/api/titres-demarches.js b/packages/ui/src/api/titres-demarches.js new file mode 100644 index 000000000..6f7f3767a --- /dev/null +++ b/packages/ui/src/api/titres-demarches.js @@ -0,0 +1,144 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { fragmentDemarcheType } from './fragments/metas' +import { fragmentDemarches } from './fragments/titres-demarches' + +const demarchesMetas = apiGraphQLFetch( + gql` + query MetasDemarches($travaux: Boolean) { + domaines { + id + nom + } + + types { + id + nom + } + + statuts { + id + nom + couleur + } + + demarchesTypes(travaux: $travaux) { + id + nom + } + + demarchesStatuts { + id + nom + couleur + } + + etapesTypes(travaux: $travaux) { + id + nom + etapesStatuts { + id + nom + couleur + } + } + } + ` +) + +const demarcheMetas = apiGraphQLFetch( + gql` + query MetasDemarche($titreId: ID!) { + demarchesTypes(titreId: $titreId) { + ...demarcheType + } + } + + ${fragmentDemarcheType} + ` +) + +const demarches = apiGraphQLFetch( + gql` + query Demarches( + $page: Int + $intervalle: Int + $colonne: String + $ordre: String + $typesIds: [ID!] + $statutsIds: [ID!] + $etapesInclues: [InputEtapeFiltre!] + $etapesExclues: [InputEtapeFiltre!] + $titresDomainesIds: [ID!] + $titresTypesIds: [ID!] + $titresStatutsIds: [ID!] + $titresNoms: String + $titresEntreprises: String + $titresSubstances: String + $titresReferences: String + $titresTerritoires: String + $travaux: Boolean + ) { + demarches( + page: $page + intervalle: $intervalle + colonne: $colonne + ordre: $ordre + typesIds: $typesIds + statutsIds: $statutsIds + etapesInclues: $etapesInclues + etapesExclues: $etapesExclues + titresDomainesIds: $titresDomainesIds + titresTypesIds: $titresTypesIds + titresStatutsIds: $titresStatutsIds + titresNoms: $titresNoms + titresEntreprises: $titresEntreprises + titresSubstances: $titresSubstances + titresReferences: $titresReferences + titresTerritoires: $titresTerritoires + travaux: $travaux + ) { + elements { + ...demarches + } + total + } + } + + ${fragmentDemarches} + ` +) + +const demarcheCreer = apiGraphQLFetch(gql` + mutation DemarcheCreer($demarche: InputDemarcheCreation!) { + demarcheCreer(demarche: $demarche) { + slug + } + } +`) + +const demarcheModifier = apiGraphQLFetch(gql` + mutation DemarcheModifier($demarche: InputDemarcheModification!) { + demarcheModifier(demarche: $demarche) { + slug + } + } +`) + +const demarcheSupprimer = apiGraphQLFetch(gql` + mutation DemarcheSupprimer($id: ID!) { + demarcheSupprimer(id: $id) { + slug + } + } +`) + +export { + demarchesMetas, + demarches, + demarcheMetas, + demarcheCreer, + demarcheModifier, + demarcheSupprimer +} diff --git a/packages/ui/src/api/titres-etapes.js b/packages/ui/src/api/titres-etapes.js new file mode 100644 index 000000000..be115e011 --- /dev/null +++ b/packages/ui/src/api/titres-etapes.js @@ -0,0 +1,166 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { + fragmentDevise, + fragmentGeoSysteme, + fragmentUnite +} from './fragments/metas' +import { fragmentSubstance } from './fragments/substance' +import { fragmentEtape, fragmentEtapeHeritage } from './fragments/titre-etape' +import { fragmentEtapeMetasEntreprises } from './fragments/entreprises' + +const titreEtapeEtapesTypes = apiGraphQLFetch( + gql` + query TitreEtapeEtapesTypes( + $titreDemarcheId: ID! + $date: String! + $id: ID + ) { + etapesTypes( + titreDemarcheId: $titreDemarcheId + titreEtapeId: $id + date: $date + ) { + id + nom + description + fondamentale + etapesStatuts { + id + nom + couleur + } + etapesCreation + } + } + ` +) + +const titreEtapeMetas = apiGraphQLFetch( + gql` + query TitreEtapeMetas($titreDemarcheId: ID!, $id: ID) { + demarche(id: $titreDemarcheId) { + id + description + type { + travaux + nom + } + titre { + id + slug + nom + domaine { + id + } + type { + id + type { + id + } + } + } + } + + devises { + ...devise + } + + unites { + ...unite + } + + geoSystemes { + ...geoSysteme + } + + substances { + ...substance + } + + entreprises(archive: false, etapeId: $id) { + elements { + ...etapeMetasEntreprises + } + } + } + + ${fragmentUnite} + + ${fragmentDevise} + + ${fragmentSubstance} + + ${fragmentEtapeMetasEntreprises} + + ${fragmentGeoSysteme} + ` +) + +const etape = apiGraphQLFetch(gql` + query Etape($id: ID!) { + etape(id: $id) { + ...etape + } + } + + ${fragmentEtape} +`) + +const etapeHeritage = apiGraphQLFetch(gql` + query EtapeHeritage($titreDemarcheId: ID!, $date: String!, $typeId: ID!) { + etapeHeritage( + titreDemarcheId: $titreDemarcheId + date: $date + typeId: $typeId + ) { + ...etapeHeritage + } + } + + ${fragmentEtapeHeritage} +`) + +const etapeCreer = apiGraphQLFetch(gql` + mutation EtapeCreer($etape: InputEtapeCreation!) { + etapeCreer(etape: $etape) { + slug + } + } +`) + +const etapeModifier = apiGraphQLFetch(gql` + mutation EtapeModifier($etape: InputEtapeModification!) { + etapeModifier(etape: $etape) { + slug + } + } +`) + +const etapeSupprimer = apiGraphQLFetch(gql` + mutation EtapeSupprimer($id: ID!) { + etapeSupprimer(id: $id) { + slug + } + } +`) + +const etapeDeposer = apiGraphQLFetch(gql` + mutation EtapeDeposer($id: ID!) { + etapeDeposer(id: $id) { + slug + } + } +`) + +export { + etape, + etapeHeritage, + titreEtapeMetas, + titreEtapeEtapesTypes, + etapeCreer, + etapeModifier, + etapeSupprimer, + etapeDeposer +} diff --git a/packages/ui/src/api/titres.js b/packages/ui/src/api/titres.js new file mode 100644 index 000000000..e5f7020b7 --- /dev/null +++ b/packages/ui/src/api/titres.js @@ -0,0 +1,270 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { fragmentReferenceType, fragmentTitreTypeType } from './fragments/metas' +import { + fragmentTitre, + fragmentTitres, + fragmentTitresGeo, + fragmentTitresGeoPolygon +} from './fragments/titre' + +const titreMetas = apiGraphQLFetch( + gql` + query MetasTitre { + referencesTypes { + ...referenceType + } + administrations { + elements { + id + nom + } + } + } + + ${fragmentReferenceType} + ` +) + +const titreCreationMetas = apiGraphQLFetch( + gql` + query MetasTitre { + referencesTypes { + ...referenceType + } + } + + ${fragmentReferenceType} + ` +) + +const titresMetas = apiGraphQLFetch( + gql` + query TitresMetas { + domaines { + id + nom + titresTypes { + titresCreation + } + } + + types { + ...titreTypeType + } + + statuts { + id + nom + couleur + } + + substancesLegales { + id + nom + } + + entreprises { + elements { + id + nom + } + } + } + + ${fragmentTitreTypeType} + ` +) + +const titre = apiGraphQLFetch( + gql` + query Titre($id: ID!) { + titre(id: $id) { + ...titre + } + } + + ${fragmentTitre} + ` +) + +const titresGeoPolygon = apiGraphQLFetch( + gql` + query Titres( + $titresIds: [ID!] + $typesIds: [ID!] + $domainesIds: [ID!] + $statutsIds: [ID!] + $substancesLegalesIds: [ID!] + $entreprisesIds: [ID!] + $references: String + $territoires: String + $perimetre: [Float!] + ) { + titres( + ids: $titresIds + typesIds: $typesIds + domainesIds: $domainesIds + statutsIds: $statutsIds + substancesLegalesIds: $substancesLegalesIds + entreprisesIds: $entreprisesIds + references: $references + territoires: $territoires + perimetre: $perimetre + demandeEnCours: true + ) { + elements { + ...titresGeoPolygon + } + total + } + } + + ${fragmentTitresGeoPolygon} + ` +) + +const titresGeo = apiGraphQLFetch( + gql` + query Titres( + $titresIds: [ID!] + $typesIds: [ID!] + $domainesIds: [ID!] + $statutsIds: [ID!] + $substancesLegalesIds: [ID!] + $entreprisesIds: [ID!] + $references: String + $territoires: String + $perimetre: [Float!] + ) { + titres( + ids: $titresIds + typesIds: $typesIds + domainesIds: $domainesIds + statutsIds: $statutsIds + substancesLegalesIds: $substancesLegalesIds + entreprisesIds: $entreprisesIds + references: $references + territoires: $territoires + perimetre: $perimetre + demandeEnCours: true + ) { + elements { + ...titresGeo + } + total + } + } + + ${fragmentTitresGeo} + ` +) + +const titres = apiGraphQLFetch( + gql` + query Titres( + $intervalle: Int + $page: Int + $colonne: String + $ordre: String + $titresIds: [ID!] + $typesIds: [ID!] + $domainesIds: [ID!] + $statutsIds: [ID!] + $substancesLegalesIds: [ID!] + $noms: String + $entreprisesIds: [ID!] + $references: String + $territoires: String + ) { + titres( + intervalle: $intervalle + page: $page + colonne: $colonne + ordre: $ordre + ids: $titresIds + typesIds: $typesIds + domainesIds: $domainesIds + statutsIds: $statutsIds + substancesLegalesIds: $substancesLegalesIds + noms: $noms + entreprisesIds: $entreprisesIds + references: $references + territoires: $territoires + ) { + elements { + ...titres + } + total + } + } + + ${fragmentTitres} + ` +) + +const titresRechercher = apiGraphQLFetch( + gql` + query Titres($intervalle: Int, $noms: String) { + titres(intervalle: $intervalle, noms: $noms) { + elements { + id + nom + } + } + } + `, + 'titresRechercher' +) + +const titresFiltres = apiGraphQLFetch( + gql` + query Titres($titresIds: [ID!]) { + titres(ids: $titresIds) { + elements { + id + nom + } + } + } + `, + 'titresFiltres' +) + +const titreCreer = apiGraphQLFetch(gql` + mutation TitreCreer($titre: InputTitreCreation!) { + titreCreer(titre: $titre) { + slug + } + } +`) + +const titreModifier = apiGraphQLFetch(gql` + mutation TitreModifier($titre: InputTitreModification!) { + titreModifier(titre: $titre) { + slug + } + } +`) + +const titreSupprimer = apiGraphQLFetch(gql` + mutation TitreSupprimer($id: ID!) { + titreSupprimer(id: $id) + } +`) + +export { + titreMetas, + titreCreationMetas, + titresMetas, + titre, + titres, + titresGeo, + titresGeoPolygon, + titreCreer, + titreModifier, + titreSupprimer, + titresRechercher, + titresFiltres +} diff --git a/packages/ui/src/api/utilisateurs-titres.js b/packages/ui/src/api/utilisateurs-titres.js new file mode 100644 index 000000000..4bd23e0ce --- /dev/null +++ b/packages/ui/src/api/utilisateurs-titres.js @@ -0,0 +1,8 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +export const utilisateurTitreAbonner = apiGraphQLFetch(gql` + mutation UtilisateurTitreAbonner($titreId: String!, $abonner: Boolean!) { + utilisateurTitreAbonner(titreId: $titreId, abonner: $abonner) + } +`) diff --git a/packages/ui/src/api/utilisateurs.js b/packages/ui/src/api/utilisateurs.js new file mode 100644 index 000000000..825eecbbe --- /dev/null +++ b/packages/ui/src/api/utilisateurs.js @@ -0,0 +1,275 @@ +import gql from 'graphql-tag' +import { apiGraphQLFetch } from './_client' + +import { fragmentUtilisateur } from './fragments/utilisateur' +import { fragmentPermission, fragmentTitreType } from './fragments/metas' +import { fragmentEntreprises } from './fragments/entreprises' +import { fragmentAdministrations } from './fragments/administrations' + +const userMetas = apiGraphQLFetch( + gql` + query MetasUser { + version + + domaines { + id + nom + titresTypes { + ...titreType + } + } + + entreprisesTitresCreation { + ...entreprises + } + } + + ${fragmentTitreType} + + ${fragmentEntreprises} + ` +) + +const utilisateurMetas = apiGraphQLFetch( + gql` + query UtilisateurMetas { + permissions { + ...permission + } + + entreprises { + elements { + ...entreprises + } + } + + administrations { + elements { + ...administrations + } + } + } + + ${fragmentPermission} + + ${fragmentEntreprises} + + ${fragmentAdministrations} + ` +) + +const utilisateur = apiGraphQLFetch( + gql` + query Utilisateur($id: ID!) { + utilisateur(id: $id) { + ...utilisateur + } + } + + ${fragmentUtilisateur} + ` +) + +const utilisateurs = apiGraphQLFetch( + gql` + query Utilisateurs( + $intervalle: Int + $page: Int + $colonne: String + $ordre: String + $entrepriseIds: [ID] + $administrationIds: [ID] + $permissionIds: [ID] + $noms: String + $emails: String + ) { + utilisateurs( + intervalle: $intervalle + page: $page + colonne: $colonne + ordre: $ordre + entrepriseIds: $entrepriseIds + administrationIds: $administrationIds + permissionIds: $permissionIds + noms: $noms + emails: $emails + ) { + elements { + ...utilisateur + } + total + } + } + + ${fragmentUtilisateur} + ` +) + +const utilisateurConnecter = apiGraphQLFetch(gql` + mutation utilisateurConnecter($email: String!, $motDePasse: String!) { + utilisateurConnecter(email: $email, motDePasse: $motDePasse) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurDeconnecter = apiGraphQLFetch(gql` + mutation utilisateurDeconnecter { + utilisateurDeconnecter + } +`) + +const utilisateurCerbereTokenCreer = apiGraphQLFetch(gql` + mutation UtilisateurCerbereTokenCreer($ticket: String!) { + utilisateurCerbereConnecter(ticket: $ticket) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurCerbereUrlObtenir = apiGraphQLFetch(gql` + mutation UtilisateurCerbereUrlObtenir($url: String!) { + utilisateurCerbereUrlObtenir(url: $url) + } +`) + +const moi = apiGraphQLFetch(gql` + query Moi { + moi { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurModifier = apiGraphQLFetch(gql` + mutation UtilisateurModifier($utilisateur: InputUtilisateurModification!) { + utilisateurModifier(utilisateur: $utilisateur) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurCreer = apiGraphQLFetch(gql` + mutation UtilisateurCreer( + $utilisateur: InputUtilisateurCreation! + $token: String + ) { + utilisateurCreer(utilisateur: $utilisateur, token: $token) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurSupprimer = apiGraphQLFetch(gql` + mutation UtilisateurSupprimer($id: ID!) { + utilisateurSupprimer(id: $id) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurMotDePasseModifier = apiGraphQLFetch(gql` + mutation UtilisateurMotDePasseModifier( + $id: ID! + $motDePasse: String! + $motDePasseNouveau1: String! + $motDePasseNouveau2: String! + ) { + utilisateurMotDePasseModifier( + id: $id + motDePasse: $motDePasse + motDePasseNouveau1: $motDePasseNouveau1 + motDePasseNouveau2: $motDePasseNouveau2 + ) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurMotDePasseInitialiser = apiGraphQLFetch(gql` + mutation UtilisateurMotDePasseInitialiser( + $motDePasse1: String! + $motDePasse2: String! + $token: String! + ) { + utilisateurMotDePasseInitialiser( + motDePasse1: $motDePasse1 + motDePasse2: $motDePasse2 + token: $token + ) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const utilisateurMotDePasseMessageEnvoyer = apiGraphQLFetch(gql` + mutation UtilisateurMotDePasseMessageEnvoyer($email: String!) { + utilisateurMotDePasseMessageEnvoyer(email: $email) + } +`) + +const utilisateurCreationMessageEnvoyer = apiGraphQLFetch(gql` + mutation UtilisateurCreationMessageEnvoyer($email: String!) { + utilisateurCreationMessageEnvoyer(email: $email) + } +`) + +const utilisateurEmailMessageEnvoyer = apiGraphQLFetch(gql` + mutation UtilisateurEmailMessageEnvoyer($email: String!) { + utilisateurEmailMessageEnvoyer(email: $email) + } +`) + +const utilisateurEmailModifier = apiGraphQLFetch(gql` + mutation UtilisateurEmailModifier($emailToken: String!) { + utilisateurEmailModifier(emailToken: $emailToken) { + ...utilisateur + } + } + + ${fragmentUtilisateur} +`) + +const newsletterInscrire = apiGraphQLFetch(gql` + mutation NewsletterInscrire($email: String!) { + newsletterInscrire(email: $email) + } +`) + +export { + userMetas, + utilisateurMetas, + utilisateur, + utilisateurs, + moi, + utilisateurConnecter, + utilisateurDeconnecter, + utilisateurCerbereTokenCreer, + utilisateurCerbereUrlObtenir, + utilisateurModifier, + utilisateurCreer, + utilisateurSupprimer, + utilisateurMotDePasseModifier, + utilisateurMotDePasseInitialiser, + utilisateurMotDePasseMessageEnvoyer, + utilisateurCreationMessageEnvoyer, + utilisateurEmailMessageEnvoyer, + utilisateurEmailModifier, + newsletterInscrire +} diff --git a/packages/ui/src/app.vue b/packages/ui/src/app.vue new file mode 100644 index 000000000..2317a3a7b --- /dev/null +++ b/packages/ui/src/app.vue @@ -0,0 +1,130 @@ +<template> + <Page :slot-popup="!!popup.component" :slot-loader="loading"> + <template v-if="false" #banner> + <div class="banner"> + <div class="container py-m"> + <p class="mb-0"> + <span class="bold">8 avril 2021</span> : Aenean eu leo quam. + Pellentesque ornare sem lacinia quam venenatis vestibulum. + </p> + </div> + </div> + </template> + + <template v-if="menu.component" #menu> + <component :is="menu.component" /> + </template> + + <header class="header"> + <div class="container"> + <PageHeader :loaded="loaded" /> + </div> + </header> + + <main class="main"> + <div class="container"> + <Error v-if="error" :message="error" /> + <RouterView v-else-if="loaded" /> + </div> + </main> + + <footer class="footer"> + <div class="container"> + <PageFooter /> + </div> + </footer> + + <template #messages> + <Messages id="cmn-app-messages" :messages="messages" /> + </template> + + <template v-if="popup.component" #popup> + <component :is="popup.component" v-bind="popup.props" /> + </template> + + <template v-if="loading || fileLoading.total" #loader> + <div class="loaders fixed p"> + <div v-if="loading" class="loader" /> + <div v-if="fileLoading.total"> + <div class="relative loader-file"> + <div + class="loader-file-bar" + :style="{ + right: `${ + 100 - 100 * (fileLoading.loaded / fileLoading.total) + }%` + }" + /> + </div> + </div> + </div> + </template> + </Page> +</template> + +<script> +import Page from './components/_ui/page.vue' +import Messages from './components/_ui/messages.vue' +import PageHeader from './components/page/header.vue' +import PageFooter from './components/page/footer.vue' +import Error from './components/error.vue' + +export default { + name: 'App', + + components: { + Page, + Messages, + PageHeader, + PageFooter, + Error + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + loaded() { + return this.$store.state.user.loaded + }, + + error() { + return this.$store.state.error + }, + + messages() { + return this.$store.state.messages + }, + + popup() { + return this.$store.state.popup + }, + + menu() { + return this.$store.state.menu + }, + + loading() { + return this.$store.state.loading.length > 0 + }, + + fileLoading() { + return this.$store.state.fileLoading + } + }, + + async created() { + this.viewTrack() + }, + + methods: { + viewTrack() { + if (this.$matomo) { + this.$matomo.customVariableVisitUser(this.user) + this.$matomo.trackPageView() + } + } + } +} +</script> diff --git a/packages/ui/src/components/_charts/bar.vue b/packages/ui/src/components/_charts/bar.vue new file mode 100644 index 000000000..b93ffe2ef --- /dev/null +++ b/packages/ui/src/components/_charts/bar.vue @@ -0,0 +1,70 @@ +<template> + <canvas ref="canvas" /> +</template> + +<script> +import { + Chart, + LinearScale, + BarController, + CategoryScale, + BarElement, + LineController, + PointElement, + LineElement, + Filler, + Legend, + Tooltip +} from 'chart.js' + +Chart.register( + LinearScale, + BarController, + CategoryScale, + BarElement, + LineController, + PointElement, + LineElement, + Filler, + Legend, + Tooltip +) + +export default { + props: { + data: { type: Object, required: true }, + aspectRatio: { type: Number, default: 2 }, + suggestedMax: { type: Number, default: 0 } + }, + + data() { + return { + canvas: null + } + }, + + mounted() { + this.canvas = this.$refs.canvas + + // eslint-disable-next-line no-new + new Chart(this.canvas.getContext('2d'), { + type: 'bar', + data: this.data, + options: { + locale: 'fr-FR', + aspectRatio: this.aspectRatio, + responsive: true, + scales: { + bar: { id: 'bar', min: 0, suggestedMax: this.suggestedMax }, + line: { id: 'line', min: 0, position: 'right' } + }, + plugins: { + legend: { + reverse: true + } + } + } + }) + } +} +</script> diff --git a/packages/ui/src/components/_charts/line.vue b/packages/ui/src/components/_charts/line.vue new file mode 100644 index 000000000..d01424ef8 --- /dev/null +++ b/packages/ui/src/components/_charts/line.vue @@ -0,0 +1,54 @@ +<template> + <canvas ref="canvas" /> +</template> + +<script> +import { + Chart, + LinearScale, + LineController, + CategoryScale, + PointElement, + LineElement, + Filler, + Legend, + Tooltip +} from 'chart.js' + +Chart.register( + LinearScale, + LineController, + CategoryScale, + PointElement, + LineElement, + Filler, + Legend, + Tooltip +) + +export default { + props: { + data: { type: Object, required: true } + }, + + data() { + return { + canvas: null + } + }, + + mounted() { + this.canvas = this.$refs.canvas + + // eslint-disable-next-line no-new + new Chart(this.canvas.getContext('2d'), { + type: 'line', + data: this.data, + options: { + locale: 'fr-FR', + aspectRatio: 1.33 + } + }) + } +} +</script> diff --git a/packages/ui/src/components/_common/coordonnees-icone.vue b/packages/ui/src/components/_common/coordonnees-icone.vue new file mode 100644 index 000000000..3718481ce --- /dev/null +++ b/packages/ui/src/components/_common/coordonnees-icone.vue @@ -0,0 +1,11 @@ +<template> + <div v-if="coordonnees" class="p-xs"><i class="icon-16 icon-globe" /></div> +</template> + +<script> +export default { + props: { + coordonnees: { type: Object, default: null } + } +} +</script> diff --git a/packages/ui/src/components/_common/domaine.vue b/packages/ui/src/components/_common/domaine.vue new file mode 100644 index 000000000..623d89155 --- /dev/null +++ b/packages/ui/src/components/_common/domaine.vue @@ -0,0 +1,18 @@ +<template> + <Pill :color="`bg-domaine-${domaineId}`" class="mono"> + {{ domaineId }} + </Pill> +</template> + +<script> +import Pill from '../_ui/pill.vue' + +export default { + components: { + Pill + }, + props: { + domaineId: { type: String, default: 'm' } + } +} +</script> diff --git a/packages/ui/src/components/_common/download.vue b/packages/ui/src/components/_common/download.vue new file mode 100644 index 000000000..76536c01b --- /dev/null +++ b/packages/ui/src/components/_common/download.vue @@ -0,0 +1,47 @@ +<template> + <button class="flex" @click="download"> + <span class="mt-xxs">{{ format }}</span> + <div class="flex-right pl-xs"> + <i class="icon-24 icon-download" /> + </div> + </button> +</template> + +<script> +export default { + props: { + section: { type: String, required: true }, + + format: { type: String, required: true }, + + query: { type: Object, default: () => ({}) }, + + params: { type: Object, default: () => ({}) } + }, + + emits: ['clicked'], + + methods: { + async download() { + this.$emit('clicked') + const query = new URLSearchParams({ + format: this.format, + ...this.query, + ...this.params + }).toString() + + const url = `/${this.section}?${query}` + + await this.$store.dispatch('download', url) + + this.linkTrack(url) + }, + + linkTrack(url) { + if (this.$matomo) { + this.$matomo.trackLink(`${window.location.origin}${url}`, 'download') + } + } + } +} +</script> diff --git a/packages/ui/src/components/_common/downloads.vue b/packages/ui/src/components/_common/downloads.vue new file mode 100644 index 000000000..99fce0d42 --- /dev/null +++ b/packages/ui/src/components/_common/downloads.vue @@ -0,0 +1,51 @@ +<template> + <Dropdown class="full-x" :opened="opened" @toggle="toggle"> + <template #title> + <span class="h6">Téléchargements</span> + </template> + <div> + <Download + v-for="format in formats" + :key="format" + :format="format" + class="btn-alt small px-s py-s full-x border-b-s" + :section="section" + :query="$route.query" + :params="params" + @clicked="toggle" + /> + </div> + </Dropdown> +</template> + +<script> +import Dropdown from '../_ui/dropdown.vue' +import Download from './download.vue' + +export default { + components: { + Dropdown, + Download + }, + + props: { + formats: { type: Array, required: true }, + + section: { type: String, required: true }, + + params: { type: Object, default: () => ({}) } + }, + + data() { + return { + opened: false + } + }, + + methods: { + toggle() { + this.opened = !this.opened + } + } +} +</script> diff --git a/packages/ui/src/components/_common/filtres.js b/packages/ui/src/components/_common/filtres.js new file mode 100644 index 000000000..5d376d12a --- /dev/null +++ b/packages/ui/src/components/_common/filtres.js @@ -0,0 +1,10 @@ +// supprime les valeurs vides +const valuesClean = values => { + if (!values) return [] + + values = values.filter(v => v !== '') + + return values +} + +export { valuesClean } diff --git a/packages/ui/src/components/_common/filtres.vue b/packages/ui/src/components/_common/filtres.vue new file mode 100644 index 000000000..44e0e1c9c --- /dev/null +++ b/packages/ui/src/components/_common/filtres.vue @@ -0,0 +1,128 @@ +<template> + <Filters + v-if="initialized" + v-model:filters="filters" + class="flex-grow" + button="Valider" + :opened="opened" + title="Filtres" + @validate="validate" + @toggle="toggle" + /> + <div v-else class="py-s px-m mb-s border rnd-s">…</div> +</template> + +<script> +import Filters from '../_ui/filters.vue' +import { valuesClean } from './filtres' + +export default { + components: { Filters }, + + props: { + filtres: { type: Array, required: true }, + params: { type: Object, required: true }, + metas: { type: Object, default: () => ({}) }, + initialized: { type: Boolean, required: true } + }, + + emits: ['toggle', 'params-update'], + + data() { + return { + opened: false, + filters: [] + } + }, + + watch: { + // si les metas changent (connexion / deconnexion user) + metas: { + handler: function (ne, ol) { + if (this.initialized) { + this.validate() + } + }, + deep: true + }, + + initialized: function (to, from) { + if (!from) { + this.init() + } + } + }, + + methods: { + paramsUpdate(params) { + this.$emit('params-update', params) + }, + + toggle() { + this.opened = !this.opened + + this.init() + this.$emit('toggle', this.opened) + }, + + close() { + this.opened = false + }, + + validate() { + // les champs textes sont mis à jour onBlur + // pour les prendre en compte lorsqu'on valide en appuyant sur "entrée" + // met le focus sur le bouton de validation (dans la méthode close()) + + this.close() + + window.scrollTo({ top: 0, behavior: 'smooth' }) + + // formate les valeurs des filtres + const params = this.filters.reduce((params, filtre) => { + let value + + if ( + filtre.type === 'custom' || + filtre.type === 'select' || + filtre.type === 'checkboxes' || + filtre.type === 'autocomplete' + ) { + value = valuesClean(filtre.value) + } else { + value = filtre.value + } + + if (filtre.clean) { + value = filtre.clean(value) + } + + params[filtre.id] = value + + return params + }, {}) + + this.paramsUpdate(params) + }, + + init() { + this.filters = this.filtres.map(filtre => { + if (filtre.elementsFormat) { + filtre.elements = filtre.elementsFormat(filtre.id, this.metas) + } + + return filtre + }) + + Object.keys(this.params).forEach(id => { + const preference = this.params[id] + const filtre = this.filters.find(filtre => filtre.id === id) + + if (!filtre) return + + filtre.value = preference + }) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/filtres/domaines.vue b/packages/ui/src/components/_common/filtres/domaines.vue new file mode 100644 index 000000000..d7c8b3b64 --- /dev/null +++ b/packages/ui/src/components/_common/filtres/domaines.vue @@ -0,0 +1,21 @@ +<template> + <span> + <Pill :color="`bg-domaine-${element.id}`" class="mr-xs mono"> + {{ element.id }} </Pill + ><span class="cap-first h6 bold">{{ element.nom }}</span> + </span> +</template> + +<script> +import Pill from '../../_ui/pill.vue' + +export default { + components: { + Pill + }, + + props: { + element: { type: Object, default: () => ({}) } + } +} +</script> diff --git a/packages/ui/src/components/_common/filtres/statuts.vue b/packages/ui/src/components/_common/filtres/statuts.vue new file mode 100644 index 000000000..b872b4afe --- /dev/null +++ b/packages/ui/src/components/_common/filtres/statuts.vue @@ -0,0 +1,21 @@ +<template> + <Statut + :color="element.couleur" + :nom="element.nom" + class="inline-block mb-s" + /> +</template> + +<script> +import Statut from '../statut.vue' + +export default { + components: { + Statut + }, + + props: { + element: { type: Object, default: () => ({}) } + } +} +</script> diff --git a/packages/ui/src/components/_common/filtres/types.vue b/packages/ui/src/components/_common/filtres/types.vue new file mode 100644 index 000000000..5a749a783 --- /dev/null +++ b/packages/ui/src/components/_common/filtres/types.vue @@ -0,0 +1,16 @@ +<template> + <span> + <svg width="24" height="24" class="mr-s mb--xs"> + <rect width="24" height="24" :class="`svg-fill-pattern-${element.id}`" /> + </svg> + <span class="cap-first h6 bold">{{ element.nom }}</span> + </span> +</template> + +<script> +export default { + props: { + element: { type: Object, default: () => ({}) } + } +} +</script> diff --git a/packages/ui/src/components/_common/liste.vue b/packages/ui/src/components/_common/liste.vue new file mode 100644 index 000000000..690fb311b --- /dev/null +++ b/packages/ui/src/components/_common/liste.vue @@ -0,0 +1,119 @@ +<template> + <div> + <div class="desktop-blobs"> + <div class="desktop-blob-2-3"> + <h1 class="mt-xs mb-m cap-first"> + {{ nom }} + </h1> + </div> + + <div class="desktop-blob-1-3"> + <slot name="addButton" /> + </div> + </div> + + <Filtres + v-if="filtres.length" + :filtres="filtres" + :initialized="initialized" + :metas="metas" + :params="params.filtres" + @params-update="paramsFiltresUpdate" + /> + + <div class="tablet-blobs tablet-flex-direction-reverse"> + <div class="tablet-blob-1-3 flex mb-s"> + <slot name="downloads" class="downloads" /> + </div> + + <div class="tablet-blob-2-3 flex"> + <div class="py-m h5 bold mb-xs"> + {{ resultat }} + </div> + </div> + </div> + + <div class="line-neutral width-full" /> + + <Table + :columns="colonnes" + :rows="lignes" + :column="params.table.colonne" + :range="params.table.intervalle" + :order="params.table.ordre" + :page="params.table.page" + :pagination="pagination" + :total="total" + @params-update="paramsTableUpdate" + /> + </div> +</template> + +<script> +import Table from '../_ui/table-pagination.vue' +import Filtres from './filtres.vue' + +export default { + name: 'Liste', + + components: { Filtres, Table }, + + props: { + nom: { type: String, required: true }, + filtres: { type: Array, default: () => [] }, + colonnes: { type: Array, required: true }, + lignes: { type: Array, required: true }, + elements: { type: Array, required: true }, + params: { type: Object, required: true }, + metas: { type: Object, default: () => ({}) }, + total: { type: Number, required: true }, + initialized: { type: Boolean, default: false } + }, + + emits: ['params-update'], + + computed: { + resultat() { + const res = + this.total > this.elements.length + ? `${this.elements.length} / ${this.total}` + : this.elements.length + + return `${res} résultat${this.elements.length > 1 ? 's' : ''}` + }, + + pagination() { + return !!this.params.table.page + } + }, + + methods: { + async paramsTableUpdate(params) { + if (params.range) { + params.intervalle = params.range + delete params.range + } + + if (params.column) { + params.colonne = params.column + delete params.column + } + + if (params.order) { + params.ordre = params.order + delete params.order + } + + await this.$emit('params-update', { section: 'table', params }) + }, + + paramsFiltresUpdate(params) { + this.$emit('params-update', { + section: 'filtres', + params, + pageReset: true + }) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/map.vue b/packages/ui/src/components/_common/map.vue new file mode 100644 index 000000000..2d90e1c4f --- /dev/null +++ b/packages/ui/src/components/_common/map.vue @@ -0,0 +1,197 @@ +<template> + <div class="bg-alt"> + <MapPattern :domaines-ids="[domaineId]" :types-ids="[titreTypeId]" /> + + <Mapo + ref="map" + :tiles-layer="tilesLayer" + :geojson-layers="geojsonLayers" + :marker-layers="markerLayers" + :bounds="bounds" + :legends="legends" + class="map map-detail mb-s" + /> + + <MapWarningBrgm :zoom="zoom" :tiles-id="tilesId" /> + + <div :class="{ container: isMain }"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2" :class="{ 'px-s': !isMain }"> + <div class="flex mb-s"> + <button class="btn-border pill px-m py-s" @click="centrerTrack"> + Centrer + </button> + </div> + </div> + <div class="desktop-blob-1-2 desktop-flex"> + <div :class="{ active: markersVisible }" class="mb-s mr-xs"> + <button + class="btn-border p-s rnd-s" + title="affiche / masque les marqueurs" + @click="markersVisible = !markersVisible" + > + <i class="icon-24 icon-markers-markers" /> + </button> + </div> + + <div :class="{ active: patternVisible }" class="mb-s mr-xs"> + <button + class="btn-border p-s rnd-s" + title="affiche / masque la trame" + @click="patternVisible = !patternVisible" + > + <i class="icon-24 icon-pattern" /> + </button> + </div> + + <MapTilesSelector + v-if="isMain" + :tiles="tiles" + :tiles-id="tilesId" + class="flex-grow mb-s" + @params-update="preferencesUpdate" + /> + </div> + </div> + </div> + </div> +</template> + +<script> +import Mapo from '../_map/index.vue' +import MapTilesSelector from '../_map/tiles-selector.vue' +import MapWarningBrgm from '../_map/warning-brgm.vue' +import MapPattern from '../_map/pattern.vue' + +import { + leafletTilesBuild, + leafletMarkerBuild, + leafletGeojsonBuild, + leafletDivIconBuild, + leafletTilesLegendGet +} from '../_map/leaflet.js' + +export default { + components: { MapPattern, MapWarningBrgm, Mapo, MapTilesSelector }, + + props: { + geojson: { type: Object, required: true }, + points: { type: Array, default: () => [] }, + domaineId: { type: String, required: true }, + titreTypeId: { type: String, required: true }, + isMain: { type: Boolean, default: false } + }, + + emits: ['titre-event-track'], + + data() { + return { + map: null, + zoom: 0, + markersVisible: true, + patternVisible: true + } + }, + + computed: { + bounds() { + return this.geojsonLayers[0] ? this.geojsonLayers[0].getBounds() : [0, 0] + }, + + tilesActive() { + return this.$store.getters['user/tilesActive'] + }, + + tilesLayer() { + return leafletTilesBuild(this.tilesActive) + }, + + legends() { + return leafletTilesLegendGet(this.tilesActive) + }, + + geojsonLayers() { + const className = this.patternVisible + ? `svg-fill-pattern-${this.titreTypeId}-${this.domaineId}` + : `svg-fill-domaine-${this.domaineId}` + + const options = { + style: { fillOpacity: 0.75, weight: 1, color: 'white', className } + } + + const geojsonLayer = leafletGeojsonBuild(this.geojson, options) + + return [geojsonLayer] + }, + + markerLayers() { + if (this.markersVisible) { + return this.points.reduce((markers, point) => { + if (!point.nom) { + return markers + } + + const icon = leafletDivIconBuild({ + className: `small mono border-bg color-text py-xs px-s inline-block leaflet-marker-camino cap pill bg-bg`, + html: point.nom, + iconSize: null, + iconAnchor: [15.5, 38] + }) + + const latLng = [point.coordonnees.y, point.coordonnees.x] + const titreMarker = leafletMarkerBuild(latLng, icon) + + markers.push(titreMarker) + + return markers + }, []) + } + + return [] + }, + + tiles() { + return this.$store.state.user.metas.tiles + }, + + tilesId() { + return this.$store.state.user.preferences.carte.tilesId + } + }, + + watch: { + geojson: 'centrer', + points: 'centrer' + }, + + mounted() { + this.centrer() + }, + + methods: { + preferencesUpdate(params) { + this.$emit('titre-event-track', { + categorie: 'titre-sections', + action: 'titre-carte_choisirFond', + nom: this.$route.params.id + }) + + this.$store.dispatch('user/preferencesSet', { section: 'carte', params }) + }, + + centrerTrack() { + this.centrer() + + this.$emit('titre-event-track', { + categorie: 'titre-sections', + action: 'titre-carte_centrer', + nom: this.$route.params.id + }) + }, + + centrer() { + this.$refs.map.boundsFit(this.bounds) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/nom.vue b/packages/ui/src/components/_common/nom.vue new file mode 100644 index 000000000..cfdcfb79e --- /dev/null +++ b/packages/ui/src/components/_common/nom.vue @@ -0,0 +1,13 @@ +<template> + <p class="h6 bold cap-first mb-0"> + {{ nom }} + </p> +</template> + +<script> +export default { + props: { + nom: { type: String, default: 'indéfini' } + } +} +</script> diff --git a/packages/ui/src/components/_common/perimetre.vue b/packages/ui/src/components/_common/perimetre.vue new file mode 100644 index 000000000..3ffd60838 --- /dev/null +++ b/packages/ui/src/components/_common/perimetre.vue @@ -0,0 +1,101 @@ +<template> + <div> + <div class="tablet-blobs tablet-flex-direction-reverse"> + <div class="tablet-blob-1-2 flex mb-s"> + <Download + v-if="points.length && titreId" + :section="`titres/${titreId}`" + format="geojson" + class="btn-border small pill pl pr-m py-s flex-right" + > + geojson + </Download> + </div> + + <div class="tablet-blob-1-2 flex"> + <div + v-for="tab in tabs" + :key="tab.id" + class="mr-xs" + :class="{ active: tabId === tab.id }" + > + <button + v-if="tabId !== tab.id" + class="p-m btn-tab rnd-t-s" + @click="tabUpdate(tab.id)" + > + <i :class="`icon-${tab.icon}`" class="icon-24" /> + </button> + <div v-else class="p-m span-tab rnd-t-s"> + <i :class="`icon-${tab.icon}`" class="icon-24" /> + </div> + </div> + </div> + </div> + + <div class="line-neutral" :class="{ 'width-full': isMain }" /> + + <Map + v-if="points && geojsonMultiPolygon && tabId === 'carte'" + :class="{ 'width-full': isMain }" + :geojson="geojsonMultiPolygon" + :points="points" + :domaine-id="domaineId" + :titre-type-id="titreTypeId" + :is-main="isMain" + /> + + <div + v-if="points && tabId === 'points'" + class="points bg-alt" + :class="{ 'width-full': isMain }" + > + <div class="bg-bg py" :class="{ container: isMain }"> + <Points :points="points" /> + </div> + </div> + + <div class="line mb" :class="{ 'width-full': isMain }" /> + </div> +</template> + +<script> +import Map from './map.vue' +import Points from './points.vue' +import Download from './download.vue' + +export default { + components: { + Map, + Points, + Download + }, + + props: { + points: { type: Array, required: true }, + geojsonMultiPolygon: { type: Object, required: true }, + domaineId: { type: String, required: true }, + titreTypeId: { type: String, required: true }, + titreId: { type: String, default: '' }, + isMain: { type: Boolean, default: false }, + tabId: { type: String, default: 'carte' } + }, + + emits: ['tab-update'], + + data() { + return { + tabs: [ + { id: 'carte', nom: 'Carte', icon: 'globe' }, + { id: 'points', nom: 'Points', icon: 'list' } + ] + } + }, + + methods: { + tabUpdate(tabId) { + this.$emit('tab-update', tabId) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/point-reference.vue b/packages/ui/src/components/_common/point-reference.vue new file mode 100644 index 000000000..5dc62122d --- /dev/null +++ b/packages/ui/src/components/_common/point-reference.vue @@ -0,0 +1,42 @@ +<template> + <div class="blobs-packed mb-s"> + <div class="blob-packed-1-2 border-l px-s"> + <p class="h6 flex my-xxs"> + <span class="flex-right mono bold">{{ pointReference[0] }}</span> + </p> + </div> + <div class="blob-packed-1-2 border-l px-s"> + <p class="h6 flex my-xxs"> + <span class="flex-right mono bold">{{ pointReference[1] }}</span> + </p> + </div> + </div> +</template> + +<script> +import numberFormat from '../../utils/number-format' +export default { + props: { + references: { type: Object, required: true } + }, + + computed: { + pointReference() { + if (this.references && this.references.x && this.references.y) { + return [ + numberFormat(this.round(this.references.x)), + numberFormat(this.round(this.references.y)) + ] + } + + return ['–', '–'] + } + }, + + methods: { + round(v) { + return Math.round(Number.parseFloat(v) * 1000000) / 1000000 + } + } +} +</script> diff --git a/packages/ui/src/components/_common/points.vue b/packages/ui/src/components/_common/points.vue new file mode 100644 index 000000000..6cd11c3ed --- /dev/null +++ b/packages/ui/src/components/_common/points.vue @@ -0,0 +1,151 @@ +<template> + <div v-if="geoSysteme"> + <div class="px"> + <div class="tablet-blobs flex-align-items-stretch"> + <div class="tablet-blob-1-2"> + <select + v-if="geoSystemes.length > 1" + v-model="geoSystemeId" + class="p-s mr-s mb-s" + > + <option + v-for="systeme in geoSystemes" + :key="systeme.id" + :value="systeme.id" + > + {{ systeme.nom }} - {{ systeme.id }} + {{ systeme.id === geoSystemeOpposableId ? '(opposable)' : '' }} + </option> + </select> + <div v-else class="full-x p-s bg-alt mb-s"> + {{ geoSysteme.nom }} ({{ geoSysteme.id }}) + </div> + </div> + <div class="tablet-blob-1-2 flex flex-align-items-stretch"> + <div class="blobs-packed flex-grow flex-align-items-stretch mb-s"> + <div class="blob-packed-1-2 full-y border-l pl-s pt-xs"> + <h5 class="mb-0"> + {{ labels[0] }} + </h5> + <p class="h6 italic mb-0"> + {{ geoSysteme.unite.nom }} + </p> + </div> + <div class="blob-packed-1-2 full-y border-l pl-s pt-xs"> + <h5 class="mb-0"> + {{ labels[1] }} + </h5> + <p class="h6 italic mb-0"> + {{ geoSysteme.unite.nom }} + </p> + </div> + </div> + </div> + </div> + </div> + <div + v-for="(groupeContours, groupeIndex) in groupes" + :key="groupeIndex + 1" + class="geo-groupe mb" + > + <h4 v-if="groupes.length > 1" class="color-bg pt-s pl-m mb-s"> + Groupe {{ groupeIndex + 1 }} + </h4> + <div + v-for="(contourPoints, contourIndex) in groupeContours" + :key="contourIndex + 1" + class="geo-contour" + > + <h4 v-if="groupeContours.length > 1" class="pt-xs pl-s mb-s"> + {{ contourIndex === 0 ? 'Contour' : `Lacune ${contourIndex}` }} + </h4> + <div v-for="point in contourPoints" :key="point.id" class="geo-point"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2 flex"> + <h4 v-if="point.nom" class="mb-s flex-self-start mr-xs"> + {{ point.nom }} + </h4> + <p + v-if="point.description || point.subsidiaire" + class="mb-s h6 flex-grow pt-xxs" + > + <Tag + v-if="point.subsidiaire && !point.lot" + :mini="true" + color="bg-info" + > + Subsidiaire + </Tag> + <Tag v-if="point.lot" :mini="true" color="bg-info"> Lot </Tag> + {{ point.description }} + </p> + </div> + <div v-if="!point.lot" class="tablet-blob-1-2"> + <pointReference :references="point.references[geoSystemeId]" /> + </div> + <div v-else class="tablet-blob-1-2"> + <div v-for="reference in point.references" :key="reference"> + <pointReference :references="reference" /> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</template> + +<script> +import { etapeGroupesBuild } from '../../utils/titre-etape-edit' +import Tag from '../_ui/tag.vue' +import pointReference from './point-reference.vue' + +export default { + components: { Tag, pointReference }, + + props: { + points: { type: Array, required: true } + }, + + data() { + return { geoSystemeId: '' } + }, + + computed: { + index() { + return etapeGroupesBuild(this.points) + }, + + groupes() { + return this.index.groupes + }, + + geoSystemes() { + return this.index.geoSystemes + }, + + geoSystemeOpposableId() { + return this.index.geoSystemeOpposableId + }, + + geoSysteme() { + return ( + this.geoSystemeId && + this.geoSystemes.find(({ id }) => id === this.geoSystemeId) + ) + }, + + labels() { + return this.geoSysteme.unite.id === 'met' + ? ['X', 'Y'] + : ['Longitude', 'Latitude'] + } + }, + + created() { + this.geoSystemeId = + this.geoSystemeOpposableId || + (this.geoSystemes[0] && this.geoSystemes[0].id) + } +} +</script> diff --git a/packages/ui/src/components/_common/section-element-edit.vue b/packages/ui/src/components/_common/section-element-edit.vue new file mode 100644 index 000000000..0f49323ee --- /dev/null +++ b/packages/ui/src/components/_common/section-element-edit.vue @@ -0,0 +1,70 @@ +<template> + <div> + <div class="tablet-blobs"> + <div v-if="element.nom" class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0"> + <span class="cap-first">{{ element.nom }}</span> + </h5> + <p v-if="element.optionnel" class="h6 italic mb-0">Optionnel</p> + <Tag v-else-if="!complete" color="bg-warning" :mini="true" + >Incomplet</Tag + > + </div> + + <div + :class="{ + 'tablet-blob-2-3': element.nom, + 'tablet-blob-1': !element.nom + }" + > + <SectionElementEdit + v-model:contenu="contenu" + class="mb-s" + :element="element" + /> + + <!-- eslint-disable vue/no-v-html --> + <p + v-if="element.description || hasValeur" + class="h6" + v-html="element.description" + /> + </div> + </div> + + <hr /> + </div> +</template> + +<script> +import { + valeurFind, + hasValeurCheck, + elementsCompleteCheck +} from '../../utils/contenu' +import SectionElementEdit from './section-element-input-edit.vue' +import Tag from '../_ui/tag.vue' + +export default { + components: { SectionElementEdit, Tag }, + + props: { + contenu: { type: Object, required: true }, + element: { type: Object, required: true } + }, + + computed: { + hasValeur() { + return hasValeurCheck(this.element.id, this.contenu) + }, + + valeur() { + return valeurFind(this.element, this.contenu) + }, + + complete() { + return elementsCompleteCheck([this.element], this.contenu, true) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/section-element-file-edit.vue b/packages/ui/src/components/_common/section-element-file-edit.vue new file mode 100644 index 000000000..963e58595 --- /dev/null +++ b/packages/ui/src/components/_common/section-element-file-edit.vue @@ -0,0 +1,62 @@ +<template> + <div v-if="contenuElement" class="flex"> + <p class="mb-0 h6 bold"> + {{ + contenuElement && contenuElement.name + ? contenuElement.name + : contenuElement.slice(5) + }} + </p> + <div class="flex-right mt--xs"> + <button + class="btn-border py-s px-m my--xs rnd-xs flex-right" + @click="fileRemove" + > + <i class="icon-24 icon-trash" /> + </button> + </div> + </div> + <div v-else> + <InputFile + class="btn-border small p-s full-x rnd-xs mb-s" + accept="application/pdf" + @change="fileChange" + /> + <p class="h5 italic">30 Mo max.</p> + </div> +</template> + +<script> +import InputFile from '../_ui/input-file.vue' + +export default { + components: { InputFile }, + + props: { + contenu: { type: [Object], required: true }, + elementId: { type: String, required: true } + }, + + computed: { + contenuElement() { + return this.contenu[this.elementId] + } + }, + + methods: { + fileChange({ + target: { + validity, + files: [file] + } + }) { + if (file && validity.valid) { + this.contenu[this.elementId] = file + } + }, + fileRemove() { + this.contenu[this.elementId] = null + } + } +} +</script> diff --git a/packages/ui/src/components/_common/section-element-input-edit.vue b/packages/ui/src/components/_common/section-element-input-edit.vue new file mode 100644 index 000000000..98cb0491d --- /dev/null +++ b/packages/ui/src/components/_common/section-element-input-edit.vue @@ -0,0 +1,147 @@ +<template> + <div> + <inputNumber + v-if="element.type === 'number'" + v-model="contenu[element.id]" + class="p-s" + placeholder="…" + /> + + <inputNumber + v-if="element.type === 'integer'" + v-model="contenu[element.id]" + :integer="true" + class="p-s" + placeholder="…" + /> + + <InputDate + v-else-if="element.type === 'date'" + v-model="contenu[element.id]" + /> + + <textarea + v-else-if="element.type === 'textarea'" + v-model="contenu[element.id]" + class="p-s" + /> + + <input + v-else-if="element.type === 'text'" + v-model="contenu[element.id]" + type="text" + class="p-s" + /> + + <div v-else-if="element.type === 'radio'"> + <label class="mr"> + <input + v-model="contenu[element.id]" + :name="element.id" + :value="true" + type="radio" + class="p-s mt-s mb-s" + /> + Oui + </label> + + <label> + <input + v-model="contenu[element.id]" + :name="element.id" + :value="false" + type="radio" + class="p-s mt-s mb-s" + /> + Non + </label> + </div> + + <input + v-else-if="element.type === 'checkbox'" + v-model="contenu[element.id]" + type="checkbox" + class="p-s mt-s mb-s" + /> + + <div v-else-if="element.type === 'checkboxes'"> + <div v-for="value in valeurs" :key="value.id"> + <label> + <input + v-model="contenu[element.id]" + type="checkbox" + :value="value.id" + class="mr-s" + /> + <span class="cap-first">{{ value.nom }}</span> + </label> + </div> + </div> + + <div v-else-if="element.type === 'select'"> + <select + v-if="valeurs && valeurs.length" + v-model="contenu[element.id]" + class="p-s mr-s" + > + <option v-for="value in valeurs" :key="value.id" :value="value.id"> + {{ value.nom }} + </option> + </select> + </div> + + <div v-else-if="element.type === 'multiple'"> + <SectionElementMultipleEdit + v-model:contenu="contenu[element.id]" + :element="element" + /> + </div> + + <div v-else-if="element.type === 'file'"> + <SectionElementFileEdit + v-model:contenu="contenu" + :element-id="element.id" + /> + </div> + </div> +</template> + +<script> +import InputDate from '../_ui/input-date.vue' +import InputNumber from '../_ui/input-number.vue' +import SectionElementMultipleEdit from './section-element-multiple-edit.vue' +import SectionElementFileEdit from './section-element-file-edit.vue' + +export default { + components: { + InputDate, + InputNumber, + SectionElementMultipleEdit, + SectionElementFileEdit + }, + + props: { + contenu: { type: Object, required: true }, + element: { type: Object, required: true } + }, + + computed: { + valeurs() { + return this.element.valeurs + } + }, + + created() { + // si l'élément est un bouton radio + // et que le contenu pour cet élément est vide + // alors on met la valeur par défaut `false` + if (this.contenu && this.contenu[this.element.id] === undefined) { + if (this.element.type === 'radio') { + this.contenu[this.element.id] = false + } else if (this.element.type === 'multiple') { + this.contenu[this.element.id] = [] + } + } + } +} +</script> diff --git a/packages/ui/src/components/_common/section-element-multiple-edit.vue b/packages/ui/src/components/_common/section-element-multiple-edit.vue new file mode 100644 index 000000000..f8a577cd1 --- /dev/null +++ b/packages/ui/src/components/_common/section-element-multiple-edit.vue @@ -0,0 +1,62 @@ +<template> + <div> + <div + v-for="(e, index) in contenu" + :key="e.id" + class="rnd-m mb-s p-xs bg-alt" + > + <div class="rnd-s p-s bg-bg"> + <div class="flex"> + <h4 class="mt-s">{{ index + 1 }}</h4> + <div class="flex-right"> + <button class="btn px-m py-s rnd-xs" @click="elementRemove(index)"> + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + <div v-for="prop in element.elements" :key="prop.id" class="mb-s"> + <div class="flex"> + <h5 class="mb-0"> + <span class="cap-first">{{ prop.nom }}</span> + </h5> + <p v-if="prop.optionnel" class="h6 italic mb-s flex-right lh-1-25"> + Optionnel + </p> + </div> + <SectionElementEdit :contenu="contenu[index]" :element="prop" /> + </div> + </div> + </div> + + <button class="btn small rnd-s py-s px-m full-x flex" @click="elementAdd"> + <span class="mt-xxs">Ajouter</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> +</template> + +<script> +import { defineAsyncComponent } from 'vue' + +export default { + components: { + SectionElementEdit: defineAsyncComponent(() => + import('./section-element-input-edit.vue') + ) + }, + + props: { + contenu: { type: Object, required: true }, + element: { type: Object, required: true } + }, + + methods: { + elementAdd: function () { + this.contenu.push({}) + }, + elementRemove: function (index) { + this.contenu.splice(index, 1) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/section-element-multiple.vue b/packages/ui/src/components/_common/section-element-multiple.vue new file mode 100644 index 000000000..f608999fb --- /dev/null +++ b/packages/ui/src/components/_common/section-element-multiple.vue @@ -0,0 +1,36 @@ +<template> + <div + v-for="(e, index) in contenu" + :key="index" + class="border rnd-xs p-m mb-s" + > + <SectionElement + v-for="c in element.elements" + :key="c.id" + :element="c" + :contenu="e" + @file-download="fileDownload" + /> + </div> +</template> + +<script> +import { defineAsyncComponent } from 'vue' + +export default { + components: { + SectionElement: defineAsyncComponent(() => import('./section-element.vue')) + }, + props: { + element: { type: Object, required: true }, + contenu: { type: Object, required: true } + }, + emits: ['file-download'], + + methods: { + fileDownload(fichier) { + this.$emit('file-download', fichier) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/section-element.vue b/packages/ui/src/components/_common/section-element.vue new file mode 100644 index 000000000..e37ecacfb --- /dev/null +++ b/packages/ui/src/components/_common/section-element.vue @@ -0,0 +1,70 @@ +<template> + <div class="tablet-blobs"> + <div v-if="element.nom" class="tablet-blob-1-4"> + <h5>{{ element.nom }}</h5> + </div> + + <div + :class="{ 'tablet-blob-3-4': element.nom, 'tablet-blob-1': !element.nom }" + > + <div v-if="element.type === 'file'" class="flex h6 pb-xs"> + <span class="mt-xs flex bold"> + <i class="icon-16 icon-file mr-xs" /> + {{ + contenu[element.id] ? contenu[element.id].slice(5) : 'Aucun fichier' + }} + </span> + + <button + v-if="contenu[element.id]" + class="btn-border py-xs px-s rnd-xs flex-right mt--xs" + @click="fileDownload(contenu[element.id])" + > + <i class="icon-24 icon-download" /> + </button> + </div> + + <SectionElementMultiple + v-else-if="element.type === 'multiple'" + :contenu="contenu[element.id]" + :element="element" + @file-download="fileDownload" + /> + + <p v-else class="cap-first" :class="{ 'mb-s': element.description }"> + {{ valeur }} + </p> + <!-- eslint-disable vue/no-v-html --> + <p v-if="element.description" class="h6"> + <span v-html="element.description" /> + </p> + </div> + </div> +</template> + +<script> +import { valeurFind } from '../../utils/contenu' +import SectionElementMultiple from './section-element-multiple.vue' + +export default { + name: 'SectionElement', + components: { SectionElementMultiple }, + props: { + element: { type: Object, required: true }, + contenu: { type: Object, required: true } + }, + emits: ['file-download'], + + computed: { + valeur() { + return valeurFind(this.element, this.contenu) + } + }, + + methods: { + fileDownload(fichier) { + this.$emit('file-download', fichier) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/section.vue b/packages/ui/src/components/_common/section.vue new file mode 100644 index 000000000..c1f955783 --- /dev/null +++ b/packages/ui/src/components/_common/section.vue @@ -0,0 +1,52 @@ +<template> + <div> + <h4 v-if="section.nom && entete" class="cap-first"> + {{ section.nom }} + </h4> + + <SectionElement + v-for="e in elements" + :key="e.id" + :element="e" + :contenu="contenu" + @file-download="fileDownload" + /> + </div> +</template> + +<script> +import SectionElement from './section-element.vue' + +export default { + components: { + SectionElement + }, + + props: { + entete: { type: Boolean, default: true }, + section: { type: Object, required: true }, + contenu: { type: Object, default: () => ({}) }, + date: { type: String, default: '' } + }, + + emits: ['file-download'], + + computed: { + elements() { + return this.section.elements.filter( + e => + !this.date || + // si la date existe, vérifie qu'elle est dans les bornes de l'élément + ((!e.dateDebut || e.dateDebut < this.date) && + (!e.dateFin || e.dateFin >= this.date)) + ) + } + }, + + methods: { + fileDownload(fichier) { + this.$emit('file-download', fichier) + } + } +} +</script> diff --git a/packages/ui/src/components/_common/sections-edit.vue b/packages/ui/src/components/_common/sections-edit.vue new file mode 100644 index 000000000..7639eb351 --- /dev/null +++ b/packages/ui/src/components/_common/sections-edit.vue @@ -0,0 +1,68 @@ +<template> + <div> + <div v-for="s in sections" :key="s.id"> + <h3 v-if="s.nom" class="cap-first">{{ s.nom }}</h3> + + <SectionElementEdit + v-for="e in s.elements" + :key="e.id" + v-model:contenu="content[s.id]" + :element="e" + /> + </div> + </div> +</template> + +<script> +import { + elementContenuBuild, + contenuBuild, + contenuCompleteCheck +} from '../../utils/contenu' + +import SectionElementEdit from './section-element-edit.vue' + +export default { + components: { SectionElementEdit }, + + props: { + sections: { type: Array, required: true }, + contenu: { type: [Object, null], required: true } + }, + + emits: ['complete-update', 'contenu-update'], + + data() { + return { + content: {} + } + }, + + computed: { + complete() { + return contenuCompleteCheck(this.sections, this.content) + } + }, + + watch: { + content: { + handler: function (content) { + this.$emit( + 'contenu-update', + elementContenuBuild(this.sections, content) + ) + }, + deep: true + }, + + complete: function (complete) { + this.$emit('complete-update', complete) + } + }, + + created() { + this.content = contenuBuild(this.sections, this.contenu) + this.$emit('complete-update', this.complete) + } +} +</script> diff --git a/packages/ui/src/components/_common/statut.vue b/packages/ui/src/components/_common/statut.vue new file mode 100644 index 000000000..3586a2e58 --- /dev/null +++ b/packages/ui/src/components/_common/statut.vue @@ -0,0 +1,20 @@ +<template> + <Pill :color="`bg-${color}`"> + {{ nom }} + </Pill> +</template> + +<script> +import Pill from '../_ui/pill.vue' + +export default { + components: { + Pill + }, + + props: { + color: { type: String, default: 'neutral' }, + nom: { type: String, default: 'indéfini' } + } +} +</script> diff --git a/packages/ui/src/components/_common/titre-nom.vue b/packages/ui/src/components/_common/titre-nom.vue new file mode 100644 index 000000000..39fffb9f8 --- /dev/null +++ b/packages/ui/src/components/_common/titre-nom.vue @@ -0,0 +1,11 @@ +<template> + <span class="bold">{{ nom }}</span> +</template> + +<script> +export default { + props: { + nom: { type: String, default: '' } + } +} +</script> diff --git a/packages/ui/src/components/_common/titre-type-select.vue b/packages/ui/src/components/_common/titre-type-select.vue new file mode 100644 index 000000000..69b02a906 --- /dev/null +++ b/packages/ui/src/components/_common/titre-type-select.vue @@ -0,0 +1,87 @@ +<template> + <div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Domaine</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select v-model="element.domaineId" class="p-s mr"> + <option + v-for="domaine in domaines" + :key="domaine.id" + :value="domaine.id" + > + {{ domaine.nom }} + </option> + </select> + </div> + </div> + <hr /> + </div> + + <div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Type</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select + v-model="element.typeId" + class="p-s mr" + :disabled="!titresTypes" + > + <option + v-for="titreType in titresTypes" + :key="titreType.id" + :value="titreType.id" + > + {{ titreType.type.nom }} + </option> + </select> + </div> + </div> + <hr /> + </div> +</template> + +<script> +export default { + props: { + element: { type: Object, required: true }, + domaines: { type: Array, required: true } + }, + + computed: { + titresTypes() { + const domaine = this.domaines.find( + ({ id }) => id === this.element.domaineId + ) + + return domaine && domaine.titresTypes.filter(tt => tt.titresCreation) + } + }, + + watch: { + domaines: 'domainesUpdate', + titresTypes: 'titresTypesUpdate' + }, + + created() { + this.domainesUpdate() + }, + + methods: { + domainesUpdate() { + if (this.domaines?.length === 1) { + this.element.domaineId = this.domaines[0].id + } + }, + + titresTypesUpdate() { + if (this.titresTypes?.length === 1) { + this.element.typeId = this.titresTypes[0].id + } + } + } +} +</script> diff --git a/packages/ui/src/components/_common/titre-type-type-nom.vue b/packages/ui/src/components/_common/titre-type-type-nom.vue new file mode 100644 index 000000000..e51f030c4 --- /dev/null +++ b/packages/ui/src/components/_common/titre-type-type-nom.vue @@ -0,0 +1,10 @@ +<template> + <span class="small bold cap-first">{{ nom }}</span> +</template> +<script> +export default { + props: { + nom: { type: String, default: '' } + } +} +</script> diff --git a/packages/ui/src/components/_map/index.vue b/packages/ui/src/components/_map/index.vue new file mode 100644 index 000000000..209c4eacc --- /dev/null +++ b/packages/ui/src/components/_map/index.vue @@ -0,0 +1,206 @@ +<template> + <div ref="map"> + <div class="absolute p-s map-loader"> + <div class="small">Zoom: {{ zoom }}</div> + + <div v-if="legends?.length" class="mt-xs"> + <div + v-for="(legend, index) in legends" + :key="legend.label" + class="flex flex-center" + :class="{ 'mb-xs': index !== legends.length - 1 }" + > + <i class="icon-map-legend" :class="legend.icon" /> + : {{ legend.label }} + </div> + </div> + </div> + </div> +</template> + +<script> +import { markRaw } from 'vue' + +import { + leafletMap, + leafletTileLayerDefault, + leafletScaleBuild, + leafletFeatureGroupGet, + leafletCanvasLayerBuild +} from './leaflet.js' + +export default { + props: { + geojsonLayers: { type: Array, default: () => [] }, + markerLayers: { type: Array, default: () => [] }, + tilesLayer: { type: Object, default: () => leafletTileLayerDefault }, + canvasMarkers: { type: Array, default: () => [] }, + legends: { type: Array, default: () => [] } + }, + + emits: ['map-update'], + + data() { + return { + map: null, + zoom: 0, + updateBboxOnly: false, + updateCenterAndZoomOnly: false, + layers: { + tiles: {}, + geojsons: [], + markers: [], + canvas: null + } + } + }, + + watch: { + tilesLayer: 'tilesUpdate', + geojsonLayers: 'geojsonsUpdate', + markerLayers: 'markersUpdate', + canvasMarkers: 'canvasMarkersUpdate' + }, + + mounted() { + this.init() + this.scaleAdd() + this.tilesAdd() + this.markersAdd() + this.geojsonsAdd() + this.layersCanvasAdd() + }, + + methods: { + init() { + this.map = markRaw(leafletMap(this.$refs.map)) + + this.map.on('moveend', () => { + if (this.updateBboxOnly) { + this.updateBboxOnly = false + const bbox = this.boundsGet() + + this.$emit('map-update', { bbox }) + } else { + const center = [this.map.getCenter().lat, this.map.getCenter().lng] + const zoom = this.map.getZoom() + this.zoom = zoom + + if (this.updateCenterAndZoomOnly) { + this.updateCenterAndZoomOnly = false + this.$emit('map-update', { center, zoom }) + } else { + const bbox = this.boundsGet() + + this.$emit('map-update', { center, zoom, bbox }) + } + } + }) + + this.map.on('fullscreenchange', () => { + if (this.map.isFullscreen()) { + this.map.gestureHandling.disable() + } else { + this.map.gestureHandling.enable() + } + }) + + this.zoom = this.map.getZoom() + }, + + boundsFit(bounds) { + this.map.fitBounds(bounds) + }, + + allFit() { + const featureGroup = leafletFeatureGroupGet(this.layers.markers) + this.updateCenterAndZoomOnly = true + this.boundsFit(featureGroup.getBounds()) + }, + + positionSet({ zoom, center }) { + this.updateBboxOnly = true + this.map.setView(center, zoom) + this.zoom = zoom + }, + + boundsGet() { + const bounds = this.map.getBounds() + + return [ + bounds._southWest.lng, + bounds._southWest.lat, + bounds._northEast.lng, + bounds._northEast.lat + ] + }, + + scaleAdd() { + const scale = leafletScaleBuild() + scale.addTo(this.map) + }, + + tilesUpdate() { + this.layers.tiles.removeFrom(this.map) + this.tilesAdd() + }, + + tilesAdd() { + this.layers.tiles = this.tilesLayer + this.layers.tiles.addTo(this.map) + }, + + geojsonsAdd() { + this.geojsonLayers.forEach(l => { + this.layers.geojsons.push(l) + l.addTo(this.map) + }) + }, + + geojsonsUpdate() { + this.layers.geojsons.forEach(l => l.remove()) + + this.geojsonsAdd() + }, + + markersAdd() { + this.markerLayers.forEach(marker => { + this.layers.markers.push(marker) + this.map.addLayer(marker) + }) + }, + + hasLayer(layer) { + return this.map.hasLayer(layer) + }, + + markersUpdate() { + this.layers.markers.forEach(marker => { + this.map.removeLayer(marker) + }) + + this.markersAdd() + }, + + canvasMarkersUpdate() { + const markers = [] + this.canvasMarkers.forEach((marker, i) => { + markers.push(marker) + }) + this.layers.canvas.clear() + this.layers.canvas.addMarkers(markers) + if (!markers.length) { + this.layers.canvas._canvas.classList.add('hide') + } else { + this.layers.canvas._canvas.classList.remove('hide') + } + }, + + layersCanvasAdd() { + this.map.createPane('canvas') + this.layers.canvas = leafletCanvasLayerBuild({ pane: 'canvas' }) + this.layers.canvas.addTo(this.map) + } + } +} +</script> diff --git a/packages/ui/src/components/_map/leaflet.js b/packages/ui/src/components/_map/leaflet.js new file mode 100644 index 000000000..fdbf34d5f --- /dev/null +++ b/packages/ui/src/components/_map/leaflet.js @@ -0,0 +1,140 @@ +import 'leaflet' +import 'leaflet.markercluster' +import 'leaflet-gesture-handling' +import 'leaflet-fullscreen' +import 'leaflet-markers-canvas' + +import iconRetinaUrl from 'leaflet/dist/images/marker-icon-2x.png' +import iconUrl from 'leaflet/dist/images/marker-icon.png' +import shadowUrl from 'leaflet/dist/images/marker-shadow.png' + +const L = window.L + +L.Marker.prototype.options.icon = L.icon({ + iconRetinaUrl, + iconUrl, + shadowUrl, + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + tooltipAnchor: [16, -28], + shadowSize: [41, 41] +}) + +const leafletTileLayerDefault = L.tileLayer( + 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + { + maxZoom: 20, + attribution: + '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' + } +) + +const leafletMap = map => + L.map(map, { + // zoomControl: true, + zoomAnimation: false, + doubleClickZoom: false, + minZoom: 1, + gestureHandling: true, + fullscreenControl: { + pseudoFullscreen: true + } + }) + +const leafletTilesBuild = tiles => + tiles.type === 'wms' + ? L.tileLayer.wms(tiles.url, { + layers: tiles.layers, + format: 'image/png', + attribution: tiles.attribution, + version: tiles.version || undefined + }) + : L.tileLayer(tiles.url, { + attribution: tiles.attribution + }) + +const leafletTilesLegendGet = tiles => { + // on ne peut pas écrire les SVG à la volée à cause des CSPs + if (tiles.id === 'sdom-zones') { + return [ + { icon: 'icon-map-legend-sdom-zone-0', label: 'Zone 0' }, + { + icon: 'icon-map-legend-sdom-zone-0-potentielle', + label: 'Zone 0 potentielle' + }, + { icon: 'icon-map-legend-sdom-zone-1', label: 'Zone 1' }, + { icon: 'icon-map-legend-sdom-zone-2', label: 'Zone 2' } + ] + } + + return [] +} + +const leafletScaleBuild = () => L.control.scale({ imperial: false }) + +const leafletFeatureGroupGet = markers => new L.FeatureGroup(markers) + +const leafletCanvasLayerBuild = options => new L.MarkersCanvas(options) + +const leafletMarkerBuild = (latLng, icon) => L.marker(latLng, { icon }) + +const leafletGeojsonBuild = (geojson, options) => L.geoJSON(geojson, options) + +const leafletMarkerClusterGroupBuild = divIconOptions => + L.markerClusterGroup({ + iconCreateFunction(cluster) { + const childCount = cluster.getChildCount() + + let size + if (childCount < 5) size = 'xs' + else if (childCount < 15) size = 's' + else if (childCount < 40) size = 'm' + else size = 'l' + + divIconOptions.className += ` leaflet-marker-cluster-${size}` + + return new L.DivIcon(divIconOptions) + }, + disableClusteringAtZoom: 10, + animate: true, + spiderfyOnMaxZoom: false, + showCoverageOnHover: false, + maxClusterRadius(x) { + return 2048 / Math.pow(x, 2) + } + }) + +const leafletGeojsonCenterFind = geojson => + L.geoJSON(geojson).getBounds().getCenter() + +const leafletCoordinatesFind = geojson => { + const coordinates = geojson.geometry.coordinates + + return { + lng: coordinates[0], + lat: coordinates[1] + } +} + +const leafletDivIconBuild = divIconOptions => L.divIcon(divIconOptions) +const leafletIconBuild = iconOptions => L.icon(iconOptions) +const leafletGeojsonBoundsGet = zone => L.geoJSON(zone).getBounds() + +export { + leafletMap, + leafletTileLayerDefault, + leafletScaleBuild, + leafletTilesBuild, + leafletTilesLegendGet, + leafletFeatureGroupGet, + leafletCanvasLayerBuild, + leafletMarkerBuild, + leafletGeojsonBuild, + leafletMarkerClusterGroupBuild, + leafletCoordinatesFind, + leafletGeojsonCenterFind, + leafletGeojsonBoundsGet, + leafletDivIconBuild, + leafletIconBuild +} diff --git a/packages/ui/src/components/_map/pattern.vue b/packages/ui/src/components/_map/pattern.vue new file mode 100644 index 000000000..ba3c4ff77 --- /dev/null +++ b/packages/ui/src/components/_map/pattern.vue @@ -0,0 +1,65 @@ +<template> + <svg class="absolute z--100"> + <defs> + <g v-for="typeId in typesIds" :key="typeId"> + <g v-if="defs[typeId]"> + <pattern + v-for="domaineId in domainesIdsDefault" + :id=" + domaineId ? `pattern-${typeId}-${domaineId}` : `pattern-${typeId}` + " + :key="domaineId" + patternUnits="userSpaceOnUse" + width="8" + height="8" + :patternTransform="`rotate(${defs[typeId].rotation})`" + > + <path + :d="defs[typeId].d" + :class=" + domaineId ? `svg-stroke-domaine-${domaineId}` : `svg-stroke` + " + :stroke-width="defs[typeId].width" + stroke-linecap="round" + fill="none" + /> + </pattern> + </g> + </g> + </defs> + </svg> +</template> + +<script> +export default { + props: { + domainesIds: { type: Array, required: true }, + typesIds: { type: Array, required: true } + }, + + data() { + return { + defs: { + ax: { d: 'M0,0 l8,0 M0,8 l8,0', width: 5, rotation: 0 }, + cx: { d: 'M0,0 l8,0 M0,8 l8,0', width: 5, rotation: 45 }, + pc: { d: 'M0,0 l8,0 M0,8 l8,0', width: 5, rotation: 90 }, + px: { d: 'M0,0 l8,0 M0,8 l8,0', width: 5, rotation: 135 }, + ap: { d: 'M-1,4 l2,0 M6,4 l2,0', width: 2, rotation: 45 }, + ar: { d: 'M1,4 l4,0 M3,2 l0,4', width: 2, rotation: 0 }, + pr: { d: 'M4,4 l0,0', width: 5, rotation: 45 }, + in: { + d: 'M0,4 a3,3 0 1,0 6,0 a 3,3 0 1,0 -6,0', + width: 1, + rotation: 0 + } + } + } + }, + + computed: { + domainesIdsDefault() { + return [...this.domainesIds, ''] + } + } +} +</script> diff --git a/packages/ui/src/components/_map/tiles-selector.vue b/packages/ui/src/components/_map/tiles-selector.vue new file mode 100644 index 000000000..1632ec754 --- /dev/null +++ b/packages/ui/src/components/_map/tiles-selector.vue @@ -0,0 +1,69 @@ +<template> + <Accordion + :opened="opened" + :slot-default="true" + @close="close" + @toggle="toggle" + > + <template #title> + <small>Fond de carte</small> + </template> + <ul class="list-sans mt-m px-m"> + <li v-for="tile in tiles" :key="tile.name"> + <label class="small bold"> + <input + :value="tile.id" + :checked="tile.id === tilesId" + type="radio" + class="mr-s" + @change="select(tile.id)" + /> + {{ tile.name }} + </label> + </li> + </ul> + </Accordion> +</template> + +<script> +import Accordion from '../_ui/accordion.vue' + +export default { + components: { + Accordion + }, + + props: { + tiles: { + type: Array, + default: () => [] + }, + tilesId: { + type: String, + default: 'osm-fr' + } + }, + + emits: ['params-update'], + + data() { + return { + opened: false + } + }, + + methods: { + close() { + this.opened = false + }, + + toggle() { + this.opened = !this.opened + }, + + select(tilesId) { + this.$emit('params-update', { tilesId }) + } + } +} +</script> diff --git a/packages/ui/src/components/_map/warning-brgm.vue b/packages/ui/src/components/_map/warning-brgm.vue new file mode 100644 index 000000000..7c117a8ee --- /dev/null +++ b/packages/ui/src/components/_map/warning-brgm.vue @@ -0,0 +1,24 @@ +<template> + <div + v-if="brgmWarning" + class="bg-warning px py-s color-bg mb-s h6 bold mx-- mt--s" + > + Fond de carte visible aux niveaux de zoom 12 à 16 en métropole (hors + Gironde, Lot et Garonne, Dordogne, Charente Maritime et Vienne). + </div> +</template> + +<script> +export default { + props: { + tilesId: { type: String, default: '' }, + zoom: { type: Number, default: 0 } + }, + + computed: { + brgmWarning() { + return this.tilesId === 'brgm-geo' && (this.zoom < 12 || this.zoom > 16) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/__snapshots__/pill.stories.storyshot b/packages/ui/src/components/_ui/__snapshots__/pill.stories.storyshot new file mode 100644 index 000000000..b4621d6da --- /dev/null +++ b/packages/ui/src/components/_ui/__snapshots__/pill.stories.storyshot @@ -0,0 +1,29 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Automated Storybook Snapshots Ui/Pill Error 1`] = ` +<span + class="cap-first small bold" +> + <span + class="bg-error color-bg pill py-xs px-s" + > + + Hello + + </span> +</span> +`; + +exports[`Automated Storybook Snapshots Ui/Pill Primary 1`] = ` +<span + class="cap-first small bold" +> + <span + class="bg-neutral color-bg pill py-xs px-s" + > + + Hello + + </span> +</span> +`; diff --git a/packages/ui/src/components/_ui/accordion.vue b/packages/ui/src/components/_ui/accordion.vue new file mode 100644 index 000000000..ca0e87c9e --- /dev/null +++ b/packages/ui/src/components/_ui/accordion.vue @@ -0,0 +1,126 @@ +<template> + <div class="flex flex-direction-column rnd-s border bg-bg"> + <div + v-if="slotButtons" + class="accordion-header flex" + :class="{ + 'rnd-t-s': opened || slotSub, + 'rnd-s': !opened && !slotSub, + 'border-b-s': opened || slotSub + }" + > + <div class="py-s px-m"> + <slot name="title" /> + </div> + + <div class="overflow-hidden flex flex-end flex-right"> + <slot name="buttons" /> + <button + v-if="slotDefault" + class="btn-alt py-s px-m" + :class="{ 'rnd-br-s': !opened }" + @click="toggle" + > + <i + class="icon-24" + :class="{ + [iconOpenedClass]: !opened, + [iconClosedClass]: opened + }" + /> + </button> + <div v-else class="py-s px-m"> + <i class="icon-24" /> + </div> + </div> + </div> + + <button + v-else-if="slotDefault && !slotButtons" + :class="{ + 'rnd-t-s': opened || slotSub, + 'rnd-s': !opened && !slotSub, + 'border-b-s': opened || slotSub + }" + class="accordion-header flex btn-alt py-s px-s" + @click="toggle" + > + <div> + <slot name="title" /> + </div> + <div class="flex flex-right flex-end"> + <i + class="icon-24" + :class="{ [iconOpenedClass]: !opened, [iconClosedClass]: opened }" + /> + </div> + </button> + + <div v-else class="py-s px-m"> + <slot name="title" /> + </div> + + <slot v-if="slotSub" name="sub" :class="{ 'border-b-s': opened }" /> + + <div v-if="slotDefault" :class="{ 'overflow-hidden': isOverflowHidden }"> + <Transition name="slide"> + <div v-show="opened"> + <slot /> + </div> + </Transition> + </div> + </div> +</template> + +<script> +export default { + name: 'UiSytemAccordion', + + props: { + iconOpenedClass: { type: String, default: 'icon-chevron-b' }, + + iconClosedClass: { type: String, default: 'icon-chevron-t' }, + + opened: { type: Boolean, default: false }, + + slotSub: { type: Boolean, default: false }, + + slotButtons: { type: Boolean, default: false }, + + slotDefault: { type: Boolean, default: false } + }, + + emits: ['toggle'], + + data() { + return { + isOverflowHidden: true, + animationTimeout: null + } + }, + + watch: { + opened(isOpened) { + // Overflow "hidden" est nécessaire pour l'animation d'ouverture/fermeture, + // mais est retiré pour éviter un bug visuel avec les infobulles. + // Le timeout est nécessaire pour ajuster l'overflow dans l'état requis, + // tout en permettant à l'animation d'ouverture de se jouer correctement. + if (!isOpened) { + clearTimeout(this.animationTimeout) + this.isOverflowHidden = true + } else { + this.animationTimeout = setTimeout( + () => (this.isOverflowHidden = false), + 1000 + ) + } + } + }, + + methods: { + toggle() { + this.$emit('toggle') + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/button-plus.vue b/packages/ui/src/components/_ui/button-plus.vue new file mode 100644 index 000000000..6d9deb197 --- /dev/null +++ b/packages/ui/src/components/_ui/button-plus.vue @@ -0,0 +1,11 @@ +<template> + <button class="btn rnd-xs p-s"> + <i class="icon-24 icon-plus" /> + </button> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' + +export default defineComponent({}) +</script> diff --git a/packages/ui/src/components/_ui/card.vue b/packages/ui/src/components/_ui/card.vue new file mode 100644 index 000000000..7287f6c07 --- /dev/null +++ b/packages/ui/src/components/_ui/card.vue @@ -0,0 +1,11 @@ +<template> + <div class="bg-bg px pt mb rnd flex flex-direction-column"> + <slot /> + </div> +</template> + +<script> +export default { + name: 'UiSystemCard' +} +</script> diff --git a/packages/ui/src/components/_ui/columns.vue b/packages/ui/src/components/_ui/columns.vue new file mode 100644 index 000000000..863521d41 --- /dev/null +++ b/packages/ui/src/components/_ui/columns.vue @@ -0,0 +1,51 @@ +<template> + <Accordion + class="mb" + :opened="opened" + :slot-default="true" + @close="close" + @toggle="toggle" + > + <template #title> Colonnes </template> + <ul class="list-sans px-m"> + <li v-for="column in columns" :key="column.type"> + <label> + <input type="checkbox" class="mr-s" /> {{ column.name }} + </label> + </li> + </ul> + </Accordion> +</template> + +<script> +import Accordion from './accordion.vue' + +export default { + components: { + Accordion + }, + + props: { + columns: { + type: Array, + default: () => [] + } + }, + + data() { + return { + opened: false + } + }, + + methods: { + close() { + this.opened = false + }, + + toggle() { + this.opened = !this.opened + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/dot.vue b/packages/ui/src/components/_ui/dot.vue new file mode 100644 index 000000000..c27bc1bdd --- /dev/null +++ b/packages/ui/src/components/_ui/dot.vue @@ -0,0 +1,16 @@ +<template> + <span :class="color" class="pill dot mr-xs" /> +</template> + +<script> +export default { + name: 'UiSystemDot', + + props: { + color: { + type: String, + default: 'bg-neutral' + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/dropdown.vue b/packages/ui/src/components/_ui/dropdown.vue new file mode 100644 index 000000000..d114f9f57 --- /dev/null +++ b/packages/ui/src/components/_ui/dropdown.vue @@ -0,0 +1,54 @@ +<template> + <div class="relative flex flex-direction-column dropdown"> + <div class="absolute border rnd-s bg-bg full-x overflow-hidden"> + <button + :class="{ + 'rnd-t-s': opened, + 'border-b-s': opened + }" + class="accordion-header flex btn-alt py-s px-s full-x" + @click="openToggle" + > + <div> + <slot name="title" /> + </div> + <div class="flex flex-right flex-end"> + <i + class="icon-24" + :class="{ [iconOpenedClass]: !opened, [iconClosedClass]: opened }" + /> + </div> + </button> + + <div class="overflow-hidden"> + <div :class="{ 'overflow-hidden': !opened, opened: opened }"> + <Transition name="slide"> + <slot v-if="opened" /> + </Transition> + </div> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'UiSytemDropdown', + + props: { + iconOpenedClass: { type: String, default: 'icon-chevron-b' }, + + iconClosedClass: { type: String, default: 'icon-chevron-t' }, + + opened: { type: Boolean, default: false } + }, + + emits: ['toggle'], + + methods: { + openToggle() { + this.$emit('toggle', this.opened) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/edit-array.vue b/packages/ui/src/components/_ui/edit-array.vue new file mode 100644 index 000000000..d0ee987d3 --- /dev/null +++ b/packages/ui/src/components/_ui/edit-array.vue @@ -0,0 +1,59 @@ +<template> + <div v-if="!editable" class="border p-m pointer" @click="editableMake"> + {{ value }} + </div> + <div v-else> + <select v-model="valueUpdated" class="py-xs px-s mb-s"> + <option v-for="element in elements" :key="element" :value="element"> + {{ element }} + </option> + </select> + <div class="flex"> + <button + class="btn-border small px-s py-xs flex-right rnd-xs mr-s" + @click="editable = false" + > + Annuler + </button> + <button class="btn-flash small px-s py-xs rnd-xs" @click="validate"> + Valider + </button> + </div> + </div> +</template> + +<script> +export default { + props: { + value: { type: String, required: true }, + elements: { type: Array, required: true } + }, + + emits: ['update'], + + data() { + return { + editable: false, + valueUpdated: '' + } + }, + + created() { + this.valueUpdated = this.value + }, + + methods: { + validate() { + this.$emit('update', this.valueUpdated) + this.editable = false + }, + + editableMake() { + if (!this.editable) { + this.valueUpdated = this.value + this.editable = !this.editable + } + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/edit-boolean.vue b/packages/ui/src/components/_ui/edit-boolean.vue new file mode 100644 index 000000000..298a31487 --- /dev/null +++ b/packages/ui/src/components/_ui/edit-boolean.vue @@ -0,0 +1,35 @@ +<template> + <input + ref="input" + v-model="valueUpdated" + type="checkbox" + class="p-s mb-s" + @change="validate" + /> +</template> + +<script> +export default { + props: { + value: { type: Boolean, required: true } + }, + + emits: ['update'], + + data() { + return { + valueUpdated: '' + } + }, + + created() { + this.valueUpdated = this.value + }, + + methods: { + validate() { + this.$emit('update', this.valueUpdated) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/edit-date.vue b/packages/ui/src/components/_ui/edit-date.vue new file mode 100644 index 000000000..9e8ae0d1b --- /dev/null +++ b/packages/ui/src/components/_ui/edit-date.vue @@ -0,0 +1,69 @@ +<template> + <div + v-if="!editable" + class="border pointer text-right p-m" + @click="editableMake" + > + {{ value }} + </div> + <div v-else> + <InputDate v-model="valueUpdated" class="mb-s" /> + + <div class="flex"> + <button + class="btn-border small px-s py-xs flex-right rnd-xs mr-s" + @click="editable = false" + > + Annuler + </button> + <button class="btn-flash small px-s py-xs rnd-xs" @click="validate"> + Valider + </button> + </div> + </div> +</template> + +<script> +import InputDate from './input-date.vue' + +export default { + components: { InputDate }, + + props: { + value: { type: String, required: true } + }, + + emits: ['update'], + + data() { + return { + valueUpdated: '', + editable: false + } + }, + + watch: { + value() { + this.valueUpdated = this.value + } + }, + + created() { + this.valueUpdated = this.value + }, + + methods: { + validate() { + this.editable = false + this.$emit('update', this.valueUpdated) + }, + + editableMake() { + if (!this.editable) { + this.valueUpdated = this.value + this.editable = !this.editable + } + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/edit-json.vue b/packages/ui/src/components/_ui/edit-json.vue new file mode 100644 index 000000000..521e01aa6 --- /dev/null +++ b/packages/ui/src/components/_ui/edit-json.vue @@ -0,0 +1,82 @@ +<template> + <div + v-if="!editable" + class="border p-l pointer content-editable" + @click="editableMake" + > + {{ value }} + </div> + <div v-else> + <textarea + ref="textarea" + v-model="valueString" + class="p-s mb-s" + @input="resize" + @focus="resize" + /> + <div class="flex mb-s"> + <button + class="btn-border small px-s py-xs flex-right rnd-xs mr-s" + @click="editable = false" + > + Annuler + </button> + <button class="btn-flash small px-s py-xs rnd-xs" @click="validate"> + Valider + </button> + </div> + <p v-if="error" class="p-s bg-error color-bg h6">{{ error }}</p> + </div> +</template> + +<script> +import { nextTick } from 'vue' + +export default { + props: { + value: { type: [Object, null], default: null } + }, + + emits: ['update'], + + data() { + return { + editable: false, + valueString: '', + error: '' + } + }, + + methods: { + async validate() { + try { + this.error = '' + const value = JSON.parse(this.valueString) + + this.$emit('update', value) + this.editable = false + } catch (e) { + this.error = `Erreur de formatage: ${e}` + } + }, + + editableMake() { + this.error = '' + + if (!this.editable) { + this.valueString = JSON.stringify(this.value, null, 2) + this.editable = !this.editable + + nextTick(() => { + this.$refs.textarea.focus() + }) + } + }, + + resize(e) { + e.target.style.height = '' + e.target.style.height = e.target.scrollHeight + 'px' + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/edit-number.vue b/packages/ui/src/components/_ui/edit-number.vue new file mode 100644 index 000000000..ee06b25b7 --- /dev/null +++ b/packages/ui/src/components/_ui/edit-number.vue @@ -0,0 +1,79 @@ +<template> + <div + v-if="!editable" + class="border p-m pointer text-right" + @click="editableMake" + > + {{ value }} + </div> + <div v-else> + <input + ref="input" + v-model.number="valueUpdated" + type="number" + class="p-s mb-s text-right" + min="1" + @focus="editableMake" + /> + + <div class="flex"> + <button + class="btn-border small px-s py-xs flex-right rnd-xs mr-s" + @click="editable = false" + > + Annuler + </button> + <button class="btn-flash small px-s py-xs rnd-xs" @click="validate"> + Valider + </button> + </div> + </div> +</template> + +<script> +import { nextTick } from 'vue' +export default { + props: { + value: { type: Number, default: 0 } + }, + + emits: ['update'], + + data() { + return { + valueUpdated: 0, + editable: false + } + }, + + watch: { + value() { + this.valueUpdated = this.value + } + }, + + created() { + this.valueUpdated = this.value + }, + + methods: { + validate() { + if (this.valueUpdated > 0) { + this.editable = false + this.$emit('update', this.valueUpdated) + } + }, + + editableMake() { + if (!this.editable) { + this.valueUpdated = this.value + this.editable = !this.editable + + nextTick(() => { + this.$refs.input.focus() + }) + } + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/edit-string.vue b/packages/ui/src/components/_ui/edit-string.vue new file mode 100644 index 000000000..c8e653a91 --- /dev/null +++ b/packages/ui/src/components/_ui/edit-string.vue @@ -0,0 +1,82 @@ +<template> + <!-- eslint-disable vue/no-v-html --> + <div + v-if="!editable" + class="border p-l pointer content-editable" + @click="editableMake" + v-html="valueHtml" + /> + <div v-else> + <textarea + ref="textarea" + v-model="valueUpdated" + class="p-s mb-s" + @input="resize" + @focus="resize" + /> + <div class="flex"> + <button + class="btn-border small px-s py-xs flex-right rnd-xs mr-s" + @click="editable = false" + > + Annuler + </button> + <button class="btn-flash small px-s py-xs rnd-xs" @click="validate"> + Valider + </button> + </div> + </div> +</template> + +<script> +import { nextTick } from 'vue' +import snarkdown from 'snarkdown' + +export default { + props: { + value: { type: String, required: true } + }, + + emits: ['update'], + + data() { + return { + editable: false, + valueUpdated: '' + } + }, + + computed: { + valueHtml() { + return snarkdown(this.valueUpdated) + } + }, + + created() { + this.valueUpdated = this.value + }, + + methods: { + validate() { + this.$emit('update', this.valueUpdated) + this.editable = false + }, + + editableMake() { + if (!this.editable) { + this.valueUpdated = this.value + this.editable = !this.editable + + nextTick(() => { + this.$refs.textarea.focus() + }) + } + }, + + resize(e) { + e.target.style.height = '' + e.target.style.height = e.target.scrollHeight + 'px' + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/filters-checkboxes.vue b/packages/ui/src/components/_ui/filters-checkboxes.vue new file mode 100644 index 000000000..2cb201a10 --- /dev/null +++ b/packages/ui/src/components/_ui/filters-checkboxes.vue @@ -0,0 +1,93 @@ +<template> + <div class="mb"> + <h5>{{ filter.name }}</h5> + <hr class="mb-s" /> + + <ul class="list-sans"> + <li v-for="element in filter.elements" :key="element.id"> + <label> + <input + :value="element.id" + :checked="filter.value.includes(element.id)" + type="checkbox" + class="mr-s" + @change="checkboxToggle($event)" + /> + <component + :is="filter.component" + v-if="filter.component" + :element="element" + /> + <span v-else class="cap-first h6 bold">{{ element.nom }}</span> + </label> + </li> + </ul> + <button + ref="button" + class="btn-border small px-s p-xs rnd-xs mr-xs" + @click="checkboxesSelect('none')" + > + Aucun + </button> + <button + ref="button" + class="btn-border small px-s p-xs rnd-xs mr-xs" + @click="checkboxesSelect('all')" + > + Tous + </button> + </div> +</template> + +<script> +export default { + props: { + filter: { type: Object, default: () => ({}) } + }, + + methods: { + checkboxToggle(e) { + const idsSet = (v, values) => { + const index = values.indexOf(v) + + const value = values.slice() + + if (index > -1) { + value.splice(index, 1) + } else { + value.push(v) + } + + return value.sort() + } + + const target = + this.filter && this.filter.isNumber + ? Number(e.target.value) + : e.target.value + + this.filter.value = idsSet(target, this.filter.value) + }, + + checkboxesSelect(action) { + if (action === 'none') { + this.filter.value = [] + } + + if (action === 'all') { + this.filter.value = this.filter.elements.map(({ id }) => id) + } + + if (action === 'inverse') { + this.filter.value = this.filter.elements.reduce((ids, { id }) => { + if (!this.filter.value.includes(id)) { + ids.push(id) + } + + return ids + }, []) + } + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/filters-input-autocomplete.vue b/packages/ui/src/components/_ui/filters-input-autocomplete.vue new file mode 100644 index 000000000..e943f2bd5 --- /dev/null +++ b/packages/ui/src/components/_ui/filters-input-autocomplete.vue @@ -0,0 +1,92 @@ +<template> + <div class="mb"> + <h5>{{ filter.name }}</h5> + <hr class="mb-s" /> + + <InputAutocomplete + v-if="options?.length || lazyLoaded" + :selected="values" + :options="options" + value-prop="id" + label-prop="nom" + class="p-s" + @opened="$emit('opened', $event)" + @update:selected="updateHandler" + @search="search" + /> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import InputAutocomplete from './input-autocomplete.vue' + +export default defineComponent({ + components: { InputAutocomplete }, + + props: { + filter: { + type: Object, + default: () => ({}) + } + }, + + emits: ['opened', 'search'], + + data: () => ({ + lazyLoaded: false + }), + + computed: { + values() { + return this.filter.value || [] + }, + options() { + return this.filter.elements + } + }, + async created() { + if ( + this.filter.type === 'autocomplete' && + this.filter.lazy && + this.filter.value?.length + ) { + const result = await this.filter.load(this.filter.value) + this.filter.elements = result.elements + } + if (this.filter.lazy) { + this.lazyLoaded = true + } + }, + methods: { + updateHandler(e: string[]) { + this.filter.value = e + if (this.filter.lazy) { + this.filter.elements = this.filter.elements.filter(e => + this.filter.value.includes(e.id) + ) + } + }, + + async search(value: string) { + if (this.filter.lazy) { + const result = await this.filter.search(value) + + // Si les options déjà selectionnées ne sont plus disponibles dans la nouvelle + // liste d’options, on les ajoute à la nouvelle liste pour conserver notre sélection + const options = [...result.elements] + this.filter.value?.forEach((optionId: string) => { + if (!options || !options.some(o => o.id === optionId)) { + const oldOption = this.filter.elements.find( + (o: { id: string }) => o.id === optionId + ) + options.push(oldOption) + } + }) + + this.filter.elements = options + } + } + } +}) +</script> diff --git a/packages/ui/src/components/_ui/filters-input.vue b/packages/ui/src/components/_ui/filters-input.vue new file mode 100644 index 000000000..8dd73d4cb --- /dev/null +++ b/packages/ui/src/components/_ui/filters-input.vue @@ -0,0 +1,21 @@ +<template> + <div class="mb"> + <h5>{{ filter.name }}</h5> + <hr class="mb-s" /> + + <input + v-model="filter.value" + type="text" + :placeholder="filter.placeholder" + class="p-s" + /> + </div> +</template> + +<script> +export default { + props: { + filter: { type: Object, default: () => ({}) } + } +} +</script> diff --git a/packages/ui/src/components/_ui/filters-selects.vue b/packages/ui/src/components/_ui/filters-selects.vue new file mode 100644 index 000000000..7c46d5b93 --- /dev/null +++ b/packages/ui/src/components/_ui/filters-selects.vue @@ -0,0 +1,54 @@ +<template> + <div class="mb"> + <h5>{{ filter.name }}</h5> + <hr class="mb-s" /> + + <div v-for="(value, n) in filter.value" :key="n"> + <div class="flex mb-s"> + <select v-model="filter.value[n]" class="p-s mr-s"> + <option + v-for="element in filter.elements" + :key="element.id" + :value="element.id" + :disabled="filter.value.includes(element.id)" + > + {{ element[filter.elementName] }} + </option> + </select> + + <button class="btn py-s px-m rnd-xs" @click="valueRemove(n)"> + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + <button + v-if="!filter.value || !filter.value.some(v => v === '')" + class="btn small rnd-xs py-s px-m full-x flex mb-s" + @click="valueAdd" + > + <span class="mt-xxs">{{ filter.buttonAdd }}</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> +</template> + +<script> +export default { + props: { + filter: { + type: Object, + default: () => ({}) + } + }, + + methods: { + valueAdd() { + this.filter.value.push('') + }, + + valueRemove(n) { + this.filter.value.splice(n, 1) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/filters.vue b/packages/ui/src/components/_ui/filters.vue new file mode 100644 index 000000000..07c3edf24 --- /dev/null +++ b/packages/ui/src/components/_ui/filters.vue @@ -0,0 +1,242 @@ +<template> + <Accordion + ref="accordion" + :opened="opened" + :slot-sub="!!labels.length" + :slot-default="true" + class="mb-s" + @toggle="toggle" + > + <template #title> + {{ title }} + </template> + + <template v-if="labels.length" #sub> + <div class="flex" :class="{ 'border-b-s': opened }"> + <div class="px-m pt-m pb-s"> + <span + v-for="label in labels" + :key="`${label.id}-${label.valueName}`" + class="rnd-m box btn-flash h6 pl-s pr-xs py-xs bold mr-xs mb-xs" + :class="{ 'pr-xs': !opened, 'pr-s': opened }" + @click="labelRemove(label)" + >{{ label.name }} : {{ label.valueName || label.value }} + <span v-if="!opened" class="inline-block align-y-top ml-xs" + ><i class="icon-16 icon-x" /></span + ></span> + </div> + <button class="flex-right btn-alt p-m" @click="labelsReset"> + <i class="icon-24 icon-close" /> + </button> + </div> + </template> + + <div class="px-m"> + <div class="tablet-blobs mt"> + <div v-if="inputs.length" class="tablet-blob-1-2 large-blob-1-3"> + <template v-for="input in inputs" :key="input.id"> + <FiltersInputAutocomplete + v-if="input.type === 'autocomplete'" + :filter="input" + @opened="selectOpened = $event" + /> + <FiltersInput v-else :filter="input" /> + </template> + + <button + class="btn-border small px-s p-xs rnd-xs mb" + @click="inputsErase" + > + Tout effacer + </button> + </div> + + <FiltersCheckboxes + v-for="filter in checkboxes" + :key="filter.id" + :filter="filter" + class="tablet-blob-1-2 large-blob-1-3" + /> + + <FiltersSelects + v-for="filter in selects" + :key="filter.id" + :filter="filter" + class="tablet-blob-1-2 large-blob-1-3" + /> + + <component + :is="filter.component" + v-for="filter in customs" + :key="filter.id" + :filter="filter" + class="tablet-blob-1-2 large-blob-1-3" + /> + </div> + + <button + ref="button" + class="btn-flash p-s rnd-xs full-x mb" + @click="validate" + > + {{ button }} + </button> + </div> + </Accordion> +</template> + +<script> +import Accordion from './accordion.vue' +import FiltersInput from './filters-input.vue' +import FiltersCheckboxes from './filters-checkboxes.vue' +import FiltersSelects from './filters-selects.vue' +import FiltersInputAutocomplete from './filters-input-autocomplete.vue' + +export default { + components: { + Accordion, + FiltersInput, + FiltersCheckboxes, + FiltersSelects, + FiltersInputAutocomplete + }, + + props: { + filters: { type: Array, default: () => [] }, + title: { type: String, default: 'Filters' }, + button: { type: String, default: 'Ok' }, + opened: { type: Boolean, default: false } + }, + + emits: ['toggle', 'validate'], + + data: () => ({ selectOpened: false }), + + computed: { + inputs() { + return this.filters.filter( + ({ type }) => type === 'input' || type === 'autocomplete' + ) + }, + + checkboxes() { + return this.filters.filter(({ type }) => type === 'checkboxes') + }, + + selects() { + return this.filters.filter(({ type }) => type === 'select') + }, + + customs() { + return this.filters.filter(({ type }) => type === 'custom') + }, + + labels() { + return this.filters.reduce((acc, f) => { + let labels = [] + + if ( + (f.type === 'checkboxes' || + f.type === 'select' || + f.type === 'autocomplete') && + f.value.length + ) { + labels = f.value.map(v => { + const element = f.elements.find(e => e.id === v) + + return { + id: f.id, + name: f.name, + value: v, + valueName: element && element.nom + } + }) + } else if (f.type === 'input' && f.value) { + labels = [{ id: f.id, name: f.name, value: f.value }] + } else if ( + f.type === 'custom' && + f.value && + f.value.length && + f.labelFormat + ) { + labels = f.labelFormat(f) + } + + if (labels.length) { + acc = acc.concat(labels) + } + + return acc + }, []) + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + keyup(e) { + if ((e.which || e.keyCode) === 13 && this.opened && !this.selectOpened) { + this.validate() + } + }, + + inputsErase() { + this.inputs.forEach(filter => { + filter.value = '' + }) + }, + + validate() { + this.$emit('validate') + }, + + toggle() { + this.$emit('toggle') + }, + + labelRemove(label) { + if (!this.opened) { + const filter = this.filters.find(({ id }) => id === label.id) + + if (Array.isArray(filter.value)) { + if ( + filter.type === 'checkboxes' || + filter.type === 'select' || + filter.type === 'custom' || + filter.type === 'autocomplete' + ) { + const index = filter.value.indexOf(label.value) + if (index > -1) { + filter.value.splice(index, 1) + } + } + } else { + filter.value = '' + } + + this.validate() + } + }, + + labelsReset() { + this.filters.forEach(f => { + if (Array.isArray(f.value)) { + f.value = [] + } else { + f.value = '' + } + }) + + if (!this.opened) { + this.validate() + } + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/help-tooltip.vue b/packages/ui/src/components/_ui/help-tooltip.vue new file mode 100644 index 000000000..0d8982f0d --- /dev/null +++ b/packages/ui/src/components/_ui/help-tooltip.vue @@ -0,0 +1,12 @@ +<template> + <div class="tooltip"> + <h6 class="tooltip-content"> + <slot /> + </h6> + <i class="icon-24 icon-help" /> + </div> +</template> + +<script> +export default {} +</script> diff --git a/packages/ui/src/components/_ui/input-autocomplete.vue b/packages/ui/src/components/_ui/input-autocomplete.vue new file mode 100644 index 000000000..833b4a910 --- /dev/null +++ b/packages/ui/src/components/_ui/input-autocomplete.vue @@ -0,0 +1,158 @@ +<template> + <select ref="select" :multiple="isMultiple" /> +</template> + +<script> +import Choices from 'choices.js' + +export default { + props: { + options: { + type: Array, + required: true, + default: () => [] + }, + selected: { + type: Array, + default: () => [] + }, + maxItems: { + type: Number, + default: -1 + }, + labelProp: { + type: String, + default: 'label' + }, + valueProp: { + type: String, + default: 'value' + }, + optionsDisabled: { + type: Array, + default: () => [] + }, + placeholder: { + type: String, + default: '' + }, + removeItemButton: { + type: Boolean, + default: true + } + }, + emits: ['update:selected', 'opened', 'search'], + + data() { + return { + autocompleter: null + } + }, + + computed: { + isMultiple() { + return this.maxItems === -1 || this.maxItems > 1 || null + } + }, + + watch: { + optionsDisabled: { + deep: true, + handler() { + this.optionsSet() + } + }, + options: { + deep: true, + handler() { + this.optionsSet() + } + }, + selected: { + handler() { + this.autocompleter.removeActiveItems() + this.selected.forEach(choice => + this.autocompleter.setChoiceByValue(choice) + ) + } + } + }, + + mounted() { + this.autocompleter = new Choices(this.$refs.select, { + searchResultLimit: 100, + maxItemCount: this.maxItems, + shouldSort: false, + removeItemButton: this.removeItemButton, + loadingText: 'Chargement...', + noResultsText: 'Aucun résultat', + noChoicesText: 'Veuillez saisir votre recherche', + itemSelectText: 'Choisir', + addItemText: value => { + return `Appuyez sur Entrée pour ajouter <b>"${value}"</b>` + }, + maxItemText: maxItemCount => { + return `${maxItemCount} choix maximum` + } + }) + this.autocompleter.passedElement.element.addEventListener('change', () => { + this.$emit('update:selected', this.autocompleter.getValue(true)) + }) + this.autocompleter.passedElement.element.addEventListener( + 'showDropdown', + () => { + this.$emit('opened', true) + } + ) + this.autocompleter.passedElement.element.addEventListener( + 'hideDropdown', + () => { + this.$emit('opened', false) + } + ) + this.autocompleter.passedElement.element.addEventListener('search', e => { + this.$emit('search', e.detail.value) + }) + + this.$nextTick().then(() => this.optionsSet()) + }, + + unmounted: function () { + this.autocompleter.destroy() + }, + + methods: { + optionsSet() { + if (this.options.length && this.autocompleter) { + const newOptions = [] + + if (this.placeholder) { + newOptions.push({ + [this.valueProp]: '', + [this.labelProp]: this.placeholder, + selected: !this.selected || !this.selected.length, + disabled: true, + placeholder: true + }) + } + newOptions.push( + ...this.options.map(o => ({ + ...o, + selected: this.selected.includes(o[this.valueProp]), + disabled: this.optionsDisabled + .map(o => o[this.valueProp]) + .includes(o[this.valueProp]) + })) + ) + this.autocompleter.clearStore() + this.autocompleter.setChoices( + newOptions, + this.valueProp, + this.labelProp, + false + ) + } + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/input-date.vue b/packages/ui/src/components/_ui/input-date.vue new file mode 100644 index 000000000..638ba7b9f --- /dev/null +++ b/packages/ui/src/components/_ui/input-date.vue @@ -0,0 +1,150 @@ +<template> + <input + v-if="modern" + :value="modelValue" + type="date" + :class="padding" + @change="$emit('update:modelValue', $event.target.value)" + /> + <div v-else class="blobs-mini"> + <div class="blob-mini-1-3"> + <input + v-model.number="dayId" + type="number" + min="1" + :max="daysMax" + placeholder="jour" + class="text-right" + :class="padding" + @change="update" + /> + </div> + <div class="blob-mini-1-3"> + <select + v-model.number="monthId" + :class="padding" + class="mr-s" + @change="update" + > + <option :value="null" disabled hidden>mois</option> + <option v-for="month in months" :key="month.id" :value="month.id"> + {{ monthNames[month.id - 1] }} + </option> + </select> + </div> + <div class="blob-mini-1-3"> + <input + v-model.number="yearId" + type="number" + :min="yearMin" + :max="yearMax" + placeholder="année" + class="text-right" + :class="padding" + @change="update" + /> + </div> + </div> +</template> + +<script> +export default { + props: { + modelValue: { type: String, default: '' }, + monthNames: { + type: Array, + default: () => [ + 'janvier', + 'février', + 'mars', + 'avril', + 'mai', + 'juin', + 'juillet', + 'aout', + 'septembre', + 'octobre', + 'novembre', + 'décembre' + ] + }, + padding: { type: String, default: 'p-s' } + }, + + emits: ['update:modelValue'], + + data() { + return { + modern: false, // uses browser default input type="date" + months: [ + { id: 1, days: 31 }, + { id: 2, days: 29 }, + { id: 3, days: 31 }, + { id: 4, days: 30 }, + { id: 5, days: 31 }, + { id: 6, days: 30 }, + { id: 7, days: 31 }, + { id: 8, days: 31 }, + { id: 9, days: 30 }, + { id: 10, days: 31 }, + { id: 11, days: 30 }, + { id: 12, days: 31 } + ], + yearId: null, + monthId: null, + dayId: null, + yearMin: 1750, + yearMax: 2099 + } + }, + + computed: { + daysMax() { + return this.monthId + ? this.months.find(m => m.id === this.monthId).days + : 31 + } + }, + + created() { + if (this.modelValue) { + const ids = this.modelValue.split('-') + this.yearId = Number(ids[0]) + this.monthId = Number(ids[1]) + this.dayId = Number(ids[2]) + } + }, + + methods: { + update() { + let date + + if (this.dayId < 1) { + this.dayId = null + } + + if (this.dayId > this.dayMax) { + this.dayId = this.dayMax + } + + if (this.yearId && this.yearId < this.yearMin) { + this.yearId = this.yearMin + } + + if (this.yearId && this.yearId > this.yearMax) { + this.yearId = this.yearMax + } + + if (this.monthId && this.dayId && this.yearId) { + date = `${this.yearId}-${this.monthId + .toString() + .padStart(2, '0')}-${this.dayId.toString().padStart(2, '0')}` + } else { + date = '' + } + + this.$emit('update:modelValue', date) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/input-file.vue b/packages/ui/src/components/_ui/input-file.vue new file mode 100644 index 000000000..9385228e8 --- /dev/null +++ b/packages/ui/src/components/_ui/input-file.vue @@ -0,0 +1,26 @@ +<template> + <label v-bind="$attrs"> + Choisir un fichier… + <input + type="file" + class="p-xs mb-0" + :accept="accept" + @change="$emit('change', $event)" + /> + </label> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' + +export default defineComponent({ + props: { + accept: { + type: String, + default: '' + } + }, + + emits: ['change'] +}) +</script> diff --git a/packages/ui/src/components/_ui/input-number.vue b/packages/ui/src/components/_ui/input-number.vue new file mode 100644 index 000000000..de2fa4829 --- /dev/null +++ b/packages/ui/src/components/_ui/input-number.vue @@ -0,0 +1,47 @@ +<template> + <input + :value="valueFormatted" + type="text" + pattern="([0-9]{1,3}[\s]?)*([.,][0-9]*)?" + class="p-s text-right" + @blur="textToNumberFormat($event.target)" + /> +</template> + +<script> +import { textNumberFormat, textToNumberFormat } from '../../utils' +import numberFormat from '../../utils/number-format' + +export default { + props: { + modelValue: { type: Number, default: undefined }, + negative: { type: Boolean, default: false }, + integer: { type: Boolean, default: false } + }, + + emits: ['update:modelValue'], + + computed: { + valueFormatted() { + if (!this.modelValue) return this.modelValue + + if (this.integer) return numberFormat(Math.floor(this.modelValue)) + + return numberFormat(this.modelValue) + } + }, + + methods: { + textToNumberFormat(target) { + target.value = textNumberFormat(target.value, { + negative: this.negative, + integer: this.integer + }) + + const number = textToNumberFormat(target.value) + + this.$emit('update:modelValue', number) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/list.vue b/packages/ui/src/components/_ui/list.vue new file mode 100644 index 000000000..8340d2140 --- /dev/null +++ b/packages/ui/src/components/_ui/list.vue @@ -0,0 +1,22 @@ +<template> + <ul class="list-prefix"> + <li v-for="element in elements" :key="element" :class="{ h6: mini }"> + {{ element }} + </li> + </ul> +</template> + +<script> +export default { + props: { + elements: { + type: Array, + default: () => [] + }, + mini: { + type: Boolean, + default: false + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/loader.vue b/packages/ui/src/components/_ui/loader.vue new file mode 100644 index 000000000..7f0be31a2 --- /dev/null +++ b/packages/ui/src/components/_ui/loader.vue @@ -0,0 +1,7 @@ +<template> + <div class="mb">Chargement…</div> +</template> + +<script> +export default {} +</script> diff --git a/packages/ui/src/components/_ui/messages.vue b/packages/ui/src/components/_ui/messages.vue new file mode 100644 index 000000000..f9e0432aa --- /dev/null +++ b/packages/ui/src/components/_ui/messages.vue @@ -0,0 +1,22 @@ +<template> + <TransitionGroup name="slide-bottom" class="list-sans mb-0" tag="ul"> + <li + v-for="(message, index) in messages" + :key="index" + class="mb p-s color-bg" + :class="`bg-${message.type}`" + > + <span class="cap-first"> + {{ message.value }} + </span> + </li> + </TransitionGroup> +</template> + +<script> +export default { + props: { + messages: { type: Array, default: () => [] } + } +} +</script> diff --git a/packages/ui/src/components/_ui/page.vue b/packages/ui/src/components/_ui/page.vue new file mode 100644 index 000000000..cebd66fce --- /dev/null +++ b/packages/ui/src/components/_ui/page.vue @@ -0,0 +1,37 @@ +<template> + <div class="page relative"> + <slot name="banner" /> + + <Transition name="slide" mode="out-in"> + <slot name="menu" /> + </Transition> + + <slot /> + + <div class="messages"> + <slot name="messages" /> + </div> + + <Transition name="fade"> + <div v-if="slotPopup" class="absolute full bg-inverse-alpha z-2" /> + </Transition> + + <Transition name="slide-top"> + <slot name="popup" /> + </Transition> + + <Transition name="fade"> + <slot name="loader" /> + </Transition> + </div> +</template> + +<script> +export default { + name: 'UiPage', + + props: { + slotPopup: { type: Boolean, default: false } + } +} +</script> diff --git a/packages/ui/src/components/_ui/pagination.vue b/packages/ui/src/components/_ui/pagination.vue new file mode 100644 index 000000000..ea2c455d7 --- /dev/null +++ b/packages/ui/src/components/_ui/pagination.vue @@ -0,0 +1,96 @@ +<template> + <ul v-if="total > 1" class="list-inline"> + <li class="mr-xs"> + <button + :disabled="active === 1" + class="btn-border rnd-xs px-m py-s" + @click="pageChange(1)" + > + « + </button> + </li> + <li class="mr-xs"> + <button + :disabled="active === 1" + class="btn-border rnd-xs px-m py-s" + @click="pageChange(active - 1)" + > + ‹ + </button> + </li> + <li v-if="active > delta + 1" class="mr-xs"> + <div class="px-m py-s">…</div> + </li> + <li + v-for="page in pages" + :key="page" + :class="{ active: active === page }" + class="mr-xs" + > + <button class="btn-border rnd-xs px-m py-s" @click="pageChange(page)"> + {{ page }} + </button> + </li> + <li v-if="active < total - delta" class="mr-xs"> + <div class="px-m py-s">…</div> + </li> + <li class="mr-xs"> + <button + :disabled="active === total" + class="btn-border rnd-xs px-m py-s" + @click="pageChange(active + 1)" + > + › + </button> + </li> + <li class="mr-xs"> + <button + :disabled="active === total" + class="btn-border rnd-xs px-m py-s" + @click="pageChange(total)" + > + » + </button> + </li> + </ul> +</template> + +<script> +export default { + name: 'UiPagination', + + props: { + total: { type: Number, default: 2 }, + active: { type: Number, default: 1 }, + visibles: { type: Number, default: 1 } + }, + + emits: ['page-update'], + + computed: { + delta() { + return Math.round((this.visibles - 1) / 2) + }, + pages() { + let filter + if (this.active <= this.delta) { + filter = n => n <= this.delta * 2 + 1 + } else if (this.active >= this.total - this.delta) { + filter = n => n >= this.total - this.delta * 2 + } else { + filter = n => + n >= this.active - this.delta && n <= this.active + this.delta + } + return Array.from(Array(this.total).keys()) + .map(n => n + 1) + .filter(filter) + } + }, + + methods: { + pageChange(page) { + this.$emit('page-update', page) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/pill-list.vue b/packages/ui/src/components/_ui/pill-list.vue new file mode 100644 index 000000000..478d5cf67 --- /dev/null +++ b/packages/ui/src/components/_ui/pill-list.vue @@ -0,0 +1,26 @@ +<template> + <ul class="list-inline"> + <li v-for="element in elements" :key="element" class="mr-xs mb-xs"> + <Pill :color="element.color" class="lh-2"> + {{ element }} + </Pill> + </li> + </ul> +</template> + +<script> +import Pill from './pill.vue' + +export default { + components: { + Pill + }, + + props: { + elements: { + type: Array, + default: () => [] + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/pill.stories.ts b/packages/ui/src/components/_ui/pill.stories.ts new file mode 100644 index 000000000..42df96f10 --- /dev/null +++ b/packages/ui/src/components/_ui/pill.stories.ts @@ -0,0 +1,30 @@ +import Pill from './pill.vue' +import { Story } from '@storybook/vue3' + +// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export +export default { + title: 'Ui/Pill', + component: Pill, + argTypes: { + color: String + } +} + +type Props = { + color?: string +} + +const Template: Story<Props> = (args: Props) => ({ + components: { Pill }, + setup() { + return { args } + }, + template: '<Pill v-bind="args">Hello</Pill>' +}) + +export const Primary = Template.bind({}) + +export const Error = Template.bind({}) +Error.args = { + color: 'bg-error' +} diff --git a/packages/ui/src/components/_ui/pill.vue b/packages/ui/src/components/_ui/pill.vue new file mode 100644 index 000000000..b52d63caa --- /dev/null +++ b/packages/ui/src/components/_ui/pill.vue @@ -0,0 +1,18 @@ +<template> + <span class="cap-first small bold"> + <span :class="`${color}`" class="color-bg pill py-xs px-s"> + <slot /> + </span> + </span> +</template> + +<script> +export default { + props: { + color: { + type: String, + default: 'bg-neutral' + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/popup.vue b/packages/ui/src/components/_ui/popup.vue new file mode 100644 index 000000000..be0d7467d --- /dev/null +++ b/packages/ui/src/components/_ui/popup.vue @@ -0,0 +1,29 @@ +<template> + <div class="popup fixed shadow full bg-bg"> + <div class="popup-header px-l pt-l"> + <slot name="header" /> + </div> + <div class="popup-content px-l pt"> + <slot /> + </div> + <div class="popup-footer px-l pt pb-l"> + <Messages id="cmn-ui-popup-messages" :messages="messages" /> + <slot name="footer" /> + </div> + </div> +</template> + +<script> +import Messages from './messages.vue' +export default { + name: 'UiSystemPopup', + + components: { + Messages + }, + + props: { + messages: { type: Array, default: () => [] } + } +} +</script> diff --git a/packages/ui/src/components/_ui/ranges.vue b/packages/ui/src/components/_ui/ranges.vue new file mode 100644 index 000000000..392b7f738 --- /dev/null +++ b/packages/ui/src/components/_ui/ranges.vue @@ -0,0 +1,64 @@ +<template> + <Accordion + class="mb" + :opened="opened" + :slot-default="true" + @close="close" + @toggle="toggle" + > + <template #title> Éléments </template> + <ul class="list-sans mt-m px-m"> + <li v-for="r in ranges" :key="r"> + <label> + <input + :checked="r === range" + :value="r" + type="radio" + class="mr-s" + @change="rangeUpdate" + /> + {{ r }} + </label> + </li> + </ul> + </Accordion> +</template> + +<script> +import Accordion from './accordion.vue' + +export default { + name: 'UiPagination', + + components: { + Accordion + }, + + props: { + ranges: { type: Array, default: () => [] }, + range: { type: Number, default: 200 } + }, + + emits: ['range-update'], + + data() { + return { + opened: false + } + }, + + methods: { + rangeUpdate(event) { + this.$emit('range-update', Number(event.target.value)) + }, + + close() { + this.opened = false + }, + + toggle() { + this.opened = !this.opened + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/ribbon.vue b/packages/ui/src/components/_ui/ribbon.vue new file mode 100644 index 000000000..8db49e29b --- /dev/null +++ b/packages/ui/src/components/_ui/ribbon.vue @@ -0,0 +1,24 @@ +<template> + <div class="ribbon pointer-none"> + <div class="relative full-y"> + <div class="absolute full ribbon-bloc"> + <span class="p-xs"> + {{ value }} + </span> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'UiSystemRibbon', + + props: { + value: { + type: String, + default: 'UI System' + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/table-client.vue b/packages/ui/src/components/_ui/table-client.vue new file mode 100644 index 000000000..cbcc78c2e --- /dev/null +++ b/packages/ui/src/components/_ui/table-client.vue @@ -0,0 +1,63 @@ +<template> + <Table + :column="column" + :columns="columns" + :order="order" + :rows="rowsPage" + @params-update="paramsUpdate" + /> +</template> + +<script> +import Table from './table.vue' + +export default { + name: 'UiTable', + + components: { Table }, + + props: { + column: { type: String, default: '' }, + columns: { type: Array, required: true }, + order: { type: String, default: 'asc' }, + rows: { type: Array, required: true }, + range: { type: Number, default: 200 }, + page: { type: Number, default: 1 } + }, + + emits: ['params-update'], + + computed: { + rowsPages() { + return this.rows + .slice() + .sort((a, b) => { + const aValue = a.columns[this.column].value.toString() + const bValue = b.columns[this.column].value.toString() + + return ( + aValue.localeCompare(bValue, 'fr') * (this.order === 'asc' ? 1 : -1) + ) + }) + .reduce((page, row, i) => { + const pageId = Math.ceil((i + 1) / this.range) - 1 + + page[pageId] = page[pageId] || [] + page[pageId].push(row) + + return page + }, []) + }, + + rowsPage() { + return this.rowsPages[this.page - 1] || [] + } + }, + + methods: { + paramsUpdate(params) { + this.$emit('params-update', params) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/table-pagination.vue b/packages/ui/src/components/_ui/table-pagination.vue new file mode 100644 index 000000000..712d88975 --- /dev/null +++ b/packages/ui/src/components/_ui/table-pagination.vue @@ -0,0 +1,84 @@ +<template> + <div> + <Table + :column="column" + :columns="columns" + :order="order" + :rows="rows" + class="width-full-p" + @params-update="update" + /> + + <div v-if="pagination" class="desktop-blobs"> + <div class="desktop-blob-3-4"> + <Pagination + :active="page" + :total="pages" + :visibles="5" + @page-update="pageUpdate" + /> + </div> + <div class="desktop-blob-1-4"> + <Ranges + v-if="total > 10" + :ranges="[10, 50, 200, 500]" + :range="range" + @range-update="rangeUpdate" + /> + </div> + </div> + </div> +</template> + +<script> +import Table from './table.vue' +import Pagination from './pagination.vue' +import Ranges from './ranges.vue' + +export default { + name: 'CaminoTable', + + components: { + Table, + Pagination, + Ranges + }, + + props: { + columns: { type: Array, required: true }, + rows: { type: Array, required: true }, + range: { type: Number, default: 200 }, + page: { type: Number, default: 1 }, + column: { type: String, default: '' }, + order: { type: String, default: 'asc' }, + total: { type: Number, required: true }, + pagination: { type: Boolean, default: true } + }, + + emits: ['params-update'], + + computed: { + pages() { + return Math.ceil(this.total / this.range) + } + }, + + methods: { + update(params) { + if (!Object.keys(params).includes('page') && this.pagination) { + Object.assign(params, { page: 1 }) + } + + this.$emit('params-update', params) + }, + + pageUpdate(page) { + this.update({ page }) + }, + + rangeUpdate(range) { + this.update({ range }) + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/table.vue b/packages/ui/src/components/_ui/table.vue new file mode 100644 index 000000000..d7f3d75f4 --- /dev/null +++ b/packages/ui/src/components/_ui/table.vue @@ -0,0 +1,106 @@ +<template> + <div> + <div class="overflow-scroll-x mb"> + <div class="table"> + <div class="tr"> + <div + v-for="col in columns" + :key="col.id" + class="th nowrap" + :class="col.class" + @click="sort(col.id)" + > + <button class="btn-menu full-x p-0"> + {{ col.name || (column === col.id ? '' : '–') }} + <i + v-if="column === col.id" + class="icon-24 right" + :class="{ + 'icon-chevron-b': order === 'asc', + 'icon-chevron-t': order === 'desc' + }" + /> + </button> + </div> + </div> + + <router-link + v-for="row in rows" + :key="row.id" + :to="row.link" + class="tr tr-link text-decoration-none" + > + <div + v-for="col in columns" + :key="col.id" + class="td" + :class="col.class" + > + <component + :is="row.columns[col.id].component" + v-if=" + row.columns[col.id] && + row.columns[col.id].component && + row.columns[col.id].slot + " + v-bind="row.columns[col.id].props" + :class="row.columns[col.id].class" + >{{ row.columns[col.id].value }}</component + > + <component + :is="row.columns[col.id].component" + v-else-if="row.columns[col.id] && row.columns[col.id].component" + v-bind="row.columns[col.id].props" + :class="row.columns[col.id].class" + /> + <span + v-else-if="row.columns[col.id] && row.columns[col.id].value" + :class="row.columns[col.id].class" + >{{ row.columns[col.id].value }}</span + > + </div> + </router-link> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'UiTable', + + props: { + rows: { type: Array, required: true }, + columns: { type: Array, required: true }, + order: { type: String, default: 'asc' }, + column: { type: String, default: '' } + }, + + emits: ['params-update'], + + watch: { + columns: 'columnInit' + }, + + methods: { + update(params) { + this.$emit('params-update', params) + }, + + sort(colId) { + if (this.column === colId) { + const order = this.order === 'asc' ? 'desc' : 'asc' + this.update({ order }) + } else { + this.update({ column: colId }) + } + }, + + columnInit() { + if (this.rows.length && !this.columns.some(c => c.id === this.column)) { + this.sort(this.columns[0].id) + } + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/tag-list.vue b/packages/ui/src/components/_ui/tag-list.vue new file mode 100644 index 000000000..ab110d6ce --- /dev/null +++ b/packages/ui/src/components/_ui/tag-list.vue @@ -0,0 +1,26 @@ +<template> + <ul class="list-inline"> + <li v-for="element in elements" :key="element" class="mr-xs mb-xs"> + <Tag :color="element.color" class="lh-2"> + {{ element }} + </Tag> + </li> + </ul> +</template> + +<script> +import Tag from './tag.vue' + +export default { + components: { + Tag + }, + + props: { + elements: { + type: Array, + default: () => [] + } + } +} +</script> diff --git a/packages/ui/src/components/_ui/tag.vue b/packages/ui/src/components/_ui/tag.vue new file mode 100644 index 000000000..dd7e23e37 --- /dev/null +++ b/packages/ui/src/components/_ui/tag.vue @@ -0,0 +1,30 @@ +<template> + <span class="bold cap-first small" + ><span :class="css" class="py-xxs px-xs rnd-xs color-bg box"><slot /></span + ></span> +</template> + +<script> +export default { + props: { + color: { type: String, default: 'bg-neutral' }, + mini: { type: Boolean, default: false } + }, + + computed: { + css() { + const css = { [this.color]: true } + + if (this.mini) { + css['py-xxs'] = true + css['px-xs'] = true + } else { + css['py-xs'] = true + css['px-s'] = true + } + + return css + } + } +} +</script> diff --git a/packages/ui/src/components/activite-edition.test.ts b/packages/ui/src/components/activite-edition.test.ts new file mode 100644 index 000000000..fcf0ec075 --- /dev/null +++ b/packages/ui/src/components/activite-edition.test.ts @@ -0,0 +1,111 @@ +import { mount } from '@vue/test-utils' +import ActiviteEdition from './activite-edition.vue' + +describe('ActiviteEdition', () => { + test("affiche une info-bulle d'aide si l'activite est de type 'grp' ou 'gra'", () => { + const mockRoute = { + params: { + id: 1 + } + } + const mockRouter = { + push: jest.fn() + } + + const msg = + 'Tous les champs doivent être remplis même s’il n’y a pas eu d’extraction. Le cas échéant, indiquer seulement 0, puis enregistrer.' + + const $store = { + state: { + loading: [], + user: { + element: {} + }, + titreActiviteEdition: { + element: { + type: { + id: 'grp', + nom: '', + description: 'desc', + documentsTypes: [] + }, + documents: [], + sections: [], + titre: { + slug: '' + }, + periode: { + nom: '' + }, + annee: '' + } + }, + popup: { + component: {} + } + }, + commit: jest.fn(), + dispatch: jest.fn() + } + + const document = { + addEventListener: jest.fn(), + removeEventListener: jest.fn() + } + + let wrapper = mount(ActiviteEdition, { + global: { + mocks: { + $store, + $route: mockRoute, + $router: mockRouter, + document + }, + stubs: { + RouterLink: true + } + } + }) + + expect(wrapper.vm.$store.state.titreActiviteEdition.element.type.id).toBe( + 'grp' + ) + expect(wrapper.vm.shouldDisplayHelp).toBe(true) + let tooltipContent = wrapper.find('.tooltip-content') + expect(tooltipContent.exists()).toBe(true) + expect(tooltipContent.text()).toContain(msg) + + const secondStore = { ...$store } + secondStore.state.titreActiviteEdition.element.type.id = 'gra' + expect(wrapper.vm.$store.state.titreActiviteEdition.element.type.id).toBe( + 'gra' + ) + expect(wrapper.vm.shouldDisplayHelp).toBe(true) + tooltipContent = wrapper.find('.tooltip-content') + expect(tooltipContent.exists()).toBe(true) + expect(tooltipContent.text()).toContain(msg) + + const thirdStore = { ...$store } + thirdStore.state.titreActiviteEdition.element.type.id = '' + + wrapper = mount(ActiviteEdition, { + global: { + mocks: { + $store: thirdStore, + $route: mockRoute, + $router: mockRouter, + document + }, + stubs: { + RouterLink: true + } + } + }) + + expect(wrapper.vm.$store.state.titreActiviteEdition.element.type.id).toBe( + '' + ) + expect(wrapper.vm.shouldDisplayHelp).toBe(false) + expect(wrapper.find('.tooltip-content').exists()).toBe(false) + }) +}) diff --git a/packages/ui/src/components/activite-edition.vue b/packages/ui/src/components/activite-edition.vue new file mode 100644 index 000000000..1b5e1197a --- /dev/null +++ b/packages/ui/src/components/activite-edition.vue @@ -0,0 +1,185 @@ +<template> + <h2>Activité</h2> + <Loader v-if="!loaded" /> + <div v-else> + <h6> + <router-link + :to="{ name: 'titre', params: { id: activite.titre.slug } }" + class="cap-first" + > + {{ activite.titre.nom }} + </router-link> + </h6> + <h5> + {{ dateFormat(activite.date) }} | + <span class="cap-first" + ><span v-if="activite.periode && activite.periode.nom" + >{{ activite.periode.nom }} + </span> + {{ activite.annee }}</span + > + </h5> + + <div class="flex"> + <h3 class="mb-s"> + <span class="cap-first">{{ activite.type.nom }}</span> + </h3> + + <HelpTooltip v-if="shouldDisplayHelp" class="ml-m"> + Tous les champs doivent être remplis même s’il n’y a pas eu + d’extraction. Le cas échéant, indiquer seulement 0, puis enregistrer. + </HelpTooltip> + </div> + + <!-- eslint-disable vue/no-v-html --> + <div + v-if="activite.type.description" + class="h6" + v-html="activite.type.description" + /> + + <div class="p-s bg-info color-bg mb"> + Besoin d'aide pour remplir ce rapport ? + <router-link + to="/contacts" + target="_blank" + class="p-s bg-info color-bg mb" + >Contactez-nous + </router-link> + </div> + + <SectionsEdit + :contenu="activite.contenu" + :sections="activite.sections" + @contenu-update="activite.contenu = $event" + /> + + <DocumentsEdit + v-model:documents="activite.documents" + :add-action="{ name: 'titreActiviteEdition/documentAdd' }" + :remove-action="{ name: 'titreActiviteEdition/documentRemove' }" + repertoire="activites" + document-popup-title="documentPopupTitle" + :parent-type-id="activite.type.id" + :documents-types="activite.type.documentsTypes" + /> + + <div class="tablet-blobs mb"> + <div class="tablet-blob-1-3" /> + <div class="tablet-blob-2-3"> + <button + id="cmn-etape-edit-button-enregistrer" + ref="save-button" + class="btn btn-primary" + @click="save" + > + Enregistrer + </button> + </div> + </div> + </div> +</template> + +<script> +import { dateFormat } from '@/utils' +import Loader from './_ui/loader.vue' +import HelpTooltip from './_ui/help-tooltip.vue' +import SectionsEdit from './_common/sections-edit.vue' +import DocumentsEdit from './document/multi-edit.vue' + +export default { + components: { Loader, SectionsEdit, DocumentsEdit, HelpTooltip }, + + data() { + return { + events: { saveKeyUp: true } + } + }, + + computed: { + loaded() { + return !this.$store.state.loading.includes('activiteEditionInit') + }, + + user() { + return this.$store.state.user.element + }, + + activiteId() { + return this.$route.params.id + }, + + activite() { + return this.$store.state.titreActiviteEdition.element + }, + + shouldDisplayHelp() { + return ['grp', 'gra'].includes(this.activite.type.id) + }, + + loading() { + return false + }, + + isPopupOpen() { + return !!this.$store.state.popup.component + } + }, + + watch: { + user: 'init' + }, + + async created() { + await this.init() + + document.addEventListener('keyup', this.keyUp) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyUp) + }, + + unmounted() { + this.$store.commit('titreActiviteEdition/reset') + }, + + methods: { + async init() { + await this.$store.dispatch('titreActiviteEdition/init', this.activiteId) + }, + + async save() { + await this.$store.dispatch('titreActiviteEdition/update', this.activite) + + this.eventTrack({ + categorie: 'activite', + action: 'activite-enregistrer', + nom: this.activite.nom + }) + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + }, + + keyUp(e) { + if ( + (e.which || e.keyCode) === 13 && + this.events.saveKeyUp && + !this.isPopupOpen && + !this.loading + ) { + this.$refs['save-button'].focus() + this.save() + } + }, + + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/activite.vue b/packages/ui/src/components/activite.vue new file mode 100644 index 000000000..4a5aa4e77 --- /dev/null +++ b/packages/ui/src/components/activite.vue @@ -0,0 +1,73 @@ +<template> + <h2>Activité</h2> + <Loader v-if="!loaded" /> + <div v-else> + <h6> + <router-link + :to="{ name: 'titre', params: { id: activite.titre.slug } }" + class="cap-first" + > + {{ activite.titre.nom }} + </router-link> + </h6> + + <Preview + :key="activite.id" + :activite="activite" + :route="route" + :initial-opened="true" + class="mb" + /> + </div> +</template> + +<script> +import Loader from './_ui/loader.vue' +import Preview from './activite/preview.vue' + +export default { + components: { Loader, Preview }, + + computed: { + activite() { + return this.$store.state.titreActivite.element + }, + + user() { + return this.$store.state.user.element + }, + + loaded() { + return !!this.activite + }, + + route() { + return { name: 'titreActivite', id: this.activite.slug } + } + }, + + watch: { + '$route.params.id': function (id) { + if (this.$route.name === 'activite' && id) { + this.get() + } + }, + + user: 'get' + }, + + created() { + this.get() + }, + + beforeUnmount() { + this.$store.commit('titreActivite/reset') + }, + + methods: { + async get() { + await this.$store.dispatch('titreActivite/get', this.$route.params.id) + } + } +} +</script> diff --git a/packages/ui/src/components/activite/button.vue b/packages/ui/src/components/activite/button.vue new file mode 100644 index 000000000..98ed1709c --- /dev/null +++ b/packages/ui/src/components/activite/button.vue @@ -0,0 +1,72 @@ +<template> + <button + class="cmn-activite-btn-remplir btn small flex py-s px-m rnd-0" + :class="{ 'btn-primary': activite.statut.id !== 'enc' && buttonText }" + @click="activiteEditPopupOpen" + > + <div v-if="buttonText" class="my-xxs"> + {{ buttonText }} + </div> + <i v-else class="icon-24 icon-pencil" /> + </button> + <button + v-if="activite.statut.id === 'enc'" + class="cmn-activite-btn-depose btn btn-primary small flex rnd-0" + :disabled="!activite.deposable" + :class="{ disabled: !activite.deposable }" + @click="activiteDepotPopupOpen" + > + <span class="mt-xxs mb-xxs">Déposer…</span> + </button> +</template> + +<script> +import DeposePopup from './depose-popup.vue' + +export default { + props: { + activite: { type: Object, default: () => ({}) }, + route: { type: Object, required: true } + }, + + computed: { + buttonText() { + if (this.activite.deposable || this.activite.statut.id === 'dep') { + return null + } + return this.activite.statut.id === 'abs' ? 'Remplir…' : 'Compléter…' + } + }, + + methods: { + activiteDepotPopupOpen() { + this.$store.commit('popupOpen', { + component: DeposePopup, + props: { + activite: this.activite, + route: this.route + } + }) + + this.eventTrack({ + categorie: 'titre-activite', + action: 'titre-activite_depot', + nom: this.$route.params.id + }) + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + }, + + activiteEditPopupOpen() { + this.$router.push({ + name: 'activite-edition', + params: { id: this.activite.slug } + }) + } + } +} +</script> diff --git a/packages/ui/src/components/activite/depose-popup.vue b/packages/ui/src/components/activite/depose-popup.vue new file mode 100644 index 000000000..f584abbae --- /dev/null +++ b/packages/ui/src/components/activite/depose-popup.vue @@ -0,0 +1,92 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Dépôt d’une activité</h2> + </template> + + <p class="bold">Souhaitez vous déposer cette activité ?</p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + id="cmn-etape-remove-popup-button-supprimer" + class="btn btn-primary" + @click="depose" + > + Déposer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Dépôt en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + components: { + Popup + }, + + props: { + activite: { type: Object, required: true }, + route: { type: Object, required: true } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async depose() { + await this.$store.dispatch('titreActivite/depose', { + id: this.activite.id, + route: this.route + }) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + } + } +} +</script> diff --git a/packages/ui/src/components/activite/preview.test.ts b/packages/ui/src/components/activite/preview.test.ts new file mode 100644 index 000000000..ec3e1652a --- /dev/null +++ b/packages/ui/src/components/activite/preview.test.ts @@ -0,0 +1,124 @@ +import { mount } from '@vue/test-utils' +import Preview from './preview.vue' + +describe('Activite > Preview', () => { + const activite = { + date: '2018-01-01', + dateSaisie: '2018-01-01', + periode: { + nom: 'periode' + }, + annee: '2021', + type: { + id: 'gra' + }, + statut: { + id: 'enc', + nom: 'en construction', + couleur: 'warning' + }, + deposable: true, + sections: [{ id: 'id', elements: [] }] + } + + test("si l'activite est en construction et déposable, de type 'grp' ou 'gra', affiche une info-bulle d'aide", () => { + // En construction, GRA, deposable : OK + let wrapper = mount(Preview, { + props: { + activite, + route: { + name: 'name' + }, + initialOpened: false + } + }) + + expect(wrapper.props('activite').statut.id).toBe('enc') + expect(wrapper.props('activite').type.id).toBe('gra') + expect(wrapper.props('activite').deposable).toBe(true) + let tooltip = wrapper.find('.tooltip-content') + expect(tooltip.exists()).toBe(true) + expect(tooltip.text()).toContain( + 'Si votre déclaration est complète, cliquez sur déposer. Cliquez sur le crayon pour modifier.' + ) + + // En construction, GRP, deposable : OK + wrapper = mount(Preview, { + props: { + activite: { ...activite, type: { id: 'grp' } }, + route: { + name: 'name' + }, + initialOpened: false + } + }) + expect(wrapper.props('activite').statut.id).toBe('enc') + expect(wrapper.props('activite').type.id).toBe('grp') + expect(wrapper.props('activite').deposable).toBe(true) + tooltip = wrapper.find('.tooltip-content') + expect(tooltip.exists()).toBe(true) + expect(tooltip.text()).toContain( + 'Si votre déclaration est complète, cliquez sur déposer. Cliquez sur le crayon pour modifier.' + ) + + // Autre statut, GRA, deposable : KO + wrapper = mount(Preview, { + props: { + activite: { ...activite, statut: { id: 'foo' } }, + route: { + name: 'name' + }, + initialOpened: false + } + }) + expect(wrapper.props('activite').statut.id).not.toBe('enc') + expect(wrapper.props('activite').type.id).toBe('gra') + expect(wrapper.props('activite').deposable).toBe(true) + expect(wrapper.find('.tooltip-content').exists()).toBe(false) + + // En construction, GRA, non déposable (déposé) : KO + wrapper = mount(Preview, { + props: { + activite: { ...activite, deposable: null }, + route: { + name: 'name' + }, + initialOpened: false + } + }) + expect(wrapper.props('activite').statut.id).toBe('enc') + expect(wrapper.props('activite').type.id).toBe('gra') + expect(wrapper.props('activite').deposable).toBeNull() + expect(wrapper.find('.tooltip-content').exists()).toBe(false) + + // En construction, GRA, non déposable (incomplet) : KO + wrapper = mount(Preview, { + props: { + activite: { ...activite, deposable: false }, + route: { + name: 'name' + }, + initialOpened: false + } + }) + expect(wrapper.props('activite').statut.id).toBe('enc') + expect(wrapper.props('activite').type.id).toBe('gra') + expect(wrapper.props('activite').deposable).toBe(false) + expect(wrapper.find('.tooltip-content').exists()).toBe(false) + + // En construction, autre type, déposable : KO + wrapper = mount(Preview, { + props: { + activite: { ...activite, type: { id: 'XXX' } }, + route: { + name: 'name' + }, + initialOpened: false + } + }) + expect(wrapper.props('activite').statut.id).toBe('enc') + expect(wrapper.props('activite').type.id).toBe('XXX') + expect(wrapper.props('activite').deposable).toBe(true) + expect(wrapper.find('.tooltip-content').exists()).toBe(false) + }) +}) diff --git a/packages/ui/src/components/activite/preview.vue b/packages/ui/src/components/activite/preview.vue new file mode 100644 index 000000000..339193ab6 --- /dev/null +++ b/packages/ui/src/components/activite/preview.vue @@ -0,0 +1,189 @@ +<template> + <Accordion + :opened="opened" + sub="true" + :slot-default="true" + :slot-buttons="true" + @close="close" + @toggle="toggle" + > + <template #title> + <h5> + {{ dateFormat(activite.date) }} | + <span class="cap-first" + ><span v-if="activite.periode && activite.periode.nom" + >{{ activite.periode.nom }} + </span> + {{ activite.annee }}</span + > + </h5> + <div class="flex"> + <h3 class="mb-s"> + <span class="cap-first">{{ activite.type.nom }}</span> + </h3> + <HelpTooltip v-if="shouldDisplayHelp" class="ml-m"> + Si votre déclaration est complète, cliquez sur déposer. Cliquez sur le + crayon pour modifier. + </HelpTooltip> + </div> + <Statut :color="activite.statut.couleur" :nom="statutNom" class="mb-xs" /> + </template> + <template #buttons> + <button + v-if="activite.suppression" + class="cmn-activite-btn-supprimer btn small py-s px-m flex mr-px" + title="supprimer l'activité'" + @click="activiteRemovePopupOpen" + > + <i class="icon-24 icon-trash" /> + </button> + <ActiviteButton + v-if="activite.modification" + :activite="activite" + :route="route" + /> + </template> + + <div> + <!-- eslint-disable vue/no-v-html --> + <div v-if="activite.type.description" class="border-b-s px-m pt-m"> + <div class="h6" v-html="activite.type.description" /> + </div> + <div v-if="activite.dateSaisie" class="border-b-s px-m pt-m"> + <h5> + Date de {{ activite.statut.id === 'dep' ? 'dépôt' : 'modification' }} + </h5> + <p>{{ dateFormat(activite.dateSaisie) }}</p> + </div> + + <Section + v-for="s in activite.sections" + :key="s.id" + class="border-b-s px-m pt-m" + :section="s" + :contenu="activite.contenu ? activite.contenu[s.id] : {}" + :date="activite.date" + /> + + <Documents + v-if="activite.documents && activite.documents.length" + :bouton-suppression="activite.modification" + :bouton-modification="activite.modification" + :route="route" + :documents="activite.documents" + :etiquette="activite.modification" + :parent-id="activite.id" + :parent-type-id="activite.type.id" + :title="documentPopupTitle" + repertoire="activites" + class="px-m" + /> + </div> + </Accordion> +</template> + +<script> +import ActiviteButton from './button.vue' +import Accordion from '../_ui/accordion.vue' +import HelpTooltip from '../_ui/help-tooltip.vue' +import Section from '../_common/section.vue' +import Statut from '../_common/statut.vue' + +import Documents from '../documents/list.vue' +import { dateFormat } from '@/utils' +import RemovePopup from './remove-popup.vue' + +export default { + components: { + ActiviteButton, + Accordion, + Section, + Statut, + Documents, + HelpTooltip + }, + + props: { + activite: { type: Object, required: true }, + route: { type: Object, required: true }, + initialOpened: { type: Boolean, default: false } + }, + + emits: ['popup'], + + data: () => ({ + opened: false + }), + + computed: { + documentNew() { + return { + titreActiviteId: this.activite.id, + entreprisesLecture: false, + publicLecture: false, + fichier: null, + fichierNouveau: null, + fichierTypeId: null, + typeId: '' + } + }, + + documentPopupTitle() { + return `${this.activite.type.nom} | ${this.activite.periode.nom} ${this.activite.annee}` + }, + + statutNom() { + return this.isEnConstruction && !this.isActiviteDeposable + ? `${this.activite.statut.nom} (incomplet)` + : this.activite.statut.nom + }, + + isEnConstruction() { + return this.activite.statut.id === 'enc' + }, + + isActiviteDeposable() { + return this.activite.deposable === true + }, + + shouldDisplayHelp() { + return ( + this.isEnConstruction && + this.isActiviteDeposable && + ['grp', 'gra'].includes(this.activite.type.id) + ) + } + }, + + created() { + this.opened = this.initialOpened + }, + + methods: { + close() { + this.opened = false + }, + + toggle() { + this.opened = !this.opened + }, + + activiteRemovePopupOpen() { + this.$store.commit('popupOpen', { + component: RemovePopup, + props: { + activiteId: this.activite.id, + typeNom: this.activite.type.nom, + annee: this.activite.annee, + periodeNom: this.activite.periode.nom, + route: this.route + } + }) + }, + + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/activite/remove-popup.vue b/packages/ui/src/components/activite/remove-popup.vue new file mode 100644 index 000000000..ba64a3e13 --- /dev/null +++ b/packages/ui/src/components/activite/remove-popup.vue @@ -0,0 +1,107 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h6> + <span class="cap-first"> {{ typeNom }} </span + ><span class="color-neutral"> | </span + ><span class="cap-first"> + {{ periodeNom }} + </span> + </h6> + <h2 class="cap-first">Suppression de l'activité</h2> + </div> + </template> + + <p class="bold"> + Souhaitez vous supprimer l'activité :<br /> + <span class="color-inverse cap-first">{{ typeNom }}</span> | + <span class="color-inverse">{{ periodeNom }} {{ annee }}</span> + ? + </p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button class="btn-flash rnd-xs p-s full-x" @click="remove"> + Supprimer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Suppression en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoTitreActiviteRemovePopup', + + components: { + Popup + }, + + props: { + activiteId: { type: String, required: true }, + typeNom: { type: String, required: true }, + periodeNom: { type: String, required: true }, + annee: { type: Number, required: true }, + route: { type: Object, required: true } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async remove() { + await this.$store.dispatch('titreActivite/remove', { + id: this.activiteId, + route: this.route + }) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + }, + + errorsRemove() { + // this.$store.commit('utilisateur/loginMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/activites.vue b/packages/ui/src/components/activites.vue new file mode 100644 index 000000000..d8f64a697 --- /dev/null +++ b/packages/ui/src/components/activites.vue @@ -0,0 +1,108 @@ +<template> + <liste + v-if="visible" + nom="activités" + :filtres="filtres" + :colonnes="colonnes" + :lignes="lignes" + :elements="activites" + :metas="metas" + :params="params" + :total="total" + :initialized="initialized" + @params-update="paramsUpdate" + > + <template v-if="activites.length" #downloads> + <Downloads + :formats="['csv', 'xlsx', 'ods']" + section="activites" + class="flex-right full-x" + /> + </template> + </liste> +</template> + +<script> +import Liste from './_common/liste.vue' +import Downloads from './_common/downloads.vue' + +import filtres from './activites/filtres' +import { activitesColonnes, activitesLignesBuild } from './activites/table' + +export default { + name: 'Activites', + + components: { Liste, Downloads }, + + data() { + return { + filtres, + colonnes: activitesColonnes, + visible: false + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + activites() { + return this.$store.state.titresActivites.elements + }, + + total() { + return this.$store.state.titresActivites.total + }, + + params() { + return this.$store.state.titresActivites.params + }, + + metas() { + return this.$store.state.titresActivites.metas + }, + + lignes() { + return activitesLignesBuild(this.activites) + }, + + initialized() { + return this.$store.state.titresActivites.initialized + } + }, + + watch: { + user: 'init', + + '$route.query': { + handler: function () { + this.$store.dispatch('titresActivites/routeUpdate') + } + } + }, + + async created() { + await this.init() + }, + + unmounted() { + this.$store.commit('titresActivites/reset') + }, + + methods: { + async init() { + if (!this.user || !this.user.sections || !this.user.sections.activites) { + await this.$store.dispatch('pageError') + } else { + this.visible = true + await this.$store.dispatch('titresActivites/init') + } + }, + + async paramsUpdate(options) { + await this.$store.dispatch(`titresActivites/paramsSet`, options) + } + } +} +</script> diff --git a/packages/ui/src/components/activites/filtres.js b/packages/ui/src/components/activites/filtres.js new file mode 100644 index 000000000..ae8beb756 --- /dev/null +++ b/packages/ui/src/components/activites/filtres.js @@ -0,0 +1,100 @@ +import FiltresStatuts from '../_common/filtres/statuts.vue' +import FiltresDomaines from '../_common/filtres/domaines.vue' +import FiltresTypes from '../_common/filtres/types.vue' +import { elementsFormat } from '../../utils/index' +import { markRaw } from '@vue/reactivity' + +const filtres = [ + { + id: 'titresNoms', + type: 'input', + value: '', + name: 'Noms de titre', + placeholder: '…' + }, + { + id: 'titresEntreprises', + type: 'input', + value: '', + name: 'Entreprises', + placeholder: 'Nom ou siret' + }, + { + id: 'titresSubstances', + type: 'input', + value: '', + name: 'Substances', + placeholder: 'Or, Argent, Ag, …' + }, + { + id: 'titresReferences', + type: 'input', + value: '', + name: 'Références', + placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …' + }, + { + id: 'titresTerritoires', + type: 'input', + value: '', + name: 'Territoires', + placeholder: 'Commune, département, région, …' + }, + { + id: 'titresDomainesIds', + name: 'Domaines', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresDomaines), + elementsFormat + }, + { + id: 'titresTypesIds', + name: 'Types de titre', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresTypes), + elementsFormat + }, + { + id: 'titresStatutsIds', + name: 'Statuts de titre', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresStatuts), + elementsFormat + }, + { + id: 'typesIds', + name: 'Types', + type: 'checkboxes', + value: [], + elements: [], + elementsFormat + }, + { + id: 'statutsIds', + name: 'Statuts', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresStatuts), + elementsFormat + }, + { + id: 'annees', + name: 'Années', + type: 'select', + value: [], + elements: [], + elementName: 'nom', + buttonAdd: 'Ajouter une année', + isNumber: true, + elementsFormat + } +] + +export default filtres diff --git a/packages/ui/src/components/activites/list.vue b/packages/ui/src/components/activites/list.vue new file mode 100644 index 000000000..e3e0ae2eb --- /dev/null +++ b/packages/ui/src/components/activites/list.vue @@ -0,0 +1,46 @@ +<template> + <div> + <div v-for="annee in activitesByYear" :key="annee.id"> + <h2>{{ annee.id }}</h2> + <Preview + v-for="activite in annee.activites" + :key="activite.id" + :activite="activite" + :route="{ name: 'titre', id: titreId }" + class="mb-s" + /> + <div class="line width-full my-xxl" /> + </div> + </div> +</template> + +<script> +import Preview from '../activite/preview.vue' + +export default { + components: { Preview }, + + props: { + activites: { type: Array, default: () => [] }, + titreId: { type: String, required: true } + }, + + computed: { + activitesByYear() { + return this.activites.reduce((annees, activite) => { + let annee = annees.find(annee => annee && annee.id === activite.annee) + if (!annee) { + annee = { + id: activite.annee, + activites: [] + } + annees.push(annee) + } + + annee.activites.push(activite) + return annees + }, []) + } + } +} +</script> diff --git a/packages/ui/src/components/activites/pills.vue b/packages/ui/src/components/activites/pills.vue new file mode 100644 index 000000000..1706a115c --- /dev/null +++ b/packages/ui/src/components/activites/pills.vue @@ -0,0 +1,22 @@ +<template> + <div class="mb--s"> + <span v-if="activitesAbsentes" class="mr-xs inline-block"> + <Statut color="error" :nom="activitesAbsentes.toString()" /> + </span> + <span v-if="activitesEnConstruction" class="mr-xs inline-block"> + <Statut color="warning" :nom="activitesEnConstruction.toString()" /> + </span> + </div> +</template> + +<script> +import Statut from '../_common/statut.vue' + +export default { + components: { Statut }, + props: { + activitesAbsentes: { type: Number, default: 0 }, + activitesEnConstruction: { type: Number, default: 0 } + } +} +</script> diff --git a/packages/ui/src/components/activites/table.js b/packages/ui/src/components/activites/table.js new file mode 100644 index 000000000..c01b212c4 --- /dev/null +++ b/packages/ui/src/components/activites/table.js @@ -0,0 +1,62 @@ +import { markRaw } from '@vue/reactivity' +import List from '../_ui/list.vue' +import Statut from '../_common/statut.vue' + +const activitesColonnes = [ + { + id: 'titre', + name: 'Titre' + }, + { + id: 'titulaires', + name: 'Titulaires', + class: ['min-width-10'] + }, + { + id: 'annee', + name: 'Année' + }, + { + id: 'periode', + name: 'Période' + }, + { + id: 'statut', + name: 'Statut', + class: ['min-width-5'] + } +] + +const activitesLignesBuild = activites => + activites.map(activite => { + const columns = { + titre: { value: activite.titre.nom }, + titulaires: { + component: markRaw(List), + props: { + elements: activite.titre.titulaires.map(({ nom }) => nom), + mini: true + }, + class: 'mb--xs', + value: activite.titre.titulaires.map(({ nom }) => nom).join(', ') + }, + annee: { value: activite.annee }, + periode: { value: activite.periode.nom }, + statut: { + component: markRaw(Statut), + props: { + color: activite.statut.couleur, + nom: activite.statut.nom + }, + value: activite.statut.nom + } + } + + return { + id: activite.id, + link: { name: 'activite', params: { id: activite.slug } }, + columns + } + }) + +export { activitesColonnes, activitesLignesBuild } diff --git a/packages/ui/src/components/administration.vue b/packages/ui/src/components/administration.vue new file mode 100644 index 000000000..8860773d2 --- /dev/null +++ b/packages/ui/src/components/administration.vue @@ -0,0 +1,308 @@ +<template> + <Loader v-if="!loaded" /> + <div v-else> + <h5>Administration</h5> + <h1> + {{ administration.abreviation }} + </h1> + <Accordion class="mb-xxl" :slot-sub="true" :slot-buttons="true"> + <template #title> + <span class="cap-first">{{ administration.nom }}</span> + </template> + + <template v-if="administration.modification" #buttons> + <button class="btn py-s px-m" @click="editPopupOpen"> + <i class="icon-24 icon-pencil" /> + </button> + </template> + + <template #sub> + <div class="px-m pt-m border-b-s"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Type</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + {{ administration.type.nom }} + </p> + </div> + </div> + + <div v-if="administration.service" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Service</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + {{ administration.service }} + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Adresse</h5> + </div> + <div class="tablet-blob-3-4"> + <p> + {{ administration.adresse1 }} + <span v-if="administration.adresse2" + ><br />{{ administration.adresse2 }}</span + > + <br />{{ administration.codePostal }} + {{ administration.commune }} + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Téléphone</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + <span v-if="administration.telephone">{{ + administration.telephone + }}</span> + <span v-else>–</span> + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Email</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + <a + v-if="administration.email" + :href="`mailto:${administration.email}`" + class="btn small bold py-xs px-s rnd" + > + {{ administration.email }} + </a> + <span v-else>–</span> + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Site</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + <a + v-if="administration.url" + :href="administration.url" + class="btn small bold py-xs px-s rnd" + > + {{ administration.url }} + </a> + <span v-else>–</span> + </p> + </div> + </div> + + <div v-if="administration.departement" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Département</h5> + </div> + <div class="tablet-blob-3-4"> + <p> + {{ administration.departement.nom }} + </p> + </div> + </div> + + <div v-if="administration.region" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Région</h5> + </div> + <div class="tablet-blob-3-4"> + <p> + {{ administration.region.nom }} + </p> + </div> + </div> + + <div + v-if=" + permissionsCheck(user, ['super']) && + (administration.region || administration.departement) + " + class="tablet-blobs" + > + <div class="tablet-blob-1-4" /> + <div class="tablet-blob-3-4"> + <p class="h6 mb"> + Un utilisateur d'une <b>administration locale</b> peut créer et + modifier le contenu des titres du territoire concerné. + </p> + </div> + </div> + </div> + </template> + </Accordion> + + <div v-if="utilisateurs && utilisateurs.length" class="mb-xxl"> + <div class="line-neutral width-full mb-xxl" /> + <h2>Utilisateurs</h2> + <div class="line width-full" /> + <Table + class="width-full-p" + :columns="utilisateursColonnes" + :rows="utilisateursLignes" + :utilisateurs="utilisateurs" + /> + </div> + + <div v-if="administration.emailsLecture"> + <div class="line-neutral width-full mb-xxl" /> + <h2>Emails</h2> + <AdministrationActiviteTypeEmail + :administration="administration" + :activites-types="activitesTypes" + @emailUpdate="activiteTypeEmailUpdate" + @emailDelete="activiteTypeEmailDelete" + /> + </div> + + <div v-if="permissionsCheck(user, ['super'])" class="mb-xxl"> + <div class="line-neutral width-full mb-xxl" /> + <h2>Permissions</h2> + + <AdministrationPermission :administration="administration" /> + </div> + </div> +</template> + +<script> +import Accordion from './_ui/accordion.vue' +import Loader from './_ui/loader.vue' +import Table from './_ui/table.vue' +import AdministrationEditPopup from './administration/edit-popup.vue' +import AdministrationPermission from './administration/permissions.vue' +import AdministrationActiviteTypeEmail from './administration/activites-types-emails.vue' + +import { + utilisateursColonnes, + utilisateursLignesBuild +} from './utilisateurs/table' +import { permissionsCheck } from '@/utils' + +export default { + components: { + Accordion, + Loader, + Table, + AdministrationPermission, + AdministrationActiviteTypeEmail + }, + + data() { + return { + utilisateursColonnes + } + }, + + computed: { + administration() { + return this.$store.state.administration.element + }, + + utilisateurs() { + return this.administration.utilisateurs + }, + + utilisateursLignes() { + return utilisateursLignesBuild(this.utilisateurs) + }, + + user() { + return this.$store.state.user.element + }, + + loaded() { + return !!this.administration + }, + + activitesTypes() { + return this.$store.state.administration.metas.activitesTypes + } + }, + + watch: { + '$route.params.id': function (id) { + if (this.$route.name === 'administration' && id) { + this.get() + } + }, + + user: 'get' + }, + + created() { + this.get() + }, + + beforeUnmount() { + this.$store.commit('administration/reset') + }, + + methods: { + async get() { + await this.$store.dispatch('administration/init') + await this.$store.dispatch('administration/get', this.$route.params.id) + }, + + editPopupOpen() { + const administration = { + id: this.administration.id, + typeId: this.administration.type.id, + nom: this.administration.nom, + abreviation: this.administration.abreviation, + service: this.administration.service, + url: this.administration.url, + email: this.administration.email, + telephone: this.administration.telephone, + adresse1: this.administration.adresse1, + adresse2: this.administration.adresse2, + codePostal: this.administration.codePostal, + commune: this.administration.commune, + cedex: this.administration.cedex, + departementId: + this.administration.departement && this.administration.departement.id, + regionId: this.administration.region && this.administration.region.id + } + + this.$store.commit('popupOpen', { + component: AdministrationEditPopup, + props: { administration } + }) + }, + + permissionsCheck(user, permissions) { + return permissionsCheck(user, permissions) + }, + + async activiteTypeEmailUpdate({ administrationId, activiteTypeId, email }) { + await this.$store.dispatch('administration/activiteTypeEmailUpdate', { + administrationId, + activiteTypeId, + email + }) + }, + + async activiteTypeEmailDelete({ administrationId, activiteTypeId, email }) { + await this.$store.dispatch('administration/activiteTypeEmailDelete', { + administrationId, + activiteTypeId, + email + }) + } + } +} +</script> diff --git a/packages/ui/src/components/administration/activites-types-emails.test.js b/packages/ui/src/components/administration/activites-types-emails.test.js new file mode 100644 index 000000000..68e5d1b62 --- /dev/null +++ b/packages/ui/src/components/administration/activites-types-emails.test.js @@ -0,0 +1,151 @@ +import { shallowMount } from '@vue/test-utils' +import ActivitesTypesEmails from './activites-types-emails.vue' +import ButtonPlus from '../_ui/button-plus.vue' + +describe('ActivitesTypesEmails', () => { + const administration = { + id: 'id', + email: 'foo@bar.co', + nom: 'nom', + emailsLecture: false, + emailsModification: false, + activitesTypesEmails: [ + { + id: 'grx', + nom: "rapport d'exploitation (autorisations M)", + email: 'foo@bar.co' + }, + { + id: 'pma', + nom: 'rapport d’intensité d’exploration', + email: 'toto@tata.com' + } + ] + } + + const activitesTypes = [ + { id: 'grx', nom: 'grx' }, + { id: 'pma', nom: 'pma' } + ] + + test('rend la section email visible seulement lorsque la propriété emailsLecture est true', () => { + let wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration + } + }) + + expect(wrapper.find('table').exists()).toBe(false) + + wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { ...administration, emailsLecture: true } + } + }) + + expect(wrapper.find('table').exists()).toBe(true) + }) + + test("rend la ligne d'insertion de données visible uniquement lorsque les propriétés emailsModification et emailsLecture sont true", () => { + let wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { + ...administration, + emailsLecture: true, + emailsModification: false + } + } + }) + + expect(wrapper.find('select').exists()).toBe(false) + expect(wrapper.find('input').exists()).toBe(false) + expect(wrapper.findComponent(ButtonPlus).exists()).toBe(false) + + wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { + ...administration, + emailsLecture: false, + emailsModification: true + } + } + }) + + expect(wrapper.find('select').exists()).toBe(false) + expect(wrapper.find('input').exists()).toBe(false) + expect(wrapper.findComponent(ButtonPlus).exists()).toBe(false) + + wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { + ...administration, + emailsLecture: true, + emailsModification: true + } + } + }) + + expect(wrapper.find('select').exists()).toBe(true) + expect(wrapper.find('input').exists()).toBe(true) + expect(wrapper.findComponent(ButtonPlus).exists()).toBe(true) + }) + + test('rend le bouton de suppression visible uniquement lorsque les propriétés emailsModification et emailsLecture sont true', () => { + let wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { + ...administration, + emailsLecture: true, + emailsModification: false + } + } + }) + + expect(wrapper.find('button > .icon-trash').exists()).toBe(false) + + wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { + ...administration, + emailsLecture: false, + emailsModification: true + } + } + }) + + expect(wrapper.find('button > .icon-trash').exists()).toBe(false) + + wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { + ...administration, + emailsLecture: true, + emailsModification: true + } + } + }) + + expect(wrapper.find('button > .icon-trash').exists()).toBe(true) + }) + + test('#activiteTypeLabelize retourne le nom et le type dans un texte commençant par une majuscule et le type en capital', () => { + const wrapper = shallowMount(ActivitesTypesEmails, { + props: { + activitesTypes, + administration: { + ...administration + } + } + }) + + expect(wrapper.vm.activiteTypeLabelize(activitesTypes[0])).toBe('Grx (GRX)') + }) +}) diff --git a/packages/ui/src/components/administration/activites-types-emails.vue b/packages/ui/src/components/administration/activites-types-emails.vue new file mode 100644 index 000000000..27ffed32d --- /dev/null +++ b/packages/ui/src/components/administration/activites-types-emails.vue @@ -0,0 +1,161 @@ +<template> + <div v-if="administration.emailsLecture" class="mb-xxl"> + <h3>Emails à notifier lors du dépôt d’un type d’activité</h3> + + <div class="tablet-blob-3-4"> + <div class="h6"> + <p> + Lors d’un dépôt d’une activité d’un type en particulier + <span v-if="!isFullyNotifiable"> + <strong>si la production annuelle est non nulle</strong></span + >, quels sont les emails à notifier ? + </p> + </div> + </div> + + <div class="line width-full" /> + + <div class="width-full-p"> + <div class="overflow-scroll-x mb"> + <table> + <tr> + <th>Type d'activité</th> + <th>Email</th> + <th v-if="administration.emailsModification" width="1">Actions</th> + </tr> + <tr v-if="administration.emailsModification"> + <td> + <select + v-model="activiteTypeNew.activiteTypeId" + class="py-xs px-s mr-s mt-xs" + > + <option + v-for="activiteType in activitesTypes" + :key="activiteType.id" + :value="activiteType.id" + > + {{ activiteTypeLabelize(activiteType) }} + </option> + </select> + </td> + <td> + <input + v-model="activiteTypeNew.email" + type="email" + class="py-xs mt-xs" + placeholder="Email" + @keyup.enter="activiteTypeEmailUpdate" + /> + </td> + <td> + <ButtonPlus + class="py-s px-m" + :disabled="!activiteTypeNewActive" + @click="activiteTypeEmailUpdate" + /> + </td> + </tr> + <tr + v-for="activiteType in administration.activitesTypesEmails" + :key="activiteType.id + activiteType.email" + > + <td> + <span class="cap-first"> + {{ activiteTypeLabelize(activiteType) }} + </span> + </td> + <td> + {{ activiteType.email }} + </td> + <td v-if="administration.emailsModification"> + <button + class="btn-border py-s px-m my--xs rnd-xs flex-right" + @click="activiteTypeEmailDelete(activiteType)" + > + <i class="icon-24 icon-trash" /> + </button> + </td> + </tr> + </table> + </div> + </div> + </div> +</template> + +<script lang="ts"> +import ButtonPlus from '../_ui/button-plus.vue' +import emailValidator from 'email-validator' +import { defineComponent } from 'vue' + +export default defineComponent({ + components: { + ButtonPlus + }, + + props: { + administration: { type: Object, required: true }, + activitesTypes: { type: Array, required: true, default: () => [] } + }, + + emits: ['emailUpdate', 'emailDelete'], + + data() { + return { + activiteTypeNew: { + activiteTypeId: null, + email: null + } + } + }, + + computed: { + activiteTypeNewActive() { + return ( + this.activiteTypeNew.activiteTypeId && + this.activiteTypeNew.email && + emailValidator.validate(this.activiteTypeNew.email) + ) + }, + + isFullyNotifiable() { + return ['dea', 'dre', 'min'].includes(this.administration?.type?.id) + } + }, + + methods: { + async activiteTypeEmailUpdate() { + if (!this.activiteTypeNewActive) return + const { email, activiteTypeId } = this.activiteTypeNew + this.$emit('emailUpdate', { + administrationId: this.administration.id, + activiteTypeId, + email + }) + this.activiteTypeNew.activiteTypeId = null + this.activiteTypeNew.email = null + }, + + async activiteTypeEmailDelete(activiteType: { + email: string + activiteTypeId: string + }) { + const { email, id } = activiteType + this.$emit('emailDelete', { + administrationId: this.administration.id, + activiteTypeId: id, + email + }) + }, + + activiteTypeLabelize(activiteType) { + return ( + activiteType.nom.charAt(0).toUpperCase() + + activiteType.nom.slice(1) + + ' (' + + activiteType.id.toUpperCase() + + ')' + ) + } + } +}) +</script> diff --git a/packages/ui/src/components/administration/edit-popup.vue b/packages/ui/src/components/administration/edit-popup.vue new file mode 100644 index 000000000..ba77b4cae --- /dev/null +++ b/packages/ui/src/components/administration/edit-popup.vue @@ -0,0 +1,360 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h2> + {{ creation ? "Ajout d'une " : "Modification de l'" }}administration + </h2> + </div> + </template> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nom</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.nom" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Type</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select v-model="administration.typeId" class="p-s"> + <option + v-for="type in types" + :key="type.id" + :value="type.id" + :disabled="administration.typeId === type.id" + > + {{ type.nom }} + </option> + </select> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Abréviation</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.abreviation" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Service</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.service" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Téléphone</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="administration.telephone" + type="text" + class="p-s" + placeholder="0100000000" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Adresse électronique</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="administration.email" + type="text" + class="p-s" + placeholder="email@domain.tld" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Site internet</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="administration.url" + type="text" + class="p-s" + placeholder="http://…" + /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Adresse 1</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.adresse1" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Adresse 2</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.adresse2" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Code Postal</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.codePostal" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Commune</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.commune" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Cedex</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="administration.cedex" type="text" class="p-s" /> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Administration locale</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <p class="mb-s"> + <label v-for="lien in liens" :key="lien.id" class="mr-s"> + <input + v-model="lienCurrent" + :name="lien.id" + :value="lien.id" + type="radio" + class="p-s" + /> + {{ lien.nom }} + </label> + </p> + + <p class="h6 italic mb-0"> + Un utilisateur d'une administration locale peut créer et modifier le + contenu des titres du territoire concerné. + </p> + </div> + </div> + + <div v-if="lienCurrent === 'departement'" class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Département</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select v-model="administration.departementId" class="p-s"> + <option + v-for="departement in departements" + :key="departement.id" + :value="departement.id" + :disabled="administration.departementId === departement.id" + > + {{ departement.nom }} + </option> + </select> + </div> + </div> + + <div v-if="lienCurrent === 'region'" class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Région</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select v-model="administration.regionId" class="p-s"> + <option + v-for="region in regions" + :key="region.id" + :value="region.id" + :disabled="administration.regionId === region.id" + > + {{ region.nom }} + </option> + </select> + </div> + </div> + + <template #footer> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button + v-if="!loading" + class="btn-border rnd-xs p-s full-x" + @click="cancel" + > + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + v-if="!loading" + ref="save-button" + class="btn btn-primary" + @click="save" + > + Enregistrer + </button> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </div> + </div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoAdministrationEditPopup', + + components: { + Popup + }, + + props: { + administration: { type: Object, default: () => ({}) }, + creation: { type: Boolean, default: false } + }, + + data() { + return { + liens: [ + { id: 'aucun', nom: 'Aucun' }, + { id: 'departement', nom: 'Département' }, + { id: 'region', nom: 'Région' } + ], + lienCurrent: 'aucun' + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + departements() { + return this.$store.state.administration.metas.departements + }, + + regions() { + return this.$store.state.administration.metas.regions + }, + + types() { + return this.$store.state.administration.metas.types + } + }, + + created() { + if (this.administration.regionId) { + this.lienCurrent = 'region' + } else if (this.administration.departementId) { + this.lienCurrent = 'departement' + } + + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + const administration = JSON.parse(JSON.stringify(this.administration)) + + if (this.lienCurrent === 'region') { + administration.departementId = null + } else if (this.lienCurrent === 'departement') { + administration.regionId = null + } else { + administration.departementId = null + administration.regionId = null + } + + await this.$store.dispatch('administration/update', administration) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.$refs['save-button'].focus() + this.save() + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/administration/permissions.vue b/packages/ui/src/components/administration/permissions.vue new file mode 100644 index 000000000..db5aa1226 --- /dev/null +++ b/packages/ui/src/components/administration/permissions.vue @@ -0,0 +1,1059 @@ +<template> + <div> + <div class="mb-xxl"> + <h3>Administration gestionnaire ou associée</h3> + + <div class="h6"> + <ul class="list-prefix"> + <li> + Un utilisateur d'une <b>administration gestionnaire</b> peut créer + et modifier les titres et leur contenu. + </li> + <li> + Un utilisateur d'une <b>administration associée</b> peut voir les + titres non-publics. Cette administration n'apparaît pas sur les + pages des titres. + </li> + </ul> + + <p>Accorde ces droits par domaine / type de titre.</p> + </div> + + <div class="line width-full" /> + <div class="width-full-p"> + <div class="overflow-scroll-x mb"> + <table> + <tr> + <th>Domaine</th> + <th>Type de titre</th> + <th>Gestionnaire</th> + <th>Associée</th> + <th /> + </tr> + <tr> + <td> + <select + v-model="titreTypeNew.domaineId" + class="py-xs px-s mr-s" + > + <option + v-for="domaine in domaines" + :key="domaine.id" + :value="domaine.id" + > + {{ domaine.id.toUpperCase() }} {{ domaine.nom }} + </option> + </select> + </td> + <td> + <select + v-model="titreTypeNew.titreTypeTypeId" + class="py-xs px-s mr-s" + :disabled="!titreTypeNew.domaineId" + > + <option + v-for="titreType in titreTypeNewTypes" + :key="titreType.id" + :value="titreType.type.id" + > + {{ titreType.type.nom }} + </option> + </select> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled="!titreTypeNew.titreTypeTypeId" + @click=" + titreTypeNew.gestionnaire = !titreTypeNew.gestionnaire + " + > + <i + v-if="titreTypeNew.gestionnaire" + class="icon-24 icon-check" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled="!titreTypeNew.titreTypeTypeId" + @click="titreTypeNew.associee = !titreTypeNew.associee" + > + <i v-if="titreTypeNew.associee" class="icon-24 icon-check" /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <ButtonPlus + :disabled="!titreTypeNewActive" + @click="titreTypeNewUpdate" + /> + </td> + </tr> + <tr + v-for="titreType in administration.titresTypes" + :key="titreType.id" + > + <td> + <CaminoDomaine + :domaine-id="titreType.domaine.id" + class="mt-s" + /> + </td> + <td> + <span class="small bold cap-first mt-s">{{ + titreType.type.nom + }}</span> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeUpdate( + titreType.id, + titreType.gestionnaire, + titreType.associee, + 'gestionnaire' + ) + " + > + <i v-if="titreType.gestionnaire" class="icon-24 icon-check" /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeUpdate( + titreType.id, + titreType.gestionnaire, + titreType.associee, + 'associee' + ) + " + > + <i v-if="titreType.associee" class="icon-24 icon-check" /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td /> + </tr> + </table> + </div> + </div> + </div> + + <div v-if="administration.type.id" class="mb-xxl"> + <h3>Restrictions de l'édition des titres, démarches et étapes</h3> + + <div class="h6"> + <p class="mb-s">Par défaut :</p> + <ul class="list-prefix mb-s"> + <li> + Un utilisateur d'une administration gestionnaire peut modifier les + titres, démarches et étapes. + </li> + <li> + Un utilisateur d'une administration locale peut modifier les + démarches et étapes. + </li> + </ul> + <p> + Restreint ces droits par domaine / type de titre / statut de titre. + </p> + </div> + + <div class="line width-full" /> + <div class="width-full-p"> + <div class="overflow-scroll-x mb"> + <table> + <tr> + <th>Domaine</th> + <th>Type de titre</th> + <th>Statut de titre</th> + <th>Titres</th> + <th>Démarches</th> + <th>Étapes</th> + <th /> + </tr> + + <tr> + <td> + <select + v-model="titreTypeTitreStatutNew.domaineId" + class="py-xs px-s mr-s" + > + <option + v-for="domaine in domaines" + :key="domaine.id" + :value="domaine.id" + > + {{ domaine.id.toUpperCase() }} {{ domaine.nom }} + </option> + </select> + </td> + <td> + <select + v-model="titreTypeTitreStatutNew.titreTypeTypeId" + class="py-xs px-s mr-s" + :disabled="!titreTypeTitreStatutNew.domaineId" + > + <option + v-for="titreType in titreTypeTitreStatutNewTypes" + :key="titreType.id" + :value="titreType.type.id" + > + {{ titreType.type.nom }} + </option> + </select> + </td> + <td> + <select + v-model="titreTypeTitreStatutNew.titreStatutId" + class="py-xs px-s mr-s" + > + <option + v-for="titreStatut in titresStatuts" + :key="titreStatut.id" + :value="titreStatut.id" + > + {{ titreStatut.nom }} + </option> + </select> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled=" + !titreTypeTitreStatutNew.titreTypeTypeId || + !titreTypeTitreStatutNew.titreStatutId + " + @click=" + titreTypeTitreStatutNew.titresModificationInterdit = + !titreTypeTitreStatutNew.titresModificationInterdit + " + > + <i + v-if="titreTypeTitreStatutNew.titresModificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled=" + !titreTypeTitreStatutNew.titreTypeTypeId || + !titreTypeTitreStatutNew.titreStatutId + " + @click=" + titreTypeTitreStatutNew.demarchesModificationInterdit = + !titreTypeTitreStatutNew.demarchesModificationInterdit + " + > + <i + v-if="titreTypeTitreStatutNew.demarchesModificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled=" + !titreTypeTitreStatutNew.titreTypeTypeId || + !titreTypeTitreStatutNew.titreStatutId + " + @click=" + titreTypeTitreStatutNew.etapesModificationInterdit = + !titreTypeTitreStatutNew.etapesModificationInterdit + " + > + <i + v-if="titreTypeTitreStatutNew.etapesModificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <ButtonPlus + :disabled="!titreTypeTitreStatutNewActive" + @click="titreTypeTitreStatutNewUpdate" + /> + </td> + </tr> + + <tr + v-for="ttts in administration.titresTypesTitresStatuts" + :key="`${ttts.titreType.id}-${ttts.titreStatut.id}`" + > + <td> + <CaminoDomaine + :domaine-id="ttts.titreType.domaine.id" + class="mt-s" + /> + </td> + <td> + <span class="small bold cap-first mt-s">{{ + ttts.titreType.type.nom + }}</span> + </td> + <td> + <Statut + :color="ttts.titreStatut.couleur" + :nom="ttts.titreStatut.nom" + class="mt-s" + /> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeTitreStatutUpdate( + ttts.titreType.id, + ttts.titreStatut.id, + ttts.titresModificationInterdit, + ttts.demarchesModificationInterdit, + ttts.etapesModificationInterdit, + 'titres' + ) + " + > + <i + v-if="ttts.titresModificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeTitreStatutUpdate( + ttts.titreType.id, + ttts.titreStatut.id, + ttts.titresModificationInterdit, + ttts.demarchesModificationInterdit, + ttts.etapesModificationInterdit, + 'demarches' + ) + " + > + <i + v-if="ttts.demarchesModificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeTitreStatutUpdate( + ttts.titreType.id, + ttts.titreStatut.id, + ttts.titresModificationInterdit, + ttts.demarchesModificationInterdit, + ttts.etapesModificationInterdit, + 'etapes' + ) + " + > + <i + v-if="ttts.etapesModificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td /> + </tr> + </table> + </div> + </div> + </div> + + <div v-if="administration.type.id" class="mb-xxl"> + <h3>Restrictions de la visibilité, édition et création des étapes</h3> + + <div class="h6"> + <p class="mb-s"> + Par défaut, un utilisateur d'une administration gestionnaire ou locale + peut voir, modifier et créer des étapes des titre. + </p> + <p>Restreint ces droits par domaine / type de titre / type d'étape.</p> + </div> + + <div class="line width-full" /> + <div class="width-full-p"> + <div class="overflow-scroll-x mb"> + <table> + <tr> + <th>Domaine</th> + <th>Type de titre</th> + <th>Type d'étape</th> + <th>Visibilité</th> + <th>Modification</th> + <th>Création</th> + <th /> + </tr> + + <tr> + <td> + <select + v-model="titreTypeEtapeTypeNew.domaineId" + class="py-xs px-s mr-s" + > + <option + v-for="domaine in domaines" + :key="domaine.id" + :value="domaine.id" + > + {{ domaine.id.toUpperCase() }} {{ domaine.nom }} + </option> + </select> + </td> + <td> + <select + v-model="titreTypeEtapeTypeNew.titreTypeTypeId" + class="py-xs px-s mr-s" + :disabled="!titreTypeEtapeTypeNew.domaineId" + > + <option + v-for="titreType in titreTypeEtapeTypeNewTypes" + :key="titreType.id" + :value="titreType.type.id" + > + {{ titreType.type.nom }} + </option> + </select> + </td> + <td> + <select + v-model="titreTypeEtapeTypeNew.etapeTypeId" + class="py-xs px-s mr-s" + > + <option + v-for="etapeType in etapesTypes" + :key="etapeType.id" + :value="etapeType.id" + > + {{ etapeType.nom }} + </option> + </select> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled=" + !titreTypeEtapeTypeNew.titreTypeTypeId || + !titreTypeEtapeTypeNew.etapeTypeId + " + @click=" + titreTypeEtapeTypeNew.lectureInterdit = + !titreTypeEtapeTypeNew.lectureInterdit + " + > + <i + v-if="titreTypeEtapeTypeNew.lectureInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled=" + !titreTypeEtapeTypeNew.titreTypeTypeId || + !titreTypeEtapeTypeNew.etapeTypeId + " + @click=" + titreTypeEtapeTypeNew.modificationInterdit = + !titreTypeEtapeTypeNew.modificationInterdit + " + > + <i + v-if="titreTypeEtapeTypeNew.modificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled=" + !titreTypeEtapeTypeNew.titreTypeTypeId || + !titreTypeEtapeTypeNew.etapeTypeId + " + @click=" + titreTypeEtapeTypeNew.creationInterdit = + !titreTypeEtapeTypeNew.creationInterdit + " + > + <i + v-if="titreTypeEtapeTypeNew.creationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <ButtonPlus + :disabled="!titreTypeEtapeTypeNewActive" + @click="titreTypeEtapeTypeNewUpdate" + /> + </td> + </tr> + + <tr + v-for="ttet in administration.titresTypesEtapesTypes" + :key="`${ttet.titreType.id}-${ttet.etapeType.id}`" + > + <td> + <CaminoDomaine + :domaine-id="ttet.titreType.domaine.id" + class="mt-s" + /> + </td> + <td> + <span class="small bold cap-first mt-s">{{ + ttet.titreType.type.nom + }}</span> + </td> + <td> + <span class="small bold cap-first mt-s">{{ + ttet.etapeType.nom + }}</span> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeEtapeTypeUpdate( + ttet.titreType.id, + ttet.etapeType.id, + ttet.lectureInterdit, + ttet.modificationInterdit, + ttet.creationInterdit, + 'lecture' + ) + " + > + <i v-if="ttet.lectureInterdit" class="icon-24 icon-cross" /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeEtapeTypeUpdate( + ttet.titreType.id, + ttet.etapeType.id, + ttet.lectureInterdit, + ttet.modificationInterdit, + ttet.creationInterdit, + 'modification' + ) + " + > + <i + v-if="ttet.modificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeEtapeTypeUpdate( + ttet.titreType.id, + ttet.etapeType.id, + ttet.lectureInterdit, + ttet.modificationInterdit, + ttet.creationInterdit, + 'creation' + ) + " + > + <i v-if="ttet.creationInterdit" class="icon-24 icon-cross" /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td /> + </tr> + </table> + </div> + </div> + </div> + + <div class="mb-xxl"> + <h3>Restriction de la visibilité et de l'édition des activités</h3> + + <div class="h6"> + <p class="mb-s"> + Par défaut, un utilisateur d'une administration gestionnaire ou locale + peut voir et modifier les activités des titres. + </p> + + <p>Restreint ces droits par type d'étape.</p> + </div> + + <div class="line width-full" /> + + <div class="width-full-p"> + <div class="overflow-scroll-x mb"> + <table> + <tr> + <th>Type d'activité</th> + <th>Visibilité</th> + <th>Modification</th> + <th /> + </tr> + <tr> + <td> + <select + v-model="activiteTypeNew.activiteTypeId" + class="py-xs px-s mr-s" + > + <option + v-for="activiteType in activitesTypes" + :key="activiteType.id" + :value="activiteType.id" + > + {{ activiteType.id.toUpperCase() }} {{ activiteType.nom }} + </option> + </select> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled="!activiteTypeNew.activiteTypeId" + @click=" + activiteTypeNew.lectureInterdit = + !activiteTypeNew.lectureInterdit + " + > + <i + v-if="activiteTypeNew.lectureInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled="!activiteTypeNew.activiteTypeId" + @click=" + activiteTypeNew.modificationInterdit = + !activiteTypeNew.modificationInterdit + " + > + <i + v-if="activiteTypeNew.modificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <ButtonPlus + :disabled="!activiteTypeNewActive" + @click="activiteTypeNewUpdate" + /> + </td> + </tr> + <tr + v-for="activiteType in administration.activitesTypes" + :key="activiteType.id" + > + <td> + <span class="cap-first" + >{{ activiteType.nom }} ({{ activiteType.id.toUpperCase() }}) + </span> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + activiteTypeUpdate( + activiteType.id, + activiteType.lectureInterdit, + activiteType.modificationInterdit, + 'lectureInterdit' + ) + " + > + <i + v-if="activiteType.lectureInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + activiteTypeUpdate( + activiteType.id, + activiteType.lectureInterdit, + activiteType.modificationInterdit, + 'modificationInterdit' + ) + " + > + <i + v-if="activiteType.modificationInterdit" + class="icon-24 icon-cross" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td /> + </tr> + </table> + </div> + </div> + </div> + </div> +</template> + +<script> +import CaminoDomaine from '../_common/domaine.vue' +import Statut from '../_common/statut.vue' +import ButtonPlus from '../_ui/button-plus.vue' + +export default { + components: { + CaminoDomaine, + Statut, + ButtonPlus + }, + + props: { + administration: { type: Object, required: true } + }, + + data() { + return { + titreTypeNew: { + domaineId: null, + titreTypeTypeId: null, + gestionnaire: false, + associee: false + }, + titreTypeTitreStatutNew: { + domaineId: null, + titreTypeTypeId: null, + titreStatutId: null, + titresModificationInterdit: false, + demarchesModificationInterdit: false, + etapesModificationInterdit: false + }, + titreTypeEtapeTypeNew: { + domaineId: null, + titreTypeTypeId: null, + etapeTypeId: null, + lectureInterdit: false, + modificationInterdit: false, + creationInterdit: false + }, + activiteTypeNew: { + activiteTypeId: null, + lectureInterdit: false, + modificationInterdit: false + } + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + domaines() { + return this.$store.state.administration.metas.domaines + }, + + titresStatuts() { + return this.$store.state.administration.metas.titresStatuts + }, + + etapesTypes() { + return this.$store.state.administration.metas.etapesTypes + }, + + activitesTypes() { + return this.$store.state.administration.metas.activitesTypes + }, + + loaded() { + return !!this.administration + }, + + titreTypeNewTypes() { + if (!this.titreTypeNew.domaineId) { + return [] + } + + const domaine = this.domaines.find( + d => d.id === this.titreTypeNew.domaineId + ) + + return domaine.titresTypes + }, + + titreTypeTitreStatutNewTypes() { + if (!this.titreTypeTitreStatutNew.domaineId) { + return [] + } + + const domaine = this.domaines.find( + d => d.id === this.titreTypeTitreStatutNew.domaineId + ) + + return domaine.titresTypes + }, + + titreTypeEtapeTypeNewTypes() { + if (!this.titreTypeEtapeTypeNew.domaineId) { + return [] + } + + const domaine = this.domaines.find( + d => d.id === this.titreTypeEtapeTypeNew.domaineId + ) + + return domaine.titresTypes + }, + + titreTypeNewActive() { + return ( + this.titreTypeNew.titreTypeTypeId && + this.titreTypeNew.domaineId && + (this.titreTypeNew.gestionnaire || this.titreTypeNew.associee) + ) + }, + + titreTypeTitreStatutNewActive() { + return ( + this.titreTypeTitreStatutNew.domaineId && + this.titreTypeTitreStatutNew.titreTypeTypeId && + this.titreTypeTitreStatutNew.titreStatutId && + (this.titreTypeTitreStatutNew.titresModificationInterdit || + this.titreTypeTitreStatutNew.demarchesModificationInterdit || + this.titreTypeTitreStatutNew.etapesModificationInterdit) + ) + }, + + titreTypeEtapeTypeNewActive() { + return ( + this.titreTypeEtapeTypeNew.domaineId && + this.titreTypeEtapeTypeNew.titreTypeTypeId && + this.titreTypeEtapeTypeNew.etapeTypeId && + (this.titreTypeEtapeTypeNew.lectureInterdit || + this.titreTypeEtapeTypeNew.modificationInterdit || + this.titreTypeEtapeTypeNew.creationInterdit) + ) + }, + + activiteTypeNewActive() { + return ( + this.activiteTypeNew.activiteTypeId && + (this.activiteTypeNew.lectureInterdit || + this.activiteTypeNew.modificationInterdit) + ) + } + }, + + created() { + this.get() + }, + + methods: { + async get() { + await this.$store.dispatch('administration/permissionsInit') + }, + + async titreTypeUpdate(titreTypeId, gestionnaire, associee, type) { + if (type === 'gestionnaire') { + gestionnaire = !gestionnaire + } else if (type === 'associee') { + associee = !associee + } + + await this.$store.dispatch('administration/titreTypeUpdate', { + administrationId: this.administration.id, + titreTypeId, + gestionnaire, + associee + }) + }, + + async titreTypeTitreStatutUpdate( + titreTypeId, + titreStatutId, + titresModificationInterdit, + demarchesModificationInterdit, + etapesModificationInterdit, + type + ) { + if (type === 'titres') { + titresModificationInterdit = !titresModificationInterdit + } else if (type === 'demarches') { + demarchesModificationInterdit = !demarchesModificationInterdit + } else if (type === 'etapes') { + etapesModificationInterdit = !etapesModificationInterdit + } + + await this.$store.dispatch('administration/titreTypeTitreStatutUpdate', { + administrationId: this.administration.id, + titreTypeId, + titreStatutId, + titresModificationInterdit, + demarchesModificationInterdit, + etapesModificationInterdit + }) + }, + + async titreTypeEtapeTypeUpdate( + titreTypeId, + etapeTypeId, + lectureInterdit, + modificationInterdit, + creationInterdit, + type + ) { + if (type === 'lecture') { + lectureInterdit = !lectureInterdit + } else if (type === 'modification') { + modificationInterdit = !modificationInterdit + } else if (type === 'creation') { + creationInterdit = !creationInterdit + } + + await this.$store.dispatch('administration/titresTypeEtapeTypeUpdate', { + administrationId: this.administration.id, + titreTypeId, + etapeTypeId, + lectureInterdit, + modificationInterdit, + creationInterdit + }) + }, + + async activiteTypeUpdate( + activiteTypeId, + lectureInterdit, + modificationInterdit, + type + ) { + if (type === 'lectureInterdit') { + lectureInterdit = !lectureInterdit + } else if (type === 'modificationInterdit') { + modificationInterdit = !modificationInterdit + } + + await this.$store.dispatch('administration/activiteTypeUpdate', { + administrationId: this.administration.id, + activiteTypeId, + lectureInterdit, + modificationInterdit + }) + }, + + titreTypeNewUpdate() { + if (this.titreTypeNewActive) { + this.titreTypeUpdate( + `${this.titreTypeNew.titreTypeTypeId}${this.titreTypeNew.domaineId}`, + this.titreTypeNew.gestionnaire, + this.titreTypeNew.associee + ) + + this.titreTypeNew = { + domaineId: null, + titreTypeTypeId: null, + gestionnaire: false, + associee: false + } + } + }, + + titreTypeTitreStatutNewUpdate() { + if (this.titreTypeTitreStatutNewActive) { + this.titreTypeTitreStatutUpdate( + `${this.titreTypeTitreStatutNew.titreTypeTypeId}${this.titreTypeTitreStatutNew.domaineId}`, + this.titreTypeTitreStatutNew.titreStatutId, + this.titreTypeTitreStatutNew.titresModificationInterdit, + this.titreTypeTitreStatutNew.demarchesModificationInterdit, + this.titreTypeTitreStatutNew.etapesModificationInterdit + ) + + this.titreTypeTitreStatutNew = { + domaineId: null, + titreTypeTypeId: null, + titreStatutId: null, + titresModificationInterdit: false, + demarchesModificationInterdit: false, + etapesModificationInterdit: false + } + } + }, + + titreTypeEtapeTypeNewUpdate() { + if (this.titreTypeEtapeTypeNewActive) { + this.titreTypeEtapeTypeUpdate( + `${this.titreTypeEtapeTypeNew.titreTypeTypeId}${this.titreTypeEtapeTypeNew.domaineId}`, + this.titreTypeEtapeTypeNew.etapeTypeId, + this.titreTypeEtapeTypeNew.lectureInterdit, + this.titreTypeEtapeTypeNew.modificationInterdit, + this.titreTypeEtapeTypeNew.creationInterdit + ) + + this.titreTypeEtapeTypeNew = { + domaineId: null, + titreTypeTypeId: null, + etapeTypeId: null, + lectureInterdit: false, + modificationInterdit: false, + creationInterdit: false + } + } + }, + + activiteTypeNewUpdate() { + if (this.activiteTypeNewActive) { + this.activiteTypeUpdate( + this.activiteTypeNew.activiteTypeId, + this.activiteTypeNew.lectureInterdit, + this.activiteTypeNew.modificationInterdit + ) + + this.activiteTypeNew = { + domaineId: null, + titreTypeTypeId: null, + lectureInterdit: false, + modificationInterdit: false + } + } + } + } +} +</script> + +<style></style> +template diff --git a/packages/ui/src/components/administrations.vue b/packages/ui/src/components/administrations.vue new file mode 100644 index 000000000..915bb5fdd --- /dev/null +++ b/packages/ui/src/components/administrations.vue @@ -0,0 +1,104 @@ +<template> + <Liste + nom="administrations" + :filtres="filtres" + :colonnes="colonnes" + :lignes="lignes" + :elements="administrations" + :params="params" + :metas="metas" + :total="total" + :initialized="initialized" + @params-update="paramsUpdate" + > + <template v-if="administrations.length" #downloads> + <Downloads + :formats="['csv', 'xlsx', 'ods']" + section="administrations" + class="flex-right full-x" + /> + </template> + </Liste> +</template> + +<script> +import Liste from './_common/liste.vue' +import Downloads from './_common/downloads.vue' + +import filtres from './administrations/filtres' +import { + administrationsColonnes, + administrationsLignesBuild +} from './administrations/table' + +export default { + name: 'Administrations', + + components: { Liste, Downloads }, + + data() { + return { + filtres, + colonnes: administrationsColonnes + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + administrations() { + return this.$store.state.administrations.elements + }, + + total() { + return this.$store.state.administrations.total + }, + + params() { + return this.$store.state.administrations.params + }, + + metas() { + return this.$store.state.administrations.metas + }, + + lignes() { + return administrationsLignesBuild(this.administrations) + }, + + initialized() { + return this.$store.state.administrations.initialized + } + }, + + watch: { + user: 'init', + + '$route.query': { + handler: function () { + this.$store.dispatch('administrations/routeUpdate') + } + } + }, + + async created() { + await this.init() + }, + + unmounted() { + this.$store.commit('administrations/reset') + }, + + methods: { + async init() { + await this.$store.dispatch('administrations/init') + }, + + async paramsUpdate(options) { + await this.$store.dispatch(`administrations/paramsSet`, options) + } + } +} +</script> diff --git a/packages/ui/src/components/administrations/filtres.js b/packages/ui/src/components/administrations/filtres.js new file mode 100644 index 000000000..67a5e7649 --- /dev/null +++ b/packages/ui/src/components/administrations/filtres.js @@ -0,0 +1,21 @@ +import { elementsFormat } from '../../utils/index' + +const filtres = [ + { + id: 'noms', + type: 'input', + value: '', + name: 'Nom', + placeholder: `Nom de l'administration` + }, + { + id: 'typesIds', + name: 'Types', + type: 'checkboxes', + value: [], + elements: [], + elementsFormat + } +] + +export default filtres diff --git a/packages/ui/src/components/administrations/table.js b/packages/ui/src/components/administrations/table.js new file mode 100644 index 000000000..c1cd0d343 --- /dev/null +++ b/packages/ui/src/components/administrations/table.js @@ -0,0 +1,40 @@ +import { markRaw } from '@vue/reactivity' +import Tag from '../_ui/tag.vue' + +const administrationsColonnes = [ + { + id: 'abreviation', + name: 'Abréviation' + }, + { + id: 'nom', + name: 'Nom' + }, + { + id: 'type', + name: 'Type' + } +] + +const administrationsLignesBuild = administrations => + administrations.map(administration => { + const columns = { + abreviation: { value: administration.abreviation }, + nom: { value: administration.nom, class: 'h6' }, + type: { + component: markRaw(Tag), + props: { mini: true }, + class: 'mb--xs', + value: administration.type.nom, + slot: true + } + } + + return { + id: administration.id, + link: { name: 'administration', params: { id: administration.id } }, + columns + } + }) + +export { administrationsColonnes, administrationsLignesBuild } diff --git a/packages/ui/src/components/content/about.vue b/packages/ui/src/components/content/about.vue new file mode 100644 index 000000000..819e9c4df --- /dev/null +++ b/packages/ui/src/components/content/about.vue @@ -0,0 +1,322 @@ +<template> + <div class="content"> + <h1 class="mb-xl">À propos</h1> + <hr class="mb-xl" /> + <div id="irritants" class="mb-xxl"> + <h4 class="mb-s color-neutral">Ce qu'il faut changer</h4> + <h2> + L'accès aux informations sur les projets miniers + <br class="hide desktop-static" />est trop complexe + </h2> + <span class="separator" /> + <p class="lead"> + Pour les entreprises minières, gérer un projet d’exploration ou + d’exploitation est un parcours du combattant, de la conception du projet + jusqu'à la gestion de l'après-mine. + </p> + + <div class="desktop-blobs"> + <div class="desktop-blob-1-3"> + <p> + Quel est l’état juridique du domaine minier sur la zone ? Quelles + démarches administratives dois-je suivre ? Quelles contraintes + environnementales dois-je intégrer à mon projet ? Toutes ces + questions essentielles ne trouvent pas simplement de réponses. + </p> + <p> + Déposer une demande, actualiser les milliers de pages de dossiers + papiers, tracer sa demande dans les multiples services de l’État + impliqués, faire ses déclarations au bon moment et au bon format, + sont + <b>autant de démarches complexes et consommatrices de temps.</b> + </p> + </div> + <div class="desktop-blob-1-3"> + <p> + De son côté, + <b> + l’administration traite chaque année près de 2 000 démarches + conduites au titre du code minier, + </b> + avec des systèmes d’information fermés, des tableaux de suivi + pléthoriques, des archives papier et des gigaoctets de dossiers + dispersés dans ses services nationaux et locaux. + </p> + <p> + <b> + L’enregistrement, la consultation et la valorisation des données + de l’administration des mines est impossible ou trop peu efficace </b + >. + </p> + </div> + <div class="desktop-blob-1-3"> + <p> + <b> + Sur le terrain, les citoyens et les élus ne découvrent les projets + qui les concernent qu’au dernier moment, lors d’une consultation + ou d’une enquête publique. + </b> + Ils se disent souvent pris de cours face à des dossiers complexes ou + volumineux et faute d’accès simple et durable aux informations sur + les projets miniers. + </p> + <p> + <b> + Une telle situation ne permet pas d’engager des débats ouverts, + éclairés et sereins sur les projets miniers en France. + </b> + </p> + </div> + </div> + </div> + + <div id="utilisateurs" class="mb-xxl"> + <h4 class="mb-s color-neutral"> + Camino numérise l'administration des mines + </h4> + + <h2>Pour simplifier la vie de toutes les parties prenantes</h2> + + <span class="separator" /> + + <p class="lead"> + Camino va simplifier les démarches des entreprises, + <br class="hide desktop-static" />ouvrir les données aux citoyens et + faciliter le travail des agents publics impliqués dans ces projets. + </p> + + <div class="desktop-blobs"> + <div class="desktop-blob-1-3"> + <div class="p-l"> + <i class="icon-128 icon-business" /> + </div> + + <h3>Les entreprises</h3> + + <p> + pourront connaitre l’état du domaine minier puis déposer en ligne + leurs demandes, les rapports et les données réglementaires. Elles + pourront aussi visualiser l’avancement des instructions, suivre leur + portefeuille de titres et répondre simplement à leurs obligations à + chaque étape des projets. + </p> + </div> + + <div class="desktop-blob-1-3"> + <div class="p-l"> + <i class="icon-128 icon-ngo" /> + </div> + + <h3>Les ONG, les citoyens et leurs élus</h3> + + <p> + pourront consulter à tout moment les dossiers et les données + publiques, à l’échelle de leur territoire pour mieux contribuer, + sans précipitation, aux procédures de participation du public et + suivre de manière transparente l’actualité des projets. + </p> + </div> + + <div class="desktop-blob-1-3"> + <div class="p-l"> + <i class="icon-128 icon-user-check" /> + </div> + + <h3>Les agents publics</h3> + + <p> + pourront simplement accéder aux mêmes dossiers et données partagés + entre les services des administrations et opérateurs publics. Il + sera possible de co-instruire les demandes, de suivre et anticiper + chaque moment de vie d’un projet, de trouver et valoriser les + données sur le domaine minier national simplement et sans + intermédiaire. + </p> + </div> + </div> + </div> + + <div id="services" class="mb-xxl"> + <h4 class="mb-s color-neutral"> + Camino change l'administration des mines + </h4> + + <h2>Avec de nouveaux services numériques</h2> + + <span class="separator" /> + + <p class="lead"> + Avec Camino, il sera enfin possible de consulter les caractéristiques + des titres miniers sur une carte à jour et de suivre les projets en + cours à chaque étape importante de leur vie. + </p> + + <div class="desktop-blobs"> + <div class="desktop-blob-1-3"> + <div class="p-l"> + <i class="icon-128 icon-map" /> + </div> + <h3>Une carte interactive</h3> + + <p> + Nous présenterons une cartographie complète et à jour du domaine + minier national et des projets en cours. + </p> + </div> + + <div class="desktop-blob-1-3"> + <div class="p-l"> + <i class="icon-128 icon-dashboard" /> + </div> + + <h3>Des tableaux de bord</h3> + + <p> + Nous dématérialiserons les premières procédures les plus fréquentes + du code minier et proposerons un tableau de bord aux entreprises qui + expérimenteront le service Camino. + </p> + </div> + + <div class="desktop-blob-1-3"> + <div class="p-l"> + <i class="icon-128 icon-api" /> + </div> + + <h3>Une API ouverte</h3> + + <p> + Avec les données recueillies, nous automatiserons l’actualisation du + cadastre minier et nous diffuserons dans un standard électronique + ouvert les données et documents publics déjà disponibles d’ici six + mois, notamment via data.gouv.fr. + </p> + </div> + </div> + </div> + + <div id="activites" class="mb-xxl"> + <h4 class="mb-s color-neutral">Tous les projets miniers concernés</h4> + <h2> + D'ici 2022 l'ensemble des procédures du code minier devront être + numériques + </h2> + <span class="separator" /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb"> + <h3>Ressources minérales non-énergétiques</h3> + <img + src="/img/about/gallery-non-energetique.jpg" + alt="Mine de sel" + class="mb" + /> + + <p> + Les matières premières minérales sont à la base du développement de + l’humanité. En 200 ans, l’ère industrielle puis la croissance + économique des pays émergents ont accéléré l’utilisation de ces + ressources non renouvelables du sous-sol. Leur développement durable + s’appuie sur l’équilibre entre l’extraction des réserves accessibles + et la découverte de nouveaux gisements, le recyclage et l’économie + circulaire. + </p> + </div> + <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb"> + <h3>Matières premières énergétiques</h3> + <img + src="/img/about/gallery-energetique.jpg" + alt="Forage" + class="mb" + /> + + <p> + Les matières premières énergétiques comme le charbon, le pétrole ou + le gaz se sont imposées en tant que source d’énergie au cours du + 20ème siècle. Formées dans des processus géologiques qui ont duré + plusieurs millions d’années, elles ne sont pas renouvelables à + l’échelle humaine et il est donc nécessaire de veiller à en avoir un + usage rationnel. + </p> + </div> + <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb"> + <h3>Stockages souterrains</h3> + + <img + src="/img/about/gallery-stockages.jpg" + alt="Station de contrôle" + class="mb" + /> + + <p> + Les capacités de stockage dans le sous-sol profond ont d’abord été + utilisées pour compléter le dispositif de sécurité + d’approvisionnement dans des territoires ne disposant pas ou peu de + matières premières énergétiques. Ces capacités sont aujourd’hui + étudiées pour des usages futurs comme le stockage de CO2 pour + réduire les émissions de GES dans l’atmosphère ou pour le stockage + d’énergie en association avec les énergies alternatives. + </p> + </div> + + <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb"> + <h3>Géothermie profonde</h3> + + <img + src="/img/about/gallery-geothermie.jpg" + alt="Centrale géothermique" + class="mb" + /> + + <p> + Provenant des sources de chaleur interne de la Terre, cette énergie + abondante mais de faible intensité est en train de trouver sa place + dans le mix énergétique du 21ème siècle. + </p> + </div> + <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb"> + <h3>Travaux miniers</h3> + <img + src="/img/about/gallery-travaux.jpg" + alt="Centrale géothermique" + class="mb" + /> + + <p> + Les travaux de recherche ou d’exploitation de substances minières + sont encadrés par la police des mines, mission confiée à l’État, qui + a pour objet de prévenir et faire cesser les dommages et nuisances + liées aux activités minières et de faire respecter les obligations + de l’exploitant minier. + </p> + </div> + <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb"> + <h3>Après mines</h3> + + <img + src="/img/about/gallery-apresmine.jpg" + alt="Centrale géothermique" + class="mb" + /> + + <p> + L’arrêt de l’activité minière n’induit pas pour autant la + disparition des phénomènes susceptibles d’affecter les terrains de + surface situés dans l’emprise de l’ancienne exploitation. Ainsi, + durant la période qui suit l’exploitation, traditionnellement + appelée «après-mine», des désordres peuvent se développer, parfois + dès l’arrêt des travaux mais également beaucoup plus tardivement. + </p> + </div> + </div> + </div> + + <span class="separator" /> + <div class="mb-xxl"> + Plus d’informations relatives à Camino et son équipe sont accessibles sur + cette + <a target="_blank" href="https://beta.gouv.fr/startups/camino.html" + >page</a + >. + </div> + </div> +</template> diff --git a/packages/ui/src/components/content/accessibilite.vue b/packages/ui/src/components/content/accessibilite.vue new file mode 100644 index 000000000..bd86b663b --- /dev/null +++ b/packages/ui/src/components/content/accessibilite.vue @@ -0,0 +1,38 @@ +<template> + <div class="content mb-xxl"> + <h1 class="mb-xl">Accessibilité</h1> + <hr class="mb-xl" /> + <p> + Nous travaillons à améliorer le niveau d'accessibilité du site et sa + conformité avec les normes en la matière. Notre objectif est d’atteindre + le niveau de conformité RGAA fin 2018. + </p> + <h3>Signaler un dysfonctionnement</h3> + <p> + Si, malgré notre vigilance, vous rencontriez le moindre problème + d’accessibilité sur notre site, n’hésitez pas à nous écrire à + <a href="mailto:contact@camino.beta.gouv.fr"> + contact@camino.beta.gouv.fr + </a> + </p> + <h3>Défenseur des droits</h3> + <p> + Si vous constatez un défaut d'accessibilité vous empêchant d'accéder à un + contenu ou une fonctionnalité du site, que vous nous le signalez et que + vous ne parvenez pas à obtenir une réponse rapide de notre part, vous êtes + en droit de faire parvenir vos doléances ou une demande de saisine au + Défenseur des droits. Plusieurs moyens sont à votre disposition : + </p> + <ul class="list-prefix"> + <li>un formulaire de contact</li> + <li> + la liste du ou des délégués de votre région avec leurs informations de + contact direct + </li> + <li> + une adresse postale : Le Défenseur des droits - 7 rue Saint-Florentin - + 75409 Paris Cedex 08. + </li> + </ul> + </div> +</template> diff --git a/packages/ui/src/components/content/cgu-1-0-0.vue b/packages/ui/src/components/content/cgu-1-0-0.vue new file mode 100644 index 000000000..f840b34dd --- /dev/null +++ b/packages/ui/src/components/content/cgu-1-0-0.vue @@ -0,0 +1,282 @@ +<template> + <div class="content mb-xxl"> + <h1 class="mb-xl">Conditions générales d’utilisation</h1> + <hr class="mb-xl" /> + <p> + CGU v.1.0<br /> + valables du 16 octobre 2018 au 15 avril 2019 + </p> + + <h3>Présentation</h3> + + <p> + Camino est un service numérique de l’administration des mines qui délivre + le cadastre minier sur le territoire national métropolitain et les + territoires ultramarins pour lesquels l’État dispose de la compétence + d’administration du domaine minier. + </p> + + <p> + Ce service est destiné aux entreprises du secteur minier, aux + particuliers, à leurs représentants, élus et associations, ainsi qu’aux + agents des administrations en charge de l’activité minière. + </p> + + <p> + Le présent document a pour objet de régler les relations entre les + différents intervenants sur le service. Il définit les conditions et + modalités d’utilisation des services camino.beta.gouv.fr et + api.camino.beta.gouv.fr sur Internet. + </p> + + <p> + Le service est développé et opéré par la Fabrique numérique des ministères + de la Transition écologique et de la Cohésion des territoires, avec + l’appui de l’incubateur de services numériques beta.gouv.fr de la + direction interministérielle du numérique et du système d’information et + de communication de l’État (DINSIC). + </p> + + <p>L’utilisation du service est libre, facultative et gratuite.</p> + + <p> + Toute utilisation du service est subordonnée à l’acceptation préalable et + au respect intégral des présentes conditions générales d’utilisation (CGU) + par l’utilisateur. Vocabulaire + </p> + + <ul> + <li>« Nous » se réfère à l’éditeur de Camino.</li> + <li>« Vous » se réfère à un utilisateur de Camino.</li> + <li> + « Le service » se réfère indistinctement à l’application web et à + l’interface de programmation applicative (API). + </li> + </ul> + + <h3>Objet</h3> + + <p> + Le service est composé, d’une part, d’une application web qui vous permet + de : + </p> + + <ul> + <li> + connaître en quelques minutes l’état du domaine minier en tout point du + territoire ; + </li> + <li> + consulter les informations administratives et techniques publiques + relatives aux titres miniers en cours de validité ; + </li> + <li>visualiser une carte et un tableau des titres miniers.</li> + </ul> + + <p> + D’autre part, une interface de programmation applicative (API) qui vous + permet de : + </p> + + <ul> + <li> + utiliser les informations publiques relatives aux titres miniers dans un + format ouvert et réutilisable ; + </li> + <li>utiliser un référentiel des substances de mines et carrières.</li> + </ul> + + <h3>Qualité des données publiées</h3> + + <p> + Nous publions sur Camino des données publiques à titre informatif. Seules + les publications légales font foi, notamment au Journal officiel de la + République Française ou aux recueils des actes administratifs des + préfectures. + </p> + + <p> + Par conséquent, les informations publiées sur Camino ne sauraient engager + la responsabilité de leur éditeur ou d’un quelconque service de l’État, + l’utilisateur y ayant recours en ayant conscience des potentielles erreurs + ou omissions qu’elles peuvent comporter. + </p> + + <p> + Nous nous efforçons de livrer des données de la meilleure qualité + possible. Toutefois, malgré toute notre attention, elles peuvent encore + comporter des erreurs ou omissions. Si vous constatez une erreur ou + omission parmi ces données, nous vous invitons à nous la signaler à l’aide + du bouton « signaler une erreur » disponible dans le pied de page de la + fiche du titre minier concerné. Si un titre est manquant, vous pouvez nous + écrire par courriel à contact@camino.beta.gouv.fr en nous précisant son + nom et en joignant les éventuels documents à votre disposition permettant + de l’identifier. + </p> + + <h3>Propriété intellectuelle</h3> + <h4>Code source</h4> + <p> + Le code source de l’application web et de l’interface de programmation + applicative (API) sont libres et peuvent donc être vérifiés et améliorés + par chacun dans les conditions précisées par la licence AGPL 3 + (https://spdx.org/licenses/AGPL-3.0-or-later.html). + </p> + + <p>Ils sont disponibles sur Github à ces adresses :</p> + + <ul> + <li> + interface utilisateur – UI https://github.com/MTES-MCT/camino-ui ; + </li> + <li> + interface de programmation applicative – API + https://github.com/MTES-MCT/camino-api. + </li> + </ul> + + <h4> + Données administratives publiques relatives aux domaines et aux titres + miniers + </h4> + <p> + Les informations publiques délivrées par le service le sont sous Licence + Ouverte V 2.0. Vous êtes donc libres de réutiliser ces informations sous + réserve de mentionner la paternité de l’information et la date de dernière + mise à jour de l’information utilisée. Par exemple sur la forme « + Ministère de la Transition écologique – Données originales téléchargées + sur http://camino.beta.gouv.fr, mise à jour du 01 septembre 2018 ». + </p> + + <h4>Données relevant du secret des affaires</h4> + + <p> + Nous ne publions aucune donnée et information relevant du secret des + affaires. + </p> + + <p> + Nous nous engageons à prendre toutes les mesures nécessaires pour garantir + la sécurité et la confidentialité des informations que vous nous + fournissez dans le cadre du signalement d’erreur. + </p> + + <p> + Les courriels et leurs pièces jointes que vous nous adressez sont + enregistrées dans un centre de données sécurisé. + </p> + + <h3>Crédits photo</h3> + <p> + Les photos présentes sur la page A propos sont à créditer aux auteurs + suivants : © bastan ; © BRGM ; © Joeffrey Arruyer ; © Guillaume Levieux ; + © François Romain. + </p> + + <h3>Vie privée</h3> + <h4>Données à caractère personnel</h4> + <p> + Camino ne vous demande pas d’information nominative telle que nom, prénoms + ou adresse courriel, excepté pour le service tiers de lettre + d’information. + </p> + <p> + Les titres miniers ayant été ou pouvant être détenus par des personnes + physiques, leurs noms et prénoms sont susceptibles d’être publiés tels + qu’ils ont été mentionnés au Journal officiel de la République Française. + </p> + + <p> + En application du règlement général sur la protection des données et de la + loi n° 78-17 du 6 janvier 1978 relative à l’informatique, aux fichiers et + aux libertés, l’utilisateur dispose d’un droit d’accès, de rectification + et d’opposition auprès de l’opérateur de la plateforme, en sa qualité de + responsable de traitement. + </p> + + <p>Par mail : contact@camino.beta.gouv.fr</p> + + <p> + Par voie postale :<br /> + Ministère de la Transition écologique<br /> + Direction Générale de l'Aménagement, du Logement et de la Nature<br /> + Bureau de la politique des ressources minérales non énergétiques<br /> + 1 place Carpeaux, 92800 Puteaux + </p> + + <p> + Le délégué à la protection des données du ministère de la transition + écologique peut également être contacté à l’adresse : + dpd.daj.sg@developpement-durable.gouv.fr. + </p> + + <h4>Cookies</h4> + + <p> + Nous déposons des cookies de mesure d’audience (nombre de visites, pages + consultées), respectant les conditions d’exemption du consentement de + l’internaute définies par la recommandation « Cookies » de la Commission + nationale informatique et libertés (CNIL). Cela signifie, notamment, que + ces cookies ne servent qu’à la production de statistiques anonymes et ne + permettent pas de suivre votre navigation sur d’autres sites. + </p> + + <p> + Nous déposons également des cookies de navigation, aux fins strictement + techniques, qui ne sont pas conservés (mémorisation, pendant la durée de + la session, des paramètres de filtrage et de préférence de fond + cartographique). La consultation de la plateforme n’est pas affectée + lorsque les utilisateurs utilisent des navigateurs désactivant les + cookies. + </p> + + <h4>Service tiers</h4> + + <p> + Le service utilise Mailjet (https://www.mailjet.com), un service d’envoi + de courriers électroniques. Ce service tiers est hébergé en France et + dispose de ses propres modalités d’utilisation. Il est conforme à la + réglementation européenne sur les données personnelles. + </p> + + <h3>Evolution du service</h3> + <p> + Nous pouvons faire évoluer Camino sans information préalable ou préavis. + Nous ajoutons régulièrement des données, peaufinons l’interface et + modifions des formulations sur la base de vos retours et des évolutions + réglementaires et législatives. + </p> + + <p> + Les évolutions sont documentées et disponibles dans la rubrique nouveautés + et sur Github. + </p> + + <h3>Disponibilité du service</h3> + <p> + Nous pouvons suspendre l’accès à Camino sans information préalable ni + préavis, notamment pour des raisons de maintenance. Nous mettons + l’application à jour régulièrement. L’indisponibilité ne dépasse + généralement pas une dizaine de secondes. Nous mettons Camino à + disposition sans garantie sur sa disponibilité. Même si nous faisons de + notre mieux pour que le service soit toujours opérationnel, cela signifie + que d’éventuelles indisponibilités n’ouvriront pas droit à compensation + financière. + </p> + + <p> + Nous nous réservons également le droit de bloquer, sans information + préalable ni compensation financière, les usages mettant en péril + l’utilisation du logiciel par d’autres usagers. Cela nous permet + d’anticiper d’éventuelles attaques par déni de service. + </p> + <h3>Evolution des conditions d’utilisation</h3> + <p> + Les termes des présentes conditions d’utilisation peuvent être amendés à + tout moment, sans préavis, en fonction des modifications apportées au + service, de l’évolution de la législation ou pour tout autre motif jugé + nécessaire. + </p> + <p>Nous rendons librement accessible l’historique de ces conditions.</p> + </div> +</template> diff --git a/packages/ui/src/components/content/cgu.vue b/packages/ui/src/components/content/cgu.vue new file mode 100644 index 000000000..0793da1fb --- /dev/null +++ b/packages/ui/src/components/content/cgu.vue @@ -0,0 +1,386 @@ +<template> + <div class="content mb-xxl"> + <h1 class="mb-xl">Conditions générales d’utilisation</h1> + <hr class="mb-xl" /> + <p> + CGU v.2.0<br /> + valables à compter du 16 avril 2019 + </p> + + <p> + Camino est un service numérique de l’État édité par le ministère de la + transition écologique, avec l’appui de la Fabrique numérique, l’incubateur + ministériel de services numériques innovants, et beta.gouv.fr, + l’incubateur de la direction interministérielle du numérique et du système + d’information et de communication de l’État (DINSIC). + </p> + <h3>Présentation du service</h3> + <p> + Camino est un service numérique de l’administration des mines qui délivre + le cadastre minier sur le territoire national métropolitain et les + territoires ultramarins pour lesquels l’État dispose de la compétence + d’administration du domaine minier ainsi que et des démarches + administratives dématérialisées conduites au titre du code minier.<br /> + Ce service est destiné aux entreprises du secteur minier, aux + particuliers, à leurs représentants, élus et associations, ainsi qu’aux + agents des administrations en charge de l’activité minière.<br /> + Le présent document a pour objet de régler les relations entre les + différents intervenants sur le service. Il définit les conditions et + modalités d’utilisation des services camino.beta.gouv.fr et + api.camino.beta.gouv.fr sur Internet.<br /> + Le service est développé et opéré par le ministère de la transition + écologique, avec l’appui de la Fabrique numérique, l’incubateur + ministériel de services numériques innovants, et beta.gouv.fr, + l’incubateur de la direction interministérielle du numérique et du système + d’information et de communication de l’État (DINSIC). + </p> + <p>L’utilisation du service est libre, facultative et gratuite.</p> + <p> + L'utilisation du service est subordonnée à l’acceptation préalable et au + respect intégral des présentes conditions générales d’utilisation (CGU) + par l’utilisateur. Vocabulaire :<br /> + « Nous » se réfère à l’éditeur de Camino.<br /> + « Vous » se réfère à un utilisateur de Camino.<br /> + « Le service » se réfère indistinctement à l’application web et à + l’interface de programmation applicative (API). + </p> + + <h3>Objet</h3> + <p> + Le service est composé, d’une part, d’une application web qui vous permet + de : + </p> + <ul class="list-prefix"> + <li>connaître l’état du domaine minier en tout point du territoire ;</li> + <li> + consulter les informations administratives et techniques publiques + relatives aux titres miniers en cours de validité et aux demandes + publiques en cours d’instruction ; + </li> + <li>visualiser une carte et une liste des titres miniers ;</li> + <li> + accomplir certaines démarches administratives conduites au titre du code + minier. + </li> + </ul> + <p> + D’autre part, une interface de programmation applicative (API) qui vous + permet de : + </p> + <ul class="list-prefix"> + <li> + utiliser les informations publiques relatives aux titres miniers dans un + format ouvert et réutilisable ; + </li> + <li>utiliser un référentiel des substances de mines et carrières.</li> + </ul> + <h3>Qualité des données publiées</h3> + <p> + Nous publions sur Camino des données publiques à titre informatif. Seules + les publications légales font foi, notamment au Journal officiel de la + République française ou aux recueils des actes administratifs des + préfectures. Par conséquent, les informations publiées sur Camino ne + sauraient engager la responsabilité de leur éditeur ou d’un quelconque + service de l’État, l’utilisateur y ayant recours en ayant conscience des + potentielles erreurs ou omissions qu’elles peuvent comporter. Nous nous + efforçons de livrer des données de la meilleure qualité possible. + Toutefois, malgré toute notre attention, elles peuvent encore comporter + des erreurs ou omissions. Si vous constatez une erreur ou omission parmi + ces données, nous vous invitons à nous la signaler à l’aide du bouton « + signaler une erreur » disponible dans le pied de page de la fiche du titre + minier concerné. Si un titre est manquant, vous pouvez nous écrire par + courriel à camino@beta.gouv.fr en nous précisant son nom et en joignant + les éventuels documents à votre disposition permettant de l’identifier. + </p> + <h3>Propriété intellectuelle</h3> + <p> + Cinq aspects caractérisent la propriété intellectuelle sur Camino. Le + niveau d’ouverture ou de protection pour chacun est expliqué ci-après avec + leurs conditions particulières. + </p> + <h4>(1) Le site camino.beta.gouv.fr est protégé</h4> + <p> + Le site est la propriété exclusive du ministère de la transition + écologique. Toute reproduction ou représentation totale ou partielle de ce + site par quelque procédé que ce soit, sans l’autorisation expresse de son + propriétaire est interdite et constituerait une contrefaçon sanctionnée + par les articles L. 335-2 du Code de la propriété intellectuelle. + </p> + + <p>Les contenus suivants ne sont pas réutilisables :</p> + <ul class="list-prefix"> + <li> + l’iconographie présente sur la page + https://camino.beta.gouv.fr/a-propos. + </li> + </ul> + <p> + Les contenus suivants sont soumis aux conditions d’utilisations des + fournisseurs de données : + </p> + <ul class="list-prefix"> + <li>les fonds de carte.</li> + </ul> + <p> + Si vous souhaitez reproduire ou réutiliser ces contenus présents sur ce + site, veuillez contacter le webmestre (camino@beta.gouv.fr) ou les + fournisseurs de données externes pour connaître les conditions + particulières de réutilisation applicables. + </p> + <h4>(2) Les marques présentées sur le site sont protégées</h4> + <p> + Les marques dont est titulaire l’Etat, le ministère de la transition + écologique ou le ministère de la cohésion des territoires et des relations + avec les collectivités territoriales, ainsi que ses logos figurant sur le + site sont des marques régulièrement déposées auprès de l’Institut national + de la propriété industrielle (INPI). Toute reproduction totale ou + partielle de ces marques ou de ces logos effectuées à partir des éléments + du site sans l’autorisation expresse du propriétaire de ce site est + prohibée au sens des articles L. 713-2 et suivants du Code de la propriété + intellectuelle. Tout contrefacteur s’expose aux sanctions prévues aux + articles L. 716-1 et suivants du code de la propriété intellectuelle. + </p> + <h4>(3) Les données publiques sous ouvertes</h4> + <p> + Les informations publiques délivrées par le service le sont sous Licence + Ouverte V 2.0. Vous êtes donc libres de réutiliser ces informations sous + réserve de mentionner la paternité de l’information et la date de dernière + mise à jour de l’information utilisée. Par exemple, sur la forme « + Ministère de la transition écologique – Données originales téléchargées + sur http://camino.beta.gouv.fr, mise à jour du jour-mois-année ». + </p> + <h4> + (4) Les données personnelles et les données relevant du secret des + affaires sont protégées + </h4> + <p> + Les données et informations personnelles ou relevant du secret des + affaires ne relèvent pas du régime applicable à la Licence Ouverte V 2.0. + Nous nous engageons à prendre toutes les mesures nécessaires pour garantir + la sécurité et la confidentialité des données personnelles et des données + relevant du secret des affaires que vous nous fournissez dans le cadre de + l’utilisation du service. + </p> + <h4>(5) Code source est ouvert</h4> + <p> + Le code source de l’application web et de l’interface de programmation + applicative (API) sont libres et peuvent donc être vérifiés et améliorés + par chacun dans les conditions précisées par la licence AGPL 3. Ils sont + disponibles sur Github à ces adresses : + </p> + <ul class="list-prefix"> + <li> + interface utilisateur – UI :<br /> + https://github.com/MTES-MCT/camino-ui ; + </li> + <li> + interface de programmation applicative – API :<br /> + https://github.com/MTES-MCT/camino-api. + </li> + </ul> + <h3>Vie privée</h3> + <h4>Données à caractère personnel</h4> + <p> + Nous nous engageons à ce que la collecte et le traitement de vos données, + effectués à partir du site soient conformes au règlement général sur la + protection des données du 27 avril 2016, applicable depuis le 25 mai 2018, + et à la loi informatique et libertés dans sa dernière version modifiée du + 20 juin 2018. Ces dispositions fixent des règles strictes de + confidentialité et de sécurité à toute organisation, publique et privée, + dans le cadre du traitement des données à caractère personnel de leurs + utilisateurs, et ce afin de protéger la vie privée de ceux-ci. + </p> + <h4>Responsable du traitement</h4> + <p> + Le responsable du traitement de vos données à caractère personnel est : Le + Ministère de la Transition écologique Direction Générale de l'Aménagement, + du Logement et de la Nature Bureau de la politique des ressources + minérales non énergétiques 1 place Carpeaux 92800 Puteaux + </p> + + <h4>Traitement des données et utilisation</h4> + <p> + Nous ne pouvons utiliser vos données à caractère personnel qu’à des fins à + la fois légitimes et nécessaires. Cela signifie concrètement que nous + traitons vos données à caractère personnel pour des finalités de : + </p> + <ul class="list-prefix"> + <li>de connexion au service ;</li> + <li> + d’instructions de demandes déposées dans le cadre d’une démarche + administrative conduite au titre du code minier. + </li> + </ul> + <p>La nature des opérations réalisées sur les données est :</p> + <ul class="list-prefix"> + <li> + Lors de la création d’un compte utilisateur Camino les informations + personnelles que vous acceptez de communiquer ou les informations + collectées auprès du fournisseur d’identité numérique que vous aurez + choisi pour vous authentifier lors de votre première connexion au + service sont enregistrées dans Camino. + </li> + <li> + L’affectation d’un utilisateur à une entité privée de type entreprise + est supervisée par un administrateur de la plateforme Camino. + </li> + <li> + La mise à jour et l’effacement des données personnelles liées au compte + utilisateur Camino et possible depuis la page profil de l’utilisateur. + </li> + <li> + Les données de connexion sont utilisées pour établir un journal d’ajout + et modification des données de Camino et de consultation des données non + publiques ou à caractère confidentiel. + </li> + <li> + Les données personnelles contenues dans les dossiers de demandes suivent + un cycle de vie contraint par les procédures d’instruction et + d’archivage légale. + </li> + </ul> + <p>Les données à caractère personnel traitées sont relatives à :</p> + <ul class="list-prefix"> + <li> + Pour la connexion au service : l’état civil (nom, prénoms, date et lieu + de naissance, nationalité, photographie, adresse postale, adresse + électronique, numéros de téléphone); + </li> + <li> + Pour l’instruction des demandes conduites au titre du code minier : la + vie professionnelle (fonctions, coordonnées professionnelles, nature du + contrat de travail, curriculum vitae) ; les informations d’ordre + économique et financier (revenus, situation financière, situation + fiscale, etc.) dans le cas rare où le demandeur ou le titulaire d’un + titre ou d’une autorisation minière est une personne physique. + </li> + </ul> + <p>Les données sont conservées pour une durée de :</p> + <ul class="list-prefix"> + <li> + Les données de connexion sont conservées pendant une durée de 6 mois. + </li> + <li> + Les données personnelles liées à une démarche administrative conduite au + titre du code minier sont conservées dans Camino pendant une durée de 30 + mois (délais d’instruction maximum de 24 mois + 6 mois pour tenir compte + des recours). A l’issue de ce délai, les données personnelles feront + l’objet d’un archivage intermédiaire, puis définitif, conformément au + plan d’archivage de la démarche visée. + </li> + </ul> + <h4>Vos droits</h4> + <p> + Nous nous engageons à prendre les mesures techniques et organisationnelles + appropriées afin de garantir la sécurité du traitement des données à + caractère personnel de chacun, en application du règlement général sur la + protection des données et de la loi informatique et aux libertés, vous + disposez d’un droit d’accès, de rectification, de suppression et + d’opposition. + </p> + <p>Par courriel : camino@beta.gouv.fr</p> + <p> + Par voie postale : Ministère de la Transition écologique Direction + Générale de l'Aménagement, du Logement et de la Nature, Bureau de la + politique des ressources minérales non énergétiques, 1 place Carpeaux, + 92800 Puteaux + </p> + <p> + Cette demande écrite est accompagnée d’une copie du titre d’identité avec + signature du titulaire de la pièce, en précisant l’adresse à laquelle la + réponse doit être envoyée. Le délégué à la protection des données du + ministère de la transition écologique peut également être contacté à + l’adresse suivante : dpd.daj.sg@developpement-durable.gouv.fr. + Conformément au règlement général sur la protection des données, vous + disposez du droit d’introduire une réclamation auprès de la CNIL (3 place + de Fontenoy – TSA 80715 – 75334 PARIS CEDEX 07). Les modalités de + réclamation sont précisées sur le site de la CNIL : www.cnil.fr. + </p> + <h4>Procédure en cas de violations de données à caractère personnel</h4> + <p> + En cas de destruction, de perte, d'altération, de divulgation non + autorisée de données à caractère personnel transmises, conservées ou + traitées d'une autre manière, ou d'accès non autorisé à de telles données, + de manière accidentelle ou illicite, susceptible d'engendrer un risque + élevé pour les droits et libertés de l’utilisateur, nous vous en + informerons des faits et des mesures prises, dans les meilleurs délais. + Nous nous assurerons également que le nécessaire soit fait quant à la + notification de la violation en question à la CNIL dans les 72 heures + après en avoir pris connaissance, à moins que la violation ne présente pas + un risque élevé pour vos droits et libertés + </p> + <h4>Cookies</h4> + <p> + Nous déposons des cookies de mesure d’audience (nombre de visites, pages + consultées), respectant les conditions d’exemption du consentement de + l’internaute définies par la recommandation « Cookies » de la Commission + nationale informatique et libertés (CNIL). Cela signifie, notamment, que + ces cookies ne servent qu’à la production de statistiques anonymes et ne + permettent pas de suivre votre navigation sur d’autres sites. Nous + déposons également des cookies de navigation, aux fins strictement + techniques, qui ne sont pas conservés (mémorisation, pendant la durée de + la session, des paramètres de filtrage et de préférence de fond + cartographique). La consultation de la plateforme n’est pas affectée + lorsque les utilisateurs utilisent des navigateurs désactivant les + cookies. Les adresses IP sont collectées et conservées pour une durée de + six (6) mois. + </p> + <h3>Inscription à la lettre d’informations électronique de Camino</h3> + <p> + Le service utilise Mailjet (https://www.mailjet.com), un service d’envoi + de courriers électroniques. Ce service tiers est hébergé en France et + dispose de ses propres modalités d’utilisation. Il est conforme à la + réglementation européenne sur les données personnelles. Vous avez la + faculté de vous désinscrire en cliquant sur le lien prévu à cet effet, au + bas de chaque lettre d’information diffusée. + </p> + <h3>Évolution du service</h3> + <p> + Nous pouvons faire évoluer Camino sans information préalable ou préavis. + Nous ajoutons et corrigeons régulièrement des données, améliorons + l’interface et modifions les formulations sur la base de vos retours et + des évolutions réglementaires et législatives. Les évolutions sont + documentées et disponibles dans les informations relatives aux versions du + service disponibles à ces adresses : + </p> + <ul class="list-prefix"> + <li> + pour l’interface utilisateur : + https://github.com/MTES-MCT/camino-ui/releases + </li> + <li>pour l’API : https://github.com/MTES-MCT/camino-api/releases</li> + </ul> + + <h3>Disponibilité du service</h3> + <p> + Nous pouvons suspendre l’accès à Camino sans information préalable ni + préavis, notamment pour des raisons de maintenance. Nous mettons + l’application à jour régulièrement. L’indisponibilité ne dépasse + généralement pas une dizaine de secondes. Nous mettons Camino à + disposition sans garantie sur sa disponibilité. Même si nous nous + efforçons de maintenir le service toujours opérationnel, cela signifie que + d’éventuelles indisponibilités n’ouvriront pas droit à compensation + financière. Nous nous réservons également le droit de bloquer, sans + information préalable ni compensation financière, les usages mettant en + péril l’utilisation du logiciel par d’autres usagers. Cela nous permet + d’anticiper d’éventuelles attaques par déni de service. + </p> + <h3>Évolution des conditions d’utilisation</h3> + <p> + Les termes des présentes conditions d’utilisation peuvent être modifiés ou + complétés à tout moment, sans préavis, en fonction des modifications + apportées au service, de l’évolution de la législation ou pour tout autre + motif jugé nécessaire. Ces modifications et mises à jour s’imposent à + l’utilisateur qui doit, en conséquence, se référer régulièrement à cette + rubrique pour vérifier les conditions générales en vigueur. + </p> + <p>Nous rendons librement accessible l’historique de ces conditions :</p> + <ul class="list-prefix"> + <li> + <router-link to="/cgu/1-0-0"> + CGU v.1.0 valables du 16 octobre 2018 au 15 avril 2019 + </router-link> + </li> + </ul> + </div> +</template> diff --git a/packages/ui/src/components/content/contacts.vue b/packages/ui/src/components/content/contacts.vue new file mode 100644 index 000000000..24b8be7bb --- /dev/null +++ b/packages/ui/src/components/content/contacts.vue @@ -0,0 +1,33 @@ +<template> + <div class="content"> + <h1 class="mb-xl">Contacts</h1> + <hr class="mb-xl" /> + <div id="contact" class="mb-xxl"> + <h2>Partagez votre expérience avec nous</h2> + + <span class="separator" /> + + <h4>Par email</h4> + <ul class="list-prefix"> + <li> + <a href="mailto:camino@beta.gouv.fr">camino@beta.gouv.fr</a> + </li> + </ul> + + <h4>Par téléphone</h4> + <ul class="list-prefix"> + <li> + <strong>Lundi</strong>, <strong>mardi</strong>, + <strong>jeudi</strong> et <strong>vendredi</strong>, de 9h à 18h : + Laure au + <a href="tel:+33764083953">07.64.08.39.53</a> + </li> + <li> + <strong>Lundi</strong>, <strong>mardi</strong> et + <strong>mercredi</strong>, de 9h à 18h : Félix au + <a href="tel:+33763429218">07.63.42.92.18</a> + </li> + </ul> + </div> + </div> +</template> diff --git a/packages/ui/src/components/content/contribution.vue b/packages/ui/src/components/content/contribution.vue new file mode 100644 index 000000000..dbe46e3b5 --- /dev/null +++ b/packages/ui/src/components/content/contribution.vue @@ -0,0 +1,38 @@ +<template> + <div class="content mb-xxl"> + <h1 class="mb-xl">Contribuez à Camino</h1> + <hr class="mb-xl" /> + <p> + L'équipe de Camino travaille à vous fournir des données de la meilleure + qualité qui soit. Mais la tâche est d'ampleur. Elles sont souvent + éparpillées, dans des formats très divers (dont certains sont obsolètes), + elles sont parfois lacunaires ou inscrites à la plume sur des documents + vieux de plusieurs siècles ! + </p> + + <p> + Ensemble, nous sommes plus fort ! Titulaires de titres miniers, + professionnels des mines, agents publics chargés des instructions, + directions attachées et acteurs de l'écosystème, aidez nous à enrichir + Camino. Pour cela, il y a deux façon d'agir : + </p> + <ul> + <li> + Signalez-nous les erreurs que vous repérez sur les titres grâce au + bouton "Signaler une erreur" présent sur chaque pied de page des fiches + titres. + </li> + <li> + Envoyez-nous les documents numérisés relatifs à la vie du titre que vous + possédez (ne vous inquiétez pas, nous respectons scrupuleusement la + confidentialité des pièces). Pour cela, écrivez-nous à + contact@camino.beta.gouv.fr. + </li> + </ul> + + <p> + Aidez Camino à devenir l’outil commun de référence du domaine minier + français. + </p> + </div> +</template> diff --git a/packages/ui/src/components/content/mentions-legales-cgu.vue b/packages/ui/src/components/content/mentions-legales-cgu.vue new file mode 100644 index 000000000..b27140d3a --- /dev/null +++ b/packages/ui/src/components/content/mentions-legales-cgu.vue @@ -0,0 +1,20 @@ +<template> + <div> + <MentionsLegales /> + <Cgu /> + </div> +</template> + +<script> +import MentionsLegales from './mentions-legales.vue' +import Cgu from './cgu.vue' + +export default { + name: 'MentionsLegalesCgu', + + components: { + MentionsLegales, + Cgu + } +} +</script> diff --git a/packages/ui/src/components/content/mentions-legales.vue b/packages/ui/src/components/content/mentions-legales.vue new file mode 100644 index 000000000..8a0a9cfac --- /dev/null +++ b/packages/ui/src/components/content/mentions-legales.vue @@ -0,0 +1,37 @@ +<template> + <div class="content mb-xxl"> + <h1 class="mb-xl">Mentions légales</h1> + <hr class="mb-xl" /> + <h3>Éditeurs</h3> + <p> + Camino est édité par la Fabrique numérique des ministères de la Transition + écologique et de la Cohésion des territoires, sise 1 place Carpeaux, 92800 + Puteaux, avec l’appui de l’incubateur de services numériques beta.gouv.fr + de la direction interministérielle du numérique et du système + d’information et de communication de l’État (DINSIC). + </p> + <h3>Directrice et directeur de la publication</h3> + <ul class="list-prefix"> + <li> + Madame Stéphanie Dupuy-Lyon, directrice générale de l’aménagement, du + logement et de la nature (DGALN) + </li> + <li> + Madame Catherine Latreille, directrice territoriale Guyane de l'Office + national des forêts + </li> + <li> + Monsieur Laurent Michel, directeur général de l’énergie et du climat + (DGEC). + </li> + </ul> + <h3>Prestataire d’hébergement</h3> + <p> + OVH<br /> + RCS Roubaix – Tourcoing 424 761 419 00045<br /> + Code APE 6202A<br /> + N° TVA : FR 22 424 761 419<br /> + Siège social : 2 rue Kellermann, 59100 Roubaix, France + </p> + </div> +</template> diff --git a/packages/ui/src/components/demarches.vue b/packages/ui/src/components/demarches.vue new file mode 100644 index 000000000..45b03b284 --- /dev/null +++ b/packages/ui/src/components/demarches.vue @@ -0,0 +1,13 @@ +<template> + <Page :travaux="false"></Page> +</template> + +<script> +import Page from './demarches/page.vue' + +export default { + name: 'Demarches', + + components: { Page } +} +</script> diff --git a/packages/ui/src/components/demarches/filtres-custom-etapes.vue b/packages/ui/src/components/demarches/filtres-custom-etapes.vue new file mode 100644 index 000000000..0d940df06 --- /dev/null +++ b/packages/ui/src/components/demarches/filtres-custom-etapes.vue @@ -0,0 +1,118 @@ +<template> + <div class="mb"> + <h5>{{ filter.name }}</h5> + <hr class="mb-s" /> + + <div v-for="(value, n) in filter.value" :key="n"> + <div class="flex mb-s"> + <select v-model="value.typeId" class="p-s mr-s" @change="valueReset(n)"> + <option value="">–</option> + <option + v-for="type in filter.elements" + :key="type.id" + :value="type.id" + > + {{ type.nom }} + </option> + </select> + + <button class="btn py-s px-m rnd-xs" @click="valueRemove(n)"> + <i class="icon-24 icon-minus" /> + </button> + </div> + <div v-if="value.typeId"> + <div class="blobs mb-s"> + <div class="blob-1-4"> + <h5 class="mb-0">Statut</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="blob-3-4"> + <select + v-model="value.statutId" + class="p-s mr-s cap-first" + @change="statutValueReset(n)" + > + <option :value="''">–</option> + <option + v-for="statut in statutsFind(n)" + :key="statut.id" + :value="statut.id" + > + {{ statut.nom }} + </option> + </select> + </div> + </div> + <div class="blobs mb-s"> + <div class="blob-1-4"> + <h5 class="mb-0">Après le</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="blob-3-4"> + <InputDate v-model="filter.value[n].dateDebut" /> + </div> + </div> + <div class="blobs mb-s"> + <div class="blob-1-4"> + <h5 class="mb-0">Avant le</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="blob-3-4"> + <InputDate v-model="filter.value[n].dateFin" /> + </div> + </div> + </div> + <hr class="mb-s" /> + </div> + <button + v-if="!filter.value || !filter.value.some(v => v.typeId === '')" + class="btn rnd-xs py-s px-m full-x flex mb-s h6" + @click="valueAdd" + > + <span class="mt-xxs">Ajouter un type d'étape</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> +</template> + +<script> +import InputDate from '../_ui/input-date.vue' + +export default { + components: { InputDate }, + + props: { + filter: { type: Object, required: true } + }, + + methods: { + statutsFind(n) { + const typeId = this.filter.value[n].typeId + const type = typeId + ? this.filter.elements.find(type => type.id === typeId) + : [] + + return type.etapesStatuts + }, + + valueAdd() { + this.filter.value.push({ typeId: '' }) + }, + + valueRemove(n) { + this.filter.value.splice(n, 1) + }, + + valueReset(n) { + delete this.filter.value[n].statutId + }, + + statutValueReset(n) { + // si l'utilisateur déselectionne le statut (chaine vide) + if (!this.filter.value[n].statutId) { + delete this.filter.value[n].statutId + } + } + } +} +</script> diff --git a/packages/ui/src/components/demarches/filtres.js b/packages/ui/src/components/demarches/filtres.js new file mode 100644 index 000000000..7f3ea5495 --- /dev/null +++ b/packages/ui/src/components/demarches/filtres.js @@ -0,0 +1,178 @@ +import { markRaw } from '@vue/reactivity' +import FiltresTitresDomaines from '../_common/filtres/domaines.vue' +import FiltresTitresStatuts from '../_common/filtres/statuts.vue' +import FiltresEtapes from './filtres-custom-etapes.vue' +import { elementsFormat } from '../../utils/index' + +const etapesElementsFormat = (id, metas) => metas.etapesTypes +const etapesLabelFormat = f => + f.value + .filter(value => value.typeId) + .map(value => ({ + id: f.id, + name: f.name, + value, + valueName: Object.keys(value) + .map(k => { + let key + let val = value[k] + let order + + if (k === 'typeId') { + const element = f.elements.find(e => e.id === value.typeId) + key = 'type' + val = element.nom + order = 1 + } else if (k === 'statutId') { + const element = f.elements.find(e => e.id === value.typeId) + key = 'statut' + val = element.etapesStatuts.find(es => es.id === value.statutId).nom + order = 2 + } else if (k === 'dateDebut') { + key = 'après le' + order = 3 + } else if (k === 'dateFin') { + key = 'avant le' + order = 4 + } + + return { label: `${key} : ${val}`, order } + }) + .sort((a, b) => a.order - b.order) + .map(value => value.label) + .join(', ') + })) + +// supprime les clés dont les valeurs sont vides +// et les objets vides +const etapesClean = value => { + if (!value) return [] + + const etapes = value.reduce((etapes, etape) => { + // si le type d'étape n'est pas renseigné + // alors on ignore l'étape en entier + if (!etape.typeId) return etapes + + etape = Object.keys(etape) + .sort() + .reduce((o, k) => { + if (etape[k] !== '') { + o[k] = etape[k] + } + + return o + }, {}) + + if (Object.keys(etape).length) { + etapes.push(etape) + } + + return etapes + }, []) + + return etapes.length ? etapes : [] +} + +const filtres = [ + { + id: 'titresDomainesIds', + name: 'Domaines', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresTitresDomaines), + elementsFormat + }, + { + id: 'titresTypesIds', + name: 'Types de titre', + type: 'checkboxes', + value: [], + elements: [], + elementsFormat + }, + { + id: 'titresStatutsIds', + name: 'Statuts de titre', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresTitresStatuts), + elementsFormat + }, + { + id: 'titresNoms', + type: 'input', + value: '', + name: 'Noms de titre', + placeholder: '…' + }, + { + id: 'titresEntreprises', + type: 'input', + value: '', + name: 'Entreprises', + placeholder: 'Nom ou siret' + }, + { + id: 'titresSubstances', + type: 'input', + value: '', + name: 'Substances', + placeholder: 'Or, Argent, Ag, …' + }, + { + id: 'titresReferences', + type: 'input', + value: '', + name: 'Références', + placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …' + }, + { + id: 'titresTerritoires', + type: 'input', + value: '', + name: 'Territoires', + placeholder: 'Commune, département, région, …' + }, + { + id: 'typesIds', + name: 'Types', + type: 'checkboxes', + value: [], + elementsFormat + }, + { + id: 'statutsIds', + name: 'Statuts', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresTitresStatuts), + elementsFormat + }, + { + id: 'etapesInclues', + name: "Types d'étapes incluses", + type: 'custom', + value: [], + elements: [], + component: markRaw(FiltresEtapes), + clean: etapesClean, + elementsFormat: etapesElementsFormat, + labelFormat: etapesLabelFormat + }, + { + id: 'etapesExclues', + name: "Types d'étapes exclues", + type: 'custom', + value: [], + elements: [], + component: markRaw(FiltresEtapes), + clean: etapesClean, + elementsFormat: etapesElementsFormat, + labelFormat: etapesLabelFormat + } +] + +export default filtres diff --git a/packages/ui/src/components/demarches/page.vue b/packages/ui/src/components/demarches/page.vue new file mode 100644 index 000000000..f027b6816 --- /dev/null +++ b/packages/ui/src/components/demarches/page.vue @@ -0,0 +1,133 @@ +<template> + <liste + :nom="nom" + :filtres="filtres" + :colonnes="colonnes" + :lignes="lignes" + :elements="demarches" + :metas="metas" + :params="params" + :total="total" + :initialized="initialized" + @params-update="paramsUpdate" + > + <template v-if="demarches.length" #downloads> + <Downloads + :formats="['csv', 'xlsx', 'ods']" + section="demarches" + :params="{ travaux: travaux }" + class="flex-right full-x" + /> + </template> + </liste> +</template> + +<script> +import Liste from '../_common/liste.vue' +import Downloads from '../_common/downloads.vue' +import paramsEventTrack from '../../utils/matomo-tracker.js' + +import { demarchesColonnes, demarchesLignesBuild } from './table' +import filtres from './filtres' + +export default { + name: 'Demarches', + + components: { Liste, Downloads }, + + props: { + travaux: { + type: Boolean, + required: true + } + }, + + data() { + return { + colonnes: demarchesColonnes, + filtres + } + }, + + computed: { + nom() { + return this.travaux ? 'travaux' : 'demarches' + }, + user() { + return this.$store.state.user.element + }, + + definitions() { + return this.$store.state.titresDemarches.definitions + }, + + demarches() { + return this.$store.state.titresDemarches.elements + }, + + total() { + return this.$store.state.titresDemarches.total + }, + + metas() { + return this.$store.state.titresDemarches.metas + }, + + params() { + return this.$store.state.titresDemarches.params + }, + + lignes() { + return demarchesLignesBuild(this.demarches) + }, + + initialized() { + return this.$store.state.titresDemarches.initialized + } + }, + + watch: { + user: 'init', + + '$route.query': { + handler: function () { + this.$store.dispatch('titresDemarches/routeUpdate') + } + } + }, + + async created() { + await this.init() + }, + + unmounted() { + this.$store.commit('titresDemarches/reset') + }, + + methods: { + async init() { + await this.$store.dispatch('titresDemarches/init', { + travaux: this.travaux + }) + }, + + async paramsUpdate(options) { + await this.$store.dispatch(`titresDemarches/paramsSet`, options) + + if (options.section === 'filtres') { + this.eventTrack(options.params) + } + }, + + eventTrack(params) { + paramsEventTrack( + params, + this.definitions, + this.$matomo, + 'demarches', + 'filtres' + ) + } + } +} +</script> diff --git a/packages/ui/src/components/demarches/table.js b/packages/ui/src/components/demarches/table.js new file mode 100644 index 000000000..785b6030c --- /dev/null +++ b/packages/ui/src/components/demarches/table.js @@ -0,0 +1,75 @@ +import { markRaw } from '@vue/reactivity' +import Nom from '../_common/nom.vue' +import Statut from '../_common/statut.vue' +import CaminoDomaine from '../_common/domaine.vue' +import List from '../_ui/list.vue' + +const demarchesColonnes = [ + { id: 'titreNom', name: 'Titre' }, + { id: 'titreDomaine', name: '' }, + { id: 'titreType', name: 'Type de titre' }, + { + id: 'titreStatut', + name: 'Statut de titre', + class: ['nowrap', 'min-width-6'] + }, + { id: 'type', name: 'Type' }, + { id: 'statut', name: 'Statut', class: ['nowrap'] }, + { id: 'references', name: 'Références', class: ['nowrap'] } +] + +const demarchesLignesBuild = demarches => + demarches.map(demarche => { + const columns = { + titreNom: { value: demarche.titre.nom }, + titreDomaine: { + component: markRaw(CaminoDomaine), + props: { domaineId: demarche.titre.domaine.id }, + value: demarche.titre.domaine.id + }, + titreType: { + component: markRaw(Nom), + props: { nom: demarche.titre.type.type.nom }, + value: demarche.titre.type.type.nom + }, + titreStatut: { + component: markRaw(Statut), + props: { + color: demarche.titre.statut.couleur, + nom: demarche.titre.statut.nom + }, + value: demarche.titre.statut.nom + }, + type: { + component: markRaw(Nom), + props: { nom: demarche.type.nom }, + value: demarche.type.nom + }, + statut: { + component: markRaw(Statut), + props: { + color: demarche.statut.couleur, + nom: demarche.statut.nom + }, + value: demarche.statut.nom + }, + references: { + component: markRaw(List), + props: { + elements: demarche.titre.references.map( + ref => `${ref.type.nom} : ${ref.nom}` + ), + mini: true + }, + class: 'mb--xs' + } + } + + return { + id: demarche.id, + link: { name: 'titre', params: { id: demarche.titre.slug } }, + columns + } + }) + +export { demarchesColonnes, demarchesLignesBuild } diff --git a/packages/ui/src/components/document/button-add.vue b/packages/ui/src/components/document/button-add.vue new file mode 100644 index 000000000..3397d7d6c --- /dev/null +++ b/packages/ui/src/components/document/button-add.vue @@ -0,0 +1,48 @@ +<template> + <button class="flex small" @click="addPopupOpen"> + <span v-if="large" class="mt-xxs mr-s">Ajouter un document</span> + <i class="icon-24 icon-file-plus flex-right" /> + </button> +</template> + +<script> +import DocumentEditPopup from './edit-popup.vue' + +export default { + props: { + route: { type: Object, default: null }, + action: { type: Object, default: null }, + document: { type: Object, required: true }, + parentTypeId: { type: String, default: '' }, + repertoire: { type: String, required: true }, + title: { type: String, required: true }, + large: { type: Boolean, default: false }, + documentsTypes: { type: Array, default: null } + }, + + emits: ['titre-event-track'], + + methods: { + addPopupOpen() { + this.$store.commit('popupOpen', { + component: DocumentEditPopup, + props: { + document: this.document, + action: this.action, + route: this.route, + parentTypeId: this.parentTypeId, + repertoire: this.repertoire, + title: this.title, + documentsTypes: this.documentsTypes + } + }) + + this.$emit('titre-event-track', { + categorie: 'titre-sections', + action: 'titre-etape-doc_ajouter', + nom: this.$route.params.id + }) + } + } +} +</script> diff --git a/packages/ui/src/components/document/edit-popup.vue b/packages/ui/src/components/document/edit-popup.vue new file mode 100644 index 000000000..2ca9cdf5b --- /dev/null +++ b/packages/ui/src/components/document/edit-popup.vue @@ -0,0 +1,193 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h6> + <span class="cap-first"> + {{ title }} + </span> + </h6> + <h2 class="cap-first"> + {{ document.id ? 'Modification du' : "Ajout d'un" }} document + </h2> + </div> + </template> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Type</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select v-if="!document.id" v-model="document.typeId" class="p-s"> + <option + v-for="dt in types" + :key="dt.id" + :value="dt.id" + :disabled="document.typeId === dt.id" + > + {{ dt.nom }} + </option> + </select> + <div v-else-if="documentType" class="p-s"> + {{ documentType.nom }} + </div> + </div> + </div> + + <hr /> + + <SectionsEdit + v-model:document="document" + :repertoire="repertoire" + :user-is-admin="userIsAdmin" + /> + + <template #footer> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button + v-if="!loading" + class="btn-border rnd-xs p-s full-x" + @click="cancel" + > + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + v-if="!loading" + ref="save-button" + class="btn btn-primary" + :disabled="!complete" + @click="save" + > + Enregistrer + </button> + + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </div> + </div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' +import SectionsEdit from './sections-edit.vue' + +export default { + name: 'CaminoDocumentEditPopup', + + components: { + Popup, + SectionsEdit + }, + + props: { + title: { type: String, required: true }, + route: { type: Object, default: null }, + action: { type: Object, default: null }, + document: { type: Object, required: true }, + repertoire: { type: String, required: true }, + parentTypeId: { type: String, default: '' }, + documentsTypes: { type: Array, default: null } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + complete() { + return ( + this.document.typeId && + this.document.date && + (this.document.uri || + this.document.url || + this.document.fichier || + this.document.fichierNouveau) + ) + }, + + messages() { + return this.$store.state.popup.messages + }, + + types() { + if (this.documentsTypes) { + return this.documentsTypes + } + return this.$store.state.document.metas.documentsTypes + }, + + documentType() { + return this.types && this.types.find(d => d.id === this.document.typeId) + }, + + userIsAdmin() { + return this.$store.getters['user/userIsAdmin'] + } + }, + + async created() { + document.addEventListener('keyup', this.keyUp) + await this.get() + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyUp) + }, + + methods: { + async get() { + if (!this.documentsTypes) { + const options = { repertoire: this.repertoire } + + if (this.parentTypeId) { + options.typeId = this.parentTypeId + } + + await this.$store.dispatch('document/init', options) + } + }, + + async save() { + await this.$store.dispatch('document/upsert', { + document: this.document, + route: this.route, + action: this.action + }) + + this.eventTrack({ + categorie: 'titre-sections', + action: 'titre-etape-doc-enregistrer', + nom: this.document.titreEtapeId + }) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyUp(e) { + if (!this.loading) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13 && this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + }, + + errorsRemove() {} + } +} +</script> diff --git a/packages/ui/src/components/document/multi-edit.vue b/packages/ui/src/components/document/multi-edit.vue new file mode 100644 index 000000000..ca38b8307 --- /dev/null +++ b/packages/ui/src/components/document/multi-edit.vue @@ -0,0 +1,99 @@ +<template> + <Documents + v-if="documents.length" + :documents="documents" + :bouton-modification="true" + :bouton-suppression="true" + :add-action="addAction" + :remove-action="removeAction" + :manquant-show="true" + :help-show="true" + :repertoire="repertoire" + :title="documentPopupTitle" + /> + + <DocumentAddButton + v-if="documentsTypes?.length" + :document="{ + date: TODAY, + entreprisesLecture: !userIsAdmin, + publicLecture: false, + fichier: null, + fichierNouveau: null, + fichierTypeId: null, + typeId: '' + }" + :action="addAction" + :title="documentPopupTitle" + :repertoire="repertoire" + class="btn py-s px-m rnd-xs mt--s mb-s full-x" + :parent-type-id="parentTypeId" + :large="true" + :documents-types="documentsTypes" + /> +</template> + +<script> +import DocumentAddButton from './button-add.vue' +import Documents from '../documents/list.vue' +import { TODAY } from '@/utils' + +export default { + components: { DocumentAddButton, Documents }, + + props: { + documents: { type: Array, required: true }, + parentTypeId: { type: String, required: true }, + documentsTypes: { type: Array, required: true }, + documentPopupTitle: { type: String, required: true }, + addAction: { type: Object, default: null }, + removeAction: { type: Object, default: null }, + repertoire: { type: String, required: true } + }, + + emits: ['complete-update'], + + data() { + return { + TODAY + } + }, + + computed: { + complete() { + return this.documents.every(d => { + const documentType = this.documentsTypes.find(dt => dt.id === d.typeId) + + return ( + !documentType || + documentType.optionnel || + !!( + (d.fichier || + d.fichierNouveau || + (this.userIsAdmin && (d.uri || d.url))) && + d.date + ) + ) + }) + }, + + userIsAdmin() { + return this.$store.getters['user/userIsAdmin'] + } + }, + + watch: { + complete: 'completeUpdate' + }, + + created() { + this.completeUpdate() + }, + + methods: { + completeUpdate() { + this.$emit('complete-update', this.complete) + } + } +} +</script> diff --git a/packages/ui/src/components/document/remove-popup.vue b/packages/ui/src/components/document/remove-popup.vue new file mode 100644 index 000000000..7c2e8d430 --- /dev/null +++ b/packages/ui/src/components/document/remove-popup.vue @@ -0,0 +1,105 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h6> + <span class="cap-first"> + {{ title }} + </span> + </h6> + <h2 class="cap-first">Suppression du document</h2> + </div> + </template> + + <p class="bold"> + Souhaitez vous supprimer le document + <span class="color-inverse">{{ document.type.nom }}</span> de + <span class="color-inverse">{{ title }}</span> ? + </p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button + v-if="!loading" + class="btn-border rnd-xs p-s full-x" + @click="cancel" + > + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + v-if="!loading" + class="btn-flash rnd-xs p-s full-x" + @click="remove" + > + Supprimer + </button> + <div v-else class="p-s full-x bold">Suppression en cours…</div> + </div> + </div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoDocumentRemovePopup', + + components: { + Popup + }, + + props: { + title: { type: String, default: '' }, + route: { type: Object, required: true }, + document: { type: Object, default: () => ({}) } + }, + + computed: { + messages() { + return this.$store.state.popup.messages + }, + + loading() { + return this.$store.state.popup.loading + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async remove() { + await this.$store.dispatch('document/remove', { + id: this.document.id, + route: this.route + }) + }, + + cancel() { + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + } + } +} +</script> diff --git a/packages/ui/src/components/document/sections-edit.vue b/packages/ui/src/components/document/sections-edit.vue new file mode 100644 index 000000000..c1b3a99bc --- /dev/null +++ b/packages/ui/src/components/document/sections-edit.vue @@ -0,0 +1,294 @@ +<template> + <div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Date</h5> + </div> + <div class="tablet-blob-2-3"> + <InputDate v-if="modifiable" v-model="document.date" class="mb" /> + <p v-else-if="document.date" class="pt-xs"> + {{ document.date }} + </p> + <p v-else class="color-warning pt-xs">À compléter pour valider</p> + </div> + </div> + + <hr /> + + <div v-if="documentsVisibilites.length > 1 && modifiable"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3"> + <h5>Visibilité</h5> + </div> + <div class="tablet-blob-2-3"> + <ul class="list-sans"> + <li v-for="visibilite in documentsVisibilites" :key="visibilite.id"> + <label class="small bold"> + <input + :value="visibilite.id" + :checked="visibilite.id === visibiliteId" + type="radio" + class="mr-s" + @change="visibiliteUpdate(visibilite.id)" + /> + {{ visibilite.nom }} + </label> + </li> + </ul> + </div> + </div> + <hr /> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-xs">Fichier</h5> + <p v-if="userIsAdmin" class="h6 italic mb-0">Optionnel</p> + </div> + <div class="tablet-blob-2-3"> + <div v-if="document.fichier || document.fichierNouveau" class="flex"> + <p class="mb-0 word-break"> + {{ + (document.fichierNouveau && document.fichierNouveau.name) || + `${document.id}.${document.fichierTypeId}` + }} + </p> + <div v-if="modifiable" class="flex-right flex flex-center pl-s"> + <button + class="btn-border py-s px-m my--xs rnd-l-xs" + @click="fileRemove" + > + <i class="icon-24 icon-trash" /> + </button> + <button + class="btn-border py-s px-m my--xs rnd-r-xs" + @click="fileDownload" + > + <i class="icon-24 icon-download" /> + </button> + </div> + </div> + <div v-else-if="modifiable"> + <InputFile + class="btn-border small p-s full-x rnd-xs mb-s" + @change="fileChange" + /> + <p class="h5 italic">30 Mo max.</p> + </div> + <p v-else class="color-warning pt-s mb-0">À compléter pour valider</p> + </div> + </div> + + <hr /> + + <div v-if="document.fichierNouveau"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Type de fichier</h5> + </div> + <div class="tablet-blob-2-3 mb"> + <select + v-if="modifiable" + v-model="document.fichierTypeId" + class="p-s" + > + <option + v-for="fichierTypeId in fichiersTypesIds" + :key="fichierTypeId" + :value="fichierTypeId" + :disabled="document.fichierTypeId === fichierTypeId" + > + {{ fichierTypeId }} + </option> + </select> + <p v-else-if="document.fichierTypeId" class="pt-xs mb-0"> + {{ document.fichierTypeId }} + </p> + <p v-else class="color-warning pt-s mb-0">À compléter pour valider</p> + </div> + </div> + <hr /> + </div> + + <div + v-if=" + (document.typeId === 'dec' || document.typeId === 'arr') && modifiable + " + > + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-xs">Jorf</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="document.jorf" type="text" class="p-s" /> + </div> + </div> + <hr /> + </div> + + <div + v-if=" + (document.typeId === 'dec' || document.typeId === 'arr') && modifiable + " + > + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-xs">Nor</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="document.nor" type="text" class="p-s" /> + </div> + </div> + <hr /> + </div> + + <div v-if="repertoire === 'demarches' && modifiable && userIsAdmin"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-xs">URI</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="document.uri" + type="url" + class="p-s" + placeholder="https://…" + /> + </div> + </div> + <hr /> + </div> + + <div v-if="repertoire === 'demarches' && modifiable && userIsAdmin"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-xs">URL</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="document.url" + type="url" + class="p-s" + placeholder="https://…" + /> + </div> + </div> + <hr /> + </div> + + <div v-if="modifiable || document.description"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-xs">Description</h5> + <p v-if="modifiable" class="h6 italic mb-0">Optionnel</p> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-if="modifiable" + v-model="document.description" + type="text" + class="p-s" + /> + <p v-else-if="document.description" class="pt-xs mb-0"> + {{ document.description }} + </p> + </div> + </div> + <hr /> + </div> + + <Messages :messages="warnings" /> + </div> +</template> + +<script> +import InputDate from '../_ui/input-date.vue' +import InputFile from '../_ui/input-file.vue' +import Messages from '../_ui/messages.vue' + +export default { + components: { Messages, InputFile, InputDate }, + + props: { + document: { type: Object, required: true }, + modifiable: { type: Boolean, default: true }, + repertoire: { type: String, required: true }, + userIsAdmin: { type: Boolean, default: false } + }, + + data() { + return { + fichiersTypesIds: ['pdf'], + warnings: [] + } + }, + + computed: { + documentsVisibilites() { + return this.$store.state.document.metas.documentsVisibilites + }, + + visibiliteId() { + if (this.document.publicLecture) { + return 'public' + } + + if (this.document.entreprisesLecture) { + return 'entreprise' + } + + return 'admin' + } + }, + + async mounted() { + if ( + this.documentsVisibilites.length && + this.documentsVisibilites.length < 2 + ) { + this.document.publicLecture = this.documentsVisibilites[0].id === 'public' + this.document.entreprisesLecture = + this.documentsVisibilites[0].id === 'entreprise' + } + }, + + methods: { + fileChange({ + target: { + validity, + files: [file] + } + }) { + if (file && validity.valid && file.type === 'application/pdf') { + this.warnings = [] + this.document.fichierNouveau = file + this.document.fichierTypeId = 'pdf' + } else { + this.warnings = [ + { type: 'warning', value: 'seuls les fichiers pdf sont acceptés' } + ] + } + }, + + fileRemove() { + this.document.fichier = null + this.document.fichierNouveau = null + this.document.fichierTypeId = null + this.warnings = [] + }, + + fileDownload() { + this.$store.dispatch('downloadDocument', this.document) + }, + + visibiliteUpdate(id) { + this.document.publicLecture = id === 'public' + this.document.entreprisesLecture = id === 'entreprise' + } + } +} +</script> diff --git a/packages/ui/src/components/documents/list.vue b/packages/ui/src/components/documents/list.vue new file mode 100644 index 000000000..c46ceed0e --- /dev/null +++ b/packages/ui/src/components/documents/list.vue @@ -0,0 +1,58 @@ +<template> + <div class="overflow-scroll-x"> + <table> + <tr> + <th>Nom</th> + <th>Date</th> + <th class="full-x-">Description</th> + <th /> + </tr> + <DocumentTr + v-for="document in documents" + :key="document.id" + :document="document" + :parent-id="parentId" + :parent-type-id="parentTypeId" + :route="route" + :add-action="addAction" + :remove-action="removeAction" + :repertoire="repertoire" + :title="title" + :etiquette="etiquette" + :bouton-visualisation="true" + :bouton-suppression="boutonSuppression && document.suppression" + :bouton-modification="boutonModification && document.modification" + :bouton-dissociation="boutonDissociation" + :manquant-show="manquantShow" + :help-show="helpShow" + /> + </table> + </div> +</template> + +<script> +import DocumentTr from './tr.vue' + +export default { + components: { + DocumentTr + }, + + props: { + documents: { type: Array, required: true }, + repertoire: { type: String, required: true }, + title: { type: String, default: '' }, + route: { type: Object, default: null }, + addAction: { type: Object, default: null }, + removeAction: { type: Object, default: null }, + parentId: { type: String, default: '' }, + parentTypeId: { type: String, default: '' }, + etiquette: { type: Boolean, default: false }, + boutonDissociation: { type: Boolean, default: false }, + boutonModification: { type: Boolean, default: false }, + boutonSuppression: { type: Boolean, default: false }, + manquantShow: { type: Boolean, default: false }, + helpShow: { type: Boolean, default: false } + } +} +</script> diff --git a/packages/ui/src/components/documents/tr.vue b/packages/ui/src/components/documents/tr.vue new file mode 100644 index 000000000..1e86e922b --- /dev/null +++ b/packages/ui/src/components/documents/tr.vue @@ -0,0 +1,222 @@ +<template> + <tr class="h6"> + <td class="nowrap pt-m flex flex-center"> + <span class="bold">{{ document.type.nom }}</span> + <span> + <HelpTooltip v-if="helpShow && document.type.description" class="ml-xs"> + {{ document.type.description }} + </HelpTooltip> + </span> + <span v-if="etiquette"> + <Tag + v-if="document.publicLecture" + :mini="true" + color="bg-info" + class="ml-xs" + > + Public + </Tag> + <Tag + v-if="document.entreprisesLecture && !document.publicLecture" + :mini="true" + color="bg-info" + class="ml-xs" + > + Entreprise + </Tag> + </span> + <Tag + v-if="manquant && manquantShow" + color="bg-warning" + class="ml-xs" + :mini="true" + >Fichier manquant</Tag + > + </td> + <td class="nowrap pt-m"> + {{ dateFormat(document.date) }} + </td> + <td class="pt-m">{{ document.description || '–' }}</td> + <td class="flex text-right"> + <button + v-if="boutonModification" + class="btn rnd-l-xs py-s px-m my--xs mr-px" + @click="editPopupOpen" + > + <i class="icon-24 icon-pencil" /> + </button> + <button + v-if="boutonSuppression" + class="btn py-s px-m my--xs" + :class="{ + 'rnd-r-xs': !document.url && !document.uri && !document.fichier + }" + @click="removePopupOpen" + > + <i class="icon-24 icon-trash" /> + </button> + <a + v-if="document.fichier || document.fichierNouveau" + class="btn-border py-s px-m my--xs" + :class="{ + 'rnd-r-xs': !document.url && !document.uri, + 'rnd-l-xs': + !boutonVisualisation && + !boutonModification && + !boutonSuppression && + !boutonDissociation + }" + :href="`/apiUrl/fichiers/${document.id}`" + :download="document.nom" + target="_blank" + > + <i class="icon-24 icon-download" /> + </a> + <a + v-if="document.url" + class="btn-border py-s px-m my--xs" + :class="{ + 'rnd-r-xs': !document.uri, + 'rnd-l-xs': + !document.fichier && + !boutonVisualisation && + !boutonModification && + !boutonSuppression && + !boutonDissociation + }" + :href="document.url" + target="_blank" + rel="noopener noreferrer" + alt="Url" + > + <i class="icon-24 icon-link" /> + </a> + <a + v-if="document.uri" + class="btn-border py-s px-m my--xs rnd-r-xs" + :class="{ + 'rnd-l-xs': + !document.url && + !document.fichier && + !boutonVisualisation && + !boutonModification && + !boutonSuppression && + !boutonDissociation + }" + :href="document.uri" + target="_blank" + rel="noopener noreferrer" + alt="Uri" + > + <i class="icon-24 icon-link" /> + </a> + </td> + </tr> +</template> + +<script> +import { cloneAndClean, dateFormat } from '../../utils/index' +import Tag from '../_ui/tag.vue' +import DocumentEditPopup from '../document/edit-popup.vue' +import DocumentRemovePopup from '../document/remove-popup.vue' +import HelpTooltip from '../_ui/help-tooltip.vue' + +export default { + components: { + Tag, + HelpTooltip + }, + + props: { + document: { type: Object, required: true }, + repertoire: { type: String, required: true }, + title: { type: String, required: true }, + route: { type: Object, default: null }, + addAction: { type: Object, default: null }, + removeAction: { type: Object, default: null }, + parentId: { type: String, default: '' }, + parentTypeId: { type: String, default: '' }, + etiquette: { type: Boolean, default: false }, + boutonVisualisation: { type: Boolean, default: true }, + boutonDissociation: { type: Boolean, default: false }, + boutonModification: { type: Boolean, default: false }, + boutonSuppression: { type: Boolean, default: false }, + manquantShow: { type: Boolean, default: false }, + helpShow: { type: Boolean, default: false } + }, + + data() { + return { + fileReader: null + } + }, + + computed: { + manquant() { + return !( + this.document.fichier || + this.document.fichierNouveau || + this.document.uri || + this.document.url + ) + } + }, + + methods: { + editPopupOpen() { + const document = cloneAndClean(this.document) + if (this.parentId) { + if (this.repertoire === 'demarches') { + document.titreEtapeId = this.parentId + } else if (this.repertoire === 'activites') { + document.titreActiviteId = this.parentId + } else if (this.repertoire === 'entreprises') { + document.entrepriseId = this.parentId + } + } + + document.typeId = document.type.id + document.fichierNouveau = null + + delete document.type + delete document.modification + delete document.suppression + + this.$store.commit('popupOpen', { + component: DocumentEditPopup, + props: { + title: this.title, + route: this.route, + action: this.addAction, + document, + repertoire: this.repertoire, + parentTypeId: this.parentTypeId + } + }) + }, + + removePopupOpen() { + if (this.removeAction) { + this.$store.dispatch( + this.removeAction.name, + { id: this.document.id }, + { root: true } + ) + } else { + this.$store.commit('popupOpen', { + component: DocumentRemovePopup, + props: { + title: this.title, + document: this.document, + route: this.route + } + }) + } + }, + + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/entreprise.vue b/packages/ui/src/components/entreprise.vue new file mode 100644 index 000000000..69d22b867 --- /dev/null +++ b/packages/ui/src/components/entreprise.vue @@ -0,0 +1,329 @@ +<template> + <Loader v-if="!loaded" /> + <div v-else> + <h5>Entreprise</h5> + <h1> + {{ nom }} + </h1> + <Accordion class="mb-xxl" :slot-sub="true" :slot-buttons="true"> + <template #title> + <span class="cap-first"> Profil </span> + </template> + + <template v-if="entreprise.modification" #buttons> + <DocumentAddButton + :route="route" + :document="documentNew" + :title="nom" + repertoire="entreprises" + class="btn py-s px-m mr-px" + /> + <button class="btn py-s px-m" @click="editPopupOpen"> + <i class="icon-24 icon-pencil" /> + </button> + </template> + + <template #sub> + <div class="px-m pt-m border-b-s"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Siren</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ entreprise.legalSiren }}</p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Forme juridique</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ entreprise.legalForme }}</p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5> + Établissement{{ + entreprise.etablissements.length > 1 ? 's' : '' + }} + </h5> + </div> + <div class="tablet-blob-3-4"> + <ul class="list-sans"> + <li v-for="e in entreprise.etablissements" :key="e.id"> + <h6 class="inline-block"> + {{ dateFormat(e.dateDebut) }} + </h6> + : {{ e.nom }} + </li> + </ul> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Adresse</h5> + </div> + <div class="tablet-blob-3-4"> + <p> + {{ entreprise.adresse }} + <br />{{ entreprise.codePostal }} + {{ entreprise.commune }} + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Téléphone</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + <span v-if="entreprise.telephone">{{ + entreprise.telephone + }}</span> + <span v-else>–</span> + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Email</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + <a + v-if="entreprise.email" + :href="`mailto:${entreprise.email}`" + class="btn small bold py-xs px-s rnd" + > + {{ entreprise.email }} + </a> + <span v-else>–</span> + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Site</h5> + </div> + <div class="tablet-blob-3-4"> + <p class="word-break"> + <a + v-if="entreprise.url" + :href="entreprise.url" + class="btn small bold py-xs px-s rnd" + > + {{ entreprise.url }} + </a> + <span v-else>–</span> + </p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Archivée</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ entreprise.archive ? 'Oui' : 'Non' }}</p> + </div> + </div> + </div> + + <div v-if="entreprise.documents.length"> + <h4 class="px-m pt mb-0">Documents</h4> + <Documents + :bouton-modification="entreprise.modification" + :bouton-suppression=" + entreprise.modification && + permissionsCheck(user, ['super', 'admin', 'editeur']) + " + :route="route" + :documents="entreprise.documents" + :etiquette="entreprise.modification" + :parent-id="entreprise.id" + :title="nom" + repertoire="entreprises" + class="px-m" + /> + </div> + </template> + </Accordion> + + <div v-if="utilisateurs && utilisateurs.length" class="mb-xxl"> + <div class="line-neutral width-full mb-xxl" /> + <h3>Utilisateurs</h3> + <div class="line width-full" /> + <Table + class="width-full-p" + :columns="utilisateursColonnes" + :rows="utilisateursLignes" + :utilisateurs="utilisateurs" + /> + </div> + + <div v-if="titulaireTitres && titulaireTitres.length" class="mb-xxl"> + <div class="line-neutral width-full mb-xxl" /> + <h3>Titres miniers et autorisations</h3> + <div class="line width-full" /> + <TitresTable :titres="titulaireTitres" /> + </div> + + <div v-if="amodiataireTitres && amodiataireTitres.length" class="mb-xxl"> + <div class="line width-full my-xxl" /> + <h3>Titres miniers et autorisations (amodiataire)</h3> + <div class="line width-full" /> + <TitresTable :titres="amodiataireTitres" /> + </div> + + <div v-if="permissionsCheck(user, ['super'])" class="mb-xxl"> + <div class="line-neutral width-full mb-xxl" /> + <h2>Permissions</h2> + + <EntreprisePermission :entreprise="entreprise" /> + </div> + </div> +</template> + +<script> +import Accordion from './_ui/accordion.vue' +import Loader from './_ui/loader.vue' +import Table from './_ui/table.vue' +import TitresTable from './titres/table.vue' +import EntrepriseEditPopup from './entreprise/edit-popup.vue' +import DocumentAddButton from './document/button-add.vue' +import Documents from './documents/list.vue' +import { dateFormat, permissionsCheck } from '../utils/index' +import EntreprisePermission from './entreprise/permissions.vue' + +import { + utilisateursColonnes, + utilisateursLignesBuild +} from './utilisateurs/table' + +export default { + components: { + Accordion, + Loader, + Table, + TitresTable, + DocumentAddButton, + Documents, + EntreprisePermission + }, + + data() { + return { + utilisateursColonnes + } + }, + + computed: { + entreprise() { + return this.$store.state.entreprise.element + }, + + nom() { + return this.entreprise && this.entreprise.nom ? this.entreprise.nom : '–' + }, + + utilisateurs() { + return this.entreprise.utilisateurs + }, + + utilisateursLignes() { + return utilisateursLignesBuild(this.utilisateurs) + }, + + titulaireTitres() { + return this.entreprise.titulaireTitres + }, + + amodiataireTitres() { + return this.entreprise.amodiataireTitres + }, + + user() { + return this.$store.state.user.element + }, + + loaded() { + return !!this.entreprise + }, + + documentNew() { + return { + entrepriseId: this.entreprise.id, + entreprisesLecture: false, + publicLecture: false, + fichier: null, + fichierNouveau: null, + fichierTypeId: null, + typeId: '' + } + }, + + route() { + return { + id: this.entreprise.id, + name: 'entreprise' + } + } + }, + + watch: { + '$route.params.id': function (id) { + if (this.$route.name === 'entreprise' && id) { + this.get() + } + }, + + user: 'get' + }, + + async created() { + await this.get() + }, + + beforeUnmount() { + this.$store.commit('entreprise/reset') + }, + + methods: { + async get() { + await this.$store.dispatch('entreprise/get', this.$route.params.id) + }, + + editPopupOpen() { + const entreprise = { + id: this.entreprise.id, + telephone: this.entreprise.telephone, + url: this.entreprise.url, + email: this.entreprise.email, + archive: this.entreprise.archive + } + + this.$store.commit('popupOpen', { + component: EntrepriseEditPopup, + props: { + entreprise + } + }) + }, + + dateFormat(date) { + return dateFormat(date) + }, + + permissionsCheck(user, permissions) { + return permissionsCheck(user, permissions) + } + } +} +</script> diff --git a/packages/ui/src/components/entreprise/add-popup.vue b/packages/ui/src/components/entreprise/add-popup.vue new file mode 100644 index 000000000..437988620 --- /dev/null +++ b/packages/ui/src/components/entreprise/add-popup.vue @@ -0,0 +1,136 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h2>Création d'une entreprise</h2> + </div> + </template> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Pays</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select v-model="entreprise.paysId" class="p-s mr" :disabled="true"> + <option v-for="pay in pays" :key="pay.id" :value="pay.id"> + {{ pay.nom }} + </option> + </select> + </div> + </div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Siren</h5> + </div> + <div class="mb tablet-blob-2-3"> + <div> + <input + v-model="entreprise.legalSiren" + type="text" + class="p-s" + placeholder="123456789" + /> + </div> + </div> + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + ref="save-button" + class="btn btn-primary" + :disabled="!complete" + :class="{ disabled: !complete }" + @click="save" + > + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoEntrepriseEditPopup', + + components: { + Popup + }, + + data() { + return { + entreprise: { legalSiren: '', paysId: 'fr' }, + pays: [{ id: 'fr', nom: 'France' }] + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + complete() { + return this.sirenValide && this.entreprise.paysId + }, + + sirenValide() { + return ( + this.entreprise.legalSiren && + this.entreprise.legalSiren.match('[0-9]{9}$') + ) + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + this.element = null + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + if (this.complete) { + await this.$store.dispatch('entreprise/add', this.entreprise) + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/entreprise/edit-popup.vue b/packages/ui/src/components/entreprise/edit-popup.vue new file mode 100644 index 000000000..f42d29041 --- /dev/null +++ b/packages/ui/src/components/entreprise/edit-popup.vue @@ -0,0 +1,153 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h2>Modification d'une entreprise</h2> + </div> + </template> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Téléphone</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="entreprise.telephone" + type="text" + class="p-s" + placeholder="0100000000" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Adresse électronique</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="entreprise.email" + type="text" + class="p-s" + placeholder="email@domain.tld" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Site internet</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="entreprise.url" + type="text" + class="p-s" + placeholder="http://…" + /> + </div> + </div> + + <template v-if="permissionsCheck(user, ['super'])"> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Archivée</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="entreprise.archive" type="checkbox" class="p-s" /> + </div> + </div> + </template> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button ref="save-button" class="btn btn-primary" @click="save"> + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script> +import { permissionsCheck } from '@/utils' +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoEntrepriseEditPopup', + + components: { + Popup + }, + + props: { + entreprise: { + type: Object, + default: () => ({}) + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + user() { + return this.$store.state.user.element + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + this.element = null + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + const entreprise = JSON.parse(JSON.stringify(this.entreprise)) + await this.$store.dispatch('entreprise/update', entreprise) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.$refs['save-button'].focus() + this.save() + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + }, + + permissionsCheck(user, permissions) { + return permissionsCheck(user, permissions) + } + } +} +</script> diff --git a/packages/ui/src/components/entreprise/permissions.vue b/packages/ui/src/components/entreprise/permissions.vue new file mode 100644 index 000000000..e9defd1cc --- /dev/null +++ b/packages/ui/src/components/entreprise/permissions.vue @@ -0,0 +1,206 @@ +<template> + <div> + <div class="mb-xxl"> + <h3>Création de demandes de titres</h3> + + <div class="h6"> + <p>Droit de faire des demande de titres par domaine / type de titre.</p> + </div> + + <div class="line width-full" /> + <div class="width-full-p"> + <div class="overflow-scroll-x mb"> + <table> + <tr> + <th>Domaine</th> + <th>Type de titre</th> + <th>Création de titres</th> + <th /> + </tr> + <tr> + <td> + <select + v-model="titreTypeNew.domaineId" + class="py-xs px-s mr-s" + > + <option + v-for="domaine in domaines" + :key="domaine.id" + :value="domaine.id" + > + {{ domaine.id.toUpperCase() }} {{ domaine.nom }} + </option> + </select> + </td> + <td> + <select + v-model="titreTypeNew.titreTypeTypeId" + class="py-xs px-s mr-s" + :disabled="!titreTypeNew.domaineId" + > + <option + v-for="titreType in titreTypeNewTypes" + :key="titreType.id" + :value="titreType.type.id" + > + {{ titreType.type.nom }} + </option> + </select> + </td> + <td> + <button + class="btn p-xs rnd-xs" + :disabled="!titreTypeNew.titreTypeTypeId" + @click=" + titreTypeNew.titresCreation = !titreTypeNew.titresCreation + " + > + <i + v-if="titreTypeNew.titresCreation" + class="icon-24 icon-check" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td> + <ButtonPlus + :disabled="!titreTypeNewActive" + @click="titreTypeNewUpdate" + /> + </td> + </tr> + <tr v-for="titreType in entreprise.titresTypes" :key="titreType.id"> + <td> + <CaminoDomaine + :domaine-id="titreType.domaine.id" + class="mt-s" + /> + </td> + <td> + <span class="small bold cap-first mt-s">{{ + titreType.type.nom + }}</span> + </td> + <td> + <button + class="btn p-xs rnd-xs" + @click=" + titreTypeUpdate( + titreType.id, + titreType.titresCreation, + true + ) + " + > + <i + v-if="titreType.titresCreation" + class="icon-24 icon-check" + /> + <i v-else class="icon-24 icon-square" /> + </button> + </td> + <td /> + </tr> + </table> + </div> + </div> + </div> + </div> +</template> + +<script> +import CaminoDomaine from '../_common/domaine.vue' +import ButtonPlus from '../../components/_ui/button-plus.vue' + +export default { + components: { + CaminoDomaine, + ButtonPlus + }, + + props: { + entreprise: { type: Object, required: true } + }, + + data() { + return { + titreTypeNew: { + domaineId: null, + titreTypeTypeId: null, + titresCreation: false + } + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + domaines() { + return this.$store.state.entreprise.metas.domaines + }, + + loaded() { + return !!this.entreprise + }, + + titreTypeNewTypes() { + if (!this.titreTypeNew.domaineId) { + return [] + } + + const domaine = this.domaines.find( + d => d.id === this.titreTypeNew.domaineId + ) + + return domaine.titresTypes + }, + + titreTypeNewActive() { + return ( + this.titreTypeNew.titreTypeTypeId && + this.titreTypeNew.domaineId && + this.titreTypeNew.titresCreation + ) + } + }, + + created() { + this.get() + }, + + methods: { + async get() { + await this.$store.dispatch('entreprise/permissionsInit') + }, + + async titreTypeUpdate(titreTypeId, titresCreation, changed) { + if (changed) { + titresCreation = !titresCreation + } + + await this.$store.dispatch('entreprise/titreTypeUpdate', { + entrepriseId: this.entreprise.id, + titreTypeId, + titresCreation + }) + }, + + titreTypeNewUpdate() { + if (this.titreTypeNewActive) { + this.titreTypeUpdate( + `${this.titreTypeNew.titreTypeTypeId}${this.titreTypeNew.domaineId}`, + this.titreTypeNew.titresCreation + ) + + this.titreTypeNew = { + domaineId: null, + titreTypeTypeId: null, + titresCreation: false + } + } + } + } +} +</script> diff --git a/packages/ui/src/components/entreprises.vue b/packages/ui/src/components/entreprises.vue new file mode 100644 index 000000000..3ff4df482 --- /dev/null +++ b/packages/ui/src/components/entreprises.vue @@ -0,0 +1,113 @@ +<template> + <Liste + nom="entreprises" + :filtres="filtres" + :colonnes="colonnes" + :lignes="lignes" + :elements="entreprises" + :params="params" + :total="total" + :initialized="initialized" + @params-update="paramsUpdate" + > + <template v-if="user && user.entreprisesCreation" #addButton> + <button + class="btn small rnd-xs py-s px-m full-x flex mb-s" + @click="addPopupOpen" + > + <span class="mt-xxs">Ajouter une entreprise</span> + <i class="icon-24 icon-plus flex-right" /> + </button> + </template> + + <template v-if="entreprises.length" #downloads> + <Downloads + :formats="['csv', 'xlsx', 'ods']" + section="entreprises" + class="flex-right full-x" + /> + </template> + </Liste> +</template> + +<script> +import Liste from './_common/liste.vue' +import Downloads from './_common/downloads.vue' +import EntrepriseAddPopup from './entreprise/add-popup.vue' + +import filtres from './entreprises/filtres' +import { + entreprisesColonnes, + entreprisesLignesBuild +} from './entreprises/table' + +export default { + name: 'Entreprises', + + components: { Liste, Downloads }, + + data() { + return { + filtres, + colonnes: entreprisesColonnes, + visible: false + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + entreprises() { + return this.$store.state.entreprises.elements + }, + + total() { + return this.$store.state.entreprises.total + }, + + params() { + return this.$store.state.entreprises.params + }, + + lignes() { + return entreprisesLignesBuild(this.entreprises) + }, + + initialized() { + return this.$store.state.entreprises.initialized + } + }, + + watch: { + '$route.query': { + handler: function () { + this.$store.dispatch('entreprises/routeUpdate') + } + } + }, + + async created() { + await this.init() + }, + + unmounted() { + this.$store.commit('entreprises/reset') + }, + + methods: { + async init() { + await this.$store.dispatch('entreprises/init') + }, + + async paramsUpdate(options) { + await this.$store.dispatch(`entreprises/paramsSet`, options) + }, + + addPopupOpen() { + this.$store.commit('popupOpen', { component: EntrepriseAddPopup }) + } + } +} +</script> diff --git a/packages/ui/src/components/entreprises/filtres.js b/packages/ui/src/components/entreprises/filtres.js new file mode 100644 index 000000000..8daa646b2 --- /dev/null +++ b/packages/ui/src/components/entreprises/filtres.js @@ -0,0 +1,11 @@ +const filtres = [ + { + id: 'noms', + type: 'input', + value: '', + name: 'Nom / Siren / Siret', + placeholder: `Nom d'entreprise ou d'établissement, Siren, ou Siret` + } +] + +export default filtres diff --git a/packages/ui/src/components/entreprises/table.js b/packages/ui/src/components/entreprises/table.js new file mode 100644 index 000000000..67f762de4 --- /dev/null +++ b/packages/ui/src/components/entreprises/table.js @@ -0,0 +1,28 @@ +const entreprisesColonnes = [ + { + id: 'nom', + name: 'Nom' + }, + { + id: 'siren', + name: 'Siren' + } +] + +const entreprisesLignesBuild = entreprises => + entreprises.map(entreprise => { + const columns = { + nom: { value: entreprise.nom }, + siren: { + value: entreprise.legalEtranger || entreprise.legalSiren || '–' + } + } + + return { + id: entreprise.id, + link: { name: 'entreprise', params: { id: entreprise.id } }, + columns + } + }) + +export { entreprisesColonnes, entreprisesLignesBuild } diff --git a/packages/ui/src/components/error.vue b/packages/ui/src/components/error.vue new file mode 100644 index 000000000..0f8bef509 --- /dev/null +++ b/packages/ui/src/components/error.vue @@ -0,0 +1,16 @@ +<template> + <div class="mb p-s color-bg" :class="`bg-${message.type}`"> + {{ message.value }} + </div> +</template> + +<script> +export default { + props: { + message: { + type: Object, + default: () => ({}) + } + } +} +</script> diff --git a/packages/ui/src/components/etape-edition.vue b/packages/ui/src/components/etape-edition.vue new file mode 100644 index 000000000..bcb42b1db --- /dev/null +++ b/packages/ui/src/components/etape-edition.vue @@ -0,0 +1,325 @@ +<template> + <Loader v-if="!loaded" /> + <div v-else> + <h6> + <router-link + :to="{ name: 'titre', params: { id: titre.slug } }" + class="cap-first" + > + {{ titre.nom }} + </router-link> + <span class="color-neutral"> | </span> + <span class="cap-first"> + {{ demarcheType.nom }} {{ demarcheDescription }} + </span> + </h6> + <h1>Étape</h1> + + <div v-if="helpVisible" class="p-s bg-info color-bg mb"> + Besoin d'aide pour déposer votre demande ? Contactez-nous au + <a class="color-bg" href="tel:+33763429218">07.63.42.92.18</a>, ou par + mail : + <a class="color-bg" href="mailto:camino@beta.gouv.fr" + >camino@beta.gouv.fr</a + > + </div> + + <div v-if="dateIsVisible" class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Date</h5> + </div> + <div class="tablet-blob-2-3"> + <InputDate v-model="newDate" class="mb" /> + </div> + </div> + + <Edit + v-else + :etape="editedEtape" + :user="user" + :events="events" + :etape-is-demande-en-construction="etapeIsDemandeEnConstruction" + :domaine-id="domaineId" + :titre-type-id="titreTypeTypeId" + :document-popup-title="documentPopupTitle" + :etape-type="etapeType" + @complete-update="completeUpdate" + @type-complete-update="typeCompleteUpdate" + @change="editChange" + /> + + <div v-if="loading" class="tablet-blobs"> + <div class="tablet-blob-1-3" /> + <div class="tablet-blob-2-3"> + <div class="p-s bold mb">Enregistrement en cours…</div> + </div> + </div> + + <div v-else-if="dateIsVisible" class="tablet-blobs mb"> + <div class="tablet-blob-1-3" /> + <div class="tablet-blob-2-3"> + <button + ref="date-button" + class="btn btn-primary" + :disabled="!newDate" + :class="{ disabled: !newDate }" + @click="dateUpdate" + > + Valider + </button> + </div> + </div> + + <div + v-else + ref="save-btn-container" + class="tablet-blobs pb-m pt-m bg-bg b-0 sticky" + > + <div class="tablet-blob-1-3" /> + <FormSaveBtn + ref="save-btn" + :help-visible="helpVisible" + :alertes="alertes" + :disabled="!isFormComplete" + class="tablet-blob-2-3 flex flex-center" + @click="save" + /> + </div> + </div> +</template> + +<script> +import { cap, dateFormat } from '@/utils' +import Loader from './_ui/loader.vue' +import InputDate from './_ui/input-date.vue' +import Edit from './etape/edit.vue' +import FormSaveBtn from './etape/form-save-btn.vue' + +export default { + components: { Loader, Edit, InputDate, FormSaveBtn }, + + beforeRouteLeave(_, __, next) { + if (this.isFormDirty && !confirm(this.promptMsg)) { + next(false) + } else { + next() + } + }, + + data() { + return { + complete: false, + isFormDirty: false, + typeComplete: false, + promptMsg: 'Quitter le formulaire sans enregistrer les changements ?', + newDate: new Date().toISOString().slice(0, 10), + events: { saveKeyUp: true } + } + }, + + computed: { + loaded() { + return this.$store.state.titreEtapeEdition.loaded + }, + + user() { + return this.$store.state.user.element + }, + + etapeId() { + return this.$route.params.id + }, + + editedEtape() { + return this.$store.state.titreEtapeEdition.element + }, + + etapeType() { + return this.$store.getters['titreEtapeEdition/etapeType'] + }, + + demarche() { + return this.$store.state.titreEtapeEdition.metas.demarche + }, + + demarcheDescription() { + return this.demarche?.description ? `(${this.demarche.description})` : '' + }, + + alertes() { + return this.$store.state.titreEtapeEdition.metas.alertes || [] + }, + + demarcheType() { + return this.demarche.type + }, + + titre() { + return this.demarche.titre + }, + + domaineId() { + return this.titre ? this.titre.domaine.id : '' + }, + + titreType() { + return this.titre ? this.titre.type : '' + }, + + titreTypeTypeId() { + return this.titreType ? this.titreType.type.id : '' + }, + + dateIsVisible() { + return !this.editedEtape.date + }, + + loading() { + return ( + this.$store.state.loading.includes('titreEtapeUpdate') || + this.$store.state.loading.includes('titreEtapeMetasGet') || + this.$store.state.loading.includes('titreEtapeGet') || + this.$store.state.loading.includes('titreEtapeEtapesTypesGet') + ) + }, + + etapeIsDemandeEnConstruction() { + return ( + this.etapeType?.id === 'mfr' && this.editedEtape?.statutId !== 'dep' + ) + }, + + isPopupOpen() { + return !!this.$store.state.popup.component + }, + + isFormComplete() { + return ( + (this.etapeIsDemandeEnConstruction && this.typeComplete) || + this.complete + ) + }, + + documentPopupTitle() { + return `${cap(this.titre.nom)} | ${cap(this.demarcheType.nom)} | ${ + this.etapeType ? cap(this.etapeType.nom) : '' + }` + }, + + userIsAdmin() { + return this.$store.getters['user/userIsAdmin'] + }, + + helpVisible() { + return ( + !this.userIsAdmin && + this.domaineId === 'm' && + ['ax', 'ar'].includes(this.titreTypeTypeId) && + this.etapeType.id === 'mfr' + ) + } + }, + + watch: { + user: 'init' + }, + + async created() { + await this.init() + + document.addEventListener('keyup', this.keyUp) + window.addEventListener('beforeunload', this.beforeWindowUnload) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyUp) + window.removeEventListener('beforeunload', this.beforeWindowUnload) + }, + + unmounted() { + this.$store.commit('titreEtapeEdition/reset') + }, + + methods: { + async init() { + await this.$store.dispatch('titreEtapeEdition/init', { + titreDemarcheId: this.$route.query['demarche-id'], + id: this.etapeId, + date: this.newDate + }) + }, + + beforeWindowUnload(e) { + if (!this.isFormDirty) return true + e.returnValue = this.promptMsg + return this.promptMsg + }, + + async save() { + this.isFormDirty = false + + if (this.isFormComplete) { + await this.$store.dispatch('titreEtapeEdition/upsert', { + etape: this.editedEtape + }) + + this.eventTrack({ + categorie: 'titre-etape', + action: 'titre-etape-enregistrer', + nom: this.editedEtape.id + }) + } + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + }, + + keyUp(e) { + if ( + (e.which || e.keyCode) === 13 && + this.events.saveKeyUp && + this.complete && + !this.isPopupOpen + ) { + if (this.dateIsVisible && this.newDate) { + this.$refs['date-button'].focus() + this.dateUpdate() + } else if ( + !this.dateIsVisible && + !this.loading && + this.isFormComplete + ) { + this.$refs['save-btn'].focusBtn() + this.save() + } + } + }, + + completeUpdate(complete) { + this.complete = complete + }, + + typeCompleteUpdate(complete) { + this.typeComplete = complete + }, + + editChange() { + if (!this.loaded) return + this.isFormDirty = true + }, + + async dateUpdate() { + await this.$store.dispatch('titreEtapeEdition/dateUpdate', { + date: this.newDate + }) + }, + + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/etape.vue b/packages/ui/src/components/etape.vue new file mode 100644 index 000000000..fe549317e --- /dev/null +++ b/packages/ui/src/components/etape.vue @@ -0,0 +1,93 @@ +<template> + <Loader v-if="!loaded" /> + <div v-else> + <h6> + <router-link + :to="{ name: 'titre', params: { id: titre.slug } }" + class="cap-first" + > + {{ titre.nom }} + </router-link> + <span class="color-neutral"> | </span> + <span class="cap-first"> + {{ demarcheType.nom }} + </span> + </h6> + + <Preview + :etape="etape" + :demarche-type="demarcheType" + :titre-type-type="titreTypeType" + :domaine-id="domaineId" + :titre-nom="titre.nom" + :titre-id="titre.id" + :opened="opened" + /> + </div> +</template> + +<script> +import Preview from './etape/preview.vue' +import Loader from './_ui/loader.vue' + +export default { + components: { Preview, Loader }, + + data() { + return { + opened: true + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + etapeId() { + return this.$route.params.id + }, + etape() { + return this.$store.state.titreEtape.element + }, + loaded() { + return !!this.etape + }, + demarche() { + return this.etape.demarche + }, + demarcheType() { + return this.demarche ? this.demarche.type : '' + }, + titre() { + return this.demarche ? this.demarche.titre : '' + }, + domaineId() { + return this.titre ? this.titre.domaine.id : '' + }, + titreType() { + return this.titre ? this.titre.type : '' + }, + titreTypeType() { + return this.titreType ? this.titreType.type : {} + } + }, + watch: { + '$route.params.id': function (id) { + if (this.$route.name === 'etape' && id) { + this.get() + } + }, + user: 'get' + }, + + async created() { + await this.get() + }, + + methods: { + async get() { + await this.$store.dispatch('titreEtape/get', this.$route.params.id) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/accordion.vue b/packages/ui/src/components/etape/accordion.vue new file mode 100644 index 000000000..320ac3943 --- /dev/null +++ b/packages/ui/src/components/etape/accordion.vue @@ -0,0 +1,55 @@ +<template> + <Accordion + class="mb-s" + :opened="opened" + :slot-default="true" + @toggle="toggle" + > + <template #title> + <div class="flex flex-center"> + <h2 class="cap-first mb-0">{{ step.name }}</h2> + <Tag + v-if="!complete" + :mini="true" + color="bg-warning" + class="ml-s mt-xs" + > + Incomplet + </Tag> + + <HelpTooltip v-if="step.help" class="ml-m"> + {{ step.help }} + </HelpTooltip> + </div> + </template> + + <div class="px pt"> + <div><slot /></div> + </div> + </Accordion> +</template> + +<script> +import Accordion from '../_ui/accordion.vue' +import HelpTooltip from '../_ui/help-tooltip.vue' + +import Tag from '../_ui/tag.vue' + +export default { + components: { Accordion, Tag, HelpTooltip }, + props: { + step: { type: Object, required: true }, + opened: { type: Boolean, required: true }, + complete: { type: Boolean, required: true }, + enConstruction: { type: Boolean, required: true } + }, + + emits: ['toggle'], + + methods: { + toggle() { + this.$emit('toggle') + } + } +} +</script> diff --git a/packages/ui/src/components/etape/autocomplete-group.vue b/packages/ui/src/components/etape/autocomplete-group.vue new file mode 100644 index 000000000..7d184484a --- /dev/null +++ b/packages/ui/src/components/etape/autocomplete-group.vue @@ -0,0 +1,85 @@ +<template> + <div v-for="(entity, n) in entities || []" :key="`entity-${n}`"> + <div class="flex mb-s"> + <div class="mr-s flex-grow"> + <EntityInputAutocomplete + v-model:entity-id="entity.id" + :options="options" + :options-disabled="optionsDisabled" + :placeholder="placeholder" + :remove-item-button="false" + /> + </div> + <button class="btn py-s px-m rnd-xs" @click="entityRemove(n)"> + <i class="icon-24 icon-minus" /> + </button> + </div> + <slot :entity="entity" /> + </div> + + <EntityInputAutocomplete + :entity-id="entitySelected" + :options="options" + :options-disabled="optionsDisabled" + :placeholder="placeholder" + :remove-item-button="false" + @update:entity-id="entityAdd" + /> +</template> + +<script lang="ts"> +import { defineComponent, PropType } from 'vue' +import EntityInputAutocomplete from './entity-input-autocomplete.vue' + +interface IModelElement { + id: string +} + +interface IOption { + id: string + nom: string +} + +export default defineComponent({ + components: { EntityInputAutocomplete }, + + props: { + entities: { + type: Array as PropType<Array<IModelElement>>, + required: true, + default: () => [] + }, + options: { + type: Array as PropType<Array<IOption>>, + required: true, + default: () => [] + }, + optionsDisabled: { + type: Array as PropType<Array<IOption>>, + required: true, + default: () => [] + }, + placeholder: { + type: String, + default: '' + } + }, + + data: () => ({ + entitySelected: null + }), + + methods: { + entityAdd(entityId: string) { + if (entityId) { + this.entities.push({ id: entityId }) + this.entitySelected = null + } + }, + + entityRemove(entityIndex: number) { + this.entities.splice(entityIndex, 1) + } + } +}) +</script> diff --git a/packages/ui/src/components/etape/decisions-annexes-edit.vue b/packages/ui/src/components/etape/decisions-annexes-edit.vue new file mode 100644 index 000000000..d46f80fe7 --- /dev/null +++ b/packages/ui/src/components/etape/decisions-annexes-edit.vue @@ -0,0 +1,21 @@ +<template> + <SectionsEdit + :sections="etape.decisionsAnnexesSections" + :contenu="etape.decisionsAnnexesContenu" + @complete-update="$emit('complete-update', $event)" + @contenu-update="etape.decisionsAnnexesContenu = $event" + /> +</template> + +<script> +import SectionsEdit from '../_common/sections-edit.vue' +export default { + components: { SectionsEdit }, + + props: { + etape: { type: Object, required: true } + }, + + emits: ['complete-update'] +} +</script> diff --git a/packages/ui/src/components/etape/depose-popup.vue b/packages/ui/src/components/etape/depose-popup.vue new file mode 100644 index 000000000..6d0d868e5 --- /dev/null +++ b/packages/ui/src/components/etape/depose-popup.vue @@ -0,0 +1,91 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Dépôt d’une demande</h2> + </template> + + <p class="bold">Souhaitez vous déposer cette demande ?</p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + id="cmn-etape-remove-popup-button-supprimer" + class="btn btn-primary" + @click="depose" + > + Déposer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Dépôt en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + components: { + Popup + }, + + props: { + etape: { + type: Object, + required: true + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async depose() { + await this.$store.dispatch('titreEtape/depose', this.etape.id) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + } + } +} +</script> diff --git a/packages/ui/src/components/etape/edit.vue b/packages/ui/src/components/etape/edit.vue new file mode 100644 index 000000000..e1ab2bf78 --- /dev/null +++ b/packages/ui/src/components/etape/edit.vue @@ -0,0 +1,440 @@ +<template> + <div class="mb"> + <Accordion + v-if="stepType" + id="step-type" + :step="stepType" + :opened="opened['type']" + :complete="typeComplete" + :en-construction="enConstruction" + @toggle="toggle('type')" + > + <TypeEdit + v-model:etape="etape" + :user-is-admin="userIsAdmin" + :etapes-types="etapesTypes" + :etape-type="etapeType" + :etape-is-demande-en-construction="etapeIsDemandeEnConstruction" + @type-update="typeUpdate" + @complete-update="typeCompleteUpdate" + /> + </Accordion> + + <Accordion + v-if="stepFondamentales" + id="step-fondamentales" + :step="stepFondamentales" + :opened="opened['fondamentales']" + :complete="stepFondamentalesComplete" + :en-construction="enConstruction" + @toggle="toggle('fondamentales')" + > + <FondamentalesEdit + v-model:etape="etape" + :domaine-id="domaineId" + :titre-type-id="titreTypeId" + :user-is-admin="userIsAdmin" + :user-is-super="userIsSuper" + :substances="substances" + @complete-update="fondamentalesCompleteUpdate" + /> + </Accordion> + + <Accordion + v-if="stepPoints" + id="step-points" + :step="stepPoints" + :opened="opened['points']" + :complete="stepPerimetreComplete" + :en-construction="enConstruction" + @toggle="toggle('points')" + > + <PointsEdit + v-model:etape="etape" + v-model:events="events" + :show-title="false" + @complete-update="perimetreCompleteUpdate" + /> + </Accordion> + + <Accordion + v-if="stepSections" + id="step-sections" + :step="stepSections" + :opened="opened['sections']" + :complete="stepSectionsComplete" + :en-construction="enConstruction" + @toggle="toggle('sections')" + > + <SectionsEdit + v-model:etape="etape" + :sections="etape.type.sections" + @complete-update="sectionsCompleteUpdate" + @sections-update="sectionsUpdate" + /> + </Accordion> + + <Accordion + v-if="stepDocuments" + id="step-documents" + :step="stepDocuments" + :opened="opened['documents']" + :complete="stepDocumentsComplete" + :en-construction="enConstruction" + @toggle="toggle('documents')" + > + <DocumentsEdit + v-model:documents="etape.documents" + :add-action="{ name: 'titreEtapeEdition/documentAdd' }" + :remove-action="{ name: 'titreEtapeEdition/documentRemove' }" + repertoire="demarches" + :document-popup-title="documentPopupTitle" + :parent-type-id="etapeType.id" + :documents-types="documentsTypes" + @complete-update="documentsCompleteUpdate" + /> + </Accordion> + + <Accordion + v-if="stepJustificatifs" + id="step-justificatifs" + :step="stepJustificatifs" + :opened="opened['justificatifs']" + :complete="stepJustificatifsComplete" + :en-construction="enConstruction" + @toggle="toggle('justificatifs')" + > + <JustificatifsEdit + v-model:justificatifs="etape.justificatifs" + :justificatifs-types="etape.type.justificatifsTypes" + :entreprises="entreprises" + @complete-update="justificatifsCompleteUpdate" + /> + </Accordion> + + <Accordion + v-if="stepDecisionsAnnexes" + id="step-decisionsAnnexes" + :step="stepDecisionsAnnexes" + :opened="opened['decisionsAnnexes']" + :complete="stepDecisionsAnnexesComplete" + :en-construction="enConstruction" + @toggle="toggle('decisionsAnnexes')" + > + <DecisionsAnnexesEdit + :etape="etape" + @complete-update="decisionsAnnexesComplete = $event" + /> + </Accordion> + </div> +</template> + +<script> +import Accordion from './accordion.vue' +import TypeEdit from './type-edit.vue' +import FondamentalesEdit from './fondamentales-edit.vue' +import PointsEdit from './points-edit.vue' +import SectionsEdit from './sections-edit.vue' +import DocumentsEdit from '../document/multi-edit.vue' +import JustificatifsEdit from './justificatifs-edit.vue' +import DecisionsAnnexesEdit from './decisions-annexes-edit.vue' + +export default { + components: { + DecisionsAnnexesEdit, + Accordion, + TypeEdit, + FondamentalesEdit, + PointsEdit, + SectionsEdit, + DocumentsEdit, + JustificatifsEdit + }, + + props: { + etape: { type: Object, required: true }, + etapeType: { type: Object, default: null }, + domaineId: { type: String, required: true }, + titreTypeId: { type: String, required: true }, + events: { type: Object, required: true }, + user: { type: Object, required: true }, + etapeIsDemandeEnConstruction: { type: Boolean, required: true }, + documentPopupTitle: { type: String, required: true } + }, + + emits: ['complete-update', 'type-complete-update', 'change'], + + data() { + return { + fondamentalesComplete: false, + perimetreComplete: false, + sectionsComplete: false, + documentsComplete: false, + justificatifsComplete: false, + decisionsAnnexesComplete: false, + typeComplete: false, + justificatifs: false, + opened: { + type: true, + fondamentales: false, + points: false, + sections: false, + documents: false, + justificatifs: false, + decisionsAnnexes: false + }, + help: {} + } + }, + + computed: { + etapesTypes() { + return this.$store.state.titreEtapeEdition.metas.etapesTypes.filter( + t => t.etapesCreation + ) + }, + + documentsTypes() { + return this.$store.getters['titreEtapeEdition/documentsTypes'] + }, + + entreprises() { + const titulaireIds = this.etape.titulaires.map(({ id }) => id) + const amodiatairesIds = this.etape.amodiataires.map(({ id }) => id) + + return this.$store.state.titreEtapeEdition.metas.entreprises.filter( + ({ id }) => titulaireIds.includes(id) || amodiatairesIds.includes(id) + ) + }, + + heritageLoaded() { + return this.$store.state.titreEtapeEdition.heritageLoaded + }, + + enConstruction() { + return this.etape.statutId === 'aco' + }, + + complete() { + return ( + this.typeComplete && + this.stepFondamentalesComplete && + this.stepPerimetreComplete && + this.stepSectionsComplete && + this.stepDocumentsComplete && + this.stepJustificatifsComplete && + this.stepDecisionsAnnexesComplete + ) + }, + + stepFondamentalesComplete() { + return !this.stepFondamentales || this.fondamentalesComplete + }, + + stepPerimetreComplete() { + return !this.stepFondamentales || this.perimetreComplete + }, + + stepSectionsComplete() { + return !this.stepSections || this.sectionsComplete + }, + + stepDocumentsComplete() { + return !this.stepDocuments || this.documentsComplete + }, + + stepJustificatifsComplete() { + return !this.stepJustificatifs || this.justificatifsComplete + }, + + stepDecisionsAnnexesComplete() { + return !this.stepDecisionsAnnexes || this.decisionsAnnexesComplete + }, + + steps() { + const steps = [] + + if (this.userIsAdmin) { + steps.push({ + id: 'type', + name: 'Type' + }) + } + + if (this.heritageLoaded && this.etapeType?.fondamentale) { + steps.push({ + id: 'fondamentales', + name: 'Propriétés' + }) + steps.push({ + id: 'points', + name: 'Périmètre' + }) + } + + if (this.heritageLoaded && this.etape.type.sections?.length) { + steps.push({ id: 'sections', name: 'Propriétés spécifiques' }) + } + + if (this.heritageLoaded && this.etape.type.documentsTypes?.length) { + steps.push({ + id: 'documents', + name: `Documents liés à l’étape ${this.etape.type.nom}` + }) + } + + if (this.heritageLoaded && this.etape.type.justificatifsTypes?.length) { + steps.push({ id: 'justificatifs', name: 'Justificatifs d’entreprise' }) + } + + if (this.etape.decisionsAnnexesSections) { + steps.push({ id: 'decisionsAnnexes', name: 'Décisions annexes' }) + } + + const titreTypeHelp = this.help[this.titreTypeId + this.domaineId] + if (titreTypeHelp) { + steps.forEach(step => { + step.help = titreTypeHelp[step.id] + }) + } + + return steps + }, + + stepType() { + return this.steps.find(s => s.id === 'type') + }, + + stepFondamentales() { + return this.steps.find(s => s.id === 'fondamentales') + }, + + stepPoints() { + return this.steps.find(s => s.id === 'points') + }, + + stepSections() { + return this.steps.find(s => s.id === 'sections') + }, + + stepDocuments() { + return this.steps.find(s => s.id === 'documents') + }, + + stepJustificatifs() { + return this.steps.find(s => s.id === 'justificatifs') + }, + + stepDecisionsAnnexes() { + return this.steps.find(s => s.id === 'decisionsAnnexes') + }, + + userIsAdmin() { + return this.$store.getters['user/userIsAdmin'] + }, + + userIsSuper() { + return this.$store.getters['user/userIsSuper'] + }, + + substances() { + return this.$store.state.titreEtapeEdition.metas.substances.filter(su => + su.legales.find(sl => sl.domaine.id === this.domaineId) + ) + } + }, + + watch: { + complete: 'completeUpdate', + + etape: { + handler: function () { + this.$emit('change') + }, + deep: true + } + }, + + created() { + this.typeCompleteUpdate() + this.completeUpdate() + + if (this.etapeType?.id === 'mfr') { + this.help.arm = { + fondamentales: + 'Le renseignement d’une ou plusieurs substances est obligatoire.', + points: + 'Pour la Guyane, le système géographique de référence est le RGFG95 / UTM zone 22N (2972). Pour le renseigner, cliquez sur « ajouter un système géographique » et choisissez le système RGFG95. Vous pouvez ensuite cliquer sur « ajouter un point », renseigner le nom, (le décrire si besoin) et renseigner les coordonnées (l’abscisse « X » en coordonnées cartésiennes correspond à la longitude en coordonnées géographiques et l’ordonnée « Y » correspond à une latitude ). Vous devez reproduire cette étape pour tous les sommets du ou des périmètres du titre. La surface du titre est calculée automatiquement d’après les sommets renseignés.', + sections: + 'Ce bloc permet de savoir si la prospection est mécanisée ou non et s’il y a des franchissements de cours d’eau (si oui, combien ?)', + documents: + 'Toutes les pièces obligatoires, spécifiques à la demande, doivent être déposées dans cette rubrique en format pdf.', + justificatifs: + "Les justificatifs sont des documents propres à l'entreprise, et pourront être réutilisés pour la création d'un autre dossier et mis à jour si nécessaire. Ces justificatifs sont consultables dans la fiche entreprise de votre société. Cette section permet de protéger et de centraliser les informations d'ordre privé relatives à la société et à son personnel." + } + + this.help.axm = this.help.arm + } + }, + + methods: { + fondamentalesCompleteUpdate(complete) { + this.fondamentalesComplete = complete + }, + + perimetreCompleteUpdate(complete) { + this.perimetreComplete = complete + }, + + documentsCompleteUpdate(complete) { + this.documentsComplete = complete + }, + + justificatifsCompleteUpdate(complete) { + this.justificatifsComplete = complete + }, + + sectionsCompleteUpdate(complete) { + this.sectionsComplete = complete + }, + + async sectionsUpdate() { + await this.$store.dispatch( + 'titreEtapeEdition/documentInit', + this.etape.documents + ) + }, + + typeCompleteUpdate(complete) { + this.typeComplete = complete || !this.stepType + this.$emit('type-complete-update', this.typeComplete) + }, + + async typeUpdate(typeId) { + await this.$store.dispatch('titreEtapeEdition/heritageGet', { typeId }) + }, + + completeUpdate() { + this.$emit('complete-update', this.complete) + }, + + toggle(stepId) { + this.opened[stepId] = !this.opened[stepId] + + if (this.opened[stepId]) { + this.scrollToStep(stepId) + } + + this.$emit('change') + }, + + scrollToStep(stepId) { + setTimeout(() => { + document + .getElementById(`step-${stepId}`) + .scrollIntoView({ behavior: 'smooth' }) + }, 500) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/entity-input-autocomplete.vue b/packages/ui/src/components/etape/entity-input-autocomplete.vue new file mode 100644 index 000000000..716ef38a8 --- /dev/null +++ b/packages/ui/src/components/etape/entity-input-autocomplete.vue @@ -0,0 +1,72 @@ +<template> + <InputAutocomplete + v-if="options?.length" + :selected="selected" + :options="formattedOptions" + value-prop="id" + label-prop="label" + :max-items="1" + :options-disabled="optionsDisabled" + :placeholder="placeholder" + :remove-item-button="removeItemButton" + @update:selected="$emit('update:entityId', $event)" + /> +</template> + +<script lang="ts"> +import { defineComponent, PropType } from 'vue' +import InputAutocomplete from '../_ui/input-autocomplete.vue' + +interface IOption { + id: string + nom: string +} + +interface IItem { + id: string + label: string +} + +export default defineComponent({ + components: { InputAutocomplete }, + + props: { + entityId: { + type: String, + default: '' + }, + options: { + type: Array as PropType<Array<IOption>>, + required: true, + default: () => [] + }, + optionsDisabled: { + type: Array as PropType<Array<IOption>>, + required: true, + default: () => [] + }, + placeholder: { + type: String, + default: '' + }, + removeItemButton: { + type: Boolean, + default: true + } + }, + + emits: ['update:entityId'], + + computed: { + selected() { + return this.entityId && this.entityId !== '' ? [this.entityId] : undefined + }, + formattedOptions(): IItem[] { + return this.options.map(e => ({ + id: e.id, + label: e.nom + ' (' + e.id + ')' + })) + } + } +}) +</script> diff --git a/packages/ui/src/components/etape/fondamentales-edit.test.ts b/packages/ui/src/components/etape/fondamentales-edit.test.ts new file mode 100644 index 000000000..dfec13619 --- /dev/null +++ b/packages/ui/src/components/etape/fondamentales-edit.test.ts @@ -0,0 +1,360 @@ +import { shallowMount, mount } from '@vue/test-utils' +import FondamentalesEdit from './fondamentales-edit.vue' + +describe('FondamentalesEdit', () => { + const $store = { + state: { + titreEtapeEdition: { + metas: { + entreprises: [ + { id: 'foo', nom: 'bar' }, + { id: 'baz', nom: 'quux' } + ] + } + } + } + } + + const etape = { + id: 'aZHafFDDBksskCO0ZFuaMlPA', + type: { + id: 'mfr' + }, + duree: { + ans: 0, + mois: 4 + }, + incertitudes: { + dateDebut: false, + dateFin: false, + amodiataires: false, + titulaires: false, + substances: false, + points: false, + surface: false + }, + substances: [], + titulaires: [], + amodiataires: [], + heritageProps: { + dateDebut: { + etape: null, + actif: false + }, + dateFin: { + etape: null, + actif: false + }, + duree: { + etape: null, + actif: false + }, + surface: { + etape: null, + actif: false + }, + points: { + etape: null, + actif: false + }, + substances: { + etape: null, + actif: false + }, + titulaires: { + etape: null, + actif: false + }, + amodiataires: { + etape: null, + actif: false + } + } + } + + test.each` + titreTypeId | domaineId | userIsSuper | expected + ${'ar'} | ${'m'} | ${false} | ${false} + ${'ar'} | ${'m'} | ${true} | ${true} + ${'ax'} | ${'m'} | ${false} | ${false} + ${'ax'} | ${'m'} | ${true} | ${true} + ${'ni axm'} | ${' ni arm'} | ${false} | ${true} + ${'ni axm'} | ${' ni arm'} | ${true} | ${true} + `( + '#canSeeAllDates retourne $expected si utilisateur super => $userIsSuper et démarche est $titreTypeId$domaineId', + ({ titreTypeId, domaineId, userIsSuper, expected }) => { + // ARM + utilisateur non-super + const wrapper = shallowMount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + } + }, + props: { + etape, + titreTypeId, + domaineId, + userIsAdmin: true, + userIsSuper, + substances: [] + } + }) + expect(wrapper.vm.canSeeAllDates).toBe(expected) + } + ) + + test('affiche les éléments de dates dans le formulaire seulement si #canSeeAllDates est true', () => { + let wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ar', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.vm.canSeeAllDates).toBe(false) + expect(wrapper.html().includes('Date de début')).toBe(false) + expect(wrapper.html().includes("Date d'échéance")).toBe(false) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ar', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: true, + substances: [] + } + }) + expect(wrapper.vm.canSeeAllDates).toBe(true) + expect(wrapper.html().includes('Date de début')).toBe(true) + expect(wrapper.html().includes("Date d'échéance")).toBe(true) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ax', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.vm.canSeeAllDates).toBe(false) + expect(wrapper.html().includes('Date de début')).toBe(false) + expect(wrapper.html().includes("Date d'échéance")).toBe(false) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ax', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: true, + substances: [] + } + }) + expect(wrapper.vm.canSeeAllDates).toBe(true) + expect(wrapper.html().includes('Date de début')).toBe(true) + expect(wrapper.html().includes("Date d'échéance")).toBe(true) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ni axm', + domaineId: 'ni arm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.vm.canSeeAllDates).toBe(true) + expect(wrapper.html().includes('Date de début')).toBe(true) + expect(wrapper.html().includes("Date d'échéance")).toBe(true) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ni axm', + domaineId: 'ni arm', + userIsAdmin: true, + userIsSuper: true, + substances: [] + } + }) + expect(wrapper.vm.canSeeAllDates).toBe(true) + expect(wrapper.html().includes('Date de début')).toBe(true) + expect(wrapper.html().includes("Date d'échéance")).toBe(true) + }) + + test("#canAddAmodiataires retourne true si ce n'est ni un arm ni un axm, false sinon", () => { + let wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ar', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.vm.canAddAmodiataires).toBe(false) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ax', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.vm.canAddAmodiataires).toBe(false) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ni arm', + domaineId: 'ni axm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.vm.canAddAmodiataires).toBe(true) + }) + + test('affiche les éléments liés aux amodiataires dans le formulaire seulement si #canAddAmodiataires est true', () => { + let wrapper = mount(FondamentalesEdit, { + global: { + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ni arm', + domaineId: 'ni axm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.find('.choices').exists()).toBe(true) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ar', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.find('.choices').exists()).toBe(false) + + wrapper = mount(FondamentalesEdit, { + global: { + stubs: { + AutocompleteGroup: true + }, + mocks: { + $store + } + }, + props: { + etape, + titreTypeId: 'ax', + domaineId: 'm', + userIsAdmin: true, + userIsSuper: false, + substances: [] + } + }) + expect(wrapper.find('.choices').exists()).toBe(false) + }) +}) diff --git a/packages/ui/src/components/etape/fondamentales-edit.vue b/packages/ui/src/components/etape/fondamentales-edit.vue new file mode 100644 index 000000000..85f62d976 --- /dev/null +++ b/packages/ui/src/components/etape/fondamentales-edit.vue @@ -0,0 +1,508 @@ +<template> + <div> + <div v-if="!isArm || userIsAdmin" class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Durée (années / mois)</h5> + <p v-if="dureeOptionalCheck" class="h6 italic mb-0">Optionnel</p> + </div> + + <HeritageEdit + v-model:prop="etape.heritageProps.duree" + class="tablet-blob-2-3" + prop-id="duree" + > + <template #write> + <div class="blobs-mini"> + <div class="blob-mini-1-2"> + <inputNumber + v-model="etape.duree.ans" + :integer="true" + placeholder="années" + class="py-s mb-s" + /> + </div> + <div class="blob-mini-1-2"> + <inputNumber + v-model="etape.duree.mois" + :integer="true" + placeholder="mois" + class="p-s" + /> + </div> + </div> + <div v-if="etape.duree.ans || etape.duree.mois" class="h6"> + <label> + <input + v-model="etape.incertitudes.duree" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </template> + <template #read> + <div class="border p-s mb-s bold"> + <PropDuree :duree="etape.heritageProps.duree.etape.duree" /> + </div> + </template> + </HeritageEdit> + + <hr /> + </div> + + <div v-if="(!isArm && !isAxm) || userIsAdmin"> + <div v-if="canSeeAllDates" class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Date de début</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <HeritageEdit + v-model:prop="etape.heritageProps.dateDebut" + class="tablet-blob-2-3" + prop-id="dateDebut" + > + <template #write> + <InputDate v-model="etape.dateDebut" class="mb-s" /> + <div v-if="etape.dateDebut" class="h6"> + <label> + <input + v-model="etape.incertitudes.dateDebut" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </template> + <template #read> + <div class="border p-s mb-s bold"> + {{ dateFormat(etape.heritageProps.dateDebut.etape.dateDebut) }} + </div> + </template> + </HeritageEdit> + </div> + + <div v-if="canSeeAllDates" class="tablet-blobs"> + <hr /> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Date d'échéance</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <HeritageEdit + v-model:prop="etape.heritageProps.dateFin" + class="tablet-blob-2-3" + prop-id="dateFin" + > + <template #write> + <InputDate v-model="etape.dateFin" class="mb-s" /> + <div v-if="etape.dateFin" class="h6"> + <label> + <input + v-model="etape.incertitudes.dateFin" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </template> + <template #read> + <div class="border p-s mb-s bold"> + {{ dateFormat(etape.heritageProps.dateFin.etape.dateFin) }} + </div> + </template> + </HeritageEdit> + </div> + <hr /> + + <h3 class="mb-s">Titulaires</h3> + <p class="h6 italic">Optionnel</p> + <HeritageEdit + v-model:prop="etape.heritageProps.titulaires" + prop-id="titulaires" + :is-array="true" + > + <template #write> + <AutocompleteGroup + :entities="etape.titulaires" + :options="entreprises" + :options-disabled="entreprisesDisabled" + placeholder="Sélectionner un titulaire" + > + <template #default="{ entity }"> + <div v-if="entity && entity.id" class="h6 mb"> + <label> + <input + v-model="entity.operateur" + type="checkbox" + class="mr-xs" + /> + Opérateur + </label> + </div> + </template> + </AutocompleteGroup> + <div v-if="titulairesLength" class="h6"> + <label> + <input + v-model="etape.incertitudes.titulaires" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </template> + <template #read> + <ul class="list-prefix"> + <li + v-for="t in etape.heritageProps.titulaires.etape.titulaires" + :key="t.id" + > + {{ etablissementNameFind(t.etablissements, etape.date) || t.nom }} + <Tag + v-if="t.operateur" + :mini="true" + color="bg-info" + class="ml-xs" + > + Opérateur + </Tag> + </li> + </ul> + </template> + </HeritageEdit> + + <template v-if="canAddAmodiataires"> + <hr /> + + <h3 class="mb-s">Amodiataires</h3> + <p class="h6 italic">Optionnel</p> + + <HeritageEdit + v-model:prop="etape.heritageProps.amodiataires" + prop-id="amodiataires" + :is-array="true" + > + <template #write> + <AutocompleteGroup + :entities="etape.amodiataires || []" + :options="entreprises" + :options-disabled="entreprisesDisabled" + placeholder="Sélectionner un amodiataire" + > + <template #default="{ entity }"> + <div v-if="entity && entity.id" class="h6 mb"> + <label> + <input + v-model="entity.operateur" + type="checkbox" + class="mr-xs" + /> + Opérateur + </label> + </div> + </template> + </AutocompleteGroup> + <div v-if="amodiatairesLength" class="h6"> + <label> + <input + v-model="etape.incertitudes.amodiataires" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </template> + <template #read> + <ul class="list-prefix"> + <li + v-for="t in etape.heritageProps.amodiataires.etape.amodiataires" + :key="t.id" + > + {{ + etablissementNameFind(t.etablissements, etape.date) || t.nom + }} + <Tag + v-if="t.operateur" + :mini="true" + color="bg-info" + class="ml-xs" + > + Opérateur + </Tag> + </li> + </ul> + </template> + </HeritageEdit> + </template> + + <hr /> + </div> + + <h3 class="mb-s">Substances</h3> + <HeritageEdit + v-model:prop="etape.heritageProps.substances" + prop-id="substances" + :is-array="true" + > + <template #write> + <div v-for="(substance, n) in etape.substances" :key="n"> + <div class="flex mb-s"> + <select v-model="etape.substances[n]" class="p-s mr-s"> + <option + v-for="s in substances" + :key="s.id" + :value="{ id: s.id }" + :disabled="etape.substances.find(({ id }) => id === s.id)" + > + {{ s.nom }} + </option> + </select> + <button + v-if="substancesLength && n + 1 < substancesLength" + class="btn-border py-s px-m rnd-l-xs" + @click="substanceMoveDown(n)" + > + <i class="icon-24 icon-move-down" /> + </button> + <button + v-if="substancesLength && n > 0 && etape.substances[n].id" + :class="{ + 'rnd-l-xs': !(substancesLength && n + 1 < substancesLength) + }" + class="btn-border py-s px-m" + @click="substanceMoveUp(n)" + > + <i class="icon-24 icon-move-up" /> + </button> + <button + :class="{ + 'rnd-l-xs': !etape.substances[n].id || substancesLength === 1 + }" + class="btn py-s px-m rnd-r-xs" + @click="substanceRemove(n)" + > + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + + <button + v-if="!etape.substances.some(({ id }) => id === '')" + class="btn small rnd-xs py-s px-m full-x flex mb-s" + @click="substanceAdd" + > + <span class="mt-xxs">Ajouter une substance</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + + <div v-if="substancesLength" class="h6"> + <label> + <input + v-model="etape.incertitudes.substances" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </template> + + <template #read> + <TagList + class="mb-s" + :elements=" + etape.heritageProps.substances.etape.substances.map(s => s.nom) + " + /> + </template> + </HeritageEdit> + + <hr /> + </div> +</template> + +<script> +import { dateFormat } from '../../utils/index' +import Tag from '../_ui/tag.vue' +import TagList from '../_ui/tag-list.vue' +import InputDate from '../_ui/input-date.vue' +import InputNumber from '../_ui/input-number.vue' +import HeritageEdit from './heritage-edit.vue' +import PropDuree from './prop-duree.vue' +import AutocompleteGroup from './autocomplete-group.vue' + +import { etablissementNameFind } from '@/utils/entreprise' + +export default { + components: { + InputDate, + InputNumber, + HeritageEdit, + Tag, + TagList, + PropDuree, + AutocompleteGroup + }, + + props: { + etape: { type: Object, default: () => ({}) }, + domaineId: { type: String, default: '' }, + titreTypeId: { type: String, required: true }, + userIsAdmin: { type: Boolean, required: true }, + userIsSuper: { type: Boolean, required: true }, + substances: { type: Array, required: true } + }, + emits: ['complete-update'], + + computed: { + entreprisesDisabled() { + return this.entreprises.filter(entr => { + return ( + this.etape.amodiataires.find(a => a.id === entr.id) || + this.etape.titulaires.find(t => t.id === entr.id) + ) + }) + }, + + isArm() { + return this.domaineId === 'm' && this.titreTypeId === 'ar' + }, + + isAxm() { + return this.domaineId === 'm' && this.titreTypeId === 'ax' + }, + + entreprises() { + return this.$store.state.titreEtapeEdition.metas.entreprises + }, + + titulairesLength() { + return this.etape.titulaires.filter(({ id }) => id).length + }, + + amodiatairesLength() { + return this.etape.amodiataires?.filter(({ id }) => id).length || 0 + }, + + substancesLength() { + return this.etape.substances.filter(({ id }) => id).length + }, + + dureeOptionalCheck() { + return (!this.isArm && !this.isAxm) || this.etape.type.id !== 'mfr' + }, + + canSeeAllDates() { + if (this.userIsSuper) { + return true + } + + if (this.etape.type?.id === 'mfr' && (this.isArm || this.isAxm)) { + return false + } + + return true + }, + + canAddAmodiataires() { + return !this.isArm && !this.isAxm + }, + + complete() { + return ( + this.etape.type.id !== 'mfr' || + (this.substancesLength > 0 && + (this.dureeOptionalCheck || + this.etape.duree.ans || + this.etape.duree.mois)) + ) + } + }, + + watch: { + complete: 'completeUpdate', + etape: { + handler: function (etape) { + if (!etape.duree) { + etape.incertitudes.duree = false + } + + if (!etape.dateDebut) { + etape.incertitudes.dateDebut = false + } + + if (!etape.dateFin) { + etape.incertitudes.dateFin = false + } + + if (!etape.titulaires.length) { + etape.incertitudes.titulaires = false + } + + if (!etape.amodiataires?.length) { + etape.incertitudes.amodiataires = false + } + + if (!etape.substances.length) { + etape.incertitudes.substances = false + } + }, + deep: true + } + }, + + created() { + this.completeUpdate() + }, + + methods: { + titulaireAdd() { + this.etape.titulaires.push({ id: '' }) + }, + + titulaireRemove(index) { + this.etape.titulaires.splice(index, 1) + }, + + amodiataireRemove(index) { + this.etape.amodiataires?.splice(index, 1) + }, + + substanceAdd() { + this.etape.substances.push({ id: '' }) + }, + + substanceRemove(index) { + this.etape.substances.splice(index, 1) + }, + + substanceMoveDown(n) { + const substance = this.etape.substances[n] + this.etape.substances.splice(n, 1) + this.etape.substances.splice(n + 1, 0, substance) + }, + + substanceMoveUp(n) { + const substance = this.etape.substances[n] + this.etape.substances.splice(n, 1) + this.etape.substances.splice(n - 1, 0, substance) + }, + + etablissementNameFind() { + return etablissementNameFind() + }, + + dateFormat(date) { + return dateFormat(date) + }, + + completeUpdate() { + this.$emit('complete-update', this.complete) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/fondamentales.vue b/packages/ui/src/components/etape/fondamentales.vue new file mode 100644 index 000000000..8d049ae4d --- /dev/null +++ b/packages/ui/src/components/etape/fondamentales.vue @@ -0,0 +1,167 @@ +<template> + <div> + <div v-if="etape.duree" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5> + Durée + <Tag + v-if="etape.incertitudes && etape.incertitudes.duree" + :mini="true" + color="bg-info" + class="ml-xs" + > + Incertain + </Tag> + </h5> + </div> + <div class="tablet-blob-3-4"> + <p> + <PropDuree :duree="etape.duree" /> + </p> + </div> + </div> + + <div v-if="etape.dateDebut" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5> + Date de début + <Tag + v-if="etape.incertitudes && etape.incertitudes.dateDebut" + :mini="true" + color="bg-info" + class="ml-xs" + > + Incertain + </Tag> + </h5> + </div> + <div class="tablet-blob-3-4"> + <p> + {{ dateFormat(etape.dateDebut) }} + </p> + </div> + </div> + <div v-if="etape.dateFin" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5> + Date d'échéance + <Tag + v-if="etape.incertitudes && etape.incertitudes.dateFin" + :mini="true" + color="bg-info" + class="ml-xs" + > + Incertain + </Tag> + </h5> + </div> + <div class="tablet-blob-3-4"> + <p> + {{ dateFormat(etape.dateFin) }} + </p> + </div> + </div> + + <div + v-if="etape.titulaires && etape.titulaires.length" + class="tablet-blobs" + > + <div class="tablet-blob-1-4"> + <h5> + Titulaire{{ etape.titulaires.length > 1 ? 's' : '' }} + <Tag + v-if="etape.incertitudes && etape.incertitudes.titulaires" + :mini="true" + color="bg-info ml-xs" + > + Incertain + </Tag> + </h5> + </div> + <div class="tablet-blob-3-4"> + <ul class="list-prefix mb"> + <li v-for="t in etape.titulaires" :key="t.id"> + {{ etablissementNameFind(t.etablissements, etape.date) || t.nom }} + <Tag v-if="t.operateur" :mini="true" color="bg-info" class="ml-xs"> + Opérateur + </Tag> + </li> + </ul> + </div> + </div> + + <div + v-if="etape.amodiataires && etape.amodiataires.length" + class="tablet-blobs" + > + <div class="tablet-blob-1-4"> + <h5> + Amodiataire{{ etape.amodiataires.length > 1 ? 's' : '' }} + <Tag + v-if="etape.incertitudes && etape.incertitudes.amodiataires" + :mini="true" + color="bg-info" + class="ml-xs" + > + Incertain + </Tag> + </h5> + </div> + <div class="tablet-blob-3-4"> + <ul class="list-prefix"> + <li v-for="t in etape.amodiataires" :key="t.id"> + {{ etablissementNameFind(t.etablissements, etape.date) || t.nom }} + </li> + </ul> + </div> + </div> + + <div + v-if="etape.substances && etape.substances.length" + class="tablet-blobs" + > + <div class="tablet-blob-1-4"> + <h5> + Substance{{ etape.substances.length > 1 ? 's' : '' }} + <Tag + v-if="etape.incertitudes && etape.incertitudes.substances" + :mini="true" + color="bg-info" + class="ml-xs" + > + Incertain + </Tag> + </h5> + </div> + <div class="tablet-blob-3-4"> + <TagList :elements="etape.substances.map(s => s.nom)" /> + </div> + </div> + </div> +</template> + +<script> +import { dateFormat } from '@/utils' +import { etablissementNameFind } from '../../utils/entreprise' +import TagList from '../_ui/tag-list.vue' +import Tag from '../_ui/tag.vue' +import PropDuree from './prop-duree.vue' + +export default { + components: { TagList, Tag, PropDuree }, + + props: { + etape: { type: Object, required: true } + }, + + methods: { + etablissementNameFind(etablissements, date) { + return etablissementNameFind(etablissements, date) + }, + + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/form-save-btn.test.ts b/packages/ui/src/components/etape/form-save-btn.test.ts new file mode 100644 index 000000000..00a8f4650 --- /dev/null +++ b/packages/ui/src/components/etape/form-save-btn.test.ts @@ -0,0 +1,55 @@ +import { shallowMount } from '@vue/test-utils' +import FormSaveBtn from './form-save-btn.vue' +import HelpTooltip from '../_ui/help-tooltip.vue' + +describe('FormSaveBtn', () => { + test('rend un bouton', () => { + const wrapper = shallowMount(FormSaveBtn) + expect(wrapper.findAll('button')).toHaveLength(1) + }) + + test('rend un HelpTooltip uniquement si la prop "helpVisible" est définie à true', () => { + let wrapper = shallowMount(FormSaveBtn, { + props: { helpVisible: false } + }) + expect(wrapper.findAllComponents(HelpTooltip)).toHaveLength(0) + + wrapper = shallowMount(FormSaveBtn, { + props: { helpVisible: true } + }) + expect(wrapper.findAllComponents(HelpTooltip)).toHaveLength(1) + }) + + test('émet un événement "click" remontant dans l\'arborescence quand le bouton est cliqué', async () => { + const wrapper = shallowMount(FormSaveBtn) + const btn = wrapper.find('button') + + await btn.trigger('click') + + expect(wrapper.emitted()).toHaveProperty('click') + expect(wrapper.emitted().click).toHaveLength(1) + }) + + test('bouton "disabled" si les attributs placés sur le composant contiennent un "disabled"', () => { + let wrapper = shallowMount(FormSaveBtn) + let btn = wrapper.find('button') + expect(btn.classes()).not.toContain('disabled') + expect(btn.attributes()).not.toHaveProperty('disabled') + + wrapper = shallowMount(FormSaveBtn, { + attrs: { + disabled: true + } + }) + btn = wrapper.find('button') + expect(btn.classes()).toContain('disabled') + expect(btn.attributes()).toHaveProperty('disabled') + }) + + test('#focusBtn place le bouton en focus', async () => { + const wrapper = shallowMount(FormSaveBtn, { attachTo: document.body }) + expect(wrapper.find('button').element).not.toBe(document.activeElement) + await (wrapper.vm as any).focusBtn() + expect(wrapper.find('button').element).toBe(document.activeElement) + }) +}) diff --git a/packages/ui/src/components/etape/form-save-btn.vue b/packages/ui/src/components/etape/form-save-btn.vue new file mode 100644 index 000000000..c78228682 --- /dev/null +++ b/packages/ui/src/components/etape/form-save-btn.vue @@ -0,0 +1,62 @@ +<template> + <div v-bind="$attrs"> + <div class="flex flex-direction-column full-x"> + <ul v-if="alertes?.length" class="bg-warning color-bg list-none p-s bold"> + <li v-for="alerte in alertes" :key="alerte" class="flex"> + {{ alerte.message }} + <a v-if="alerte.url" :href="alerte.url" target="_blank" class="ml-s"> + <i class="icon-24 icon-window-link" /> + </a> + </li> + </ul> + <div class="flex flex-center"> + <HelpTooltip v-if="helpVisible" class="mr-m"> + Vous pouvez à tout moment enregistrer votre demande. Le dépôt du + dossier et de toutes les pièces peut être réalisé en plusieurs fois. + Vous pourrez compléter votre demande en cliquant sur + <span class="inline-block"><i class="icon-24 icon-pencil" /></span>. + Si vous avez ajouté tous les documents spécifiques à la demande et + justificatifs d’entreprise, et que vous considérez que votre demande + est complète, vous pouvez la déposer à l’étape suivante en cliquant + sur « Déposer … ». Les administrations seront ainsi notifiées et + pourront instruire votre demande. + </HelpTooltip> + <button + id="cmn-etape-edit-button-enregistrer" + ref="save-btn" + class="btn btn-primary" + :disabled="$attrs.disabled" + :class="{ disabled: $attrs.disabled }" + @click="$emit('click')" + > + Enregistrer + </button> + </div> + </div> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import HelpTooltip from '../_ui/help-tooltip.vue' + +export default defineComponent({ + components: { HelpTooltip }, + + props: { + helpVisible: { + type: Boolean, + default: false + }, + alertes: { type: Array, default: () => [] } + }, + + emits: ['click'], + + methods: { + focusBtn() { + this.$refs['save-btn']?.focus() + } + } +}) +</script> diff --git a/packages/ui/src/components/etape/heritage-edit.vue b/packages/ui/src/components/etape/heritage-edit.vue new file mode 100644 index 000000000..b074c8d03 --- /dev/null +++ b/packages/ui/src/components/etape/heritage-edit.vue @@ -0,0 +1,72 @@ +<template> + <div class="mb-s"> + <slot v-if="!prop.actif" name="write" /> + <div v-else> + <slot v-if="hasHeritage" name="read" /> + <div v-else class="border p-s mb-s">Non renseigné</div> + <div class="mb-s"> + <Tag + v-if="prop.etape.incertitudes && prop.etape.incertitudes[propId]" + :mini="true" + color="bg-info" + >Incertain + </Tag> + </div> + <p class="h6 italic mb-s"> + Hérité de : + <span class="cap-first">{{ prop.etape.type.nom }}</span> ({{ + dateFormat(prop.etape.date) + }}) + </p> + </div> + <slot /> + <button + v-if="prop.etape" + class="btn full-x rnd-xs py-s px-m small mb-s" + @click="prop.actif = !prop.actif" + > + {{ buttonText }} + </button> + </div> +</template> + +<script> +import { hasValeurCheck } from '@/utils/contenu' +import Tag from '@/components/_ui/tag.vue' +import { dateFormat } from '@/utils' + +export default { + components: { Tag }, + props: { + prop: { type: Object, required: true }, + propId: { type: String, required: true }, + isArray: { type: Boolean, default: false }, + sectionId: { type: String, default: null } + }, + computed: { + buttonText() { + return this.prop.actif ? 'Modifier' : `Hériter de l'étape précédente` + }, + + hasHeritage() { + let contenu + + if (this.sectionId) { + contenu = + this.prop.etape && + this.prop.etape.contenu && + this.prop.etape.contenu[this.sectionId] + } else { + contenu = this.prop.etape + } + + return hasValeurCheck(this.propId, contenu) + } + }, + methods: { + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/justificatifs-edit.vue b/packages/ui/src/components/etape/justificatifs-edit.vue new file mode 100644 index 000000000..88c2c22a6 --- /dev/null +++ b/packages/ui/src/components/etape/justificatifs-edit.vue @@ -0,0 +1,290 @@ +<template> + <div v-if="entreprises.length"> + <div + v-for="(e, eId) in entreprisesJustificatifsIndex" + :key="eId" + class="mb-xs" + > + <div class="flex"> + <h4>{{ e.nom }}</h4> + </div> + + <hr class="mb-s" /> + + <div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3"> + <h5 class="mt-s">Ajouter un justificatif existant</h5> + </div> + <div class="tablet-blob-2-3"> + <select + class="p-s mb-s" + value="undefined" + @change="justificatifAdd(eId, $event)" + > + <option value="undefined" :disabled="true"> + Sélectionner un type de justificatif + </option> + <option + v-for="jt in justificatifsTypes" + :key="jt.id" + :value="jt.id" + > + {{ jt.nom }} + </option> + </select> + </div> + </div> + </div> + + <hr class="mb-s" /> + + <div v-for="(j, index) in e.justificatifs" :key="j.id"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 flex flex-center"> + <h5 class="mt-s">{{ j.type.nom }}</h5> + <span> + <HelpTooltip v-if="j.type.description" class="ml-xs"> + {{ j.type.description }} + </HelpTooltip> + </span> + <Tag v-if="!j.id" :mini="true" color="bg-warning" class="ml-xs"> + Manquant + </Tag> + </div> + <div class="tablet-blob-2-3"> + <div class="flex mb-s"> + <select + class="p-s" + :value="j.id" + @change="justificatifsUpdate(j, e.nom, eId, $event)" + > + <template v-if="j.documents.length"> + <option + v-for="d in j.documents" + :key="d.id" + :value="d.id" + :disabled="justificatifs.some(j => j.id === d.id)" + > + {{ d.type.nom }} : {{ d.description }} ({{ + dateFormat(d.date) + }}) + </option> + </template> + <option v-else></option> + <option value="newDocument"> + Ajouter un nouveau justificatif + </option> + </select> + + <div v-if="j.id" class="flex-right flex flex-center ml-s"> + <button + class="btn-border py-s px-m rnd-l-xs" + @click="justificatifRemove(eId, index)" + > + <i class="icon-24 icon-trash" /> + </button> + <button + class="btn-border py-s px-m rnd-r-xs" + @click="justificatifDownload(eId, index)" + > + <i class="icon-24 icon-download" /> + </button> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <p v-else>Aucun titulaire ou d'amodiataire associé à cette étape.</p> +</template> + +<script> +import { dateFormat } from '@/utils' +import DocumentEditPopup from '../document/edit-popup.vue' +import Tag from '../_ui/tag.vue' +import HelpTooltip from '../_ui/help-tooltip.vue' + +export default { + components: { Tag, HelpTooltip }, + props: { + justificatifs: { type: Array, required: true }, + justificatifsTypes: { type: Array, required: true }, + entreprises: { type: Array, required: true } + }, + + emits: ['complete-update'], + + data() { + return { + entreprisesJustificatifsIndex: {}, + entreprisesDocumentsIndex: {} + } + }, + + computed: { + complete() { + const justificatifs = [] + + this.entreprises.forEach(entreprise => { + entreprise.documents.forEach(document => { + if (this.justificatifs.some(({ id }) => id === document.id)) { + justificatifs.push(document) + } + }) + }) + + return this.justificatifsTypes.every( + jt => + jt.optionnel || justificatifs.find(({ type }) => type.id === jt.id) + ) + } + }, + + watch: { + complete: 'completeUpdate', + entreprises: { handler: 'reset', deep: true }, + justificatifsTypes: { handler: 'reset', deep: true }, + justificatifs: { handler: 'indexReset', deep: true } + }, + + created() { + this.indexReset() + + this.completeUpdate() + }, + + methods: { + reset() { + this.indexReset() + this.justificatifsReset() + }, + + indexReset() { + this.entreprisesJustificatifsIndex = {} + + this.entreprises.forEach(e => { + // { 'id-de-entreprise': {'cv': [{id: 'id-document-1', type: {id: 'cv'}}]} + this.entreprisesDocumentsIndex[e.id] = {} + + // { 'entreprise-id': { + // nom: "nom de l'entreprise", + // justificatifs: [{ id: 'id-du-document-selectionné', documents: [], type: { id: 'document-type-id' } }] + // }} + this.entreprisesJustificatifsIndex[e.id] = { + nom: e.nom, + justificatifs: [] + } + + this.justificatifsTypes.forEach(type => { + const documents = e.documents.filter(d => d.type.id === type.id) + const documentsIds = documents.map(({ id }) => id) + this.entreprisesDocumentsIndex[e.id][type.id] = documents + + const justificatifs = this.justificatifs.filter(j => + documentsIds.includes(j.id) + ) + + if (justificatifs.length) { + justificatifs.forEach(j => { + this.entreprisesJustificatifsIndex[e.id].justificatifs.push({ + id: j.id, + type, + documents + }) + }) + } else if (!type.optionnel) { + this.entreprisesJustificatifsIndex[e.id].justificatifs.push({ + id: '', + type, + documents + }) + } + }) + }) + }, + + justificatifAdd(entrepriseId, event) { + const typeId = event.target.value + const type = this.justificatifsTypes.find(jt => jt.id === typeId) + const documents = this.entreprisesDocumentsIndex[entrepriseId][typeId] + + this.entreprisesJustificatifsIndex[entrepriseId].justificatifs.push({ + id: '', + type, + documents + }) + + event.target.value = undefined + }, + + dateFormat(date) { + return dateFormat(date) + }, + + completeUpdate() { + this.$emit('complete-update', this.complete) + }, + + justificatifsUpdate(justificatif, entrepriseNom, entrepriseId, event) { + if (event.target.value === 'newDocument') { + event.target.value = null + this.$store.commit('popupOpen', { + component: DocumentEditPopup, + props: { + document: { + entrepriseId, + entreprisesLecture: true, + publicLecture: false, + fichier: null, + fichierNouveau: null, + fichierTypeId: null, + typeId: justificatif.type.id + }, + action: { + name: 'titreEtapeEdition/entrepriseDocumentAdd', + params: { entrepriseId } + }, + repertoire: 'entreprises', + documentsTypes: this.justificatifsTypes, + title: entrepriseNom + } + }) + } else { + justificatif.id = event.target.value + this.justificatifsReset() + } + }, + + justificatifRemove(entrepriseId, index) { + this.entreprisesJustificatifsIndex[entrepriseId].justificatifs.splice( + index, + 1 + ) + + this.justificatifsReset() + }, + + async justificatifDownload(entrepriseId, index) { + const document = + this.entreprisesJustificatifsIndex[entrepriseId].justificatifs[index] + await this.$store.dispatch('downloadDocument', document) + }, + + justificatifsReset() { + this.justificatifs.splice(0, this.justificatifs.length) + + Object.keys(this.entreprisesJustificatifsIndex).forEach(eId => { + this.entreprisesJustificatifsIndex[eId].justificatifs.forEach( + ({ id }) => { + if (!id) return + + this.justificatifs.push({ id }) + } + ) + }) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/perimetre.vue b/packages/ui/src/components/etape/perimetre.vue new file mode 100644 index 000000000..caab1a32f --- /dev/null +++ b/packages/ui/src/components/etape/perimetre.vue @@ -0,0 +1,76 @@ +<template> + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5> + Périmètre + <Tag v-if="incertitude" :mini="true" color="bg-info" class="ml-xs"> + Incertain + </Tag> + </h5> + </div> + + <div class="tablet-blob-3-4"> + <Perimetre + :domaine-id="domaineId" + :titre-type-id="titreTypeId" + :points="etape.points" + :geojson-multi-polygon="geojsonMultiPolygon" + :tab-id="tabId" + @tab-update="tabUpdate" + /> + </div> + </div> + + <div v-if="etape.surface" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5> + Surface + <Tag + v-if="etape.incertitudes && etape.incertitudes.surface" + :mini="true" + color="bg-info" + class="ml-xs" + > + Incertain + </Tag> + </h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ numberFormat(etape.surface) }} km² environ</p> + </div> + </div> +</template> + +<script> +import Perimetre from '../_common/perimetre.vue' +import Tag from '../_ui/tag.vue' +import numberFormat from '@/utils/number-format' + +export default { + components: { Perimetre, Tag }, + + props: { + etape: { type: Object, required: true }, + geojsonMultiPolygon: { type: Object, required: true }, + domaineId: { type: String, required: true }, + titreTypeId: { type: String, required: true }, + incertitude: { type: Boolean, default: false } + }, + + data() { + return { + tabId: 'points' + } + }, + + methods: { + tabUpdate(tabId) { + this.tabId = tabId + }, + + numberFormat(number) { + return numberFormat(number) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/points-edit.vue b/packages/ui/src/components/etape/points-edit.vue new file mode 100644 index 000000000..e2f7f502a --- /dev/null +++ b/packages/ui/src/components/etape/points-edit.vue @@ -0,0 +1,494 @@ +<template> + <div> + <h4 v-if="showTitle" class="mb-s">Périmètre</h4> + + <HeritageEdit + v-model:prop="etape.heritageProps.points" + prop-id="points" + :is-array="true" + > + <template #write> + <button + class="btn small rnd-xs py-s px-m full-x flex mb-s" + @click="pointsImport" + > + <span class="mt-xxs">Importer depuis un fichier…</span + ><i class="icon-24 icon-file-plus flex-right" /> + </button> + + <GeoSystemeEdit v-model:etape="etape" /> + + <div v-if="etape.geoSystemeIds.length" class="mb-s"> + <hr /> + <div class="h6"> + <ul class="list-prefix"> + <li><b>Point</b> : paire de coordoonnées</li> + <li><b>Contour ou lacune</b> : ensemble de points</li> + <li><b>Groupe</b> : ensemble de contours</li> + </ul> + <p> + Le premier contour d'un groupe définit un périmètre. + <br />Les contours suivants définissent des lacunes au sein de ce + périmètre. + </p> + </div> + + <div + v-for="(groupeContours, groupeIndex) in etape.groupes" + :key="groupeIndex + 1" + class="geo-groupe mb-xs" + :class="{ + 'geo-groupe-edit': + groupeContours.length && groupeContours[0].length + }" + > + <div v-if="etape.groupes.length > 1" class="flex flex-full"> + <h4 class="color-bg pt-s pl-m mb-s"> + Groupe {{ groupeIndex + 1 }} + </h4> + <div class="flex-right hide"> + <button + class="btn-border py-s px-m rnd-xs" + @click="groupeRemove(groupeIndex)" + > + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + <div + v-for="(contourPoints, contourIndex) in groupeContours" + :key="contourIndex + 1" + class="geo-contour" + > + <div v-if="groupeContours.length > 1" class="flex flex-full"> + <h4 class="pt-xs pl-s mb-s"> + {{ + contourIndex === 0 ? 'Contour' : `Lacune ${contourIndex}` + }} + </h4> + <div class="flex-right hide"> + <button + class="btn-border py-s px-m rnd-xs" + @click="contourRemove(groupeIndex, contourIndex)" + > + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + <div + v-for="(point, pointIndex) in contourPoints" + :key="pointIndex + 1" + class="geo-point" + > + <div class="flex full-x"> + <h4 v-if="point.lot" class="mt-s">Lot de points</h4> + <h4 v-else class="mt-s">Point {{ point.nom }}</h4> + <div class="flex-right"> + <button + v-if=" + !( + etape.groupes.length === groupeIndex + 1 && + groupeContours.length === contourIndex + 1 && + contourPoints.length === pointIndex + 1 + ) + " + class="btn-border py-s px-m rnd-l-xs" + @click=" + pointMoveDown(groupeIndex, contourIndex, pointIndex) + " + > + <i class="icon-24 icon-move-down" /> + </button> + <button + v-if=" + !( + groupeIndex === 0 && + contourIndex === 0 && + pointIndex === 0 + ) + " + :class="{ + 'rnd-l-xs': + etape.groupes.length === groupeIndex + 1 && + groupeContours.length === contourIndex + 1 && + contourPoints.length === pointIndex + 1 + }" + class="btn-border py-s px-m" + @click=" + pointMoveUp(groupeIndex, contourIndex, pointIndex) + " + > + <i class="icon-24 icon-move-up" /> + </button> + <button + :class="{ + 'rnd-l-xs': + groupeIndex === 0 && + contourIndex === 0 && + pointIndex === 0 && + etape.groupes.length === groupeIndex + 1 && + groupeContours.length === contourIndex + 1 && + contourPoints.length === pointIndex + 1 + }" + class="btn py-s px-m rnd-r-xs" + @click=" + pointRemove(groupeIndex, contourIndex, pointIndex) + " + > + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + + <PointEdit + v-if="!point.lot" + v-model:point="contourPoints[pointIndex]" + :geo-systeme-opposable-id="etape.geoSystemeOpposableId" + :geo-systeme-ids="etape.geoSystemeIds" + /> + <PointsLotEdit + v-else + v-model:point="contourPoints[pointIndex]" + :geo-systeme-opposable-id="etape.geoSystemeOpposableId" + :geo-systeme-ids="etape.geoSystemeIds" + :events="events" + /> + </div> + + <button + class="btn-border rnd-s py-s px-m full-x mb-xs flex small" + @click="pointAdd(groupeIndex, contourIndex)" + > + <span class="mt-xxs">Ajouter un point</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + + <!-- Désactivation de cette fonctionnalité pour vérifier dans un premier temps + si les utilisateurs se plaignent de sa disparition--> + <!-- <button>--> + <!-- class="btn-border rnd-s py-s px-m full-x mb-xs flex small"--> + <!-- @click="lotAdd(groupeIndex, contourIndex)"--> + <!-- >--> + <!-- <span class="mt-xxs">Ajouter un lot de points</span--> + <!-- ><i class="icon-24 icon-plus flex-right" />--> + <!-- </button>--> + </div> + <button + v-if="groupeContours.length && groupeContours[0].length" + class="btn rnd-s py-s px-m full-x mb-xs flex h6" + @click="contourAdd(groupeIndex)" + > + <span class="mt-xxs" + >Ajouter + {{ + groupeContours.length >= 1 ? 'une lacune' : 'un contour' + }}</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> + + <button + v-if=" + etape.groupes.length && + etape.groupes[0].length && + etape.groupes[0][0].length + " + class="btn rnd-s py-s px-m full-x mb-s flex h6" + @click="groupeAdd" + > + <span class="mt-xxs">Ajouter un groupe</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + + <div class="h6"> + <label v-if="pointsTotal.length"> + <input v-model="etape.incertitudes.points" type="checkbox" /> + Incertain + </label> + </div> + </div> + </template> + <template #read> + <Points :points="etape.heritageProps.points.etape.points" /> + </template> + </HeritageEdit> + + <hr /> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s flex"> + <div> + <h5 class="mb-0">Surface (Km²)</h5> + <p class="h6 italic mb-0">Optionnel</p> + </div> + <button + v-if="!etape.heritageProps.surface.actif" + class="flex-right btn-border pill p-s tooltip" + @click="surfaceRefresh" + > + <h6 class="tooltip-content"> + Recalculer automatiquement la surface à partir du périmètre + </h6> + <i class="icon-24 icon-refresh" /> + </button> + </div> + <HeritageEdit + v-model:prop="etape.heritageProps.surface" + class="tablet-blob-2-3" + prop-id="surface" + > + <template #write> + <inputNumber + v-model="etape.surface" + min="0" + placeholder="0" + class="mb-s" + /> + <div v-if="etape.surface" class="h6"> + <label> + <input + v-model="etape.incertitudes.surface" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </template> + <template #read> + <div class="border p-s mb-s bold"> + {{ etape.heritageProps.surface.etape.surface }} + </div> + </template> + </HeritageEdit> + </div> +</template> + +<script> +import GeoSystemeEdit from './points-geo-systemes-edit.vue' +import PointEdit from './points-point-edit.vue' +import PointsLotEdit from './points-lot-edit.vue' +import HeritageEdit from './heritage-edit.vue' +import PointsImportPopup from './points-import-popup.vue' +import Points from '../_common/points.vue' +import InputNumber from '../_ui/input-number.vue' + +export default { + components: { + GeoSystemeEdit, + PointEdit, + PointsLotEdit, + HeritageEdit, + Points, + InputNumber + }, + + props: { + etape: { type: Object, default: () => ({}) }, + events: { type: Object, default: () => ({ saveKeyUp: true }) }, + showTitle: { type: Boolean, default: true } + }, + emits: ['complete-update'], + + computed: { + pointsTotal() { + return this.etape.groupes.reduce((pointsTotal, contours) => { + pointsTotal = pointsTotal.concat( + contours.reduce((pointsTotal, points) => { + pointsTotal = pointsTotal.concat(points) + + return pointsTotal + }, []) + ) + + return pointsTotal + }, []) + }, + + complete() { + return this.etape.type.id !== 'mfr' || this.pointsTotal?.length > 3 + } + }, + + watch: { + complete: 'completeUpdate', + 'etape.geoSystemeIds': { + handler() { + this.etapeGeoSystemeOpposableIdUpdate() + }, + deep: true + }, + + etape: { + handler: function (etape) { + if ( + !etape.groupes || + !etape.groupes[0] || + !etape.groupes[0][0] || + !etape.groupes[0][0].length + ) { + etape.incertitudes.points = false + } + + if (!etape.surface) { + etape.incertitudes.surface = false + } + }, + deep: true + } + }, + + created() { + this.completeUpdate() + }, + + methods: { + etapeGeoSystemeOpposableIdUpdate() { + if (this.etape.geoSystemeIds.length < 2) { + this.etape.geoSystemeOpposableId = '' + } else if ( + this.etape.geoSystemeIds.length > 1 && + (!this.etape.geoSystemeOpposableId || + !this.etape.geoSystemeIds.includes(this.etape.geoSystemeOpposableId)) + ) { + this.etape.geoSystemeOpposableId = this.etape.geoSystemeIds[0] + } + }, + + clean(groupes, groupeIndex, contourIndex) { + const contours = groupes[groupeIndex] + const points = contours[contourIndex] + + if (!points.length && (groupes.length > 1 || contours.length > 1)) { + contours.splice(contourIndex, 1) + if (!contours.length && groupes.length > 1) { + groupes.splice(groupeIndex, 1) + } + } + }, + + referencesInit() { + return this.etape.geoSystemeIds.reduce((references, geoSystemeId) => { + references[geoSystemeId] = {} + + return references + }, {}) + }, + + pointAdd(groupeIndex, contourIndex) { + this.etape.groupes[groupeIndex][contourIndex].push({ + groupe: groupeIndex + 1, + contour: contourIndex + 1, + point: this.etape.groupes[groupeIndex][contourIndex].length, + references: this.referencesInit(), + subsidiaire: false + }) + }, + + lotAdd(groupeIndex, contourIndex) { + this.etape.groupes[groupeIndex][contourIndex].push({ + groupe: groupeIndex + 1, + contour: contourIndex + 1, + point: this.etape.groupes[groupeIndex][contourIndex].length, + references: [], + subsidiaire: false, + lot: true + }) + }, + + pointRemove(groupeIndex, contourIndex, pointIndex) { + const groupes = this.etape.groupes + const contours = groupes[groupeIndex] + const points = contours[contourIndex] + points.splice(pointIndex, 1) + + this.clean(groupes, groupeIndex, contourIndex) + }, + + pointMoveDown(groupeIndex, contourIndex, pointIndex) { + const groupes = this.etape.groupes + const contours = groupes[groupeIndex] + const points = contours[contourIndex] + if (points.length > pointIndex + 1) { + const point = points.splice(pointIndex, 1)[0] + points.splice(pointIndex + 1, 0, point) + } else if (contours.length > contourIndex + 1) { + const point = points.splice(pointIndex, 1)[0] + contours[contourIndex + 1].unshift(point) + this.clean(groupes, groupeIndex, contourIndex) + } else if (groupes.length > groupeIndex + 1) { + const point = points.splice(pointIndex, 1)[0] + groupes[groupeIndex + 1][0].unshift(point) + this.clean(groupes, groupeIndex, contourIndex) + } + }, + + pointMoveUp(groupeIndex, contourIndex, pointIndex) { + const groupes = this.etape.groupes + const contours = groupes[groupeIndex] + const points = contours[contourIndex] + if (pointIndex > 0) { + const point = points.splice(pointIndex, 1)[0] + points.splice(pointIndex - 1, 0, point) + } else if (contourIndex > 0) { + const point = points.splice(pointIndex, 1)[0] + contours[contourIndex - 1].push(point) + this.clean(groupes, groupeIndex, contourIndex) + } else if (groupeIndex > 0) { + const point = points.splice(pointIndex, 1)[0] + groupes[groupeIndex - 1][groupes[groupeIndex - 1].length - 1].push( + point + ) + this.clean(groupes, groupeIndex, contourIndex) + } + }, + + contourAdd(groupeIndex) { + this.etape.groupes[groupeIndex].push([ + { + groupe: groupeIndex + 1, + contour: 1, + point: 1, + references: this.referencesInit() + } + ]) + }, + + contourRemove(groupeIndex, contourIndex) { + this.etape.groupes[groupeIndex].splice(contourIndex, 1) + }, + + groupeAdd() { + this.etape.groupes.push([ + [ + { + groupe: this.etape.groupes.length, + contour: 1, + point: 1, + references: this.referencesInit() + } + ] + ]) + }, + + groupeRemove(groupeIndex) { + this.etape.groupes.splice(groupeIndex, 1) + }, + + completeUpdate() { + this.$emit('complete-update', this.complete) + }, + + pointsImport() { + this.$store.commit('popupOpen', { + component: PointsImportPopup + }) + }, + + surfaceRefresh() { + this.$store.dispatch('titreEtapeEdition/surfaceRefresh', this.etape) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/points-geo-systemes-edit.vue b/packages/ui/src/components/etape/points-geo-systemes-edit.vue new file mode 100644 index 000000000..9baa26efe --- /dev/null +++ b/packages/ui/src/components/etape/points-geo-systemes-edit.vue @@ -0,0 +1,99 @@ +<template> + <div> + <h4 class="mb-s">Systèmes géographiques</h4> + <div + v-for="(etapeGeoSystemeId, etapeGeoSystemeIndex) in etape.geoSystemeIds" + :key="etapeGeoSystemeIndex" + > + <div class="flex mb-s"> + <select + v-model="etape.geoSystemeIds[etapeGeoSystemeIndex]" + class="p-s mr-s" + @change="geoSystemeUpdate(etapeGeoSystemeIndex)" + > + <option + v-for="geoSysteme in geoSystemes" + :key="geoSysteme.id" + :value="geoSysteme.id" + :disabled="etape.geoSystemeIds.includes(geoSysteme.id)" + > + {{ geoSysteme.nom }} ({{ geoSysteme.id }}) + </option> + </select> + <button + class="btn py-s px-m rnd-xs" + @click="geoSystemeRemove(etapeGeoSystemeIndex)" + > + <i class="icon-24 icon-minus" /> + </button> + </div> + + <div v-if="etapeGeoSystemeId" class="tablet-blobs"> + <div v-if="etape.geoSystemeIds.length > 1" class="tablet-blob-1-2"> + <div class="h6 mb"> + <label> + <input + v-model="etape.geoSystemeOpposableId" + type="radio" + :value="etapeGeoSystemeId" + /> + Opposable + </label> + </div> + </div> + </div> + </div> + <button + v-if="!etape.geoSystemeIds.some(id => !id)" + class="btn small rnd-xs py-s px-m full-x flex mb-s" + @click="geoSystemeAdd" + > + <span class="mt-xxs">Ajouter un système géographique</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> +</template> + +<script> +export default { + props: { + etape: { type: Object, default: () => ({}) } + }, + + computed: { + geoSystemes() { + return this.$store.state.titreEtapeEdition.metas.geoSystemes + } + }, + + methods: { + geoSystemeAdd() { + this.etape.geoSystemeIds.push('') + }, + + geoSystemeRemove(etapeGeoSystemeIndex) { + this.etape.geoSystemeIds.splice(etapeGeoSystemeIndex, 1) + }, + + geoSystemeUpdate(etapeGeoSystemeIndex) { + const etapeGeoSystemeId = this.etape.geoSystemeIds[etapeGeoSystemeIndex] + + this.etape.groupes.forEach(contours => { + contours.forEach(points => { + points.forEach(point => { + if (!point.references[etapeGeoSystemeId]) { + point.references[etapeGeoSystemeId] = point.lot + ? [] + : [null, null] + } + }) + }) + }) + + if (!this.etape.groupes.length) { + this.etape.groupes.push([[]]) + } + } + } +} +</script> diff --git a/packages/ui/src/components/etape/points-import-popup.vue b/packages/ui/src/components/etape/points-import-popup.vue new file mode 100644 index 000000000..c6bf2509b --- /dev/null +++ b/packages/ui/src/components/etape/points-import-popup.vue @@ -0,0 +1,109 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Import d'un périmètre</h2> + </template> + + <div class="tablet-blobs mb-m"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0">Système géographique</h5> + </div> + <div class="tablet-blob-2-3"> + <select v-model="geoSystemeId" class="p-s"> + <option + v-for="geoSysteme in geoSystemes" + :key="geoSysteme.id" + :value="geoSysteme.id" + > + {{ geoSysteme.nom }} ({{ geoSysteme.id }}) + </option> + </select> + </div> + </div> + + <div v-if="geoSystemeId"> + <InputFile + class="btn-border small bg-alt p-s full-x rnd-xs mb-s" + accept=".shp,.geojson" + @change="fileChange" + /> + <p class="h6 italic mt-0"> + Seul les fichiers Shape (.shp) et GeoJson (.geojson) sont acceptés. + </p> + </div> + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0 flex-right"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Dépôt en cours…</div> + </template> + </Popup> +</template> + +<script> +import InputFile from '../_ui/input-file.vue' +import Popup from '../_ui/popup.vue' + +export default { + components: { + Popup, + InputFile + }, + + data: function () { + return { + geoSystemeId: null + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + geoSystemes() { + return this.$store.state.titreEtapeEdition.metas.geoSystemes + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async fileChange({ + target: { + files: [file] + } + }) { + await this.$store.dispatch('titreEtapeEdition/pointsImport', { + file, + geoSystemeId: this.geoSystemeId + }) + }, + + cancel() { + this.$store.commit('popupMessagesRemove') + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } + } + } +} +</script> diff --git a/packages/ui/src/components/etape/points-lot-edit.vue b/packages/ui/src/components/etape/points-lot-edit.vue new file mode 100644 index 000000000..08015cb9e --- /dev/null +++ b/packages/ui/src/components/etape/points-lot-edit.vue @@ -0,0 +1,77 @@ +<template> + <div> + <div class="mb"> + <div class="flex"> + <h5>Description</h5> + <p class="h6 italic mb-0 flex-right mt-xs">Optionnel</p> + </div> + <input v-model="point.description" type="text" class="p-s" /> + </div> + + <h5> + Coordonnées en {{ etapeGeoSysteme.nom }} ({{ etapeGeoSysteme.unite.nom }}) + </h5> + <textarea + class="p-s mb-s mono" + :value="point.references.join('\n')" + placeholder="1,4769;47,3469" + @blur="pointsLotUpdate($event)" + @focus="pointsLotEdit" + /> + + <div class="h6 p-s"> + <ul class="list-prefix"> + <li> + Une paire de coordonnées + <span class="mono bg-alt p-xxs color-text">x;y</span> + par ligne, séparées par un point-virgule, sans espace. + </li> + <li>Au format décimal, quelle que soit l'unité.</li> + <li>Unités et décimales séparées par une virgule.</li> + </ul> + <p class="mb-s"> + Exemple: + <span class="mono bg-alt px-xs py-xxs color-text">1,4769;47,3469</span> + </p> + </div> + </div> +</template> + +<script> +export default { + props: { + point: { type: Object, default: () => ({}) }, + geoSystemeIds: { type: Array, required: true }, + geoSystemeOpposableId: { type: String, required: true }, + events: { type: Object, default: () => ({ saveKeyUp: true }) } + }, + + computed: { + etapeGeoSysteme() { + const geoSystemeId = this.geoSystemeOpposableId || this.geoSystemeIds[0] + + return this.$store.state.titreEtapeEdition.metas.geoSystemes.find( + ({ id }) => id === geoSystemeId + ) + } + }, + + methods: { + pointsLotEdit() { + // lorsque l'on édite un lot, + // désactive la validation du formulaire avec `enter` + this.events.saveKeyUp = false + }, + + pointsLotUpdate(event, groupeIndex, contourIndex, pointIndex) { + const coordonnees = event.target.value.split('\n').filter(c => c) + + if (coordonnees) { + this.point.references = coordonnees + } + + this.events.saveKeyUp = true + } + } +} +</script> diff --git a/packages/ui/src/components/etape/points-point-edit.vue b/packages/ui/src/components/etape/points-point-edit.vue new file mode 100644 index 000000000..4e93d1ee2 --- /dev/null +++ b/packages/ui/src/components/etape/points-point-edit.vue @@ -0,0 +1,53 @@ +<template> + <div> + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3"> + <h5>Nom</h5> + <input v-model.lazy="point.nom" type="text" class="p-s" /> + </div> + <div class="mb tablet-blob-2-3"> + <div class="flex"> + <h5>Description</h5> + <p class="h6 italic mb-0 flex-right mt-xs">Optionnel</p> + </div> + <input v-model="point.description" type="text" class="p-s" /> + </div> + </div> + + <div class="h6 mb"> + <label> + <input v-model="point.subsidiaire" type="checkbox" /> Subsidiaire + </label> + </div> + + <PointReferenceEdit + v-for="geoSysteme in geoSystemes" + :key="`${point.id}-${geoSysteme.id}`" + v-model:point-references="point.references" + :geo-systeme="geoSysteme" + :geo-systeme-opposable-id="geoSystemeOpposableId" + /> + </div> +</template> + +<script> +import PointReferenceEdit from './points-point-reference-edit.vue' + +export default { + components: { PointReferenceEdit }, + + props: { + point: { type: Object, default: () => ({}) }, + geoSystemeIds: { type: Array, required: true }, + geoSystemeOpposableId: { type: String, required: true } + }, + + computed: { + geoSystemes() { + return this.$store.state.titreEtapeEdition.metas.geoSystemes.filter( + ({ id }) => this.geoSystemeIds.includes(id) + ) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/points-point-reference-edit.vue b/packages/ui/src/components/etape/points-point-reference-edit.vue new file mode 100644 index 000000000..b34cead46 --- /dev/null +++ b/packages/ui/src/components/etape/points-point-reference-edit.vue @@ -0,0 +1,56 @@ +<template> + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3"> + <h5> + Système + <span + v-if="geoSystemeOpposableId === geoSysteme.id" + class="bg-info py-xxs px-xs rnd-xs color-bg ml-xxs" + >Opposable</span + > + </h5> + + <p class="py-s mb-0 h6 bold"> + {{ geoSysteme.nom }} + </p> + </div> + <div class="mb tablet-blob-1-3"> + <h5>X ({{ geoSysteme.unite.nom }})</h5> + <inputNumber + v-model="pointReference.x" + :negative="true" + placeholder="0,01" + /> + </div> + <div class="mb tablet-blob-1-3"> + <h5>Y ({{ geoSysteme.unite.nom }})</h5> + <inputNumber + v-model="pointReference.y" + :negative="true" + placeholder="0,01" + /> + </div> + </div> +</template> + +<script> +import InputNumber from '../_ui/input-number.vue' + +export default { + components: { InputNumber }, + + props: { + geoSysteme: { type: Object, required: true }, + geoSystemeOpposableId: { type: String, required: true }, + pointReferences: { type: Object, required: true } + }, + + computed: { + pointReference() { + return this.pointReferences[this.geoSysteme.id] + ? this.pointReferences[this.geoSysteme.id] + : { id: undefined, x: 0, y: 0 } + } + } +} +</script> diff --git a/packages/ui/src/components/etape/preview.vue b/packages/ui/src/components/etape/preview.vue new file mode 100644 index 000000000..a19f391e1 --- /dev/null +++ b/packages/ui/src/components/etape/preview.vue @@ -0,0 +1,331 @@ +<template> + <Accordion + :id="etape.id" + :opened="opened" + class="mb-s" + :slot-default="hasSections || hasFondamentales || hasDocuments" + :slot-buttons="etape.modification" + @close="close" + @toggle="toggle" + > + <template #title> + <h5> + {{ dateFormat(etape.date) }} + <Tag + v-if="etape.incertitudes && etape.incertitudes.date" + :mini="true" + color="bg-info" + class="ml-xs" + > + Incertain + </Tag> + </h5> + + <h3 class="cap-first mb-s">{{ etape.type.nom }}</h3> + + <div class="mb-xs flex flex-center"> + <Statut :color="etape.statut.couleur" :nom="statutNom" /> + + <HelpTooltip v-if="demandeHelp" class="ml-m">{{ + demandeHelp + }}</HelpTooltip> + </div> + </template> + + <template v-if="etape.modification" #buttons> + <button + v-if="etapeIsDemandeEnConstruction" + class="btn btn-primary flex small rnd-0" + :disabled="!etape.deposable" + :class="{ disabled: !etape.deposable }" + @click="etapeDepot" + > + <span class="mt-xxs mb-xxs">Déposer…</span> + </button> + + <button class="btn py-s px-m mr-px" @click="etapeEdit"> + <i class="icon-24 icon-pencil" /> + </button> + + <button class="btn py-s px-m mr-px" @click="removePopupOpen"> + <i class="icon-24 icon-trash" /> + </button> + </template> + + <div class="px pt-m"> + <div v-if="hasFondamentales"> + <Fondamentales :etape="etape" /> + + <Perimetre + v-if="etape.points && etape.points.length" + :etape="etape" + :domaine-id="domaineId" + :titre-type-id="titreTypeType.id" + :geojson-multi-polygon="etape.geojsonMultiPolygon" + :incertitude="!!etape.incertitudes?.points" + /> + <hr class="mx--" /> + </div> + + <div v-if="etape.type.sections?.length"> + <Section + v-for="s in etape.type.sections" + :key="s.id" + :section="s" + :contenu="etape.contenu ? etape.contenu[s.id] : {}" + :date="etape.date" + /> + + <hr class="mx--" /> + </div> + + <div v-if="etape.documents?.length"> + <h4>Documents</h4> + <Documents + :bouton-suppression="false" + :bouton-modification="false" + :documents="etape.documents" + :etiquette="etape.modification" + :parent-id="etape.id" + :parent-type-id="etape.type.id" + repertoire="demarches" + :title="documentPopupTitle" + /> + + <hr class="mx--" /> + </div> + + <div v-if="etape.justificatifs?.length"> + <h4>Justificatifs</h4> + <Documents + :bouton-dissociation="false" + :bouton-modification="false" + :bouton-suppression="false" + :documents="etape.justificatifs" + :etiquette="etape.modification" + :parent-id="etape.id" + :parent-type-id="etape.type.id" + repertoire="'entreprises'" + :title="documentPopupTitle" + /> + + <hr class="mx--" /> + </div> + + <div + v-if="etape.decisionsAnnexesSections && etape.decisionsAnnexesContenu" + > + <Section + v-for="s in etape.decisionsAnnexesSections" + :key="s.id" + :section="s" + :contenu="etape.decisionsAnnexesContenu[s.id] || {}" + :etape-id="etape.id" + /> + + <hr class="mx--" /> + </div> + + <div v-if="canDownloadZip" class="flex"> + <span class="small bold mb-0 mt-s flex-grow text-right mr-l pt-xs"> + Télécharger l'ensemble de la demande dans un fichier .zip + </span> + <button + class="btn-border rnd-xs flex-right py-s px-m mb-m" + @click="demandeDownload" + > + <i class="icon-24 icon-download" /> + </button> + </div> + </div> + </Accordion> +</template> + +<script> +import { dateFormat, cap } from '@/utils' +import Perimetre from './perimetre.vue' +import Fondamentales from './fondamentales.vue' +import Section from '../_common/section.vue' +import Documents from '../documents/list.vue' +import Accordion from '../_ui/accordion.vue' +import Tag from '../_ui/tag.vue' +import Statut from '../_common/statut.vue' +import RemovePopup from './remove.vue' +import DeposePopup from './depose-popup.vue' +import HelpTooltip from '../_ui/help-tooltip.vue' + +export default { + components: { + HelpTooltip, + Accordion, + Tag, + Statut, + Perimetre, + Fondamentales, + Section, + Documents + }, + + props: { + etape: { type: Object, required: true }, + demarcheType: { type: Object, required: true }, + titreTypeType: { type: Object, required: true }, + domaineId: { type: String, required: true }, + titreNom: { type: String, required: true }, + titreId: { type: String, required: true }, + opened: { type: Boolean, default: false } + }, + + emits: ['close', 'toggle'], + + computed: { + route() { + return { + name: 'titre', + section: 'etapes', + id: this.titreId + } + }, + + documentPopupTitle() { + return `${cap(this.titreNom)} | ${cap(this.demarcheType.nom)} | ${cap( + this.etape.type.nom + )}` + }, + + etapeIsDemandeEnConstruction() { + return this.etape.type.id === 'mfr' && this.etape.statut.id === 'aco' + }, + + hasFondamentales() { + return ( + !!this.etape.duree || + !!this.etape.surface || + !!this.etape.dateDebut || + !!this.etape.dateFin || + !!(this.etape.points && this.etape.points.length) || + !!(this.etape.substances && this.etape.substances.length) || + !!(this.etape.titulaires && this.etape.titulaires.length) || + !!(this.etape.amodiataires && this.etape.amodiataires.length) + ) + }, + + hasSections() { + return !!this.etape.type.sections?.length + }, + + hasDocuments() { + return this.etape.documents && !!this.etape.documents.length + }, + + hasJustificatifs() { + return this.etape.justificatifs && !!this.etape.justificatifs.length + }, + + statutNom() { + return this.etapeIsDemandeEnConstruction && !this.etape.deposable + ? `${this.etape.statut.nom} (incomplet)` + : this.etape.statut.nom + }, + + userIsAdmin() { + return this.$store.getters['user/userIsAdmin'] + }, + + canDownloadZip() { + return ( + this.etape.type.id === 'mfr' && + (this.hasDocuments || this.hasJustificatifs) + ) + }, + + demandeHelp() { + if (!this.userIsAdmin && this.etape.type.id === 'mfr') { + if ( + this.domaineId === 'm' && + ['ar', 'ax'].includes(this.titreTypeType.id) + ) { + if (this.etape.statut.id === 'aco') { + return 'Si vous avez ajouté tous les documents spécifiques à la demande et justificatifs d’entreprise, et que vous considérez que votre demande est complète, vous pouvez la déposer en cliquant sur « Déposer … ». L’ONF et le PTMG seront ainsi notifiés et pourront instruire votre demande.' + } else { + return 'Votre demande est bien déposée. L’ONF et le PTMG instruisent votre demande.' + } + } + } + + return null + } + }, + + methods: { + dateFormat(date) { + return dateFormat(date) + }, + + close() { + this.$emit('close') + }, + + toggle() { + this.$emit('toggle') + }, + + async demandeDownload() { + await this.$store.dispatch('download', `/etape/zip/${this.etape.id}`) + }, + + etapeEdit() { + this.$router.push({ + name: 'etape-edition', + params: { id: this.etape.slug } + }) + + this.eventTrack({ + categorie: 'titre-etape', + action: 'titre-etape_editer', + nom: this.$route.params.id + }) + }, + + etapeDepot() { + this.$store.commit('popupOpen', { + component: DeposePopup, + props: { + etape: this.etape + } + }) + + this.eventTrack({ + categorie: 'titre-etape', + action: 'titre-etape_depot', + nom: this.$route.params.id + }) + }, + + removePopupOpen() { + this.$store.commit('popupOpen', { + component: RemovePopup, + props: { + etapeTypeNom: this.etape.type.nom, + etapeId: this.etape.id, + demarcheTypeNom: this.demarcheType.nom, + titreNom: this.titreNom, + titreTypeNom: this.titreTypeType.nom + } + }) + + this.eventTrack({ + categorie: 'titre-etape', + action: 'supprimer une étape', + nom: this.$route.params.id + }) + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + } + } +} +</script> diff --git a/packages/ui/src/components/etape/prop-duree.vue b/packages/ui/src/components/etape/prop-duree.vue new file mode 100644 index 000000000..883e0272e --- /dev/null +++ b/packages/ui/src/components/etape/prop-duree.vue @@ -0,0 +1,26 @@ +<template> + <span> + <span v-if="dureeFormated.ans">{{ + `${dureeFormated.ans} an${dureeFormated.ans > 1 ? 's' : ''}` + }}</span> + <span v-if="dureeFormated.ans && dureeFormated.mois"> et </span> + <span v-if="dureeFormated.mois">{{ `${dureeFormated.mois} mois` }}</span> + </span> +</template> + +<script> +export default { + props: { + duree: { type: Number, default: null } + }, + + computed: { + dureeFormated() { + return { + ans: this.duree && Math.floor(this.duree / 12), + mois: this.duree && Math.floor(this.duree % 12) + } + } + } +} +</script> diff --git a/packages/ui/src/components/etape/remove.vue b/packages/ui/src/components/etape/remove.vue new file mode 100644 index 000000000..4f15eb4cd --- /dev/null +++ b/packages/ui/src/components/etape/remove.vue @@ -0,0 +1,119 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h6> + <span class="cap-first"> {{ titreNom }} </span + ><span class="color-neutral"> | </span + ><span class="cap-first"> + {{ demarcheTypeNom }} + </span> + </h6> + <h2 class="cap-first">Suppression de l'étape</h2> + </div> + </template> + + <p class="bold"> + Souhaitez vous supprimer l'étape + <span class="color-inverse">{{ etapeTypeNom }}</span> de la démarche + <span class="color-inverse">{{ demarcheTypeNom }}</span> du titre + <span class="color-inverse">{{ titreNom }} ({{ titreTypeNom }})</span> ? + </p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button class="btn-flash rnd-xs p-s full-x" @click="remove"> + Supprimer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Suppression en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoEtapeRemovePopup', + + components: { + Popup + }, + + props: { + etapeTypeNom: { + type: String, + default: '' + }, + demarcheTypeNom: { + type: String, + default: '' + }, + etapeId: { + type: String, + default: '' + }, + titreNom: { + type: String, + default: '' + }, + titreTypeNom: { + type: String, + default: '' + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async remove() { + await this.$store.dispatch('titreEtape/remove', this.etapeId) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + }, + + errorsRemove() { + // this.$store.commit('utilisateur/loginMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/etape/section-element-edit.vue b/packages/ui/src/components/etape/section-element-edit.vue new file mode 100644 index 000000000..6936c09b0 --- /dev/null +++ b/packages/ui/src/components/etape/section-element-edit.vue @@ -0,0 +1,82 @@ +<template> + <div> + <div class="tablet-blobs"> + <div v-if="element.nom" class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5 class="mb-0"> + <span class="cap-first">{{ element.nom }}</span> + </h5> + <p v-if="element.optionnel" class="h6 italic mb-0">Optionnel</p> + </div> + + <HeritageEdit + v-model:prop="heritage[element.id]" + class="mb" + :class="{ + 'tablet-blob-2-3': element.nom, + 'tablet-blob-1': !element.nom + }" + :prop-id="element.id" + :section-id="sectionId" + :is-array="element.type === 'checkboxes'" + > + <template #write> + <SectionElementEdit + v-model:contenu="contenu" + class="mb-s" + :element="element" + /> + </template> + <template #read> + <p v-if="element.type !== 'multiple'" class="pt-s py-xs mb-0"> + {{ valeur }} + </p> + <SectionElementMultiple + v-else + :contenu="contenu[element.id]" + :element="element" + /> + </template> + + <!-- eslint-disable vue/no-v-html --> + <p v-if="element.description" class="h6" v-html="element.description" /> + </HeritageEdit> + </div> + + <hr /> + </div> +</template> + +<script> +import { valeurFind, hasValeurCheck } from '@/utils/contenu' +import SectionElementEdit from '../_common/section-element-input-edit.vue' +import HeritageEdit from './heritage-edit.vue' +import SectionElementMultiple from '../_common/section-element-multiple.vue' + +export default { + components: { + SectionElementMultiple, + SectionElementEdit, + HeritageEdit + }, + + props: { + contenu: { type: Object, required: true }, + element: { type: Object, required: true }, + heritage: { type: Object, required: true }, + sectionId: { type: String, required: true } + }, + + computed: { + hasValeur() { + return hasValeurCheck(this.element.id, this.contenu) + }, + + valeur() { + return valeurFind( + this.element, + this.heritage[this.element.id].etape.contenu[this.sectionId] + ) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/sections-edit.vue b/packages/ui/src/components/etape/sections-edit.vue new file mode 100644 index 000000000..32d3bb281 --- /dev/null +++ b/packages/ui/src/components/etape/sections-edit.vue @@ -0,0 +1,72 @@ +<template> + <div> + <div v-for="s in sections" :key="s.id"> + <h3 v-if="s.nom">{{ s.nom }}</h3> + + <SectionElementEdit + v-for="e in s.elements" + :key="e.id" + v-model:contenu="contenu[s.id]" + :element="e" + :heritage="etape.heritageContenu[s.id]" + :section-id="s.id" + /> + </div> + </div> +</template> + +<script> +import { + elementContenuBuild, + contenuBuild, + contenuCompleteCheck +} from '@/utils/contenu' +import SectionElementEdit from './section-element-edit.vue' + +export default { + components: { + SectionElementEdit + }, + + props: { + sections: { type: Array, required: true }, + etape: { type: Object, required: true } + }, + + emits: ['complete-update', 'sections-update'], + data() { + return { + contenu: {} + } + }, + + computed: { + complete() { + return contenuCompleteCheck(this.sections, this.contenu) + } + }, + + watch: { + contenu: { + handler: function (contenu) { + this.etape.contenu = elementContenuBuild(this.sections, contenu) + this.$emit('sections-update') + }, + deep: true + }, + + complete: 'completeUpdate' + }, + + created() { + this.contenu = contenuBuild(this.sections, this.etape.contenu) + this.completeUpdate() + }, + + methods: { + completeUpdate() { + this.$emit('complete-update', this.complete) + } + } +} +</script> diff --git a/packages/ui/src/components/etape/type-edit.vue b/packages/ui/src/components/etape/type-edit.vue new file mode 100644 index 000000000..d46b45015 --- /dev/null +++ b/packages/ui/src/components/etape/type-edit.vue @@ -0,0 +1,129 @@ +<template> + <div> + <div v-if="userIsAdmin" class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Date</h5> + </div> + <div class="tablet-blob-2-3"> + <InputDate + v-model="etape.date" + :class="{ 'mb-s': etape.date, mb: !etape.date }" + /> + <div class="h6"> + <label v-if="etape.date"> + <input + v-model="etape.incertitudes.date" + type="checkbox" + class="mr-xs" + /> + Incertain + </label> + </div> + </div> + + <hr /> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Type</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select :value="etapeType?.id" class="p-s" @change="typeUpdate($event)"> + <option + v-for="eType in etapesTypes" + :key="eType.id" + :value="eType.id" + :disabled="etapeType?.id === eType.id" + > + {{ eType.nom }} + </option> + </select> + </div> + </div> + + <hr /> + + <div v-if="etapesStatuts && !etapeIsDemandeEnConstruction"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Statut</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select v-model="etape.statutId" class="p-s"> + <option + v-for="etapeStatut in etapesStatuts" + :key="etapeStatut.id" + :value="etapeStatut.id" + :disabled="etape.statutId === etapeStatut.id" + > + {{ etapeStatut.nom }} + </option> + </select> + </div> + </div> + + <hr /> + </div> + </div> +</template> + +<script> +import InputDate from '../_ui/input-date.vue' + +export default { + components: { InputDate }, + props: { + userIsAdmin: { type: Boolean, required: true }, + etape: { type: Object, required: true }, + etapeType: { type: Object, default: () => ({}) }, + etapesTypes: { type: Array, required: true }, + etapeIsDemandeEnConstruction: { type: Boolean, default: false } + }, + + emits: ['type-update', 'complete-update'], + + computed: { + etapesStatuts() { + return this.etapeType && this.etapeType.etapesStatuts + }, + + complete() { + if (this.userIsAdmin) { + return this.etapeIsDemandeEnConstruction + ? !!(this.etapeType && this.etape.date) + : !!(this.etapeType && this.etape.date && this.etape.statutId) + } + + return !!this.etapeType.id + } + }, + + watch: { + etapesStatuts: function () { + if (this.etapesStatuts?.length === 1) { + this.etape.statutId = this.etapesStatuts[0].id + } else { + this.etape.statutId = null + } + }, + + complete: 'completeUpdate' + }, + + created() { + this.completeUpdate() + }, + + methods: { + async typeUpdate(event) { + const typeId = event.target.value + this.$emit('type-update', typeId) + }, + + completeUpdate() { + this.$emit('complete-update', this.complete) + } + } +} +</script> diff --git a/packages/ui/src/components/glossaire.vue b/packages/ui/src/components/glossaire.vue new file mode 100644 index 000000000..781e608b6 --- /dev/null +++ b/packages/ui/src/components/glossaire.vue @@ -0,0 +1,62 @@ +<template> + <div> + <h1 class="mt-m">Glossaire</h1> + + <hr class="mb-xl" /> + + <div class="desktop-blobs"> + <div class="desktop-blob-1-3"> + <Sommaire :slug="slug" :definitions="definitions" /> + </div> + <div class="desktop-blob-2-3"> + <Router-view v-if="slug" :slug="slug" :definition="definition" /> + <div v-else> + <h3>Définitions des termes utilisés dans Camino.</h3> + </div> + </div> + </div> + </div> +</template> + +<script> +import Sommaire from './glossaire/sommaire.vue' + +export default { + name: 'Glossaire', + + components: { Sommaire }, + + data() { + return { + loaded: false + } + }, + + computed: { + definitions() { + return this.$store.state.definitions.elements + }, + + definition() { + return this.definitions.find(d => d.slug === this.slug) || {} + }, + + slug() { + return this.$route.params.slug + } + }, + + async created() { + await this.definitionsGet() + }, + + methods: { + async definitionsGet() { + await this.$store.dispatch('definitions/get') + if (!this.loaded) { + this.loaded = true + } + } + } +} +</script> diff --git a/packages/ui/src/components/glossaire/definition-entree.vue b/packages/ui/src/components/glossaire/definition-entree.vue new file mode 100644 index 000000000..d1222deaa --- /dev/null +++ b/packages/ui/src/components/glossaire/definition-entree.vue @@ -0,0 +1,58 @@ +<template> + <div> + <div> + <h3> + <Pill + v-if="id === 'dom'" + :color="`bg-domaine-${entree.id}`" + class="mr-xs mono mt--s" + > + {{ entree.id }} + </Pill> + <svg v-if="id === 'tty'" width="24" height="24" class="mr-s mb--xs"> + <rect + width="24" + height="24" + :class="`svg-fill-pattern-${entree.id}`" + /> + </svg> + <Statut + v-if="id === 'tst' || id === 'dst' || id === 'est'" + :color="entree.couleur" + :nom="entree.nom" + class="inline-block" + /> + <span v-else class="cap-first">{{ entree.nom }}</span> + </h3> + </div> + <!-- eslint-disable-next-line vue/no-v-html --> + <div v-if="entree.description" class="mb-l" v-html="descriptionHtml" /> + </div> +</template> + +<script> +import snarkdown from 'snarkdown' +import Pill from '../_ui/pill.vue' +import Statut from '../_common/statut.vue' + +export default { + name: 'DefinitionEntree', + + components: { Pill, Statut }, + + props: { + entree: { type: Object, default: () => ({}) }, + id: { type: String, default: () => '' } + }, + + computed: { + elements() { + return this.entree.elements + }, + + descriptionHtml() { + return snarkdown(this.entree.description) + } + } +} +</script> diff --git a/packages/ui/src/components/glossaire/definition.vue b/packages/ui/src/components/glossaire/definition.vue new file mode 100644 index 000000000..2a5ba0633 --- /dev/null +++ b/packages/ui/src/components/glossaire/definition.vue @@ -0,0 +1,63 @@ +<template> + <div> + <MapPattern + v-if="definition.id === 'tty'" + :domaines-ids="['h']" + :types-ids="entrees.map(t => t.id)" + /> + <h2>{{ definition.nom }}</h2> + <!-- eslint-disable-next-line vue/no-v-html --> + <p v-if="definition.description" v-html="descriptionHtml" /> + <div v-if="entrees && entrees.length"> + <DefinitionEntree + v-for="entree in entrees" + :id="definition.id" + :key="entree.id" + :entree="entree" + /> + </div> + </div> +</template> + +<script> +import snarkdown from 'snarkdown' +import DefinitionEntree from './definition-entree.vue' +import MapPattern from '../_map/pattern.vue' + +export default { + name: 'Definition', + + components: { DefinitionEntree, MapPattern }, + + props: { + definition: { type: Object, required: true }, + slug: { type: String, required: true } + }, + + computed: { + entrees() { + return this.$store.state.definitions.entrees + }, + + descriptionHtml() { + return snarkdown(this.definition.description) + } + }, + + watch: { + '$route.params.slug': function (slug) { + this.entreesGet(slug) + } + }, + + async created() { + await this.entreesGet(this.slug) + }, + + methods: { + async entreesGet(slug) { + await this.$store.dispatch('definitions/entreesGet', slug) + } + } +} +</script> diff --git a/packages/ui/src/components/glossaire/sommaire.vue b/packages/ui/src/components/glossaire/sommaire.vue new file mode 100644 index 000000000..090951cb6 --- /dev/null +++ b/packages/ui/src/components/glossaire/sommaire.vue @@ -0,0 +1,30 @@ +<template> + <div> + <ul class="list-sans mb-l"> + <li + v-for="definition in definitions" + id="==" + :key="definition.id" + :class="{ active: slug === definition.slug }" + > + <router-link + :to="{ name: 'definition', params: { slug: definition.slug } }" + class="btn-menu text-decoration-none bold" + > + {{ definition.nom }} + </router-link> + </li> + </ul> + </div> +</template> + +<script> +export default { + name: 'Sommaire', + + props: { + definitions: { type: Array, default: () => [] }, + slug: { type: String, default: () => null } + } +} +</script> diff --git a/packages/ui/src/components/journaux.vue b/packages/ui/src/components/journaux.vue new file mode 100644 index 000000000..d15287861 --- /dev/null +++ b/packages/ui/src/components/journaux.vue @@ -0,0 +1,32 @@ +<template> + <Journaux /> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import Journaux from './journaux/journaux.vue' + +export default defineComponent({ + components: { Journaux }, + + watch: { + user: 'refresh', + + '$route.query': { + handler: function () { + this.$store.dispatch('journaux/routeUpdate') + } + } + }, + + unmounted() { + this.$store.commit('journaux/reset') + }, + + methods: { + async refresh() { + await this.$store.dispatch('journaux/init') + } + } +}) +</script> diff --git a/packages/ui/src/components/journaux/differences.vue b/packages/ui/src/components/journaux/differences.vue new file mode 100644 index 000000000..c737622ba --- /dev/null +++ b/packages/ui/src/components/journaux/differences.vue @@ -0,0 +1,38 @@ +<template> + <div v-if="journal.operation === 'create'"> + {{ journal.elementId }} + </div> + <div v-else class="differences overflow-scroll-y"> + <!-- eslint-disable vue/no-v-html --> + <div v-html="differencesHtml"></div> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import { formatters } from 'jsondiffpatch' +import 'jsondiffpatch/dist/formatters-styles/html.css' + +export default defineComponent({ + props: { + journal: { type: Object, required: true } + }, + + computed: { + differencesHtml() { + if (this.journal.differences) { + let html = formatters.html.format(this.journal.differences) + html = html.replaceAll('jsondiffpatch-child-node-type-object', '') + return html + } + + return '' + } + } +}) +</script> +<style> +.differences { + max-height: 200px; +} +</style> diff --git a/packages/ui/src/components/journaux/journaux.vue b/packages/ui/src/components/journaux/journaux.vue new file mode 100644 index 000000000..0e2efc840 --- /dev/null +++ b/packages/ui/src/components/journaux/journaux.vue @@ -0,0 +1,126 @@ +<template> + <Liste + nom="journaux" + :colonnes="colonnes" + :lignes="lignes" + :elements="journaux" + :filtres="filtres" + :params="params" + :total="total" + :initialized="initialized" + @params-update="paramsUpdate" + /> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import Liste from '../_common/liste.vue' +import { markRaw } from '@vue/reactivity' +import Differences from './differences.vue' + +export default defineComponent({ + components: { Liste }, + props: { + titreId: { type: String, default: undefined } + }, + computed: { + journaux() { + return this.$store.state.journaux.elements + }, + total() { + return this.$store.state.journaux.total + }, + params() { + return this.$store.state.journaux.params + }, + initialized() { + return this.$store.state.journaux.initialized + }, + colonnes() { + const colonnes = [ + { id: 'date', name: 'Date' }, + { id: 'titre', name: 'Titre' }, + { id: 'utilisateur', name: 'Utilisateur' }, + { id: 'operation', name: 'Action' }, + { + id: 'differences', + name: 'Modifications' + } + ] + + if (!this.titreId) { + return colonnes + } + return colonnes.filter(({ id }) => id !== 'titre') + }, + filtres() { + return !this.titreId + ? [ + { + id: 'recherche', + type: 'input', + value: '', + name: 'Recherche' + } + ] + : [] + }, + lignes() { + return this.journaux?.map(journal => { + const date = new Date(Number.parseInt(journal.date)) + const columns = { + date: { + value: date.toLocaleString('fr-FR') + }, + titre: { + value: journal.titre?.nom + }, + utilisateur: { + value: journal.utilisateur + ? `${journal.utilisateur.nom} ${journal.utilisateur.prenom}` + : 'Système' + }, + operation: { + value: journal.operation + }, + differences: { + component: markRaw(Differences), + props: { + journal + } + } + } + + return { + id: journal.id, + link: { name: 'etape', params: { id: journal.elementId } }, + columns + } + }) + } + }, + + async created() { + if (this.titreId) { + this.paramsUpdate({ + section: 'filtres', + params: { titreId: this.titreId } + }) + } + await this.init() + }, + + unmounted() { + this.$store.commit('journaux/reset') + }, + + methods: { + async init() { + await this.$store.dispatch('journaux/init') + }, + async paramsUpdate(options: any) { + await this.$store.dispatch(`journaux/paramsSet`, options) + } + } +}) +</script> diff --git a/packages/ui/src/components/menu/button.vue b/packages/ui/src/components/menu/button.vue new file mode 100644 index 000000000..fbc975a61 --- /dev/null +++ b/packages/ui/src/components/menu/button.vue @@ -0,0 +1,44 @@ +<template> + <div + :class="{ active: menu.component && menu.component.name === 'MainMenu' }" + > + <button + id="cmn-menu-button-button-menu" + class="btn-border small pill p-s" + alt="Url" + @click="menuToggle" + > + <i class="icon-24 icon-menu" /> + </button> + </div> +</template> + +<script> +import MainMenu from './menu.vue' + +export default { + data() { + return { + popupVisible: false + } + }, + + computed: { + menu() { + return this.$store.state.menu + } + }, + + methods: { + menuToggle() { + this.eventTrack() + this.$store.dispatch('menuToggle', MainMenu) + }, + eventTrack() { + if (this.$matomo) { + this.$matomo.trackEvent('menu', 'bouton', 'sections') + } + } + } +} +</script> diff --git a/packages/ui/src/components/menu/menu.vue b/packages/ui/src/components/menu/menu.vue new file mode 100644 index 000000000..44dd724e8 --- /dev/null +++ b/packages/ui/src/components/menu/menu.vue @@ -0,0 +1,189 @@ +<template> + <div class="bg-alt"> + <div class="container pt"> + <div class="tablet-blobs mb flex-align-items-stretch"> + <div class="tablet-blob-1-4 border-l pl-s"> + <ul class="list-sans mb-0"> + <li> + <router-link + v-if="$route.name !== 'titres'" + id="cmn-menu-menu-a-titres" + :to="{ name: 'titres' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('titres')" + > + Titres miniers et autorisations + </router-link> + <div v-else class="bold color-neutral"> + Titres miniers et autorisations + </div> + </li> + <li> + <router-link + v-if="$route.name !== 'demarches'" + id="cmn-menu-menu-a-demarches" + :to="{ name: 'demarches' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('demarches')" + > + Démarches + </router-link> + <div v-else class="bold color-neutral">Démarches</div> + </li> + <li v-if="sections.travaux"> + <router-link + v-if="$route.name !== 'travaux'" + id="cmn-menu-menu-a-travaux" + :to="{ name: 'travaux' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('travaux')" + > + Travaux + </router-link> + <div v-else class="bold color-neutral">Travaux</div> + </li> + </ul> + </div> + <div v-if="sections.activites" class="tablet-blob-1-4 border-l pl-s"> + <ul class="list-sans mb-0"> + <li v-if="sections.activites"> + <router-link + v-if="$route.name !== 'activites'" + id="cmn-menu-menu-a-activites" + :to="{ name: 'activites' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('activites')" + > + Activités + </router-link> + <div v-else class="bold color-neutral">Activités</div> + </li> + </ul> + </div> + <div class="tablet-blob-1-4 border-l pl-s"> + <ul class="list-sans mb-0"> + <li v-if="sections.administrations"> + <router-link + v-if="$route.name !== 'administrations'" + id="cmn-menu-menu-a-administrations" + :to="{ name: 'administrations' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('administrations')" + > + Administrations + </router-link> + <div v-else class="bold color-neutral">Administrations</div> + </li> + <li> + <router-link + v-if="$route.name !== 'entreprises'" + id="cmn-menu-menu-a-entreprises" + :to="{ name: 'entreprises' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('entreprises')" + > + Entreprises + </router-link> + <div v-else class="bold color-neutral">Entreprises</div> + </li> + <li v-if="sections.utilisateurs"> + <router-link + v-if="$route.name !== 'utilisateurs'" + id="cmn-menu-menu-a-utilisateurs" + :to="{ name: 'utilisateurs' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('utilisateurs')" + > + Utilisateurs + </router-link> + <div v-else class="bold color-neutral">Utilisateurs</div> + </li> + </ul> + </div> + <div class="tablet-blob-1-4 border-l pl-s"> + <ul class="list-sans mb-0"> + <li> + <router-link + v-if="$route.name !== 'glossaire'" + id="cmn-menu-menu-a-glossaire" + :to="{ name: 'glossaire' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('glossaire')" + > + Glossaire + </router-link> + <div v-else class="bold color-neutral">Glossaire</div> + </li> + <li> + <router-link + v-if=" + $route.name !== 'statistiques' && + $route.name !== 'statistiques-globales' && + $route.name !== 'statistiques-guyane' + " + id="cmn-menu-menu-a-statistiques" + :to="{ name: 'statistiques' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('statistiques')" + > + Statistiques + </router-link> + <div v-else class="bold color-neutral">Statistiques</div> + </li> + <li v-if="sections.metas"> + <router-link + v-if="$route.name !== 'metas'" + id="cmn-menu-menu-a-metas" + :to="{ name: 'metas' }" + class="btn-menu text-decoration-none bold" + @click="eventTrack('metas')" + > + Métas + </router-link> + <div v-else class="bold color-neutral">Métas</div> + </li> + <li v-if="sections.journaux"> + <router-link + v-if="$route.name !== 'journaux'" + id="cmn-menu-menu-a-journaux" + :to="{ name: 'journaux' }" + class="btn-menu text-decoration-none bold" + > + Journaux + </router-link> + <div v-else class="bold color-neutral">Journaux</div> + </li> + </ul> + </div> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'MainMenu', + + computed: { + user() { + return this.$store.state.user.element + }, + + sections() { + return this.user && this.user.sections ? this.user.sections : {} + }, + + menu() { + return this.$store.state.menu + } + }, + + methods: { + eventTrack(id) { + if (this.$matomo) { + this.$matomo.trackEvent('menu-sections', 'menu-section', id) + } + } + } +} +</script> diff --git a/packages/ui/src/components/meta-activite.vue b/packages/ui/src/components/meta-activite.vue new file mode 100644 index 000000000..8fa999bb7 --- /dev/null +++ b/packages/ui/src/components/meta-activite.vue @@ -0,0 +1,40 @@ +<template> + <Metas title="Activité" :definitions-tree="definitionsTree" /> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import Metas from '@/components/metas/meta-page-template.vue' + +export default defineComponent({ + components: { + Metas + }, + + data() { + return { + definitionsTree: { + id: 'activites-types', + foreignKey: 'activiteTypeId', + definitions: [ + { + id: 'titres-types', + foreignKey: 'titreTypeId', + joinTable: 'activites-types--titres-types' + }, + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: 'activites-types--documents-types' + }, + { + id: 'pays', + foreignKey: 'paysId', + joinTable: 'activites-types--pays' + } + ] + } + } + } +}) +</script> diff --git a/packages/ui/src/components/meta-demarche.vue b/packages/ui/src/components/meta-demarche.vue new file mode 100644 index 000000000..fac7477c5 --- /dev/null +++ b/packages/ui/src/components/meta-demarche.vue @@ -0,0 +1,53 @@ +<template> + <Metas title="Démarche" :definitions-tree="definitionsTree" /> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import Metas from '@/components/metas/meta-page-template.vue' + +export default defineComponent({ + components: { + Metas + }, + + data() { + return { + definitionsTree: { + id: 'demarches-types', + foreignKey: 'demarcheTypeId', + definitions: [ + { + id: 'titres-types', + foreignKey: 'titreTypeId', + joinTable: 'titres-types--demarches-types', + definitions: [ + { + id: 'etapes-types', + foreignKey: 'etapeTypeId', + joinTable: 'titres-types--demarches-types--etapes-types', + definitions: [ + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: + 'titres-types--demarches-types--etapes-types--documents-types', + definitions: [] + }, + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: + 'titres-types--demarches-types--etapes-types--justificatifs-types', + definitions: [] + } + ] + } + ] + } + ] + } + } + } +}) +</script> diff --git a/packages/ui/src/components/meta-etape.vue b/packages/ui/src/components/meta-etape.vue new file mode 100644 index 000000000..9c09bc1e6 --- /dev/null +++ b/packages/ui/src/components/meta-etape.vue @@ -0,0 +1,70 @@ +<template> + <Metas title="Étape" :definitions-tree="definitionsTree" /> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import Metas from '@/components/metas/meta-page-template.vue' + +export default defineComponent({ + components: { + Metas + }, + + data() { + return { + definitionsTree: { + id: 'etapes-types', + foreignKey: 'etapeTypeId', + definitions: [ + { + id: 'etapes-statuts', + foreignKey: 'etapeStatutId', + joinTable: 'etapes-types--etapes-statuts', + definitions: [] + }, + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: 'etapes-types--documents-types', + definitions: [] + }, + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: 'etapes-types--justificatifs-types', + definitions: [] + }, + { + id: 'titres-types', + foreignKey: 'titreTypeId', + definitions: [ + { + id: 'demarches-types', + foreignKey: 'demarcheTypeId', + joinTable: 'titres-types--demarches-types--etapes-types', + definitions: [ + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: + 'titres-types--demarches-types--etapes-types--documents-types', + definitions: [] + }, + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: + 'titres-types--demarches-types--etapes-types--justificatifs-types', + definitions: [] + } + ] + } + ] + } + ] + } + } + } +}) +</script> diff --git a/packages/ui/src/components/meta-titre.vue b/packages/ui/src/components/meta-titre.vue new file mode 100644 index 000000000..6f181689a --- /dev/null +++ b/packages/ui/src/components/meta-titre.vue @@ -0,0 +1,58 @@ +<template> + <Metas title="Titre" :definitions-tree="definitionsTree" /> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import Metas from '@/components/metas/meta-page-template.vue' + +export default defineComponent({ + components: { + Metas + }, + + data() { + return { + definitionsTree: { + id: 'titres-types', + foreignKey: 'titreTypeId', + definitions: [ + { + id: 'titres-statuts', + foreignKey: 'titreStatutId', + joinTable: 'titre-types--titres-statuts' + }, + { + id: 'demarches-types', + foreignKey: 'demarcheTypeId', + joinTable: 'titres-types--demarches-types', + definitions: [ + { + id: 'etapes-types', + foreignKey: 'etapeTypeId', + joinTable: 'titres-types--demarches-types--etapes-types', + definitions: [ + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: + 'titres-types--demarches-types--etapes-types--documents-types', + definitions: [] + }, + { + id: 'documents-types', + foreignKey: 'documentTypeId', + joinTable: + 'titres-types--demarches-types--etapes-types--justificatifs-types', + definitions: [] + } + ] + } + ] + } + ] + } + } + } +}) +</script> diff --git a/packages/ui/src/components/meta.vue b/packages/ui/src/components/meta.vue new file mode 100644 index 000000000..a6806c7cc --- /dev/null +++ b/packages/ui/src/components/meta.vue @@ -0,0 +1,198 @@ +<template> + <Loader v-if="!loaded" /> + <div v-else> + <router-link :to="{ name: 'metas' }"> + <h5>Métas</h5> + </router-link> + <h1> + <span class="cap-first">{{ definition.nom }}</span> + </h1> + + <div class="line-neutral width-full" /> + + <div class="mb-xxl width-full-p"> + <div> + <div class="overflow-scroll-x mb"> + <table> + <tr> + <th + v-for="colonne in definition.colonnes" + :key="colonne.id" + class="min-width-5" + :class="colonne.class" + > + {{ colonne.nom }} + </th> + <th v-if="definition.delete || definition.create" /> + </tr> + + <tr v-if="definition.create"> + <td + v-for="colonne in definition.colonnes" + :key="colonne.id" + :class="colonne.class" + > + <MetaInput v-model:element="elementNew" :colonne="colonne"> + </MetaInput> + </td> + <td> + <ButtonPlus :disabled="!elementNewComplete" @click="create" /> + </td> + </tr> + + <tr v-for="element in elements" :key="elementKeyFind(element)"> + <td v-for="colonne in definition.colonnes" :key="colonne.id"> + <template v-if="definition.update"> + <div v-if="colonne.type === 'entities'"> + {{ entityIdLabelGet(colonne, element[colonne.id]) }} + </div> + <MetaLabelOrInput + v-else + :colonne="colonne" + :element="element" + @update="update" + > + </MetaLabelOrInput> + </template> + <div v-else>{{ element[colonne.id] }}</div> + </td> + <td v-if="definition.delete || definition.create"> + <button + v-if="definition.delete" + class="btn p-xs rnd-xs" + @click="remove(element)" + > + <i class="icon-24 icon-minus" /> + </button> + </td> + </tr> + </table> + </div> + </div> + </div> + </div> +</template> + +<script> +import Loader from './_ui/loader.vue' +import metasIndex from '../store/metas-definitions' +import MetaLabelOrInput from './metas/meta-label-or-input.vue' +import MetaInput from './metas/meta-input.vue' +import ButtonPlus from './_ui/button-plus.vue' + +export default { + components: { + Loader, + MetaLabelOrInput, + MetaInput, + ButtonPlus + }, + + data() { + return { + elementNew: {} + } + }, + + computed: { + id() { + return this.$route.params.id + }, + + elements() { + return this.$store.getters['meta/elements'](this.id) + }, + + definition() { + return metasIndex[this.id] + }, + + entities() { + return this.$store.state.meta.elementsIndex + }, + + user() { + return this.$store.state.user.element + }, + + loaded() { + return !!this.elements + }, + + elementNewComplete() { + return this.definition.colonnes.every( + c => !!this.elementNew[c.id] || c.optional + ) + } + }, + + watch: { + '$route.params.id': function (id) { + if (this.$route.name === 'meta' && id) { + this.get() + } + }, + + user: 'get' + }, + + created() { + this.get() + }, + + beforeUnmount() { + this.$store.commit('meta/reset') + }, + + methods: { + async get() { + if (!this.user || !this.user.sections || !this.user.sections.metas) { + await this.$store.dispatch('pageError') + } else { + await this.$store.dispatch('meta/get', this.id) + } + }, + + async update(content, element, colonneId) { + await this.$store.dispatch('meta/update', { + id: this.id, + partialElement: { [colonneId]: content }, + element + }) + }, + + async create() { + await this.$store + .dispatch('meta/create', { + id: this.id, + element: this.elementNew, + joinTable: this.id, + foreignKey: 'id' + }) + .then(_ => { + this.elementNew = {} + }) + }, + + async remove(element) { + await this.$store.dispatch('meta/delete', { + id: this.id, + element + }) + }, + + elementKeyFind(element) { + if (!this.definition.ids) return element.id + + return this.definition.ids.map(id => element[id]).join('-') + }, + + entityIdLabelGet(colonne, entityId) { + const entity = this.entities[colonne.entities]?.find( + ({ id }) => entityId === id + ) + return entity ? metasIndex[colonne.entities].labelGet(entity) : '' + } + } +} +</script> diff --git a/packages/ui/src/components/metas.vue b/packages/ui/src/components/metas.vue new file mode 100644 index 000000000..da7c73732 --- /dev/null +++ b/packages/ui/src/components/metas.vue @@ -0,0 +1,82 @@ +<template> + <Liste + nom="métas" + :colonnes="colonnes" + :lignes="lignes" + :elements="metas" + :params="params" + :total="metas.length" + :initialized="initialized" + @params-update="paramsUpdate" + /> +</template> + +<script> +import Liste from './_common/liste.vue' +import { metasColonnes, metasLignesBuild } from './metas/table' + +export default { + name: 'Metas', + + components: { Liste }, + + data() { + return { + colonnes: metasColonnes, + visible: false + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + metas() { + return this.$store.getters['metas/elements'] + }, + + preferences() { + return this.$store.state.metas.preferences + }, + + params() { + return this.$store.state.metas.params + }, + + lignes() { + return metasLignesBuild(this.metas) + }, + + initialized() { + return this.$store.state.metas.initialized + } + }, + + watch: { + user: 'init' + }, + + async created() { + await this.init() + }, + + unmounted() { + this.$store.commit('metas/reset') + }, + + methods: { + async init() { + if (!this.user || !this.user.sections || !this.user.sections.metas) { + await this.$store.dispatch('pageError') + } else { + this.visible = true + } + }, + + async paramsUpdate(options) { + await this.$store.dispatch(`metas/paramsSet`, options) + } + } +} +</script> diff --git a/packages/ui/src/components/metas/definition-edit.vue b/packages/ui/src/components/metas/definition-edit.vue new file mode 100644 index 000000000..7193e218f --- /dev/null +++ b/packages/ui/src/components/metas/definition-edit.vue @@ -0,0 +1,248 @@ +<template> + <Loader v-if="!loaded" /> + <template v-else> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h4>{{ title }}</h4> + </div> + + <div class="mb tablet-blob-2-3" :class="{ flex: hasButtonPlus }"> + <select :value="elementSelected?.id" class="p-s" @change="selectChange"> + <option + v-for="element in elements" + :key="element.id" + :value="element.id" + > + {{ labelGet(element) }} + </option> + </select> + + <span class="ml-m"> + <ButtonPlus v-if="hasButtonPlus" @click="elementCreate" /> + </span> + </div> + </div> + + <div v-if="elementSelected" class="mb-xl"> + <div + v-if="rootComponent || definitionsTree.joinTable" + class="rnd-s border p-m" + > + <div class="tablet-blobs"> + <div + v-for="colonne of colonnesToEdit" + :key="colonne.id" + class="tablet-blob-1-2" + > + <div class="tablet-blobs mb-s"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5> + {{ colonne.nom }} + </h5> + </div> + <div class="tablet-blob-2-3"> + <MetaLabelOrInput + :colonne="colonne" + :element="elementToEdit" + @update="update" + > + </MetaLabelOrInput> + </div> + </div> + </div> + </div> + <div class="flex blobs pr-m"> + <button + v-if="definition.delete" + class="btn py-s px-m btn rnd-xs p-s flex-right" + title="supprimer" + @click="elementDelete(elementToEdit)" + > + <i class="icon-24 icon-trash" /> + </button> + </div> + </div> + <div + v-for="definitionChild of definitionsTree.definitions" + :key="definitionChild.joinTable" + class="pl-l" + > + <span class="separator" /> + <DefinitionEdit + :definitions-tree="definitionChild" + :foreign-keys="foreignKeysNew" + :root-component="false" + /> + </div> + </div> + </template> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import metasIndex from '@/store/metas-definitions' +import MetaCreatePopup from './meta-create-popup.vue' +import MetaLabelOrInput from '@/components/metas/meta-label-or-input.vue' +import ButtonPlus from '@/components/_ui/button-plus.vue' +import Loader from '@/components/_ui/loader.vue' + +export default defineComponent({ + name: 'DefinitionEdit', + components: { + MetaLabelOrInput, + ButtonPlus, + Loader + }, + props: { + definitionsTree: { type: Object, required: true }, + foreignKeys: { type: Object, default: () => ({}) }, + rootComponent: { type: Boolean, default: true } + }, + data() { + return { + loaded: false + } + }, + computed: { + hasButtonPlus() { + return ( + this.definition.create && + !this.rootComponent && + this.definitionsTree.joinTable + ) + }, + title() { + return ( + this.definition.colonnes.find( + colonne => colonne.id === this.definitionsTree.foreignKey + )?.nom || this.definition.nom + ) + }, + elementSelected() { + return this.$store.getters['meta/elementSelected']( + this.definitionsTree.joinTable || this.definitionsTree.id + ) + }, + definition() { + return metasIndex[ + this.definitionsTree.joinTable + ? this.definitionsTree.joinTable + : this.definitionsTree.id + ] + }, + elements() { + if (!this.definitionsTree.joinTable) { + // si pas de table de jointure on peut directement charger les éléments + return this.$store.getters['meta/elements'](this.definitionsTree.id) + } + // via une table de jointure + const elementIdsFiltered = this.$store.getters['meta/elements']( + this.definitionsTree.joinTable + ) + // on garde les lignes en fonction des éléments déjà sélectionnés + .filter(joinRow => + Object.keys(this.foreignKeys).every( + foreignKey => joinRow[foreignKey] === this.foreignKeys[foreignKey] + ) + ) + .map(joinRow => joinRow[this.definitionsTree.foreignKey]) + + return ( + this.$store.getters['meta/elements'](this.definitionsTree.id)?.filter( + ({ id }) => elementIdsFiltered.includes(id) + ) || [] + ) + }, + + colonnesToEdit() { + return this.definition.colonnes + .filter(colonne => colonne.id !== 'id') + .filter(colonne => colonne.type !== 'entities') + }, + + elementToEdit() { + if (!this.definitionsTree.joinTable) { + return this.elementSelected + } + + return this.$store.getters['meta/elements']( + this.definitionsTree.joinTable + ).find(joinRow => + Object.keys(this.foreignKeysNew).every( + foreignKey => joinRow[foreignKey] === this.foreignKeysNew[foreignKey] + ) + ) + }, + + foreignKeysNew() { + return { + ...this.foreignKeys, + [this.definitionsTree.foreignKey]: this.elementSelected?.id + } + } + }, + + async created() { + const promises = [] + promises.push(this.$store.dispatch('meta/get', this.definitionsTree.id)) + if (this.definitionsTree.joinTable) { + promises.push( + this.$store.dispatch('meta/get', this.definitionsTree.joinTable) + ) + } + await Promise.all(promises) + this.loaded = true + }, + + async unmounted() { + await this.elementSelect(null) + }, + + methods: { + async selectChange(event) { + const elementId = event.target.value + const element = this.elements.find(({ id }) => id === elementId) + await this.elementSelect(element) + }, + async update(content: string, element: any, colonneId: string) { + await this.$store.dispatch('meta/update', { + id: this.definitionsTree.joinTable || this.definitionsTree.id, + partialElement: { [colonneId]: content }, + element + }) + }, + labelGet(element: any) { + return metasIndex[this.definitionsTree.id].labelGet(element) + }, + async elementSelect(element) { + await this.$store.dispatch('meta/elementSelect', { + id: this.definitionsTree.joinTable || this.definitionsTree.id, + element + }) + }, + async elementDelete(element) { + if ( + !window.confirm( + 'Voulez-vous supprimer cet élément ? Cette action ne peut pas être annulée.' + ) + ) + return + await this.$store.dispatch('meta/delete', { + id: this.definitionsTree.joinTable || this.definitionsTree.id, + element + }) + }, + async elementCreate() { + this.$store.commit('popupOpen', { + component: MetaCreatePopup, + props: { + id: this.definitionsTree.id, + joinTable: this.definitionsTree.joinTable || this.definitionsTree.id, + foreignKeys: this.foreignKeys, + foreignKey: this.definitionsTree.foreignKey + } + }) + } + } +}) +</script> diff --git a/packages/ui/src/components/metas/meta-create-popup.vue b/packages/ui/src/components/metas/meta-create-popup.vue new file mode 100644 index 000000000..67ac94865 --- /dev/null +++ b/packages/ui/src/components/metas/meta-create-popup.vue @@ -0,0 +1,148 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h2 class="cap-first">Ajout d’une nouvelle méta</h2> + </div> + </template> + + <div class="blobs"> + <div + v-for="colonne of colonnesToEdit" + :key="colonne.id" + class="tablet-blob-1-2" + > + <div class="tablet-blobs mb-s"> + <div class="tablet-blob-1-3 pb-s"> + <h5> + {{ colonne.nom }} + </h5> + </div> + <div class="tablet-blob-2-3"> + <MetaInput + v-model:element="element" + :colonne="colonne" + :join-table="joinTable" + class="blob-1-2" + > + </MetaInput> + </div> + </div> + </div> + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + ref="save-button" + class="btn btn-primary" + :disabled="!complete" + :class="{ disabled: !complete }" + @click="save" + > + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script lang="ts"> +import Popup from '../_ui/popup.vue' + +import { defineComponent } from 'vue' +import metasIndex from '@/store/metas-definitions' +import MetaInput from './meta-input.vue' + +export default defineComponent({ + name: 'CaminoMetaCreatePopup', + + components: { + Popup, + MetaInput + }, + + props: { + id: { type: String, required: true }, + foreignKeys: { type: Object, required: true }, + joinTable: { type: String, required: true }, + foreignKey: { type: String, required: true } + }, + + data() { + return { + element: {} + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + colonnesToEdit() { + const keys = Object.keys(this.foreignKeys) + + return metasIndex[this.joinTable].colonnes.filter( + colonne => !keys.includes(colonne.id) + ) + }, + + complete() { + return metasIndex[this.joinTable].colonnes.every( + c => !!this.element[c.id] || c.optional + ) + } + }, + + created() { + this.element = { ...this.foreignKeys } + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + if (this.complete) { + await this.$store.dispatch('meta/create', { + id: this.id, + element: this.element, + joinTable: this.joinTable, + foreignKey: this.foreignKey + }) + this.$store.commit('popupClose') + } + }, + + cancel() { + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + } + } +}) +</script> diff --git a/packages/ui/src/components/metas/meta-input.vue b/packages/ui/src/components/metas/meta-input.vue new file mode 100644 index 000000000..9efd83629 --- /dev/null +++ b/packages/ui/src/components/metas/meta-input.vue @@ -0,0 +1,101 @@ +<template> + <select + v-if="colonne.type === 'entities'" + v-model="element[colonne.id]" + class="py-xs px-s mb-s" + > + <option + v-for="entity in entitiesGet(colonne)" + :key="entity.id" + :value="entity.id" + > + {{ entityLabelGet(colonne, entity) }} + </option> + </select> + <input + v-else-if="colonne.type === Number" + v-model.number="element[colonne.id]" + type="number" + class="px-s py-xs mb-s text-right" + min="1" + /> + <InputDate + v-else-if="colonne.type === Date" + v-model="element[colonne.id]" + class="mb-s" + :padding="'px-s py-xs'" + /> + <input + v-else-if="colonne.type === Boolean" + v-model="element[colonne.id]" + type="checkbox" + class="px-s py-xs mb-s" + /> + <select + v-else-if="colonne.type === Array" + v-model="element[colonne.id]" + class="py-xs px-s mb-s" + > + <option v-for="el in colonne.elements" :key="el" :value="el"> + {{ el }} + </option> + </select> + <textarea + v-else-if="colonne.type === String || colonne.type === 'json'" + v-model="element[colonne.id]" + rows="1" + class="px-s py-xs mb-s" + /> + <input + v-else + v-model="element[colonne.id]" + type="text" + class="px-s py-xs mb-s" + /> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import InputDate from '@/components/_ui/input-date.vue' +import metasIndex from '@/store/metas-definitions' + +export default defineComponent({ + components: { InputDate }, + props: { + colonne: { type: Object, required: true }, + element: { type: Object, required: true }, + joinTable: { type: String, default: '' } + }, + + computed: { + entities() { + return this.$store.state.meta.elementsIndex + } + }, + + methods: { + entitiesGet(colonne) { + const entities = this.entities[colonne.entities] + if (!this.joinTable) { + return entities + } + + const definitions = metasIndex[this.joinTable] + const idsUsed = definitions.ids + ? this.entities[this.joinTable] + .filter(e => + definitions.ids.every( + id => id === colonne.id || e[id] === this.element[id] + ) + ) + .map(e => e[colonne.id]) + : [] + + return entities.filter(e => !idsUsed.includes(e.id)) + }, + entityLabelGet(colonne, entity) { + return entity ? metasIndex[colonne.entities].labelGet(entity) : '' + } + } +}) +</script> diff --git a/packages/ui/src/components/metas/meta-label-or-input.vue b/packages/ui/src/components/metas/meta-label-or-input.vue new file mode 100644 index 000000000..26c929830 --- /dev/null +++ b/packages/ui/src/components/metas/meta-label-or-input.vue @@ -0,0 +1,62 @@ +<template> + <EditNumber + v-if="colonne.type === Number" + :value="element[colonne.id]" + @update="$emit('update', $event, element, colonne.id)" + /> + <EditDate + v-else-if="colonne.type === Date" + :value="element[colonne.id] || ''" + @update="$emit('update', $event, element, colonne.id)" + /> + <EditBoolean + v-else-if="colonne.type === Boolean" + :value="element[colonne.id] || false" + class="mt-m" + @update="$emit('update', $event, element, colonne.id)" + /> + <EditArray + v-else-if="colonne.type === Array" + :value="element[colonne.id] || ''" + :elements="colonne.elements" + @update="$emit('update', $event, element, colonne.id)" + /> + <EditJson + v-else-if="colonne.type === 'json'" + :value="element[colonne.id]" + @update="$emit('update', $event, element, colonne.id)" + /> + <EditString + v-else-if="colonne.type === String" + :value="element[colonne.id] || ''" + @update="$emit('update', $event, element, colonne.id)" + /> + <div v-else>{{ element[colonne.id] || '' }}</div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import EditString from '@/components/_ui/edit-string.vue' +import EditNumber from '@/components/_ui/edit-number.vue' +import EditArray from '@/components/_ui/edit-array.vue' +import EditBoolean from '@/components/_ui/edit-boolean.vue' +import EditDate from '@/components/_ui/edit-date.vue' +import EditJson from '@/components/_ui/edit-json.vue' + +export default defineComponent({ + components: { + EditString, + EditNumber, + EditArray, + EditBoolean, + EditDate, + EditJson + }, + props: { + colonne: { type: Object, required: true }, + element: { type: Object, required: true } + }, + + emits: ['update'] +}) +</script> diff --git a/packages/ui/src/components/metas/meta-page-template.vue b/packages/ui/src/components/metas/meta-page-template.vue new file mode 100644 index 000000000..27b4a69b4 --- /dev/null +++ b/packages/ui/src/components/metas/meta-page-template.vue @@ -0,0 +1,43 @@ +<template> + <div class="desktop-blobs"> + <div class="desktop-blob-2-3"> + <router-link :to="{ name: 'metas' }"> + <h5>Métas</h5> + </router-link> + <h1> + <span class="cap-first">{{ title }}</span> + </h1> + </div> + </div> + + <div class="line-neutral width-full mb-m" /> + + <div class="mb-xxl"> + <DefinitionEdit :definitions-tree="definitionsTree" /> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue' +import DefinitionEdit from '@/components/metas/definition-edit.vue' + +export default defineComponent({ + components: { + DefinitionEdit + }, + + props: { + title: { + type: String, + required: true, + default: '' + }, + + definitionsTree: { + type: Object, + required: true, + default: () => ({}) + } + } +}) +</script> diff --git a/packages/ui/src/components/metas/table.js b/packages/ui/src/components/metas/table.js new file mode 100644 index 000000000..e1af0254f --- /dev/null +++ b/packages/ui/src/components/metas/table.js @@ -0,0 +1,23 @@ +const metasColonnes = [ + { + id: 'nom', + name: 'Nom' + } +] + +const metasLignesBuild = metas => + metas.map(meta => { + const columns = { + nom: { value: meta.nom } + } + + const linkName = meta.linkName || 'meta' + + return { + id: meta.id, + link: { name: linkName, params: { id: meta.id } }, + columns + } + }) + +export { metasColonnes, metasLignesBuild } diff --git a/packages/ui/src/components/page/footer.vue b/packages/ui/src/components/page/footer.vue new file mode 100644 index 000000000..31411a876 --- /dev/null +++ b/packages/ui/src/components/page/footer.vue @@ -0,0 +1,152 @@ +<template> + <div class="tablet-blobs pt flex-align-items-stretch"> + <div class="tablet-blob-1 desktop-blob-1-3"> + <ul class="list-sans text-decoration-none li-sep mb-0"> + <li> + <a href="https://economie.gouv.fr/" + >Ministère de l'Économie, des Finances et de la Relance</a + > + </li> + <li> + <a href="https://ecologie.gouv.fr/" + >Ministère de la Transition écologique</a + > + </li> + <li> + <a href="https://onf.fr/">Office National des forêts</a> + </li> + <li> + <div class="blobs"> + <div class="blob-1-3"> + <img class="sponsor" src="/img/logo-fabriquenumerique.svg" /> + </div> + <div class="blob-2-3"> + <p class="h6 mb-0"> + La Fabrique numérique du Ministère de la Transition écologique, + membre du réseau + <a href="http://beta.gouv.fr">beta.gouv.fr</a>. + </p> + </div> + </div> + </li> + </ul> + </div> + + <div class="tablet-blob-1-2 desktop-blob-1-3"> + <ul class="list-prefix text-decoration-none li-mb-s mb-0"> + <li> + <router-link to="/contacts"> Contact </router-link> + </li> + <li> + <router-link to="/a-propos"> À propos </router-link> + </li> + <li> + <router-link to="/mentions-legales-cgu"> + Mentions légales et CGU + </router-link> + </li> + <li> + <router-link to="/accessibilite"> Accessibilité </router-link> + </li> + <li> + <router-link to="/contribution"> Contribution </router-link> + </li> + <li> + <a + href="https://www.dailymotion.com/camino-le-cadastre-minier" + target="_blank" + rel="noopener noreferrer" + > + Tutoriels + </a> + </li> + <li> + <a + href="https://docs.camino.beta.gouv.fr/" + target="_blank" + rel="noopener noreferrer" + > + Open data et documentation + </a> + </li> + </ul> + </div> + + <div class="tablet-blob-1-2 desktop-blob-1-3 flex flex-direction-column"> + <NewsletterForm v-if="newsletterForm" class="mb-xxs" /> + <ul class="list-prefix text-decoration-none li-mb-s"> + <li> + <a + href="http://www.mineralinfo.fr/" + target="_blank" + rel="noopener noreferrer" + > + MineralInfo + </a> + </li> + <li> + <a + href="http://www.minergies.fr/" + target="_blank" + rel="noopener noreferrer" + > + Minergies + </a> + </li> + </ul> + + <p class="h6 flex-bottom"> + <a + href="https://github.com/MTES-MCT/camino-ui/blob/master/CHANGELOG.md" + target="_blank" + rel="noopener noreferrer" + class="text-decoration-none" + > + UI v.{{ versionUi }} + </a> + | + <a + href="https://github.com/MTES-MCT/camino-api/blob/master/CHANGELOG.md" + target="_blank" + rel="noopener noreferrer" + class="text-decoration-none" + > + API v.{{ versionApi }} + </a> + </p> + </div> + </div> + + <div + data-tf-popover="qqGEhNhT" + data-tf-button-color="#000091" + data-tf-button-text="Launch me" + data-tf-iframe-props="title=Satisfaction_CAMINO" + data-tf-medium="snippet" + style="all: unset" + ></div> +</template> + +<script> +import NewsletterForm from './footer/newsletter-form.vue' + +export default { + components: { + NewsletterForm + }, + + computed: { + versionApi() { + return this.$store.state.user.metas.version + }, + + versionUi() { + return this.$store.state.user.metas.versionUi + }, + + newsletterForm() { + return !this.$store.state.user.element?.newsletter + } + } +} +</script> diff --git a/packages/ui/src/components/page/footer/newsletter-form.vue b/packages/ui/src/components/page/footer/newsletter-form.vue new file mode 100644 index 000000000..a98ad96d4 --- /dev/null +++ b/packages/ui/src/components/page/footer/newsletter-form.vue @@ -0,0 +1,37 @@ +<template> + <div> + <h5>Newsletter</h5> + + <div class="blobs-mini mb"> + <div class="blob-mini-2-3"> + <input + v-model="email" + type="text" + placeholder="Email" + class="p-s rnd-l-xs small" + /> + </div> + <div class="blob-mini-1-3"> + <button class="btn rnd-r-xs p-s full-x small" @click="subscribe"> + S'inscrire + </button> + </div> + </div> + </div> +</template> + +<script> +export default { + data() { + return { + email: '' + } + }, + + methods: { + async subscribe() { + await this.$store.dispatch('user/newsletterSubscribe', this.email) + } + } +} +</script> diff --git a/packages/ui/src/components/page/header.vue b/packages/ui/src/components/page/header.vue new file mode 100644 index 000000000..2dfd5de87 --- /dev/null +++ b/packages/ui/src/components/page/header.vue @@ -0,0 +1,70 @@ +<template> + <div class="tablet-blobs header-blobs mb"> + <div class="tablet-blob-1-3 flex"> + <div v-if="!apiError && loaded" class="flex-right"> + <div class="mt-m tablet-mb-m flex"> + <div class="ml-xs flex"> + <UserButton /> + </div> + <div class="ml-xs"> + <MenuButton /> + </div> + </div> + </div> + </div> + + <div class="tablet-blob-2-3 pt-m"> + <router-link + v-if="$route.name !== 'titres'" + :to="{ name: 'titres' }" + class="flex text-decoration-none" + > + <img src="/img/logo-rf.svg" class="logo mr" /> + <div> + <p class="mb-0 mt-xs title"> + camino<span class="color-neutral">.beta.gouv.fr</span> + </p> + <p class="h6 mb-0 bold color-text"> + Le cadastre minier numérique ouvert + </p> + </div> + </router-link> + + <span v-else class="flex"> + <img src="/img/logo-rf.svg" class="logo mr" /> + <div> + <p class="mb-0 mt-xs title"> + camino<span class="color-neutral">.beta.gouv.fr</span> + </p> + <p class="h6 mb-0 bold color-text"> + Le cadastre minier numérique ouvert + </p> + </div> + </span> + </div> + </div> +</template> + +<script> +import UserButton from '../user/button.vue' +import MenuButton from '../menu/button.vue' + +export default { + name: 'PageHeader', + + components: { + UserButton, + MenuButton + }, + + props: { + loaded: { type: Boolean, default: false } + }, + + computed: { + apiError() { + return this.$store.state.apiError + } + } +} +</script> diff --git a/packages/ui/src/components/page/strike.vue b/packages/ui/src/components/page/strike.vue new file mode 100644 index 000000000..c79a08198 --- /dev/null +++ b/packages/ui/src/components/page/strike.vue @@ -0,0 +1,17 @@ +<template> + <div class="tablet-flex"> + <div> + <i class="icon-48 icon-announcement mr mb tablet-mb-0" /> + </div> + <div> + <p class="strong mb-0"> + En raison d’un mouvement social national interprofessionnel, <br /> + le service est susceptible d'être perturbé pendant les prochains jours. + </p> + </div> + </div> +</template> + +<script> +export default {} +</script> diff --git a/packages/ui/src/components/statistiques.vue b/packages/ui/src/components/statistiques.vue new file mode 100644 index 000000000..4ac41f0a2 --- /dev/null +++ b/packages/ui/src/components/statistiques.vue @@ -0,0 +1,52 @@ +<template> + <div> + <h1 class="mt-m">Statistiques</h1> + <div class="flex"> + <div + v-for="tab in tabs" + :key="tab.id" + class="mr-xs" + :class="{ active: tabActive === tab.id }" + > + <router-link :to="{ name: tab.name }" class="p-m btn-tab rnd-t-s"> + {{ tab.nom }} + </router-link> + </div> + </div> + <div class="line-neutral width-full" /> + + <Router-view v-if="tabActive" /> + </div> +</template> + +<script> +export default { + name: 'Statistiques', + + data() { + return { + tabs: [ + { id: 'globales', nom: 'Globales', name: 'statistiques-globales' }, + { id: 'guyane', nom: 'Guyane', name: 'statistiques-guyane' }, + { + id: 'granulats-marins', + nom: 'Granulats marins', + name: 'statistiques-granulats-marins' + } + ] + } + }, + + computed: { + tabActive() { + return this.$route.name.replace(/statistiques-/, '') + } + }, + + created() { + if (this.$route.name === 'statistiques') { + this.$router.replace({ name: 'statistiques-globales' }) + } + } +} +</script> diff --git a/packages/ui/src/components/statistiques/_utils.js b/packages/ui/src/components/statistiques/_utils.js new file mode 100644 index 000000000..9c78bd25f --- /dev/null +++ b/packages/ui/src/components/statistiques/_utils.js @@ -0,0 +1,76 @@ +const suggestedMaxCalc = (annees, ids) => + Math.max( + ...annees.reduce((acc, annee) => { + acc.push(...ids.map(id => annee[id].quantite)) + + return acc + }, []) + ) + +const statsBarFormat = ({ + annees, + id, + bar, + line, + labelX, + labelBar, + labelLine +}) => + annees.reduce( + (acc, stats) => { + acc.labels.push(stats[labelX]) + const dataLine = id ? stats[id][line] : stats[line] + const dataBar = id ? stats[id][bar] : stats[bar] + acc.datasets[0].data.push(dataLine) + acc.datasets[1].data.push(dataBar) + + return acc + }, + { + labels: [], + datasets: [ + { + type: 'line', + label: labelLine, + data: [], + yAxisID: 'line', + fill: 'start', + tension: 0.5, + backgroundColor: 'rgba(55, 111, 170, 0.2)', + borderColor: 'rgb(55, 111, 170)' + }, + { + type: 'bar', + label: labelBar, + yAxisID: 'bar', + data: [], + backgroundColor: 'rgb(118, 182, 189)' + } + ] + } + ) + +const statsLineFormat = ({ stats, id, labelX, labelY }) => + stats.reduce( + (acc, stat) => { + acc.labels.push(stat[labelX]) + acc.datasets[0].data.push(stat[id]) + + return acc + }, + { + labels: [], + datasets: [ + { + label: labelY, + data: [], + fill: 'start', + tension: 0.5, + backgroundColor: 'rgba(118, 182, 189, 0.2)', + borderColor: 'rgb(118, 182, 189)' + } + ] + } + ) + +export { suggestedMaxCalc, statsBarFormat, statsLineFormat } diff --git a/packages/ui/src/components/statistiques/globales.vue b/packages/ui/src/components/statistiques/globales.vue new file mode 100644 index 000000000..2209aea46 --- /dev/null +++ b/packages/ui/src/components/statistiques/globales.vue @@ -0,0 +1,236 @@ +<template> + <Loader v-if="!loaded" class="content" /> + <div v-else class="content"> + <div id="engagement" class="mb-xxl"> + <h2 class="mt">Engagement général sur le site</h2> + <span class="separator" /> + <p class="mb-xl"> + Les données retenues ici témoignent du comportement général des + utilisateurs sur le site et de leur engagement auprès du service + </p> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3"> + <div class="mb-xl mt"> + <p class="h0 text-center"> + {{ numberFormat(recherches) }} + </p> + <p class="bold text-center"> + recherches effectuées le mois dernier + </p> + <p> + Le nombre de recherches mensuelles est l'indicateur clé de + l'utilisation du service de "cadastre minier" + </p> + </div> + + <div class="mb-xl"> + <p class="h0 text-center"> + {{ Math.round(statistiques.actions) }} + </p> + <p class="bold text-center"> + nombre moyen d'actions effectuées par utilisateur + </p> + </div> + + <div class="mb-xl"> + <p class="h0 text-center">{{ statistiques.sessionDuree }} min</p> + <p class="bold text-center"> + temps de session moyen par utilisateur + </p> + </div> + </div> + <div class="tablet-float-blob-2-3 mb-xxl"> + <LineChart + :data=" + statsLineFormat({ + stats: statistiques['recherches'], + labelY: 'recherches', + labelX: 'mois', + id: 'quantite' + }) + " + /> + </div> + </div> + </div> + + <div id="amelioration" class="mb-xxl content"> + <h2>Amélioration continue et accès aux données publiques</h2> + <span class="separator" /> + <p class="mb-xl"> + En tant que secteur régulé par l'État, la publication en ligne des + données minières doit permettre leur amélioration et leur utilisation + par la communauté + </p> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl"> + <p class="h0 text-center"> + {{ titresModifies }} + </p> + <p class="bold text-center"> + mise à jour de titres miniers par l'administration et les + entreprises du secteur le mois dernier + </p> + <p> + Le nombre de mises à jour mensuelles du cadastre par les différents + services de l'administration ou par les professionnels du secteur + reflète l'intensité de l'activité d'instruction et administrative + sur le domaine minier en France. Une mise à jour peut être l'ajout + d'un titre, une modification de son statut ou des documents + concernant son instruction. + </p> + </div> + <div class="tablet-float-blob-2-3 mb-xxl"> + <LineChart + :data=" + statsLineFormat({ + stats: statistiques['titresModifies'], + labelY: 'titres modifiés', + labelX: 'mois', + id: 'quantite' + }) + " + /> + </div> + </div> + <div class="desktop-blobs"> + <div class="desktop-blob-1-3 mb-xl"> + <p class="h0 text-center"> + {{ statistiques.telechargements }} + </p> + <p class="bold text-center"> + téléchargements de pièces relatives à la bonne instruction des + titres et autorisations miniers le mois dernier + </p> + </div> + <div class="desktop-blob-1-3 mb-xl"> + <p class="h0 text-center"> + {{ statistiques.signalements }} + </p> + <p class="bold text-center"> + erreurs corrigées sur les bases de données de l'État grâce à la + participation des utilisateurs + </p> + </div> + <div class="desktop-blob-1-3 mb-xl"> + <p class="h0 text-center"> + {{ statistiques.reutilisations }} + </p> + <p class="bold text-center"> + réutilisations connues des données ouvertes distribuées + </p> + </div> + </div> + </div> + + <div id="gains" class="mb-xxl"> + <h2>Gains de la dématérialisation sur l'instruction minière</h2> + <span class="separator" /> + <p> + La dématérialisation des démarches relatives à l'instruction minière + doit permettre un gain de temps pour ceux qui les effectuent et ceux qui + les instruisent + </p> + <div class="desktop-blobs"> + <div class="desktop-blob-1-3 mb-xl"> + <p class="h0 text-center"> + {{ statistiques.demarches }} + </p> + <p class="bold text-center"> + démarches effectuées en ligne cette année + </p> + </div> + <div class="desktop-blob-1-3 mb-xl"> + <p class="h0 text-center"> + {{ statistiques.titresActivitesBeneficesEntreprise }} + </p> + <p class="bold text-center"> + jours de travail sans valeur ajoutée économisés par les entreprises + en Guyane + </p> + <p> + La dématérialisation d’un rapport trimestriel d’activité de + production d’or en Guyane permet en moyenne l’économie de 2 heures + de travail de saisie ou de déplacement pour son dépôt physique à + l’administration. + </p> + </div> + <div class="desktop-blob-1-3 mb-xl"> + <p class="h0 text-center"> + {{ statistiques.titresActivitesBeneficesAdministration }} + </p> + <p class="bold text-center"> + jours de travail à faible valeur ajoutée économisés par + l’administration + </p> + <p> + La dématérialisation d’un rapport trimestriel d’activité de + production d’or en Guyane permet en moyenne l’économie d’une heure + de travail de traitement et re-saisie de données par un agent de + l’administration. Le gain de temps est réinvesti sur + l’accompagnement et le contrôle de l’activité. + </p> + </div> + </div> + </div> + </div> +</template> + +<script> +import Loader from '../_ui/loader.vue' +import LineChart from '../_charts/line.vue' +import numberFormat from '@/utils/number-format' +import { statsLineFormat } from './_utils' + +export default { + name: 'CaminoStatistiques', + + components: { Loader, LineChart }, + + data() { + return { + loaded: false + } + }, + + computed: { + statistiques() { + return this.$store.state.statistiques.globales + }, + + recherches() { + const recherches = this.statistiques.recherches + + return recherches[recherches.length - 1].quantite + }, + + titresModifies() { + const titresModifies = this.statistiques.titresModifies + + return titresModifies[titresModifies.length - 1].quantite + } + }, + + async created() { + await this.get() + }, + + methods: { + async get() { + await this.$store.dispatch('statistiques/get', 'globales') + + if (!this.loaded) { + this.loaded = true + } + }, + + statsLineFormat({ stats, id, labelX, labelY }) { + return statsLineFormat({ stats, id, labelX, labelY }) + }, + + numberFormat(number) { + return numberFormat(number) + } + } +} +</script> diff --git a/packages/ui/src/components/statistiques/granulats-marins-activite.vue b/packages/ui/src/components/statistiques/granulats-marins-activite.vue new file mode 100644 index 000000000..7bb3ad93c --- /dev/null +++ b/packages/ui/src/components/statistiques/granulats-marins-activite.vue @@ -0,0 +1,76 @@ +<template> + <div id="indicateurs"> + <p v-if="enConstruction" class="p-s bg-warning color-bg"> + Données en cours de collecte et consolidation + </p> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Production nette en volume</h4> + <div v-if="statistiqueGranulatsMarins.activitesDeposesQuantite > 3"> + <p class="h0 text-center"> + {{ numberFormat(statistiqueGranulatsMarins.volume) }} + m³ + </p> + </div> + <div v-else> + <p class="h0 text-center">-</p> + </div> + </div> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Production nette en masse</h4> + <div v-if="statistiqueGranulatsMarins.activitesDeposesQuantite > 3"> + <p class="h0 text-center"> + {{ numberFormat(statistiqueGranulatsMarins.masse) }} + t + </p> + </div> + <div v-else> + <p class="h0 text-center">-</p> + </div> + </div> + </div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Sources des données</h4> + <p class="h0 text-center"> + {{ + numberFormat(statistiqueGranulatsMarins.activitesDeposesQuantite) + }} + </p> + <p> + Rapports d’activité de production collectés via Camino utilisés pour + consolider ces statistiques. + </p> + </div> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Taux de collecte</h4> + <p class="h0 text-center"> + {{ statistiqueGranulatsMarins.activitesDeposesRatio }} % + </p> + <p> + Des rapports d’activité de production attendus ont été déposés par les + opérateurs miniers pour consolider ces statistiques. + </p> + </div> + </div> + </div> +</template> + +<script> +import numberFormat from '@/utils/number-format' + +export default { + name: 'IndicateursActiviteGranulatsMarins', + + props: { + statistiqueGranulatsMarins: { type: Object, required: true }, + enConstruction: { type: Boolean, default: false } + }, + + methods: { + numberFormat(number) { + return numberFormat(number) + } + } +} +</script> diff --git a/packages/ui/src/components/statistiques/granulats-marins.vue b/packages/ui/src/components/statistiques/granulats-marins.vue new file mode 100644 index 000000000..83074d0d5 --- /dev/null +++ b/packages/ui/src/components/statistiques/granulats-marins.vue @@ -0,0 +1,463 @@ +<template> + <Loader v-if="!loaded" class="content" /> + <div v-else class="content"> + <div id="etat" class="mb-xxl mt"> + <h2>État du domaine minier en temps réel</h2> + <span class="separator" /> + <p> + Les données affichées ici sont celles contenues dans la base de donnée + Camino. Elles sont susceptibles d’évoluer chaque jour au grès des + décisions et de la fin de validité des titres et autorisations. + </p> + <p> + Les surfaces cumulées concernées par un titre ou une autorisation + n’impliquent pas qu’elles sont effectivement explorées ou exploitées sur + tout ou partie de l'année. Les travaux miniers font l’objet de + déclarations ou d’autorisations distinctes portant sur une partie + seulement de la surface des titres miniers. + </p> + <div class="mb-xxl"> + <h3>Titres d’exploration</h3> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3"> + <p class="h0 text-center"> + {{ statistiquesGranulatsMarins.titresInstructionExploration }} + </p> + <div + v-if=" + statistiquesGranulatsMarins.titresInstructionExploration > 1 + " + > + <p class="bold text-center"> + Demandes en cours d'instruction (initiale et modification en + instance) + </p> + </div> + <div v-else> + <p class="bold text-center"> + Demande en cours d'instruction (initiale et modification en + instance) + </p> + </div> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'w', + typesIds: 'ar,ap,pr', + statutsIds: 'dmi,mod', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-3"> + <p class="h0 text-center"> + {{ statistiquesGranulatsMarins.titresValPrw }} + </p> + <p class="bold text-center">Permis exclusifs de recherches</p> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'w', + typesIds: 'pr', + statutsIds: 'val', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-3"> + <p class="h0 text-center"> + {{ numberFormat(statistiquesGranulatsMarins.surfaceExploration) }} + ha + </p> + <p class="bold text-center"> + Surfaces cumulées des titres pouvant faire l'objet d'une activité + d’exploration + </p> + </div> + </div> + </div> + <div class="mb-xxl"> + <h3>Titres d’exploitation</h3> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3"> + <p class="h0 text-center"> + {{ statistiquesGranulatsMarins.titresInstructionExploitation }} + </p> + <div + v-if=" + statistiquesGranulatsMarins.titresInstructionExploitation > 1 + " + > + <p class="bold text-center"> + Demandes en cours d'instruction (initiale et modification en + instance) + </p> + </div> + <div v-else> + <p class="bold text-center"> + Demande en cours d'instruction (initiale et modification en + instance) + </p> + </div> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'w', + typesIds: 'ax,cx,px', + statutsIds: 'dmi,mod', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-3"> + <p class="h0 text-center"> + {{ statistiquesGranulatsMarins.titresValCxw }} + </p> + <div v-if="statistiquesGranulatsMarins.titresValCxw > 1"> + <p class="bold text-center">Concessions</p> + </div> + <div v-else> + <p class="bold text-center">Concession</p> + </div> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'w', + typesIds: 'cx', + statutsIds: 'val', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-3"> + <p class="h0 text-center"> + {{ + numberFormat(statistiquesGranulatsMarins.surfaceExploitation) + }} + ha + </p> + <p class="bold text-center"> + Surfaces cumulées des titres pouvant faire l'objet d'une activité + d’exploitation + </p> + </div> + </div> + </div> + </div> + + <div class="line-neutral width-full mb" /> + + <h2>Production annuelle</h2> + <span class="separator" /> + <p class="mb-xl"> + Données contenues dans la base de données Camino, stabilisées pour l’année + n-1. + </p> + + <div class="tablet-pt-s pb-s"> + <BarChart + :data=" + statsBarFormat({ + annees: statsAnneesAfter2010, + bar: 'volume', + line: 'masse', + labelX: 'annee', + labelBar: 'Volume en m³', + labelLine: 'Tonnage' + }) + " + :suggested-max="suggestedMaxProduction" + /> + </div> + + <div class="line-neutral width-full mb-xl" /> + <h5>Sélectionner une année</h5> + + <select v-model="anneeActive" class="p-s mb-l full" @change="anneeSelect"> + <option v-for="annee in annees" :key="annee.id" :value="annee.id"> + {{ annee.nom }} + </option> + </select> + + <GranulatsMarinsActivite + :statistique-granulats-marins="statistiques[anneeActive]" + :en-construction="annees.find(t => t.id === anneeActive).enConstruction" + class="mb-xxl" + /> + <div class="line-neutral width-full mb-xl" /> + + <div id="evolution" class="mb-xxl"> + <h2>Titres octroyés et surface</h2> + <span class="separator" /> + <p> + Données contenues dans la base de données Camino, concernant + exclusivement le territoire français. + </p> + <h3>Permis exclusif de recherche (PER) octroyés</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresPrw.quantite }} + </p> + <p>Permis exclusifs de recherches octroyés l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGranulatsMarins.annees, + id: 'titresPrw', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Permis de recherches', + labelLine: 'Surface des permis de recherches (ha)' + }) + " + :suggested-max="suggestedMaxTitres('titresPrw')" + /> + </div> + </div> + <div v-if="pexAnneeCurrent"> + <h3>Permis d'exploitation (PEX) octroyés</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresPxw.quantite }} + </p> + <p>Permis d’exploitation octroyés l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGranulatsMarins.annees, + id: 'titresPxw', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Permis d\'exploitation', + labelLine: 'Surface des permis d\'exploitation (ha)' + }) + " + :suggested-max="suggestedMaxTitres('titresPxw')" + /> + </div> + </div> + </div> + <h3>Concessions octroyées</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresCxw.quantite }} + </p> + <p>Concessions octroyées l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGranulatsMarins.annees, + id: 'titresCxw', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Concessions', + labelLine: 'Surfaces des concessions (ha)' + }) + " + :suggested-max="suggestedMaxTitres('titresCxw')" + /> + </div> + </div> + <h3>Concessions valides</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].concessionsValides.quantite }} + </p> + <p>Concessions valides l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGranulatsMarins.annees, + id: 'concessionsValides', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Concessions', + labelLine: 'Surfaces des concessions (ha)' + }) + " + :suggested-max="suggestedMaxTitres('concessionsValides')" + /> + </div> + </div> + </div> + </div> +</template> + +<script> +import Loader from '../_ui/loader.vue' +import GranulatsMarinsActivite from './granulats-marins-activite.vue' +import BarChart from '../_charts/bar.vue' +import { suggestedMaxCalc, statsBarFormat } from './_utils' +import numberFormat from '@/utils/number-format' + +export default { + name: 'TableauBordGranulatsMarins', + + components: { Loader, GranulatsMarinsActivite, BarChart }, + + data() { + return { + loaded: false, + anneeActive: 0 + } + }, + + computed: { + statistiquesGranulatsMarins() { + return this.$store.state.statistiques.granulatsMarins + }, + + statistiques() { + return this.statistiquesGranulatsMarins.annees.reduce( + (acc, statsAnnee) => { + acc[statsAnnee.annee] = statsAnnee + + return acc + }, + {} + ) + }, + + anneeCurrent() { + return new Date().getFullYear() + }, + + annees() { + return this.statsAnneesAfter2010.map(annee => { + const id = annee.annee + return { + id, + nom: id.toString(), + enConstruction: id === this.anneeCurrent - 1 // l'année en cours n'étant pas affichée, seule l'année précédente est affichée à partir du 1er avril de l'année courante + } + }) + }, + + suggestedMaxProduction() { + return Math.max(...this.statsAnneesAfter2010.map(annee => annee.volume)) + }, + + statsAnneesAfter2010() { + const statsAnneesAfter2010 = + this.statistiquesGranulatsMarins.annees.filter( + annee => annee.annee >= 2010 && annee.annee < this.anneeCurrent + ) + + // affichage des données de l'année n-2 à partir du 1er avril de l'année en cours + const toggleDate = new Date(this.anneeCurrent, 3, 1) + const beforeToggleDate = + Date.parse(new Date()) < Date.parse(toggleDate.toString()) + + return beforeToggleDate + ? statsAnneesAfter2010.filter( + annee => annee.annee < this.anneeCurrent - 1 + ) + : statsAnneesAfter2010 + }, + + pexAnneeCurrent() { + const statistiquesGranulatsMarinsAnneeCurrent = + this.statistiquesGranulatsMarins.annees.find( + annee => annee.annee === this.anneeCurrent + ) + return statistiquesGranulatsMarinsAnneeCurrent.titresPxw.quantite > 0 + } + }, + + async created() { + this.anneeActive = this.anneeCurrent - 2 + await this.get() + }, + + methods: { + async get() { + await this.$store.dispatch('statistiques/get', 'granulatsMarins') + + if (!this.loaded) { + this.loaded = true + } + }, + + anneeSelect(event) { + this.anneeActive = Number(event.target.value) + }, + + statsBarFormat({ annees, id, bar, line, labelX, labelBar, labelLine }) { + return statsBarFormat({ + annees, + id, + bar, + line, + labelX, + labelBar, + labelLine + }) + }, + + numberFormat(number) { + return numberFormat(number) + }, + + suggestedMaxTitres(titreType) { + const annees = this.statistiquesGranulatsMarins.annees + const ids = ['titresPrw', 'titresPxw', 'titresCxw', 'concessionsValides'] + // si le nombre maximum de titres est inférieur à 10 + if ( + titreType && + ids.includes(titreType) && + Math.max(...annees.map(annee => annee[titreType].quantite)) <= 10 + ) { + return 10 + } + + return suggestedMaxCalc(annees, ids) + } + } +} +</script> diff --git a/packages/ui/src/components/statistiques/guyane-activite.vue b/packages/ui/src/components/statistiques/guyane-activite.vue new file mode 100644 index 000000000..84dc680ad --- /dev/null +++ b/packages/ui/src/components/statistiques/guyane-activite.vue @@ -0,0 +1,111 @@ +<template> + <div id="indicateurs"> + <p v-if="enConstruction" class="p-s bg-warning color-bg"> + Données en cours de collecte et consolidation + </p> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 mb-xl"> + <h4 class="text-center">Production d'or nette</h4> + <p class="h0 text-center"> + {{ numberFormat(statistiqueGuyane.orNet) }} kg + </p> + <p>Production d’or nette (après affinage) issue des mines en Guyane.</p> + </div> + <div class="tablet-blob-1-3 mb-xl"> + <h4 class="text-center">Energie consommée</h4> + <p class="h0 mb-s text-center"> + {{ + numberFormat( + statistiqueGuyane.carburantConventionnel + + statistiqueGuyane.carburantDetaxe + ) + }} + kl + </p> + <p class="bold text-center"> + dont + {{ numberFormat(statistiqueGuyane.carburantDetaxe) }} kl détaxés + </p> + <p>Volume de carburant consommé par les activités extractives.</p> + </div> + <div class="tablet-blob-1-3 mb-xl"> + <h4 class="text-center">Mercure collecté</h4> + <p class="h0 text-center"> + {{ numberFormat(statistiqueGuyane.mercure) }} kg + </p> + <p> + Masse de mercure d’origine anthropique historique ou illégale récupéré + lors de l’exploitation. + </p> + </div> + </div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Protection de l'environnement</h4> + <p class="h0 text-center"> + {{ numberFormat(statistiqueGuyane.environnementCout) }} € + </p> + <p> + Montant en euros des investissements * déclarés contribuant à la + protection de l’environnement. + </p> + <p> + <small + >* listés à l’article 318 C de l’annexe II du code général des + impôts.</small + > + </p> + </div> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Emplois</h4> + <p class="h0 text-center"> + {{ numberFormat(statistiqueGuyane.effectifs) }} + </p> + <p> + Salariés mobilisés sur les exploitations minières (équivalent temps + plein). + </p> + </div> + </div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Sources des données</h4> + <p class="h0 text-center"> + {{ numberFormat(statistiqueGuyane.activitesDeposesQuantite) }} + </p> + <p> + Rapports d’activité de production collectés via Camino utilisés pour + consolider ces statistiques. + </p> + </div> + <div class="tablet-blob-1-2 mb-xl"> + <h4 class="text-center">Taux de collecte</h4> + <p class="h0 text-center"> + {{ statistiqueGuyane.activitesDeposesRatio }} % + </p> + <p> + Des rapports d’activité de production attendus ont été déposés par les + opérateurs miniers pour consolider ces statistiques. + </p> + </div> + </div> + </div> +</template> + +<script> +import numberFormat from '@/utils/number-format' +export default { + name: 'IndicateursActiviteGuyane', + + props: { + statistiqueGuyane: { type: Object, required: true }, + enConstruction: { type: Boolean, default: false } + }, + + methods: { + numberFormat(number) { + return numberFormat(number) + } + } +} +</script> diff --git a/packages/ui/src/components/statistiques/guyane.vue b/packages/ui/src/components/statistiques/guyane.vue new file mode 100644 index 000000000..1a7976e5d --- /dev/null +++ b/packages/ui/src/components/statistiques/guyane.vue @@ -0,0 +1,477 @@ +<template> + <Loader v-if="!loaded" class="content" /> + <div v-else class="content"> + <div id="etat" class="mb-xxl mt"> + <h2>État du domaine minier en temps réel</h2> + <span class="separator" /> + <p> + Les données affichées ici sont celles contenues dans la base de donnée + Camino. Elles sont susceptibles d’évoluer chaque jour au grès des + décisions et de la fin de validité des titres et autorisations. Ces + données concernent exclusivement le territoire guyanais. + </p> + <p> + Les surfaces cumulées concernées par un titre ou une autorisation + d’exploration et ou d’exploitation n’impliquent pas qu’elles sont + effectivement explorées ou exploitées sur tout ou partie de l'année. Les + travaux miniers font l’objet de déclarations ou d’autorisations + distinctes portant sur une partie seulement de la surface des titres + miniers. + </p> + <div class="mb-xxl"> + <h3>Autorisations et titres d’exploration</h3> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <p class="h0 text-center"> + {{ statistiquesGuyane.titresArm }} + </p> + <p class="bold text-center">Autorisations de recherche</p> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'm', + typesIds: 'ar', + statutsIds: 'val,mod', + territoires: 'guyane', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-4"> + <p class="h0 text-center"> + {{ statistiquesGuyane.titresPrm }} + </p> + <p class="bold text-center">Permis exclusifs de recherches</p> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'm', + typesIds: 'pr', + statutsIds: 'val,mod', + territoires: 'guyane', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-2"> + <p class="h0 text-center"> + {{ numberFormat(statistiquesGuyane.surfaceExploration) }} ha + </p> + <p class="bold text-center"> + Surfaces cumulées des titres pouvant faire l'objet d'une activité + d’exploration + </p> + </div> + </div> + </div> + <div class="mb-xxl"> + <h3>Autorisations et titres d’exploitation</h3> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <p class="h0 text-center"> + {{ statistiquesGuyane.titresAxm }} + </p> + <p class="bold text-center">Autorisations d'exploitation</p> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'm', + typesIds: 'ax', + statutsIds: 'val,mod', + territoires: 'guyane', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-4"> + <p class="h0 text-center"> + {{ statistiquesGuyane.titresPxm }} + </p> + <p class="bold text-center">Permis d'exploitation</p> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'm', + typesIds: 'px', + statutsIds: 'val,mod', + territoires: 'guyane', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-4"> + <p class="h0 text-center"> + {{ statistiquesGuyane.titresCxm }} + </p> + <p class="bold text-center">Concessions</p> + <p class="h6 text-center"> + <router-link + :to="{ + name: 'titres', + query: { + domainesIds: 'm', + typesIds: 'cx', + statutsIds: 'val,mod', + territoires: 'guyane', + vueId: 'table' + } + }" + > + Voir les titres + </router-link> + </p> + </div> + <div class="tablet-blob-1-4"> + <p class="h0 text-center"> + {{ numberFormat(statistiquesGuyane.surfaceExploitation) }} ha + </p> + <p class="bold text-center"> + Surfaces cumulées des titres pouvant faire l'objet d'une activité + d’exploitation + </p> + </div> + </div> + </div> + </div> + + <h2>Production et activité minière légales</h2> + <span class="separator" /> + <p class="mb-xl"> + Les données affichées ici sont celles contenues dans la base de donnée + Camino. Elles sont stabilisées pour l’année n-2 mais sont susceptibles + d’évoluer jusqu’à la cloture de la collecte des déclarations + règlementaires de l’année précédente et l'année en cours. Ces données + concernent exclusivement le territoire guyanais. + </p> + + <div class="flex"> + <div + v-for="tab in tabs" + :key="tab.id" + class="mr-xs" + :class="{ active: tabActive === tab.id }" + > + <div class="p-m btn-tab rnd-t-s" @click="tabToggle(tab.id)"> + {{ tab.nom }} + </div> + </div> + </div> + + <div class="line-neutral width-full mb" /> + <GuyaneActivite + :statistique-guyane="statistiques[tabActive]" + :en-construction="tabs.find(t => t.id === tabActive).enConstruction" + class="mb-xxl" + /> + <div class="line-neutral width-full mb-xl" /> + <div id="evolution" class="mb-xxl"> + <h2>Activité</h2> + <span class="separator" /> + <p> + Les données affichées ici sont celles contenues dans la base de donnée + Camino. Les données antérieures à 2018 reprises d’anciens systèmes + peuvent ne pas être exhautives. Ces données concernent exclusivement le + territoire guyanais. + </p> + <div class="hide"> + <h3>Évolution de la production annuelle d’or nette</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ numberFormat(statistiques[anneeCurrent - 1].orNet) }} kg + </p> + <p> + Production d’or nette (après affinage) issue des mines en Guyane + l'an dernier + </p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <LineChart + :data=" + statsLineFormat({ + stats: statistiquesGuyane.annees, + id: 'orNet', + labelX: 'annee', + labelY: 'Or net extrait en Kg' + }) + " + /> + </div> + </div> + </div> + <h3>Autorisations de recherche octroyées</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresArm.quantite }} + </p> + <p>Autorisations de recherches octroyées l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGuyane.annees, + id: 'titresArm', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Autorisations de recherche', + labelLine: 'Surface des autorisations de recherche (ha)' + }) + " + :suggested-max="suggestedMaxTitres" + /> + </div> + </div> + <h3>Permis de recherches octroyés</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresPrm.quantite }} + </p> + <p>Permis exclusifs de recherches octroyés l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGuyane.annees, + id: 'titresPrm', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Permis de recherches', + labelLine: 'Surface des permis de recherches (ha)' + }) + " + :suggested-max="suggestedMaxTitres" + /> + </div> + </div> + <h3>Autorisations d'exploitation octroyées</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresAxm.quantite }} + </p> + <p>Autorisations d’exploitation octroyées l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGuyane.annees, + id: 'titresAxm', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Autorisations d\'exploitation', + labelLine: 'Surface des autorisations de recherche (ha)' + }) + " + :suggested-max="suggestedMaxTitres" + /> + </div> + </div> + <h3>Permis d'exploitation octroyés</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresPxm.quantite }} + </p> + <p>Permis d’exploitation octroyés l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGuyane.annees, + id: 'titresPxm', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Permis d\'exploitation', + labelLine: 'Surface des permis d\'exploitation (ha)' + }) + " + :suggested-max="suggestedMaxTitres" + /> + </div> + </div> + <h3>Concessions octroyées</h3> + <hr /> + <div class="tablet-float-blobs clearfix"> + <div class="tablet-float-blob-1-3 mb-xl mt"> + <p class="h0 text-center"> + {{ statistiques[anneeCurrent - 1].titresCxm.quantite }} + </p> + <p>concessions octroyées l’an dernier</p> + </div> + <div class="tablet-float-blob-2-3 relative mb-xl"> + <BarChart + :data=" + statsBarFormat({ + annees: statistiquesGuyane.annees, + id: 'titresCxm', + bar: 'quantite', + line: 'surface', + labelX: 'annee', + labelBar: 'Concessions', + labelLine: 'Surface des concessions (ha)' + }) + " + :suggested-max="suggestedMaxTitres" + /> + </div> + </div> + </div> + </div> +</template> + +<script> +import Loader from '../_ui/loader.vue' +import GuyaneActivite from './guyane-activite.vue' +import BarChart from '../_charts/bar.vue' +import LineChart from '../_charts/line.vue' +import { suggestedMaxCalc, statsBarFormat, statsLineFormat } from './_utils' +import numberFormat from '@/utils/number-format' + +export default { + name: 'TableauBordGuyane', + + components: { Loader, GuyaneActivite, LineChart, BarChart }, + + data() { + return { + loaded: false, + tabActive: 0 + } + }, + + computed: { + statistiquesGuyane() { + return this.$store.state.statistiques.guyane + }, + + statistiques() { + return this.statistiquesGuyane.annees.reduce((acc, statsAnnee) => { + acc[statsAnnee.annee] = statsAnnee + + return acc + }, {}) + }, + + anneeCurrent() { + return new Date().getFullYear() + }, + + tabs() { + return [ + { + id: this.anneeCurrent - 4, + nom: (this.anneeCurrent - 4).toString() + }, + { + id: this.anneeCurrent - 3, + nom: (this.anneeCurrent - 3).toString() + }, + { + id: this.anneeCurrent - 2, + nom: (this.anneeCurrent - 2).toString() + }, + { + id: this.anneeCurrent - 1, + nom: (this.anneeCurrent - 1).toString(), + enConstruction: true + }, + { + id: this.anneeCurrent, + nom: this.anneeCurrent.toString(), + enConstruction: true + } + ] + }, + + suggestedMaxTitres() { + return suggestedMaxCalc(this.statistiquesGuyane.annees, [ + 'titresArm', + 'titresPrm', + 'titresAxm', + 'titresPxm', + 'titresCxm' + ]) + } + }, + + async created() { + this.tabToggle(this.anneeCurrent - 2) + await this.get() + }, + + methods: { + async get() { + await this.$store.dispatch('statistiques/get', 'guyane') + + if (!this.loaded) { + this.loaded = true + } + }, + + tabToggle(tabId) { + this.tabActive = tabId + }, + + statsLineFormat({ stats, id, labelX, labelY }) { + return statsLineFormat({ stats, id, labelX, labelY }) + }, + + statsBarFormat({ annees, id, bar, line, labelX, labelBar, labelLine }) { + return statsBarFormat({ + annees, + id, + bar, + line, + labelX, + labelBar, + labelLine + }) + }, + + numberFormat(number) { + return numberFormat(number) + } + } +} +</script> diff --git a/packages/ui/src/components/titre-creation.vue b/packages/ui/src/components/titre-creation.vue new file mode 100644 index 000000000..29a2dcd61 --- /dev/null +++ b/packages/ui/src/components/titre-creation.vue @@ -0,0 +1,237 @@ +<template> + <h1 class="mt-xs mb-m">Demande de titre</h1> + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Entreprise</h5> + </div> + <div class="tablet-blob-2-3"> + <select + class="p-s mb" + :value="titreDemande?.entrepriseId" + @change="entrepriseUpdate" + > + <option + v-for="e in entreprises" + :key="e.id" + :value="e.id" + :disabled="titreDemande.entrepriseId === e.id" + > + {{ e.nom }} + </option> + </select> + </div> + </div> + + <hr /> + + <TitreTypeSelect + v-if="titreDemande.entrepriseId" + v-model:element="titreDemande" + :domaines="domaines" + /> + + <div v-if="titreDemande.typeId"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nom du titre</h5> + </div> + <div class="tablet-blob-2-3"> + <input v-model="titreDemande.nom" type="text" class="p-s mb" /> + </div> + </div> + <hr /> + </div> + + <div + v-if="titreDemande.typeId && titreDemande.entrepriseId && !entrepriseCheck" + > + <h3 class="mb-s">Références</h3> + <p class="h6 italic">Optionnel</p> + <div + v-for="(reference, index) in titreDemande.references" + :key="index" + class="flex full-x mb-s" + > + <select v-model="reference.typeId" class="p-s mr-s"> + <option + v-for="referenceType in referencesTypes" + :key="referenceType.id" + :value="referenceType.id" + > + {{ referenceType.nom }} + </option> + </select> + <input + v-model="reference.nom" + type="text" + class="p-s mr-s" + placeholder="valeur" + /> + <div class="flex-right"> + <button class="btn py-s px-m rnd-xs" @click="referenceRemove(index)"> + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + + <button + v-if=" + titreDemande.references && + !titreDemande.references.find(r => !r.typeId || !r.nom) + " + class="btn small rnd-xs py-s px-m full-x mb flex" + @click="referenceAdd" + > + <span class="mt-xxs">Ajouter une référence</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + + <hr /> + </div> + + <div class="tablet-blobs mb"> + <div class="tablet-blob-1-3" /> + <div class="tablet-blob-2-3"> + <button + v-if="!loading" + id="cmn-titre-activite-edit-popup-button-enregistrer" + ref="save-button" + :disabled="!complete" + class="btn btn-primary" + @click="save" + > + Créer le titre + </button> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </div> + </div> +</template> + +<script> +import { permissionsCheck } from '@/utils' + +import TitreTypeSelect from './_common/titre-type-select.vue' + +export default { + components: { TitreTypeSelect }, + + data() { + return { + titreDemande: {} + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + entreprises() { + return this.$store.state.user.metas.entreprisesTitresCreation + }, + + entreprise() { + return this.entreprises.find(e => e.id === this.titreDemande.entrepriseId) + }, + + entrepriseCheck() { + return permissionsCheck(this.user, ['entreprise']) + }, + + domaines() { + if (permissionsCheck(this.user, ['super', 'admin', 'editeur'])) { + return this.$store.state.user.metas.domaines + } + + if (permissionsCheck(this.user, ['entreprise'])) { + return this.entreprise.titresTypes.reduce((domaines, tt) => { + if (!domaines.find(({ id }) => tt.domaine.id === id)) { + tt.domaine.titresTypes = [] + domaines.push(tt.domaine) + } + + const domaine = domaines.find(({ id }) => tt.domaine.id === id) + + domaine.titresTypes.push({ + id: tt.id, + type: tt.type, + titresCreation: tt.titresCreation + }) + + return domaines + }, []) + } + + return [] + }, + + referencesTypes() { + return this.$store.state.titreCreation.metas.referencesTypes + }, + + complete() { + return ( + this.titreDemande.entrepriseId && + this.titreDemande.typeId && + this.titreDemande.nom + ) + }, + + loading() { + return this.$store.state.loading.includes('titreCreationAdd') + } + }, + + watch: { + entreprises: 'init' + }, + + async created() { + await this.init() + + document.addEventListener('keyup', this.keyUp) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyUp) + }, + + methods: { + keyUp(e) { + if ((e.which || e.keyCode) === 13 && this.complete && !this.loading) { + this.$refs['save-button'].focus() + this.save() + } + }, + async init() { + if (!this.entreprises.length) { + await this.$store.dispatch('pageError') + } + + await this.$store.dispatch('titreCreation/init') + + if (this.entreprises?.length === 1) { + this.titreDemande.entrepriseId = this.entreprises[0].id + } + }, + + entrepriseUpdate(event) { + this.titreDemande = { entrepriseId: event.target.value, references: [] } + }, + + save() { + this.$store.dispatch('titreCreation/save', this.titreDemande) + }, + + referenceAdd() { + this.titreDemande.references.push({ typeId: '', nom: '' }) + }, + + referenceRemove(index) { + this.titreDemande.references.splice(index, 1) + } + } +} +</script> diff --git a/packages/ui/src/components/titre.vue b/packages/ui/src/components/titre.vue new file mode 100644 index 000000000..6cb00ffe4 --- /dev/null +++ b/packages/ui/src/components/titre.vue @@ -0,0 +1,220 @@ +<template> + <Loader v-if="!loaded" /> + <div v-else> + <div v-if="titre.doublonTitre?.id" class="p-m bg-warning color-bg mb"> + Ce titre est un doublon. Le titre déjà existant est : + <a class="color-bg" :href="`/titres/${titre.doublonTitre.id}`">{{ + titre.doublonTitre.nom + }}</a + >. + </div> + + <TitreHeader :titre="titre" @titre-event-track="eventTrack" /> + + <TitreInfos :titre="titre" class="mb" /> + + <Perimetre + v-if="titre.geojsonMultiPolygon && titre.points" + :titre-id="titre.id" + :domaine-id="titre.domaine.id" + :titre-type-id="titre.type.type.id" + :points="titre.points" + :is-main="true" + :tab-id="geoTabId" + :geojson-multi-polygon="titre.geojsonMultiPolygon" + @tab-update="geoTabUpdate" + /> + + <TitreTerritoires + :pays="titre.pays" + :forets="titre.forets" + :sdom-zones="titre.sdomZones" + :surface="titre.surface" + /> + + <div class="line width-full mb-xl" /> + + <TitreRepertoire + :titulaires="titre.titulaires" + :amodiataires="titre.amodiataires" + :administrations="titre.administrations" + @titre-event-track="eventTrack" + /> + + <div v-if="tabs.length > 1"> + <div class="flex"> + <div + v-for="tab in tabs" + :key="tab.id" + class="mr-xs" + :class="{ active: tabId === tab.id }" + > + <button + :id="`cmn-titre-tab-${tab.id}`" + class="p-m btn-tab rnd-t-s" + @click="tabUpdate(tab.id)" + > + {{ tab.nom }} + <ActivitesPills + v-if="tab.id === 'activites'" + class="inline-block ml-s" + :activites-absentes="titre.activitesAbsentes" + :activites-en-construction="titre.activitesEnConstruction" + /> + </button> + </div> + </div> + <div class="line-neutral width-full mb" /> + </div> + + <TitreDemarches + v-if="tabId === 'demarches'" + :demarches="demarches" + :tab-id="tabId" + @event-track="eventTrack" + /> + + <TitreActivitesList + v-if="tabId === 'activites'" + :activites="titre.activites" + :titre-id="titre.id" + /> + + <TitreDemarches + v-if="tabId === 'travaux'" + :demarches="travaux" + :tab-id="tabId" + @titre-event-track="eventTrack" + /> + + <Journaux v-if="tabId === 'journaux'" :titre-id="titre.id" /> + </div> +</template> + +<script> +import Loader from './_ui/loader.vue' +import Perimetre from './_common/perimetre.vue' +import ActivitesPills from './activites/pills.vue' + +import TitreHeader from './titre/header.vue' +import TitreInfos from './titre/infos.vue' +import TitreTerritoires from './titre/territoires.vue' +import TitreRepertoire from './titre/repertoire.vue' +import TitreDemarches from './titre/demarches.vue' +import TitreActivitesList from './activites/list.vue' +import Journaux from './journaux/journaux.vue' + +export default { + components: { + Loader, + ActivitesPills, + TitreHeader, + TitreInfos, + TitreTerritoires, + TitreRepertoire, + TitreDemarches, + TitreActivitesList, + Perimetre, + Journaux + }, + + data() { + return { + geoTabId: 'carte', + show: false + } + }, + + computed: { + titre() { + return this.$store.state.titre.element + }, + + user() { + return this.$store.state.user.element + }, + + loaded() { + return !!this.titre + }, + + tabs() { + return this.$store.getters['titre/tabs'] + }, + + tabId() { + return this.$store.getters['titre/tabId'] + }, + + demarches() { + return this.$store.getters['titre/demarches'] + }, + + travaux() { + return this.$store.getters['titre/travaux'] + } + }, + + watch: { + '$route.params.id': function (id) { + if (this.$route.name === 'titre' && id) { + this.get() + } + }, + + user: 'get' + }, + + async created() { + await this.get() + + if (this.$route.hash) { + const yOffset = -88 + const id = this.$route.hash.substring(1) + const element = document.getElementById(id) + if (element) { + const y = + element.getBoundingClientRect().top + window.pageYOffset + yOffset + + window.scrollTo({ top: y }) + } + } + }, + + beforeUnmount() { + this.$store.commit('titre/reset') + }, + + methods: { + async get() { + await this.$store.dispatch('titre/get', this.$route.params.id) + }, + + tabUpdate(tabId) { + this.eventTrack({ + categorie: 'titre-sections', + action: `titre-${this.tabId}_consulter`, + nom: this.$store.state.titre.element.id + }) + + this.$store.commit('titre/openTab', tabId) + }, + + geoTabUpdate(tabId) { + this.eventTrack({ + categorie: 'titre-sections', + action: `titre-vue${this.tabId}_consulter`, + nom: this.$store.state.titre.element.id + }) + + this.geoTabId = tabId + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + } + } +} +</script> diff --git a/packages/ui/src/components/titre/administration.vue b/packages/ui/src/components/titre/administration.vue new file mode 100644 index 000000000..e9b0c0345 --- /dev/null +++ b/packages/ui/src/components/titre/administration.vue @@ -0,0 +1,147 @@ +<template> + <Accordion + class="mb" + :opened="opened" + :slot-default="true" + @close="close" + @toggle="toggle" + > + <template #title> + <span>{{ administration.nom }}</span> + </template> + + <div v-if="content" class="px-m pt-m"> + <div v-if="administration.service" class="large-blobs"> + <div class="large-blob-1-6"> + <h5>Service</h5> + </div> + <div class="large-blob-5-6"> + <p> + {{ administration.service }} + </p> + </div> + </div> + <div + v-if="administration.adresse1 || administration.adresse2" + class="large-blobs" + > + <div class="large-blob-1-6"> + <h5>Adresse</h5> + </div> + <div class="large-blob-5-6"> + <p> + {{ administration.adresse1 }} + <span v-if="administration.adresse2" + ><br />{{ administration.adresse2 }}</span + > + <br />{{ administration.codePostal }} + {{ administration.commune }} + </p> + </div> + </div> + <div v-if="administration.telephone" class="large-blobs"> + <div class="large-blob-1-6"> + <h5>Téléphone</h5> + </div> + <div class="large-blob-5-6"> + <p class="word-break"> + {{ administration.telephone }} + </p> + </div> + </div> + <div v-if="administration.email" class="large-blobs"> + <div class="large-blob-1-6"> + <h5>Email</h5> + </div> + <div class="large-blob-5-6"> + <p class="word-break"> + <a + :href="`mailto:${administration.email}`" + class="btn small bold py-xs px-s rnd" + > + {{ administration.email }} + </a> + </p> + </div> + </div> + <div v-if="administration.url" class="large-blobs"> + <div class="large-blob-1-6"> + <h5>Site</h5> + </div> + <div class="large-blob-5-6"> + <p class="word-break"> + <a + :href="administration.url" + class="btn small bold py-xs px-s rnd" + target="_blank" + rel="noopener noreferrer" + > + {{ administration.url }} + </a> + </p> + </div> + </div> + </div> + </Accordion> +</template> + +<script> +import Accordion from '../_ui/accordion.vue' + +export default { + components: { + Accordion + }, + + props: { + administration: { + type: Object, + default: () => {} + } + }, + + emits: ['titre-event-track'], + + data() { + return { + opened: false + } + }, + + computed: { + content() { + return ( + this.administration.legalForme || + this.administration.adresse1 || + this.administration.adresse2 || + this.administration.codePostal || + this.administration.commune || + this.administration.telephone || + this.administration.email || + this.administration.url + ) + } + }, + + methods: { + close() { + this.opened = false + }, + + toggle() { + this.opened = !this.opened + if (this.opened) { + this.eventTrack() + } + }, + + eventTrack() { + this.$emit('titre-event-track', { + categorie: 'titre-sections', + action: 'titre-administration_consulter', + nom: this.$route.params.id + }) + } + } +} +</script> diff --git a/packages/ui/src/components/titre/demarche-edit-popup.vue b/packages/ui/src/components/titre/demarche-edit-popup.vue new file mode 100644 index 000000000..3f696aeac --- /dev/null +++ b/packages/ui/src/components/titre/demarche-edit-popup.vue @@ -0,0 +1,176 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h6> + <span class="cap-first" + ><span class="cap-first"> {{ titreNom }} </span + ><span class="color-neutral"> | </span + ><span class="cap-first"> + {{ titreTypeNom }} + </span> + </span> + </h6> + <h2 class="cap-first"> + {{ label }} + </h2> + </div> + </template> + <div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Type</h5> + </div> + <div class="mb tablet-blob-2-3"> + <select + v-model="demarche.typeId" + class="p-s mr" + :disabled="!creation" + > + <option + v-for="demarcheType in types" + :key="demarcheType.id" + :value="demarcheType.id" + :disabled="demarche.typeId === demarcheType.id" + > + {{ demarcheType.nom }} + </option> + </select> + </div> + </div> + <div class="tablet-blobs mb-s"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Description</h5> + <p class="h6 italic mb-0 flex-right mt-xs">Optionnel</p> + </div> + <input + v-model="demarche.description" + type="text" + class="tablet-blob-2-3 p-s" + /> + </div> + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + ref="save-button" + :disabled="!complete" + :class="{ disabled: !complete }" + class="btn btn-primary" + @click="save" + > + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoDemarcheEditPopup', + + components: { + Popup + }, + + props: { + demarche: { type: Object, default: () => ({}) }, + titreNom: { type: String, default: '' }, + titreTypeNom: { type: String, default: '' }, + creation: { type: Boolean, default: false }, + tabId: { type: String, required: true } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + label() { + return `${ + this.creation ? "Ajout d'une" : 'Modification de la' + } démarche ${this.tabId === 'travaux' ? 'de travaux' : ''}` + }, + + messages() { + return this.$store.state.popup.messages + }, + + types() { + return this.$store.state.titreDemarche.metas.types + .filter(t => (this.tabId === 'travaux' ? t.travaux : !t.travaux)) + .filter(t => t.demarchesCreation) + }, + + complete() { + return this.demarche.typeId + } + }, + + created() { + this.get() + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async get() { + await this.$store.dispatch('titreDemarche/init', this.demarche) + }, + + async save() { + if (this.complete) { + const demarche = JSON.parse(JSON.stringify(this.demarche)) + + if (this.creation) { + await this.$store.dispatch('titreDemarche/add', demarche) + } else { + await this.$store.dispatch('titreDemarche/update', demarche) + } + + this.eventTrack({ + categorie: 'titre-sections', + action: `titre-${this.tabId}-enregistrer`, + nom: demarche.id + }) + } + }, + + cancel() { + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + } + } +} +</script> diff --git a/packages/ui/src/components/titre/demarche-remove-popup.vue b/packages/ui/src/components/titre/demarche-remove-popup.vue new file mode 100644 index 000000000..904f91615 --- /dev/null +++ b/packages/ui/src/components/titre/demarche-remove-popup.vue @@ -0,0 +1,120 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h6> + <span class="cap-first"> {{ titreNom }} </span + ><span class="color-neutral"> | </span + ><span class="cap-first"> + {{ titreTypeNom }} + </span> + </h6> + <h2 class="cap-first">Suppression de la démarche</h2> + </div> + </template> + + <p class="bold"> + Souhaitez vous supprimer la démarche + <span class="color-inverse">{{ typeNom }}</span> du titre + <span class="color-inverse">{{ titreNom }}</span> (<span + class="color-inverse" + >{{ titreTypeNom }}</span + >) ? + </p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button class="btn-flash rnd-xs p-s full-x" @click="remove"> + Supprimer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Suppression en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoDemarcheRemovePopup', + + components: { + Popup + }, + + props: { + id: { + type: String, + default: '' + }, + + typeNom: { + type: String, + default: '' + }, + + titreNom: { + type: String, + default: '' + }, + + titreTypeNom: { + type: String, + default: '' + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async remove() { + await this.$store.dispatch('titreDemarche/remove', this.id) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + }, + + errorsRemove() { + // this.$store.commit('utilisateur/loginMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/titre/demarche.vue b/packages/ui/src/components/titre/demarche.vue new file mode 100644 index 000000000..3d975c520 --- /dev/null +++ b/packages/ui/src/components/titre/demarche.vue @@ -0,0 +1,183 @@ +<template> + <div class="mb-xxl"> + <div class="tablet-blobs mb"> + <div class="tablet-blob-1-2"> + <div class="flex mb-s flex-center"> + <h2 class="cap-first"> + {{ demarche.type.nom }} + </h2> + <h3 v-if="demarche.description" class="ml-s"> + ({{ demarche.description }}) + </h3> + </div> + <div class="mb-s"> + <Statut :color="demarche.statut.couleur" :nom="demarche.statut.nom" /> + </div> + </div> + <div class="tablet-blob-1-2 flex"> + <div + v-if=" + demarche.modification || + demarche.suppression || + demarche.etapesCreation + " + class="flex-right flex" + > + <button + v-if="demarche.etapesCreation" + class="btn small rnd-l-xs py-s px-m flex mr-px" + :class="{ + 'rnd-r-xs': !demarche.suppression && !demarche.modification + }" + @click="etapeAdd" + > + <span class="mt-xxs">Ajouter une étape…</span> + </button> + <button + v-if="demarche.modification" + class="btn py-s px-m mr-px" + :class="{ 'rnd-l-xs': !demarche.etapesCreation }" + @click="editPopupOpen" + > + <i class="icon-24 icon-pencil" /> + </button> + <button + v-if="demarche.suppression" + class="btn rnd-r-xs py-s px-m mr-px" + :class="{ + 'rnd-l-xs': !demarche.modification && !demarche.etapesCreation + }" + @click="removePopupOpen" + > + <i class="icon-24 icon-trash" /> + </button> + </div> + </div> + </div> + + <TitreEtape + v-for="etape in demarche.etapes" + :key="etape.id" + :etape="etape" + :demarche-type="demarche.type" + :titre-type-type="titreType.type" + :domaine-id="domaineId" + :titre-id="titreId" + :titre-nom="titreNom" + :opened="etapeOpened[etape.id]" + @event-track="eventTrack" + @close="etapeClose(etape.id)" + @toggle="etapeToggle(etape.id)" + /> + + <div class="line width-full my-xxl" /> + </div> +</template> + +<script> +import Statut from '../_common/statut.vue' +import TitreEtape from '../etape/preview.vue' +import EditPopup from './demarche-edit-popup.vue' +import RemovePopup from './demarche-remove-popup.vue' + +export default { + components: { + Statut, + TitreEtape + }, + + props: { + demarche: { type: Object, required: true }, + titreNom: { type: String, required: true }, + titreId: { type: String, required: true }, + titreType: { type: Object, required: true }, + domaineId: { type: String, required: true }, + tabId: { type: String, required: true } + }, + + emits: ['titre-event-track'], + + computed: { + etapeOpened() { + return this.$store.state.titre.opened.etapes + }, + + eventPrefix() { + return this.tabId && this.tabId === 'travaux' + ? 'titre-travaux' + : 'titre-demarche' + } + }, + + methods: { + editPopupOpen() { + const demarche = {} + + demarche.description = this.demarche.description + demarche.typeId = this.demarche.type.id + demarche.titreId = this.titreId + demarche.id = this.demarche.id + + this.$store.commit('popupOpen', { + component: EditPopup, + props: { + demarche, + types: this.titreType.demarchesTypes, + titreTypeNom: this.titreType.type.nom, + titreNom: this.titreNom, + tabId: this.tabId + } + }) + + this.eventTrack({ + categorie: 'titre-sections', + action: `${this.eventPrefix}_editer`, + nom: this.$route.params.id + }) + }, + + removePopupOpen() { + this.$store.commit('popupOpen', { + component: RemovePopup, + props: { + id: this.demarche.id, + typeNom: this.demarche.type.nom, + titreNom: this.titreNom, + titreTypeNom: this.titreType.type.nom + } + }) + + this.eventTrack({ + categorie: 'titre-sections', + action: `${this.eventPrefix}_supprimer`, + nom: this.$route.params.id + }) + }, + + etapeAdd() { + this.$router.push({ + name: 'etape-creation', + query: { 'demarche-id': this.demarche.slug } + }) + + this.eventTrack({ + categorie: 'titre-sections', + action: 'titre-etape_ajouter', + nom: this.$route.params.id + }) + }, + + etapeClose(id) { + this.$store.commit('titre/close', { section: 'etapes', id }) + }, + + etapeToggle(id) { + this.$store.commit('titre/toggle', { section: 'etapes', id }) + }, + + eventTrack(event) { + this.$emit('titre-event-track', event) + } + } +} +</script> diff --git a/packages/ui/src/components/titre/demarches.vue b/packages/ui/src/components/titre/demarches.vue new file mode 100644 index 000000000..5f92eee96 --- /dev/null +++ b/packages/ui/src/components/titre/demarches.vue @@ -0,0 +1,87 @@ +<template> + <div> + <div + v-if=" + tabId === 'travaux' ? titre.travauxCreation : titre.demarchesCreation + " + > + <button + class="btn small rnd-xs py-s px-m full-x flex mb" + @click="demarcheAddPopupOpen" + > + <span class="mt-xxs" + >Ajouter une démarche + {{ tabId === 'travaux' ? 'de travaux' : '' }}</span + > + <i class="icon-24 icon-plus flex-right" /> + </button> + <div class="line width-full mb-xxl" /> + </div> + + <TitreDemarche + v-for="demarche in demarches" + :key="demarche.id" + :demarche="demarche" + :domaine-id="titre.domaine.id" + :titre-type="titre.type" + :titre-nom="titre.nom" + :titre-id="titre.id" + :tab-id="tabId" + @event-track="eventTrack" + /> + </div> +</template> + +<script> +import TitreDemarche from './demarche.vue' +import EditPopup from './demarche-edit-popup.vue' + +export default { + components: { + TitreDemarche + }, + + props: { + demarches: { type: Array, default: () => [] }, + tabId: { type: String, required: true } + }, + + emits: ['event-track'], + + computed: { + titre() { + return this.$store.state.titre.element + } + }, + + methods: { + demarcheAddPopupOpen() { + const demarche = { + typeId: null, + titreId: this.titre.id + } + + this.$store.commit('popupOpen', { + component: EditPopup, + props: { + demarche, + titreTypeNom: this.titre.type.type.nom, + titreNom: this.titre.nom, + creation: true, + tabId: this.tabId + } + }) + + this.eventTrack({ + categorie: 'titre-sections', + action: `titre-${this.tabId}_ajouter`, + nom: this.$route.params.id + }) + }, + + eventTrack(event) { + this.$emit('event-track', event) + } + } +} +</script> diff --git a/packages/ui/src/components/titre/edit-popup.vue b/packages/ui/src/components/titre/edit-popup.vue new file mode 100644 index 000000000..b02d21ce5 --- /dev/null +++ b/packages/ui/src/components/titre/edit-popup.vue @@ -0,0 +1,264 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h2 class="cap-first"> + {{ creation ? "Ajout d'un" : 'Modification du' }} titre + </h2> + </div> + </template> + + <div> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nom</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="titre.nom" type="text" class="p-s" /> + </div> + </div> + <hr /> + </div> + + <TitreTypeSelect v-model:element="titre" :domaines="domaines" /> + + <div> + <h3 class="mb-s">Références</h3> + <p class="h6 italic">Optionnel</p> + <hr /> + <div + v-for="(reference, index) in titre.references" + :key="index" + class="flex full-x mb-s" + > + <select v-model="reference.typeId" class="p-s mr-s"> + <option + v-for="referenceType in referencesTypes" + :key="referenceType.id" + :value="referenceType.id" + > + {{ referenceType.nom }} + </option> + </select> + <input + v-model="reference.nom" + type="text" + class="p-s mr-s" + placeholder="valeur" + /> + <div class="flex-right"> + <button class="btn py-s px-m rnd-xs" @click="referenceRemove(index)"> + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + + <button + v-if=" + titre.references && !titre.references.find(r => !r.typeId || !r.nom) + " + class="btn rnd-xs py-s px-m full-x mb flex h6" + @click="referenceAdd" + > + <span class="mt-xxs">Ajouter une référence</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> + + <div v-if="userIsSuper"> + <h3 class="mb-s">Administrations</h3> + <p class="h6 italic">Administrations ajoutées manuellement au titre</p> + <hr /> + <div + v-for="(administration, index) in titre.titresAdministrations" + :key="index" + class="flex full-x mb-s" + > + <select v-model="administration.id" class="p-s mr-s"> + <option v-for="a in administrations" :key="a.id" :value="a.id"> + {{ a.nom }} + </option> + </select> + <div class="flex-right"> + <button + class="btn py-s px-m rnd-xs" + @click="administrationRemove(index)" + > + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + + <button + v-if=" + titre.titresAdministrations && + !titre.titresAdministrations.find(r => !r.id) + " + class="btn rnd-xs py-s px-m full-x mb flex h6" + @click="administrationAdd" + > + <span class="mt-xxs">Ajouter une administration</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + ref="save-button" + class="btn btn-primary" + :disabled="!complete" + :class="{ disabled: !complete }" + @click="save" + > + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +import TitreTypeSelect from '../_common/titre-type-select.vue' + +export default { + name: 'CaminoDemarcheEditPopup', + + components: { + Popup, + TitreTypeSelect + }, + + props: { + titre: { + type: Object, + default: () => ({}) + }, + + creation: { + type: Boolean, + default: false + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + domaines() { + return this.$store.state.user.metas.domaines.filter(d => + d.titresTypes.some(dtt => dtt.titresCreation) + ) + }, + + referencesTypes() { + return this.$store.state.titre.metas.referencesTypes + }, + + administrations() { + return this.$store.state.titre.metas.administrations + }, + + complete() { + return !!this.titre.nom && !!this.titre.typeId && !!this.titre.domaineId + }, + + userIsSuper() { + return this.$store.getters['user/userIsSuper'] + } + }, + + created() { + this.get() + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async get() { + await this.$store.dispatch('titre/init') + }, + + async save() { + if (this.complete) { + const titre = JSON.parse(JSON.stringify(this.titre)) + titre.references = titre.references.filter(reference => { + return reference.nom + }) + + if (this.creation) { + await this.$store.dispatch('titre/add', titre) + } else { + await this.$store.dispatch('titre/update', titre) + } + + this.eventTrack({ + categorie: 'titre-sections', + action: 'titre-enregistrer', + nom: titre.id + }) + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + }, + + errorsRemove() { + // this.$store.commit('utilisateur/loginMessagesRemove') + }, + + referenceAdd() { + this.titre.references.push({ typeId: '', nom: '' }) + }, + + referenceRemove(index) { + this.titre.references.splice(index, 1) + }, + + administrationAdd() { + this.titre.titresAdministrations.push({ id: '' }) + }, + + administrationRemove(index) { + this.titre.titresAdministrations.splice(index, 1) + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + } + } +} +</script> diff --git a/packages/ui/src/components/titre/entreprise.vue b/packages/ui/src/components/titre/entreprise.vue new file mode 100644 index 000000000..004a7e083 --- /dev/null +++ b/packages/ui/src/components/titre/entreprise.vue @@ -0,0 +1,203 @@ +<template> + <Accordion + class="mb" + :opened="opened" + :slot-default="true" + :slot-buttons="true" + @close="close" + @toggle="toggle" + > + <template #title> + <h4 class="mb-0"> + {{ entrepriseNameFind(entreprise) }} + </h4> + <Tag v-if="entreprise.operateur" :color="'bg-info'" :mini="true"> + Opérateur + </Tag> + </template> + + <template #buttons> + <router-link + :to="{ name: 'entreprise', params: { id: entreprise.id } }" + class="btn-alt py-s px-m" + tag="button" + > + <i + class="icon-24 icon-window-link" + @click="eventTrack('titre-entreprise_acceder')" + /> + </router-link> + </template> + + <div v-if="content" class="px-m pt-m"> + <div v-if="entreprise.legalSiren" class="large-blobs"> + <div class="large-blob-1-4"> + <h5>Siren</h5> + </div> + <div class="large-blob-3-4"> + <p>{{ entreprise.legalSiren }}</p> + </div> + </div> + + <div v-if="entreprise.legalForme" class="large-blobs"> + <div class="large-blob-1-4"> + <h5>Forme juridique</h5> + </div> + <div class="large-blob-3-4"> + <p>{{ entreprise.legalForme }}</p> + </div> + </div> + + <div + v-if="entreprise.etablissements && entreprise.etablissements.length" + class="large-blobs" + > + <div class="large-blob-1-4"> + <h5> + Établissement{{ entreprise.etablissements.length > 1 ? 's' : '' }} + </h5> + </div> + <div class="large-blob-3-4"> + <ul class="list-sans"> + <li v-for="e in entreprise.etablissements" :key="e.id"> + <h6 class="inline-block"> + {{ dateFormat(e.dateDebut) }} + </h6> + : {{ e.nom }} + </li> + </ul> + </div> + </div> + + <div v-if="entreprise.adresse" class="large-blobs"> + <div class="large-blob-1-4"> + <h5>Adresse</h5> + </div> + <div class="large-blob-3-4"> + <p> + {{ entreprise.adresse }} + <br />{{ entreprise.codePostal }} + {{ entreprise.commune }} + </p> + </div> + </div> + <div v-if="entreprise.telephone" class="large-blobs"> + <div class="large-blob-1-4"> + <h5>Téléphone</h5> + </div> + <div class="large-blob-3-4"> + <p class="word-break"> + {{ entreprise.telephone }} + </p> + </div> + </div> + <div v-if="entreprise.email" class="large-blobs"> + <div class="large-blob-1-4"> + <h5>Email</h5> + </div> + <div class="large-blob-3-4"> + <p class="word-break"> + <a + :href="`mailto:${entreprise.email}`" + class="btn small bold py-xs px-s rnd" + > + {{ entreprise.email }} + </a> + </p> + </div> + </div> + <div v-if="entreprise.url" class="large-blobs"> + <div class="large-blob-1-4"> + <h5>Site</h5> + </div> + <div class="large-blob-3-4"> + <p class="word-break"> + <a :href="entreprise.url" class="btn small bold py-xs px-s rnd"> + {{ entreprise.url }} + </a> + </p> + </div> + </div> + </div> + </Accordion> +</template> + +<script> +import { dateFormat } from '@/utils' +import Accordion from '../_ui/accordion.vue' +import Tag from '../_ui/tag.vue' + +export default { + components: { + Accordion, + Tag + }, + + props: { + entreprise: { + type: Object, + default: () => {} + } + }, + + emits: ['titre-event-track'], + + data() { + return { + opened: false + } + }, + + computed: { + content() { + return ( + this.entreprise.legalSiren || + this.entreprise.legalForme || + this.entreprise.etablissements.length || + this.entreprise.adresse || + this.entreprise.codePostal || + this.entreprise.commune || + this.entreprise.telephone || + this.entreprise.email || + this.entreprise.url + ) + } + }, + + methods: { + entrepriseNameFind(entreprise) { + return ( + entreprise.nom || + // trouve l'établissement le plus récent + entreprise.etablissements.reduce( + (res, e) => (res && res.dateDebut > e.dateDebut ? res : e), + null + ).nom + ) + }, + + close() { + this.opened = false + }, + + toggle() { + this.opened = !this.opened + if (this.opened) { + this.eventTrack('titre-entreprise_consulter') + } + }, + + eventTrack(action) { + this.$emit('titre-event-track', { + categorie: 'titre-sections', + action, + nom: this.$route.params.id + }) + }, + + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/titre/header.vue b/packages/ui/src/components/titre/header.vue new file mode 100644 index 000000000..ff0a402dd --- /dev/null +++ b/packages/ui/src/components/titre/header.vue @@ -0,0 +1,145 @@ +<template> + <div class="sticky-header width-full"> + <div class="container"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-2"> + <h1 class="mt-m mb-m"> + {{ titre.nom }} + </h1> + </div> + <div class="tablet-blob-1-2 flex"> + <div class="flex-right flex my-s"> + <button + v-if="user" + class="btn small rnd-0 rnd-l-xs px-m py-s lh-2 mr-px" + :class="{ + 'btn-primary': !titre.abonnement, + 'btn-secondary': titre.abonnement + }" + @click="subscribe(!titre.abonnement)" + > + <span class="mt-xs" + >{{ titre.abonnement ? 'Se désabonner' : 'S’abonner' }} au + titre</span + > + </button> + <button + class="btn-border small px-m py-s lh-2" + :class="{ + 'rnd-l-xs': !user, + 'rnd-r-xs': !titre.suppression || !titre.modification, + 'mr-px': titre.suppression || titre.modification + }" + @click="emailSend" + > + <span class="mt-xs nowrap">Signaler une erreur…</span> + </button> + <button + v-if="titre.modification" + class="btn py-s px-m mr-px" + :class="{ 'rnd-r-xs': !titre.suppression }" + @click="editPopupOpen" + > + <i class="icon-24 icon-pencil" /> + </button> + <button + v-if="titre.suppression" + class="btn rnd-r-xs py-s px-m" + @click="removePopupOpen" + > + <i class="icon-24 icon-trash" /> + </button> + </div> + </div> + </div> + + <div class="line width-full" /> + </div> + </div> +</template> + +<script> +import EditPopup from './edit-popup.vue' +import RemovePopup from './remove-popup.vue' + +export default { + props: { + titre: { + type: Object, + default: () => ({}) + } + }, + + emits: ['titre-event-track'], + + computed: { + user() { + return this.$store.state.user.element + } + }, + methods: { + editPopupOpen() { + const titre = {} + titre.id = this.titre.id + titre.nom = this.titre.nom + titre.domaineId = this.titre.domaine.id + titre.typeId = this.titre.type.id + titre.references = this.titre.references.map(reference => ({ + typeId: reference.type.id, + nom: reference.nom + })) + titre.titresAdministrations = this.titre.titresAdministrations + + this.$store.commit('popupOpen', { + component: EditPopup, + props: { + titre + } + }) + + this.eventTrack({ + categorie: 'titre-sections', + action: 'titre-editer', + nom: this.$route.params.id + }) + }, + + removePopupOpen() { + this.$store.commit('popupOpen', { + component: RemovePopup, + props: { + titreNom: this.titre.nom, + titreId: this.titre.id, + typeNom: this.titre.type.type.nom + } + }) + + this.eventTrack({ + categorie: 'titre-sections', + action: 'titre-supprimer', + nom: this.$route.params.id + }) + }, + + emailSend() { + this.eventTrack({ + categorie: 'titre-sections', + action: 'titre-erreur_signaler', + nom: this.$route.params.id + }) + window.location.href = `mailto:camino@beta.gouv.fr?subject=Erreur ${this.$route.params.id}&body=Bonjour, j'ai repéré une erreur sur le titre ${window.location.href} : ` + }, + + subscribe(abonner) { + this.$store.dispatch('titre/subscribe', { + titreId: this.titre.id, + abonner + }) + }, + + eventTrack(event) { + this.$emit('titre-event-track', event) + } + } +} +</script> diff --git a/packages/ui/src/components/titre/infos.vue b/packages/ui/src/components/titre/infos.vue new file mode 100644 index 000000000..0fd416ca0 --- /dev/null +++ b/packages/ui/src/components/titre/infos.vue @@ -0,0 +1,186 @@ +<template> + <div class="desktop-blobs"> + <div class="desktop-blob-1-2"> + <div class="rnd-b-s bg-alt pt px overflow-auto"> + <h4 class="mb"> + <Pill :color="`bg-domaine-${titre.domaine.id}`" class="mono mr-s"> + {{ titre.domaine.id }} + </Pill> + <span class="cap-first"> + {{ titre.type.type.nom }} + </span> + </h4> + + <div class="mb"> + <Statut :color="titre.statut.couleur" :nom="titre.statut.nom" /> + </div> + + <div + v-if="phases && phases.length" + class="mb bg-bg mx--m px-m pt-xs pb-s rnd-xs" + > + <table class="table-xxs full-x mb-0"> + <tr> + <th class="max-width-1" /> + <th>Phase</th> + <th>Début</th> + <th>Fin</th> + </tr> + <tr v-for="demarche in phases" :key="demarche.id"> + <td class="max-width-1"> + <Dot + class="mt-xs" + :color="`bg-${demarche.phase.statut.couleur}`" + /> + </td> + <td> + <span class="cap-first bold h5 mb-0"> + {{ demarche.type.nom }} + </span> + </td> + <td> + <span class="h5 mb-0">{{ + dateFormat(demarche.phase.dateDebut) + }}</span> + </td> + <td> + <span class="h5 mb-0">{{ + dateFormat(demarche.phase.dateFin) + }}</span> + </td> + </tr> + </table> + </div> + + <div v-if="titre.references && titre.references.length" class="mb"> + <ul class="list-prefix h6"> + <li v-for="reference in titre.references" :key="reference.nom"> + <span v-if="reference.type" class="word-break fixed-width bold"> + {{ reference.type.nom }} + </span> + {{ reference.nom }} + </li> + </ul> + </div> + </div> + </div> + + <div class="desktop-blob-1-2 mt"> + <div v-if="titre.substances && titre.substances.length > 0" class="mb"> + <h5>Substances</h5> + <TagList :elements="titre.substances.map(s => s.nom)" /> + </div> + + <div v-if="titre.titulaires.length" class="mb"> + <h5> + {{ titre.titulaires.length > 1 ? 'Titulaires' : 'Titulaire' }} + </h5> + <ul class="list-inline"> + <li v-for="e in titre.titulaires" :key="e.id" class="mb-xs mr-xs"> + <router-link + :to="{ name: 'entreprise', params: { id: e.id } }" + class="btn-border small p-s rnd-xs mr-xs" + tag="button" + > + <span class="mr-xs">{{ + e.legalSiren ? `${e.nom} (${e.legalSiren})` : e.nom + }}</span> + <Tag + v-if="e.operateur" + :mini="true" + color="bg-info" + class="ml-xs" + > + Opérateur + </Tag> + </router-link> + </li> + </ul> + </div> + + <div v-if="titre.amodiataires.length" class="mb"> + <h5> + {{ titre.amodiataires.length > 1 ? 'Amodiataires' : 'Amodiataire' }} + </h5> + <ul class="list-prefix"> + <li v-for="e in titre.amodiataires" :key="e.id"> + <router-link + :to="{ name: 'entreprise', params: { id: e.id } }" + class="btn-border small p-s rnd-xs mr-xs" + tag="button" + > + <span class="mr-xs">{{ + e.legalSiren ? `${e.nom} (${e.legalSiren})` : e.nom + }}</span> + <Tag + v-if="e.operateur" + :mini="true" + color="bg-info" + class="ml-xs" + > + Opérateur + </Tag> + </router-link> + </li> + </ul> + </div> + + <div v-if="hasContenu"> + <Section + v-for="s in titre.type.sections" + :key="s.id" + :entete="false" + :section="s" + :contenu="titre.contenu[s.id]" + /> + </div> + </div> + </div> +</template> + +<script> +import Pill from '../_ui/pill.vue' +import Tag from '../_ui/tag.vue' +import TagList from '../_ui/tag-list.vue' +import Dot from '../_ui/dot.vue' +import Section from '../_common/section.vue' +import Statut from '../_common/statut.vue' +import { dateFormat } from '@/utils' + +export default { + components: { Pill, Dot, TagList, Section, Statut, Tag }, + + props: { + titre: { + type: Object, + default: () => ({}) + } + }, + + computed: { + phases() { + return this.titre.demarches.filter(d => d.phase) + }, + + hasContenu() { + return ( + this.titre.contenu && + this.titre.type.sections && + this.titre.type.sections.some(s => + s.elements.some( + e => + this.titre.contenu[s.id] && + this.titre.contenu[s.id][e.id] !== undefined + ) + ) + ) + } + }, + + methods: { + dateFormat(date) { + return dateFormat(date) + } + } +} +</script> diff --git a/packages/ui/src/components/titre/remove-popup.vue b/packages/ui/src/components/titre/remove-popup.vue new file mode 100644 index 000000000..703ba08a1 --- /dev/null +++ b/packages/ui/src/components/titre/remove-popup.vue @@ -0,0 +1,114 @@ +<template> + <Popup :messages="messages"> + <template #header> + <div> + <h6> + <span class="cap-first"> {{ titreNom }} </span + ><span class="color-neutral"> | </span + ><span class="cap-first"> + {{ typeNom }} + </span> + </h6> + <h2 class="cap-first">Suppression du titre</h2> + </div> + </template> + + <p class="bold"> + Souhaitez vous supprimer le titre + <span class="color-inverse">{{ titreNom }}</span> (<span + class="color-inverse" + >{{ typeNom }}</span + >) ? + </p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button class="btn-flash rnd-xs p-s full-x" @click="remove"> + Supprimer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Suppression en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoTitreRemovePopup', + + components: { + Popup + }, + + props: { + titreId: { + type: String, + default: '' + }, + + titreNom: { + type: String, + default: '' + }, + + typeNom: { + type: String, + default: '' + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async remove() { + await this.$store.dispatch('titre/remove', this.titreId) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + }, + + errorsRemove() { + // this.$store.commit('utilisateur/loginMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/titre/repertoire.vue b/packages/ui/src/components/titre/repertoire.vue new file mode 100644 index 000000000..9464de276 --- /dev/null +++ b/packages/ui/src/components/titre/repertoire.vue @@ -0,0 +1,64 @@ +<template> + <div class="tablet-blobs mb-xl"> + <div class="tablet-blob-1-2"> + <div v-if="titulaires.length" class="mb"> + <h5>Titulaire{{ titulaires.length > 1 ? 's' : '' }}</h5> + <Entreprise + v-for="titulaire in titulaires" + :key="titulaire.id" + :entreprise="titulaire" + class="mb-s" + @titre-event-track="eventTrack" + /> + </div> + <div v-if="amodiataires.length" class="mb"> + <h5>Amodiataire{{ amodiataires.length > 1 ? 's' : '' }}</h5> + <Entreprise + v-for="amodiataire in amodiataires" + :key="amodiataire.id" + :entreprise="amodiataire" + class="mb-s" + @titre-event-track="eventTrack" + /> + </div> + </div> + + <div class="tablet-blob-1-2"> + <div v-if="administrations.length" class="mb"> + <h5>Administrations</h5> + <Administration + v-for="administration in administrations" + :key="administration.id" + :administration="administration" + class="mb-s" + @titre-event-track="eventTrack" + /> + </div> + </div> + </div> +</template> + +<script> +import Entreprise from '../titre/entreprise.vue' +import Administration from '../titre/administration.vue' + +export default { + components: { Entreprise, Administration }, + + props: { + titulaires: { type: Array, default: () => [] }, + + amodiataires: { type: Array, default: () => [] }, + + administrations: { type: Array, default: () => [] } + }, + + emits: ['titre-event-track'], + + methods: { + eventTrack(event) { + this.$emit('titre-event-track', event) + } + } +} +</script> diff --git a/packages/ui/src/components/titre/statut-dot.vue b/packages/ui/src/components/titre/statut-dot.vue new file mode 100644 index 000000000..3a3df41da --- /dev/null +++ b/packages/ui/src/components/titre/statut-dot.vue @@ -0,0 +1,35 @@ +<template> + <Dot :color="colorGet(statut)" /> +</template> + +<script> +import Dot from '../_ui/dot.vue' + +export default { + components: { + Dot + }, + + props: { + statut: { + type: String, + default: 'neutral' + } + }, + + computed: { + colors() { + return this.$store.state.lib.statuts + } + }, + + methods: { + colorGet(value) { + const res = Object.keys(this.colors).find(color => + this.colors[color].find(v => v === value) + ) + return this.colors && res ? `bg-${res}` : 'bg-neutral' + } + } +} +</script> diff --git a/packages/ui/src/components/titre/territoires.vue b/packages/ui/src/components/titre/territoires.vue new file mode 100644 index 000000000..69930203a --- /dev/null +++ b/packages/ui/src/components/titre/territoires.vue @@ -0,0 +1,69 @@ +<template> + <div class="tablet-blobs mb-xl"> + <div class="tablet-blob-1-4"> + <div v-if="surface"> + <h5>Surface</h5> + <p>{{ numberFormat(surface) }} km² environ</p> + </div> + </div> + <div + v-if="(pays && pays.length) || (forets && forets.length)" + class="tablet-blob-3-4" + > + <h5>Territoires</h5> + <template v-if="pays && pays.length"> + <div v-for="region in pays[0].regions" :key="region.id"> + <div v-for="departement in region.departements" :key="departement.id"> + <h6 class="mb-s"> + {{ + pays[0].nom === 'République Française' + ? region.nom + ' / ' + departement.nom + : region.nom + }} + </h6> + <TagList :elements="departement.communes.map(c => c.nom)" /> + </div> + </div> + </template> + <div v-if="forets?.length"> + <div> + <h6 class="mb-s">Forêts</h6> + <TagList :elements="forets.map(f => f.nom)" /> + </div> + </div> + <div v-if="sdomZones?.length"> + <div> + <h6 class="mb-s">Zones du SDOM</h6> + <TagList :elements="sdomZones.map(f => f.nom)" /> + </div> + </div> + </div> + </div> +</template> + +<script> +import numberFormat from '@/utils/number-format' +import TagList from '../_ui/tag-list.vue' + +export default { + components: { + TagList + }, + + props: { + pays: { type: Array, default: () => [] }, + + forets: { type: Array, default: () => [] }, + + sdomZones: { type: Array, default: () => [] }, + + surface: { type: Number, default: 0 } + }, + + methods: { + numberFormat(number) { + return numberFormat(number) + } + } +} +</script> diff --git a/packages/ui/src/components/titres.vue b/packages/ui/src/components/titres.vue new file mode 100644 index 000000000..fc74a3cbf --- /dev/null +++ b/packages/ui/src/components/titres.vue @@ -0,0 +1,191 @@ +<template> + <div> + <div class="desktop-blobs"> + <div class="desktop-blob-2-3"> + <h1 class="mt-xs mb-m">Titres miniers et autorisations</h1> + </div> + + <div class="desktop-blob-1-3"> + <button + v-if="titresDemandeCreation" + class="btn btn-primary small flex" + @click="titreDemandeOpen" + > + <span class="mt-xxs">Demander un titre…</span> + <i class="icon-24 icon-plus flex-right" /> + </button> + </div> + </div> + + <Filtres :initialized="initialized" /> + + <div class="tablet-blobs tablet-flex-direction-reverse"> + <div class="tablet-blob-1-3 flex mb-s"> + <Downloads + v-if="titres.length" + :formats="['geojson', 'csv', 'xlsx', 'ods']" + section="titres" + class="flex-right full-x downloads" + /> + </div> + + <div class="tablet-blob-2-3 flex"> + <div + v-for="v in vues" + :key="v.id" + class="mr-xs" + :class="{ active: vueId === v.id }" + > + <button + v-if="vueId !== v.id" + class="p-m btn-tab rnd-t-s" + @click="vueClick(v.id)" + > + <i :class="`icon-${v.icon}`" class="icon-24" /> + </button> + <div v-else class="p-m span-tab rnd-t-s"> + <i :class="`icon-${v.icon}`" class="icon-24" /> + </div> + </div> + <div class="pl-m pt-m h5 bold"> + {{ resultat }} + </div> + </div> + </div> + + <div class="line-neutral width-full" /> + <template v-if="initialized"> + <Map v-if="vueId === 'carte'" :titres="titres" /> + + <Table v-else-if="vueId === 'table'" :titres="titres" :total="total" /> + </template> + <div v-else class="table-view mb-xxl mt">…</div> + </div> +</template> + +<script> +import Downloads from './_common/downloads.vue' +import Table from './titres/table-pagination.vue' +import Map from './titres/map.vue' +import Filtres from './titres/filtres.vue' + +export default { + name: 'Titres', + + components: { Filtres, Downloads, Map, Table }, + + data() { + return { + vues: [ + { id: 'carte', icon: 'globe' }, + { id: 'table', icon: 'list' } + ] + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + titres() { + return this.$store.state.titres.elements + }, + + metas() { + return { + domaines: this.$store.state.titres.metas.domaines, + types: this.$store.state.titres.metas.types, + statuts: this.$store.state.titres.metas.statuts + } + }, + + initialized() { + return this.$store.state.titres.initialized + }, + + preferences() { + return this.$store.state.titres.params + }, + + vueId() { + return this.$store.state.titres.vueId + }, + + titresCreation() { + return this.$store.state.user.metas.domaines.some(d => + d.titresTypes.some(dtt => dtt.titresCreation) + ) + }, + + titresDemandeCreation() { + return this.$store.state.user.metas.entreprisesTitresCreation.length + }, + + total() { + return this.$store.state.titres.total + }, + + resultat() { + const res = + this.total > this.titres.length + ? `${this.titres.length} / ${this.total}` + : this.titres.length + + return `${res} résultat${this.titres.length > 1 ? 's' : ''}` + }, + + loading() { + return this.$store.state.loading.includes('titres') + } + }, + + watch: { + user: 'init', + + '$route.query': { + handler: function () { + this.$store.dispatch('titres/routeUpdate') + } + } + }, + + async created() { + await this.init() + }, + + unmounted() { + this.$store.commit('titres/reset') + }, + + methods: { + async init() { + await this.$store.dispatch('titres/init') + }, + + async vueSet(vueId) { + await this.$store.dispatch('titres/vueSet', vueId) + + if (this.$matomo) { + this.$matomo.trackEvent('titres-vue', 'titres-vueId', vueId) + } + }, + + vueClick(vueId) { + if (!this.loading) { + this.vueSet(vueId) + } + }, + + titreDemandeOpen() { + this.$router.push({ name: 'titre-creation' }) + }, + + eventTrack(event) { + if (this.$matomo) { + this.$matomo.trackEvent(event.categorie, event.action, event.nom) + } + } + } +} +</script> diff --git a/packages/ui/src/components/titres/filtres.js b/packages/ui/src/components/titres/filtres.js new file mode 100644 index 000000000..54bc0d74e --- /dev/null +++ b/packages/ui/src/components/titres/filtres.js @@ -0,0 +1,78 @@ +import { markRaw } from '@vue/reactivity' + +import FiltresDomaines from '../_common/filtres/domaines.vue' +import FiltresStatuts from '../_common/filtres/statuts.vue' +import FiltresTypes from '../_common/filtres/types.vue' + +import { elementsFormat } from '../../utils/index' +import { titresFiltres, titresRechercher } from '@/api/titres' + +const filtres = [ + { + id: 'titresIds', + type: 'autocomplete', + value: [], + elements: [], + name: 'Noms', + lazy: true, + search: value => titresRechercher({ noms: value, intervalle: 100 }), + load: value => titresFiltres({ titresIds: value }) + }, + { + id: 'entreprisesIds', + type: 'autocomplete', + value: [], + name: 'Entreprises', + elementsFormat + }, + { + id: 'substancesLegalesIds', + type: 'autocomplete', + value: [], + name: 'Substances', + elementsFormat + }, + { + id: 'references', + type: 'input', + value: '', + name: 'Références', + placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …' + }, + { + id: 'territoires', + type: 'input', + value: '', + name: 'Territoires', + placeholder: 'Commune, département, région, …' + }, + { + id: 'domainesIds', + name: 'Domaines', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresDomaines), + elementsFormat + }, + { + id: 'typesIds', + name: 'Types', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresTypes), + elementsFormat + }, + { + id: 'statutsIds', + name: 'Statuts', + type: 'checkboxes', + value: [], + elements: [], + component: markRaw(FiltresStatuts), + elementsFormat + } +] + +export default filtres diff --git a/packages/ui/src/components/titres/filtres.vue b/packages/ui/src/components/titres/filtres.vue new file mode 100644 index 000000000..92e6899bb --- /dev/null +++ b/packages/ui/src/components/titres/filtres.vue @@ -0,0 +1,76 @@ +<template> + <Filtres + :filtres="filtres" + :initialized="initialized" + :metas="metas" + :params="params" + @params-update="paramsFiltresUpdate" + @toggle="filtresToggle" + /> +</template> + +<script> +import Filtres from '../_common/filtres.vue' +import filtres from './filtres.js' +import paramsEventTrack from '../../utils/matomo-tracker.js' + +export default { + components: { Filtres }, + + props: { + initialized: { type: Boolean, required: true } + }, + + data() { + return { + filtres + } + }, + + computed: { + metas() { + return this.$store.state.titres.metas + }, + + params() { + return this.$store.state.titres.params.filtres + }, + + definitions() { + return this.$store.state.titres.definitions + } + }, + + methods: { + paramsFiltresUpdate(params) { + this.$store.dispatch('titres/paramsSet', { + section: 'filtres', + params + }) + + this.$store.dispatch('titres/paramsSet', { + section: 'table', + params: { page: 1 } + }) + + this.paramsEventTrack(params) + }, + + paramsEventTrack(params) { + paramsEventTrack( + params, + this.definitions, + this.$matomo, + 'titres', + 'filtres' + ) + }, + + filtresToggle(opened) { + if (opened) { + this.paramsEventTrack() + } + } + } +} +</script> diff --git a/packages/ui/src/components/titres/map.js b/packages/ui/src/components/titres/map.js new file mode 100644 index 000000000..8fcec645f --- /dev/null +++ b/packages/ui/src/components/titres/map.js @@ -0,0 +1,170 @@ +import { + leafletMarkerClusterGroupBuild, + leafletCoordinatesFind, + leafletGeojsonCenterFind, + leafletGeojsonBuild, + leafletMarkerBuild, + leafletIconBuild +} from '../_map/leaflet.js' + +const zones = [ + { + id: 'fr', + name: 'Métropole', + type: 'LineString', + coordinates: [ + [-5, 41], + [10, 51] + ] + }, + { + id: 'gf', + name: 'Guyane', + type: 'LineString', + coordinates: [ + [-55, 6], + [-51, 2] + ] + }, + { + id: 'oi', + name: 'Océan Indien', + type: 'LineString', + coordinates: [ + [39, -23], + [58, -13] + ] + }, + { + id: 'an', + name: 'Antilles', + type: 'LineString', + coordinates: [ + [-64, 15], + [-59, 16] + ] + } +] + +const clustersBuild = domaines => + domaines.reduce((clusters, { id }) => { + const divIconOptions = { + html: id.toUpperCase(), + className: `py-xs px-s pill small mono color-bg bold bg-domaine-${id}`, + iconSize: null, + iconAnchor: [0, 0] + } + + clusters[id] = leafletMarkerClusterGroupBuild(divIconOptions) + + return clusters + }, {}) + +const domainesColors = { + c: '#b88847', + f: '#4a515d', + g: '#c94f17', + h: '#c2266a', + i: '#aaaaaa', + m: '#376faa', + r: '#a0aa31', + s: '#7657b5', + w: '#1ea88c' +} + +const iconUrlFind = domaineId => { + const iconSvg = `<svg width="32" height="40" xmlns="http://www.w3.org/2000/svg"><style>text {font-family:'Lucida Sans Typewriter', monaco, 'Lucida Console', monospace; font-weight:700;}</style><polygon points="16,40 24,30 8,30" fill="white" /><ellipse ry="16" rx="16" cy="16" cx="16" stroke-width="1" stroke="white" fill="${ + domainesColors[domaineId] + }"/><text xml:space="preserve" text-anchor="middle" font-size="13" y="21" x="16" fill="white">${domaineId.toUpperCase()}</text></svg>` + + return 'data:image/svg+xml;base64,' + btoa(iconSvg) +} + +const layersBuild = (titres, router) => + titres.reduce( + ({ geojsons, markers }, titre, index) => { + if (!titre.geojsonMultiPolygon && !titre.geojsonCentre) + return { geojsons, markers } + + const titreId = titre.id || index + const domaineId = titre.domaine.id + const icon = leafletIconBuild({ + iconUrl: iconUrlFind(domaineId), + iconSize: [32, 40], + iconAnchor: [16, 40] + }) + + const latLng = titre.geojsonCentre + ? leafletCoordinatesFind(titre.geojsonCentre) + : leafletGeojsonCenterFind(titre.geojsonMultiPolygon) + + const marker = leafletMarkerBuild(latLng, icon) + + const popupHtmlTitulaires = + titre.titulaires && titre.titulaires.length + ? titre.titulaires.map(tt => `<li>${tt.nom}</li>`).join('') + : '' + + const popupHtml = `<h4 class="mb-s">${ + titre.nom ? titre.nom : '' + }</h4><div class="mb-m"><span class="rnd py-xxs px-s cap-first mb-0 bold color-bg h6 bg-${ + titre.statut.couleur + }">${ + titre.statut.nom + }</span></div><ul class="list-prefix h6">${popupHtmlTitulaires}</ul>` + + const popupOptions = { + closeButton: false, + offset: [0, -24], + autoPan: false + } + + const titreRoute = titre.slug + ? { name: 'titre', params: { id: titre.slug } } + : null + + const methods = { + click() { + if (titreRoute) { + router.push(titreRoute) + } + }, + mouseover(e) { + this.openPopup() + }, + mouseout(e) { + this.closePopup() + } + } + + marker.id = titreId + marker.domaineId = domaineId + marker.bindPopup(popupHtml, popupOptions) + marker.on(methods) + + const className = `svg-fill-pattern-${titre.type.type.id}-${domaineId}` + const geojsonOptions = { + style: { fillOpacity: 0.75, weight: 1, color: 'white', className }, + onEachFeature: (feature, layer) => { + layer.bindPopup(popupHtml, popupOptions) + layer.on(methods) + } + } + + const geojson = leafletGeojsonBuild( + titre.geojsonMultiPolygon, + geojsonOptions + ) + + if (marker) { + markers.push(marker) + } + + geojsons[titreId] = geojson + + return { geojsons, markers } + }, + { geojsons: {}, markers: [] } + ) + +export { zones, clustersBuild, layersBuild } diff --git a/packages/ui/src/components/titres/map.vue b/packages/ui/src/components/titres/map.vue new file mode 100644 index 000000000..fde9d3f81 --- /dev/null +++ b/packages/ui/src/components/titres/map.vue @@ -0,0 +1,320 @@ +<template> + <div class="width-full bg-alt"> + <Mapo + ref="map" + :tiles-layer="tilesLayer" + :geojson-layers="geojsonLayers" + :marker-layers="markerLayers" + :canvas-markers="canvasMarkers" + :legends="legends" + class="map map-view mb-s" + @map-update="titresPreferencesUpdate" + /> + + <MapPattern :domaines-ids="domainesIds" :types-ids="typesIds" /> + + <MapWarningBrgm :zoom="preferences.zoom" :tiles-id="tilesId" /> + + <div class="container overflow-auto"> + <div class="desktop-blobs"> + <div class="desktop-blob-1-2 desktop-flex"> + <div class="mb-s"> + <span class="mr-s"> + <button + class="btn-border small rnd-m px-s py-xs" + @click="mapFrame" + > + Tout afficher + </button> + </span> + </div> + <ul class="list-inline pill-list mb-s"> + <li v-for="z in zones" :key="z.id" class="mr-px mb-px"> + <button + class="btn-border small pill-item px-s py-xs" + @click="mapCenter(z.id)" + > + {{ z.name }} + </button> + </li> + </ul> + </div> + + <div class="desktop-blob-1-2 desktop-flex"> + <div class="flex mb-s"> + <div :class="{ active: markerLayersId === 'clusters' }"> + <button + class="btn-border p-s rnd-l-s" + title="regroupe les marqueurs" + @click="markerLayersIdSet('clusters')" + > + <i class="icon-24 icon-markers-clusters" /> + </button> + </div> + <div :class="{ active: markerLayersId === 'markers' }"> + <button + class="btn-border p-s" + title="affiche les marqueurs" + @click="markerLayersIdSet('markers')" + > + <i class="icon-24 icon-markers-markers" /> + </button> + </div> + <div :class="{ active: markerLayersId === 'none' }" class="mr-s"> + <button + class="btn-border p-s rnd-r-s" + title="affiche les contours uniquement" + @click="markerLayersIdSet('none')" + > + <i class="icon-24 icon-markers-none" /> + </button> + </div> + </div> + + <MapTilesSelector + :tiles="tiles" + :tiles-id="tilesId" + class="flex-grow mb-s" + @params-update="userPreferencesUpdate" + /> + </div> + </div> + </div> + </div> +</template> + +<script> +import { nextTick } from 'vue' +import Mapo from '../_map/index.vue' +import MapTilesSelector from '../_map/tiles-selector.vue' +import MapWarningBrgm from '../_map/warning-brgm.vue' +import MapPattern from '../_map/pattern.vue' +import { + leafletGeojsonBoundsGet, + leafletTilesBuild, + leafletTilesLegendGet +} from '../_map/leaflet.js' +import { clustersBuild, layersBuild, zones } from './map.js' + +export default { + components: { + MapWarningBrgm, + Mapo, + MapTilesSelector, + MapPattern + }, + + props: { + titres: { type: Array, required: true } + }, + + data() { + return { + zones, + zoneId: 'fr', + geojsons: {}, + clusters: [], + markers: [], + geojsonLayers: [] + } + }, + + computed: { + tilesActive() { + return this.$store.getters['user/tilesActive'] + }, + tilesLayer() { + return leafletTilesBuild(this.tilesActive) + }, + legends() { + return leafletTilesLegendGet(this.tilesActive) + }, + markerLayersId() { + return this.$store.state.user.preferences.carte.markerLayersId + }, + + markerLayers() { + if (this.markerLayersId === 'clusters') { + return this.clusters + } + + return [] + }, + + canvasMarkers() { + if (this.markerLayersId === 'markers') { + return this.markers + } + + return [] + }, + + zone() { + return this.zones.find(z => z.id === this.zoneId) + }, + + bounds() { + return leafletGeojsonBoundsGet(this.zone) + }, + + domaines() { + return this.$store.state.titres.metas.domaines + }, + + domainesIds() { + return this.domaines.map(({ id }) => id) + }, + + typesIds() { + return this.$store.state.titres.metas.types.map(({ id }) => id) + }, + + tiles() { + return this.$store.state.user.metas.tiles + }, + + tilesId() { + return this.$store.state.user.preferences.carte.tilesId + }, + + preferences() { + return this.$store.state.titres.params.carte + } + }, + + watch: { + titres: 'titresInit' + }, + + mounted() { + this.init() + }, + + created() { + window.addEventListener('popstate', this.popState) + }, + + beforeUnmount() { + window.removeEventListener('popstate', this.popState) + }, + + methods: { + init() { + if (this.preferences.zoom && this.preferences.centre) { + this.positionSet() + } else { + this.boundsFit() + } + }, + + titresInit() { + const { geojsons, markers } = layersBuild(this.titres, this.$router) + const clusters = clustersBuild(this.domaines) + this.geojsons = geojsons + this.markers = markers + this.markers.forEach(marker => { + if (clusters[marker.domaineId]) { + clusters[marker.domaineId].addLayer(marker) + } + }) + + this.clusters = Object.keys(clusters).map( + domaineId => clusters[domaineId] + ) + + this.geojsonLayersDisplay() + }, + + titresPreferencesUpdate(params) { + if (params.center || params.zoom || params.bbox) { + if (params.center) { + params.centre = params.center + + delete params.center + } + + if (params.bbox) { + params.perimetre = params.bbox + + delete params.bbox + } + + this.$store.dispatch('titres/paramsSet', { + section: 'carte', + params + }) + } + }, + + userPreferencesUpdate(params) { + this.eventTrack() + this.$store.dispatch('user/preferencesSet', { + section: 'carte', + params + }) + }, + + mapCenter(zoneId) { + if (this.zoneId !== zoneId) { + this.zoneId = zoneId + } + + this.boundsFit() + }, + + async mapFrame() { + const params = { perimetre: [-180, -90, 180, 90] } + + await this.$store.dispatch('titres/paramsSet', { + section: 'carte', + params + }) + + if (this.$refs.map) { + // le traitement au dessus peut-être très long et l’utilisateur a pu changer de page + this.$refs.map.allFit() + } + }, + + boundsFit() { + this.$refs.map.boundsFit(this.bounds) + }, + + positionSet() { + const zoom = this.preferences.zoom + const center = this.preferences.centre + this.$refs.map.positionSet({ zoom, center }) + }, + + popState() { + this.positionSet() + }, + + geojsonLayersDisplay() { + nextTick(() => { + this.geojsonLayers = [] + this.markers.forEach(marker => { + if ( + this.markerLayersId !== 'clusters' || + (this.$refs.map && this.$refs.map.hasLayer(marker)) + ) { + this.geojsonLayers.push(this.geojsons[marker.id]) + } + }) + }) + }, + + markerLayersIdSet(markerLayersId) { + this.userPreferencesUpdate({ markerLayersId }) + + this.geojsonLayersDisplay() + }, + + eventTrack() { + if (this.$matomo) { + this.$matomo.trackEvent('titres-vue', 'titre-id-fond-carte') + } + } + } +} +</script> diff --git a/packages/ui/src/components/titres/table-pagination.vue b/packages/ui/src/components/titres/table-pagination.vue new file mode 100644 index 000000000..decce6b69 --- /dev/null +++ b/packages/ui/src/components/titres/table-pagination.vue @@ -0,0 +1,88 @@ +<template> + <Table + :column="preferences.colonne" + :columns="colonnes" + :order="preferences.ordre" + :page="preferences.page" + :range="preferences.intervalle" + :rows="lignes" + :total="total" + @params-update="preferencesUpdate" + /> +</template> + +<script> +import Table from '../_ui/table-pagination.vue' + +import { titresColonnes, titresLignesBuild } from './table.js' + +export default { + name: 'Titres', + + components: { Table }, + + props: { + titres: { type: Array, required: true }, + total: { type: Number, required: true } + }, + + computed: { + preferences() { + return this.$store.state.titres.params.table + }, + + activitesCol() { + const user = this.$store.state.user.element + + return user && user.sections.activites + }, + + colonnes() { + return titresColonnes.filter(({ id }) => + this.activitesCol ? true : id !== 'activites' + ) + }, + + lignes() { + return titresLignesBuild(this.titres, this.activitesCol) + }, + + pages() { + const pages = Math.ceil(this.lignes.length / this.preferences.intervalle) + return pages || 0 + } + }, + + methods: { + preferencesUpdate(params) { + if (params.range) { + params.intervalle = params.range + delete params.range + } + + if (params.column) { + params.colonne = params.column + delete params.column + } + + if (params.order) { + params.ordre = params.order + delete params.order + } + + this.$store.dispatch('titres/paramsSet', { + section: 'table', + params + }) + }, + + pageUpdate(page) { + this.preferencesUpdate({ page }) + }, + + intervalleUpdate(range) { + this.preferencesUpdate({ range, page: 1 }) + } + } +} +</script> diff --git a/packages/ui/src/components/titres/table.js b/packages/ui/src/components/titres/table.js new file mode 100644 index 000000000..6509eec3e --- /dev/null +++ b/packages/ui/src/components/titres/table.js @@ -0,0 +1,172 @@ +import { markRaw } from '@vue/reactivity' +import TagList from '../_ui/tag-list.vue' +import List from '../_ui/list.vue' +import CaminoDomaine from '../_common/domaine.vue' +import TitreNom from '../_common/titre-nom.vue' +import TitreTypeTypeNom from '../_common/titre-type-type-nom.vue' +import CoordonneesIcone from '../_common/coordonnees-icone.vue' +import ActivitesPills from '../activites/pills.vue' +import Statut from '../_common/statut.vue' + +const titresColonnes = [ + { + id: 'nom', + name: 'Nom', + class: ['min-width-8'] + }, + { + id: 'domaine', + name: '' + }, + { + id: 'type', + name: 'Type', + class: ['min-width-8'] + }, + { + id: 'statut', + name: 'Statut', + class: ['nowrap', 'min-width-5'] + }, + { + id: 'activites', + name: 'Activités', + class: ['min-width-5'] + }, + { + id: 'substances', + name: 'Substances', + class: ['min-width-6'] + }, + { + id: 'coordonnees', + name: 'Carte' + }, + { + id: 'titulaires', + name: 'Titulaires', + class: ['min-width-10'] + }, + { + id: 'regions', + name: 'Régions', + class: ['min-width-8'] + }, + { + id: 'departements', + name: 'Départements', + class: ['min-width-8'] + }, + { + id: 'references', + name: 'Références', + class: ['min-width-8'] + } +] + +const titresLignesBuild = (titres, activitesCol, ordre = 'asc') => + titres.map(titre => { + const columns = { + nom: { + component: markRaw(TitreNom), + props: { nom: titre.nom }, + value: titre.nom + }, + domaine: { + component: markRaw(CaminoDomaine), + props: { domaineId: titre.domaine.id }, + value: titre.domaine.id + }, + coordonnees: { + component: markRaw(CoordonneesIcone), + props: { coordonnees: titre.coordonnees }, + value: titre.coordonnees ? '·' : '' + }, + type: { + component: markRaw(TitreTypeTypeNom), + props: { nom: titre.type.type.nom }, + value: titre.type.type.nom + }, + statut: { + component: markRaw(Statut), + props: { + color: titre.statut.couleur, + nom: titre.statut.nom + }, + value: titre.statut.nom + }, + substances: { + component: markRaw(TagList), + props: { elements: titre.substances?.map(s => s.nom) }, + class: 'mb--xs', + value: titre.substances?.map(s => s.nom).join(', ') + }, + titulaires: { + component: markRaw(List), + props: { + elements: titre.titulaires?.map(({ nom }) => nom), + mini: true + }, + class: 'mb--xs', + value: titre.titulaires?.map(({ nom }) => nom).join(', ') + }, + regions: { + component: markRaw(List), + props: { + elements: titre.pays?.reduce( + (acc, pay) => acc.concat(pay.regions?.map(({ nom }) => nom)), + [] + ), + mini: true + }, + class: 'mb--xs' + }, + departements: { + component: markRaw(List), + props: { + elements: titre.pays?.reduce( + (pays, pay) => + pays.concat( + pay.regions?.reduce( + (regions, region) => + regions.concat(region.departements?.map(({ nom }) => nom)), + [] + ) + ), + [] + ), + mini: true + }, + class: 'mb--xs' + }, + references: { + component: List, + props: { + elements: titre.references?.map( + ref => `${ref.type.nom} : ${ref.nom}` + ), + mini: true + }, + class: 'mb--xs' + } + } + + if (activitesCol) { + columns.activites = { + component: markRaw(ActivitesPills), + props: { + activitesAbsentes: titre.activitesAbsentes, + activitesEnConstruction: titre.activitesEnConstruction + }, + value: titre.activitesAbsentes + titre.activitesEnConstruction + } + } + + return { + id: titre.id, + link: { name: 'titre', params: { id: titre.slug } }, + columns + } + }) + +export { titresColonnes, titresLignesBuild } diff --git a/packages/ui/src/components/titres/table.vue b/packages/ui/src/components/titres/table.vue new file mode 100644 index 000000000..44d6d404f --- /dev/null +++ b/packages/ui/src/components/titres/table.vue @@ -0,0 +1,85 @@ +<template> + <Tablo + :column="preferences.colonne" + :columns="colonnes" + :order="preferences.ordre" + :rows="lignes" + class="width-full-p" + @params-update="preferencesUpdate" + /> +</template> + +<script> +import Tablo from '../_ui/table.vue' + +import { titresColonnes, titresLignesBuild } from './table.js' + +export default { + name: 'Titres', + + components: { Tablo }, + + props: { + titres: { type: Array, required: true } + }, + + computed: { + preferences() { + return this.$store.state.titres.params.table + }, + + activitesCol() { + const user = this.$store.state.user.element + + return user && user.sections.activites + }, + + colonnes() { + return titresColonnes.filter(({ id }) => + this.activitesCol ? true : id !== 'activites' + ) + }, + + lignes() { + return titresLignesBuild(this.titres, this.activitesCol) + }, + + pages() { + const pages = Math.ceil(this.lignes.length / this.preferences.intervalle) + return pages || 0 + } + }, + + methods: { + preferencesUpdate(params) { + if (params.range) { + params.intervalle = params.range + delete params.range + } + + if (params.column) { + params.colonne = params.column + delete params.column + } + + if (params.order) { + params.ordre = params.order + delete params.order + } + + this.$store.dispatch('titres/paramsSet', { + section: 'table', + params + }) + }, + + pageUpdate(page) { + this.preferencesUpdate({ page }) + }, + + intervalleUpdate(range) { + this.preferencesUpdate({ range, page: 1 }) + } + } +} +</script> diff --git a/packages/ui/src/components/travaux.vue b/packages/ui/src/components/travaux.vue new file mode 100644 index 000000000..f067d4407 --- /dev/null +++ b/packages/ui/src/components/travaux.vue @@ -0,0 +1,13 @@ +<template> + <Page :travaux="true"></Page> +</template> + +<script> +import Page from './demarches/page.vue' + +export default { + name: 'Travaux', + + components: { Page } +} +</script> diff --git a/packages/ui/src/components/user/__snapshots__/pure-button.stories.storyshot b/packages/ui/src/components/user/__snapshots__/pure-button.stories.storyshot new file mode 100644 index 000000000..4f2f087ca --- /dev/null +++ b/packages/ui/src/components/user/__snapshots__/pure-button.stories.storyshot @@ -0,0 +1,28 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Automated Storybook Snapshots Components/User/Button Connected 1`] = ` +<div + class="flex" +> + <button + aria-label="profil utilisateur" + class="btn-menu text-decoration-none bold p-0" + id="cmn-user-button-menu" + > + prenom Nom + </button> +</div> +`; + +exports[`Automated Storybook Snapshots Components/User/Button Not Connected 1`] = ` +<div + class="flex" +> + <button + class="btn btn-primary small lh-2" + id="cmn-user-button-connexion" + > + Connexion + </button> +</div> +`; diff --git a/packages/ui/src/components/user/add-popup.vue b/packages/ui/src/components/user/add-popup.vue new file mode 100644 index 000000000..7edc954df --- /dev/null +++ b/packages/ui/src/components/user/add-popup.vue @@ -0,0 +1,112 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Création d'un compte utilisateur</h2> + </template> + + <div> + <p>Renseignez votre email pour créer votre compte.</p> + <hr /> + </div> + + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Email</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + id="cmn-user-add-popup-input-email" + v-model="email" + type="email" + class="p-s" + placeholder="Email" + /> + </div> + </div> + + <template #footer> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + id="cmn-user-add-popup-button-valider" + :disabled="!complete" + :class="{ disabled: !complete }" + class="btn-flash rnd-xs p-s full-x" + @click="save" + > + Valider + </button> + </div> + </div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' +import emailValidator from 'email-validator' + +export default { + name: 'CaminoUserAccountCreatePopup', + + components: { + Popup + }, + + data() { + return { + email: '' + } + }, + + computed: { + messages() { + return this.$store.state.popup.messages + }, + + complete() { + return emailValidator.validate(this.email) + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + save() { + if (this.complete) { + this.$store.dispatch('user/addEmail', this.email) + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.save() + } + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/user/add.vue b/packages/ui/src/components/user/add.vue new file mode 100644 index 000000000..fa51a73e6 --- /dev/null +++ b/packages/ui/src/components/user/add.vue @@ -0,0 +1,207 @@ +<template> + <div class="mb-xxl"> + <h2>Création de compte</h2> + + <hr /> + + <p>Renseignez au moins le mot de passe, le prénom et le nom.</p> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Email</h5> + </div> + <div class="mb tablet-blob-2-3"> + <div class="py-s mb-xs"> + {{ utilisateur.email }} + </div> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Mot de passe</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + id="cmn-user-add-input-mot-de-passe" + v-model="utilisateur.motDePasse" + type="password" + class="p-s mb-s" + placeholder="Mot de passe" + /> + <p class="h6 mb-0">8 caractères minimum.</p> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Prénom</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + id="cmn-user-add-input-prenom" + v-model="utilisateur.prenom" + type="text" + class="p-s" + placeholder="Prénom" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nom</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + id="cmn-user-add-input-nom" + v-model="utilisateur.nom" + type="text" + class="p-s" + placeholder="Nom" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Téléphone fixe</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.telephoneFixe" + type="text" + class="p-s" + placeholder="01…" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Téléphone mobile</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.telephoneMobile" + type="text" + class="p-s" + placeholder="06…" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Newsletter</h5> + </div> + <div class="mb tablet-blob-2-3"> + <label class="tablet-pt-s"> + <input + v-model="utilisateur.newsletter" + type="checkbox" + class="p-s mt-s mb-s mr-xs" + /> + <span v-if="utilisateur.newsletter">Inscrit</span> + </label> + </div> + </div> + + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s" /> + <div class="mb tablet-blob-2-3"> + <input id="cmn-user-add-checkbox-cgu" v-model="cgu" type="checkbox" /> + Vous avez lu et vous acceptez les + <a href="/cgu" target="_blank" rel="noopener noreferrer"> + conditions générales d'utilisation </a + >. + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3" /> + <div class="tablet-blob-2-3"> + <button + id="cmn-user-add-button-enregistrer" + ref="save-button" + :disabled="!complete" + :class="{ disabled: !complete }" + class="btn btn-primary" + @click="save" + > + Enregistrer + </button> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'CaminoUserAdd', + + data() { + return { + utilisateur: { email: this.$route.query.email }, + cgu: false + } + }, + + computed: { + complete() { + return ( + this.utilisateur.nom && + this.utilisateur.prenom && + this.utilisateur.email && + this.utilisateur.motDePasse && + this.cgu + ) + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + if (this.complete) { + if (!this.utilisateur.permissionId) { + this.utilisateur.permissionId = 'defaut' + } + + await this.$store.dispatch('user/add', { + utilisateur: this.utilisateur, + token: this.$route.query.token + }) + } + }, + + keyup(e) { + if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + } + } +} +</script> diff --git a/packages/ui/src/components/user/button.vue b/packages/ui/src/components/user/button.vue new file mode 100644 index 000000000..ba88db0e0 --- /dev/null +++ b/packages/ui/src/components/user/button.vue @@ -0,0 +1,41 @@ +<template> + <pure-button + :menu-active="menu.component && menu.component.name === 'UserMenu'" + :user="user" + @onConnectionClicked="popupOpen" + @onUserClicked="goToUser" + /> +</template> + +<script> +import UserLoginPopup from './login-popup.vue' +import PureButton from './pure-button.vue' + +export default { + components: { PureButton }, + + computed: { + user() { + return this.$store.state.user.element + }, + menu() { + return this.$store.state.menu + } + }, + + methods: { + popupOpen() { + this.$store.commit('popupOpen', { component: UserLoginPopup }) + }, + goToUser() { + this.eventTrack() + this.$router.push({ name: 'utilisateur', params: { id: this.user.id } }) + }, + eventTrack() { + if (this.$matomo) { + this.$matomo.trackEvent('menu', 'bouton', 'utilisateur') + } + } + } +} +</script> diff --git a/packages/ui/src/components/user/login-popup.vue b/packages/ui/src/components/user/login-popup.vue new file mode 100644 index 000000000..1cffa9b5b --- /dev/null +++ b/packages/ui/src/components/user/login-popup.vue @@ -0,0 +1,196 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Connexion</h2> + </template> + + <div class="tablet-blobs mb"> + <label for="cmn-user-login-popup-input-email" class="tablet-blob-1-3 py-s" + >Email</label + > + <div class="tablet-blob-2-3"> + <input + id="cmn-user-login-popup-input-email" + v-model="email" + type="email" + class="p-s" + /> + </div> + </div> + <div class="tablet-blobs mb"> + <label + for="cmn-user-login-popup-input-mot-de-passe" + class="tablet-blob-1-3 py-s" + >Mot de passe</label + > + <div class="tablet-blob-2-3"> + <input + id="cmn-user-login-popup-input-mot-de-passe" + v-model="motDePasse" + type="password" + class="p-s" + /> + </div> + </div> + + <template #footer> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + id="cmn-user-login-popup-button-se-connecter" + :disabled="!complete" + :class="{ disabled: !complete }" + class="btn btn-primary mb" + @click="login" + > + Se connecter + </button> + </div> + </div> + <ul class="list-inline mb-0"> + <li> + <button + id="cmn-user-cerbere-login-popup-button-creer-votre-compte" + class="btn-border small rnd-xs py-xs px-s mr-s mb-s tablet-mb-0" + @click="userAddPopupOpen" + > + Créer un compte… + </button> + </li> + <li> + <button + id="cmn-user-login-popup-button-reinitialiser" + class="btn-border small rnd-xs py-xs px-s mr-s mb-s tablet-mb-0" + @click="userPasswordInitPopupOpen" + > + Réinitialiser son mot de passe… + </button> + </li> + + <li> + <button + id="cmn-user-login-popup-button-reinitialiser" + class="btn-border small rnd-xs py-xs px-s mr-s" + @click="cerbereLogin" + > + Se connecter avec Cerbère… + </button> + </li> + </ul> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' +import UserAdd from './add-popup.vue' +import UserPasswordInitPopup from './password-init-popup.vue' + +export default { + name: 'UiPopupLogin', + + components: { + Popup + }, + + data() { + return { + email: '', + motDePasse: '' + } + }, + + computed: { + messages() { + return this.$store.state.popup.messages + }, + + complete() { + return !!this.email && !!this.motDePasse + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async login() { + if (this.complete) { + await this.$store.dispatch('user/login', { + email: this.email, + motDePasse: this.motDePasse + }) + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.login() + } + } + }, + + userAddPopupOpen() { + this.$store.commit('popupOpen', { + component: UserAdd + }) + }, + + userPasswordInitPopupOpen() { + this.$store.commit('popupOpen', { + component: UserPasswordInitPopup + }) + }, + + async cerbereLogin() { + const query = { ...this.$route.query } + + if ( + query.ticket || + !query.authentification || + query.authentification !== 'cerbere' || + query.TARGET + ) { + delete query.ticket + delete query.authentification + delete query.TARGET + + query.authentification = 'cerbere' + + await this.$router.replace({ query }) + } + + const currentUrlEncoded = encodeURIComponent(window.location.href) + + const redirectUrl = await this.$store.dispatch( + 'user/cerbereUrlGet', + currentUrlEncoded + ) + + window.location.href = redirectUrl + } + } +} +</script> diff --git a/packages/ui/src/components/user/password-init-popup.vue b/packages/ui/src/components/user/password-init-popup.vue new file mode 100644 index 000000000..d3d4b9e7a --- /dev/null +++ b/packages/ui/src/components/user/password-init-popup.vue @@ -0,0 +1,102 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Réinitialisation du mot de passe</h2> + </template> + + <p> + Pour réinitialiser votre mot de passe, renseignez votre adresse email. + </p> + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Email</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input v-model="email" type="email" class="p-s" placeholder="Email" /> + </div> + </div> + + <template #footer> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + class="btn-flash rnd-xs p-s full-x" + :disabled="!complete" + :class="{ disabled: !complete }" + @click="save" + > + Envoyer + </button> + </div> + </div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoUtilisateurPasswordInitPopup', + + components: { + Popup + }, + + data() { + return { + email: '' + } + }, + + computed: { + complete() { + return !!this.email + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + if (this.complete) { + await this.$store.dispatch('user/passwordInitEmail', this.email) + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.save() + } + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/user/password-init.vue b/packages/ui/src/components/user/password-init.vue new file mode 100644 index 000000000..ca93ce5c0 --- /dev/null +++ b/packages/ui/src/components/user/password-init.vue @@ -0,0 +1,99 @@ +<template> + <div class="mb-xxl"> + <h2>Initialisation du mot de passe</h2> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nouveau mot de passe</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="motDePasse1" + type="password" + class="p-s mb-s" + placeholder="Mot de passe" + /> + <p class="h6 mb-0">8 caractères minimum.</p> + </div> + </div> + <hr /> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nouveau mot de passe (vérification)</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="motDePasse2" + type="password" + class="p-s" + placeholder="Mot de passe" + /> + </div> + </div> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3" /> + <div class="tablet-blob-2-3"> + <button + ref="save-button" + class="btn btn-primary" + :disabled="!complete" + :class="{ disabled: !complete }" + @click="save" + > + Enregistrer + </button> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'CaminoUserPassordInit', + + data() { + return { + motDePasse1: '', + motDePasse2: '' + } + }, + + computed: { + complete() { + return this.motDePasse1 && this.motDePasse2 + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + save() { + if (this.complete) { + this.$store.dispatch('user/passwordInit', { + motDePasse1: this.motDePasse1, + motDePasse2: this.motDePasse2, + token: this.$route.query.token + }) + } + }, + + keyup(e) { + if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + } + } +} +</script> diff --git a/packages/ui/src/components/user/pure-button.stories.ts b/packages/ui/src/components/user/pure-button.stories.ts new file mode 100644 index 000000000..aed3cef59 --- /dev/null +++ b/packages/ui/src/components/user/pure-button.stories.ts @@ -0,0 +1,42 @@ +import PureButton from './pure-button.vue' +import { action } from '@storybook/addon-actions' +import { User } from '@/components/user/user' +import { Story } from '@storybook/vue3' +export default { + title: 'Components/User/Button', + component: PureButton, + argTypes: { + user: Object, + menuActive: Boolean + } +} +type Props = { + user: User + menuActive: boolean +} +const Template: Story<Props> = (args: Props) => ({ + components: { PureButton }, + setup() { + return { args } + }, + template: + '<PureButton @onConnectionClicked="onConnectionClicked" @onUserClicked="onUserClicked" v-bind="args" />', + methods: { + onConnectionClicked: action('onConnectionClicked'), + onUserClicked: action('onUserClicked') + } +}) + +export const NotConnected = Template.bind({}) +NotConnected.args = { + menuActive: false +} +const user: User = { + nom: 'Nom', + prenom: 'prenom' +} +export const Connected = Template.bind({}) +Connected.args = { + user: user, + menuActive: false +} diff --git a/packages/ui/src/components/user/pure-button.vue b/packages/ui/src/components/user/pure-button.vue new file mode 100644 index 000000000..933dd5984 --- /dev/null +++ b/packages/ui/src/components/user/pure-button.vue @@ -0,0 +1,35 @@ +<template> + <div :class="{ active: menuActive }" class="flex"> + <button + v-if="user" + id="cmn-user-button-menu" + class="btn-menu text-decoration-none bold p-0" + aria-label="profil utilisateur" + @click="$emit('onUserClicked')" + > + {{ user.prenom || '–' }} {{ user.nom || '–' }} + </button> + <button + v-else + id="cmn-user-button-connexion" + class="btn btn-primary small lh-2" + @click="$emit('onConnectionClicked')" + > + Connexion + </button> + </div> +</template> + +<script setup lang="ts"> +import { User } from '@/components/user/user' + +defineProps<{ + user?: User + menuActive: boolean +}>() + +defineEmits<{ + (e: 'onConnectionClicked'): void + (e: 'onUserClicked'): void +}>() +</script> diff --git a/packages/ui/src/components/user/user.ts b/packages/ui/src/components/user/user.ts new file mode 100644 index 000000000..a15b0f604 --- /dev/null +++ b/packages/ui/src/components/user/user.ts @@ -0,0 +1,4 @@ +export interface User { + nom: string + prenom: string +} diff --git a/packages/ui/src/components/utilisateur.vue b/packages/ui/src/components/utilisateur.vue new file mode 100644 index 000000000..48177b361 --- /dev/null +++ b/packages/ui/src/components/utilisateur.vue @@ -0,0 +1,309 @@ +<template> + <div v-if="!loaded"> + <Loader /> + </div> + <div v-else> + <h5>Utilisateur</h5> + <div class="flex"> + <h1> + {{ + utilisateur + ? `${utilisateur.prenom || '–'} ${utilisateur.nom || '–'}` + : '–' + }} + </h1> + + <button + v-if="user && user.id === utilisateur.id" + id="cmn-user-menu-button-deconnexion" + class="btn-menu text-decoration-none bold p-0 flex-right" + @click="logout" + > + Déconnexion + </button> + </div> + + <Accordion class="mb" :slot-sub="true" :slot-buttons="true"> + <template #title> + <span class="cap-first"> Profil </span> + </template> + + <template v-if="utilisateur.modification" #buttons> + <button + v-if=" + (user && user.id === utilisateur.id) || + permissionsCheck(user, 'super') + " + id="cmn-utilisateur-button-password-popup" + class="btn-alt py-s px-m" + title="changer de mot de passe" + @click="passwordPopupOpen" + > + <i class="icon-24 icon-key" /> + </button> + + <button + v-if="user && user.id === utilisateur.id" + id="cmn-utilisateur-button-email-popup" + class="btn-alt py-s px-m" + title="changer d'email" + @click="emailPopupOpen" + > + <i class="icon-24 icon-at" /> + </button> + + <button + id="cmn-utilisateur-button-popup-editer" + class="btn-alt py-s px-m" + title="modifier le compte utilisateur" + @click="editPopupOpen" + > + <i class="icon-24 icon-pencil" /> + </button> + + <button + id="cmn-utilisateur-button-popup-supprimer" + class="btn-alt py-s px-m" + title="supprimer le compte utilisateur" + @click="removePopupOpen" + > + <i class="icon-24 icon-trash" /> + </button> + </template> + + <template #sub> + <div class="px-m pt-m"> + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Prénom</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ utilisateur.prenom || '–' }}</p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Nom</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ utilisateur.nom || '–' }}</p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Email</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ utilisateur.email || '–' }}</p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Téléphone fixe</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ utilisateur.telephoneFixe || '–' }}</p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Téléphone mobile</h5> + </div> + <div class="tablet-blob-3-4"> + <p>{{ utilisateur.telephoneMobile || '–' }}</p> + </div> + </div> + + <div v-if="utilisateur.permissionModification" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Permissions</h5> + </div> + <div class="tablet-blob-3-4"> + <Pill v-if="utilisateur.permission" class="mb"> + {{ utilisateur.permission.nom }} + </Pill> + <p v-else>–</p> + </div> + </div> + + <div class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Newsletter</h5> + </div> + <div class="tablet-blob-3-4"> + <p v-if="utilisateur.newsletter">Inscrit</p> + <p v-else>–</p> + </div> + </div> + + <div v-if="utilisateur.entreprises.length" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5> + Entreprise{{ utilisateur.entreprises.length > 1 ? 's' : '' }} + </h5> + </div> + + <div class="tablet-blob-3-4"> + <ul class="list-inline"> + <li + v-for="e in utilisateur.entreprises" + :key="e.id" + class="mb-xs" + > + <router-link + :to="{ name: 'entreprise', params: { id: e.id } }" + class="btn-border small p-s rnd-xs mr-xs" + tag="button" + > + {{ e.legalSiren ? `${e.nom} (${e.legalSiren})` : e.nom }} + </router-link> + </li> + </ul> + </div> + </div> + + <div v-if="utilisateur.administrations.length" class="tablet-blobs"> + <div class="tablet-blob-1-4"> + <h5>Administration</h5> + </div> + + <div class="tablet-blob-3-4"> + <ul class="list-prefix"> + <li v-for="a in utilisateur.administrations" :key="a.id"> + {{ `${a.nom}${a.service ? ` - ${a.service}` : ''}` }} + </li> + </ul> + </div> + </div> + </div> + </template> + </Accordion> + </div> +</template> + +<script> +import { cloneAndClean, permissionsCheck } from '../utils/index' +import Accordion from './_ui/accordion.vue' +import Pill from './_ui/pill.vue' +import Loader from './_ui/loader.vue' +import UtilisateurEditPopup from './utilisateur/edit-popup.vue' +import UtilisateurRemovePopup from './utilisateur/remove-popup.vue' +import UtilisateurPasswordPopup from './utilisateur/password-popup.vue' +import UtilisateurEmailPopup from './utilisateur/email-popup.vue' + +export default { + components: { + Accordion, + Pill, + Loader + }, + + computed: { + utilisateur() { + return this.$store.state.utilisateur.element + }, + + user() { + return this.$store.state.user.element + }, + + loaded() { + return !!this.utilisateur + } + }, + + watch: { + user: 'get', + + '$route.params.id': function (id) { + if (this.$route.name === 'utilisateur' && id) { + this.get() + } + } + }, + + async created() { + await this.get() + }, + + beforeUnmount() { + this.$store.commit('utilisateur/reset') + }, + + methods: { + logout() { + this.eventTrack('deconnexion') + this.$store.dispatch('user/logout') + }, + eventTrack(id) { + if (this.$matomo) { + this.$matomo.trackEvent('menu-utilisateur', 'menu-utilisateur', id) + } + }, + + async get() { + await this.$store.dispatch('utilisateur/get', this.$route.params.id) + }, + + editPopupOpen() { + const utilisateur = cloneAndClean(this.utilisateur) + + utilisateur.entreprises = utilisateur.entreprises.map(({ id }) => ({ + id + })) + + utilisateur.administrations = utilisateur.administrations.map( + ({ id }) => ({ id }) + ) + + utilisateur.permissionId = utilisateur.permission.id + + delete utilisateur.permission + + delete utilisateur.sections + delete utilisateur.modification + delete utilisateur.suppression + + this.$store.commit('popupOpen', { + component: UtilisateurEditPopup, + props: { + utilisateur, + action: 'edit' + } + }) + }, + + removePopupOpen() { + this.$store.commit('popupOpen', { + component: UtilisateurRemovePopup, + props: { + utilisateur: cloneAndClean(this.utilisateur) + } + }) + }, + + passwordPopupOpen() { + this.$store.commit('popupOpen', { + component: UtilisateurPasswordPopup, + props: { + utilisateur: cloneAndClean(this.utilisateur) + } + }) + }, + + emailPopupOpen() { + this.$store.commit('popupOpen', { + component: UtilisateurEmailPopup + }) + }, + + permissionsCheck(user, permissions) { + return permissionsCheck(user, permissions) + } + } +} +</script> diff --git a/packages/ui/src/components/utilisateur/edit-popup.vue b/packages/ui/src/components/utilisateur/edit-popup.vue new file mode 100644 index 000000000..5bdfee1f4 --- /dev/null +++ b/packages/ui/src/components/utilisateur/edit-popup.vue @@ -0,0 +1,529 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2> + {{ + action === 'create' + ? "Création d'un compte utilisateur" + : 'Modification du compte utilisateur' + }} + </h2> + </template> + + <Loader v-if="!loaded" /> + <div v-else> + <div v-if="action === 'create'"> + <p> + Renseignez au moins l'email, le mot de passe, le prénom et le nom. + </p> + <hr /> + </div> + <div + v-if="permissionsCheck(user, ['super', 'admin'])" + class="tablet-blobs" + > + <div class="mb tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Email</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.email" + type="email" + class="p-s" + placeholder="Email" + /> + </div> + </div> + + <div v-if="action === 'create'"> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Mot de passe</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.motDePasse" + type="password" + class="p-s mb-s" + placeholder="Mot de passe" + /> + <p class="h6 mb-0">8 caractères minimum.</p> + </div> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Prénom</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.prenom" + type="text" + class="p-s" + placeholder="Prénom" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nom</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.nom" + type="text" + class="p-s" + placeholder="Nom" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Téléphone fixe</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.telephoneFixe" + type="text" + class="p-s" + placeholder="0100000000" + /> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Téléphone mobile</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="utilisateur.telephoneMobile" + type="text" + class="p-s" + placeholder="0100000000" + /> + </div> + </div> + + <div v-if="utilisateur.permissionModification"> + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Permissions</h5> + </div> + <div class="mb tablet-blob-2-3"> + <ul class="list-inline mb-0 tablet-pt-s"> + <li + v-for="permission in permissions" + :key="permission.id" + class="mb-xs" + > + <button + :id="`cmn-utilisateur-edit-popup-permission-button-${permission.id}`" + :class="{ + active: utilisateur.permissionId === permission.id + }" + class="btn-flash small py-xs px-s pill cap-first mr-xs" + @click="permissionToggle(permission)" + > + {{ permission.nom }} + </button> + </li> + </ul> + </div> + </div> + + <div v-if="utilisateurIsEntreprise"> + <hr /> + <h3 class="mb-s">Entreprises</h3> + <div v-for="(entreprise, n) in utilisateur.entreprises" :key="n"> + <div + class="flex full-x" + :class="{ + 'mb-s': utilisateurEntreprisesLength, + mb: !utilisateurEntreprisesLength + }" + > + <select + id="cmn-utilisateur-edit-popup-entreprise-select" + v-model="utilisateur.entreprises[n]" + class="p-s mr-s" + > + <option + v-for="e in entreprises" + :key="e.id" + :value="{ id: e.id }" + :disabled=" + utilisateur.entreprises.find(({ id }) => id === e.id) + " + > + {{ e.nom }} + </option> + </select> + <div class="flex-right"> + <button + class="btn py-s px-m rnd-xs" + @click="entrepriseRemove(n)" + > + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + </div> + + <button + v-if="!utilisateur.entreprises.some(({ id }) => id === '')" + id="cmn-utilisateur-edit-popup-entreprise-button-ajouter" + class="btn small rnd-xs py-s px-m full-x flex mb" + @click="entrepriseAdd" + > + <span class="mt-xxs">Ajouter une entreprise</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> + + <div v-if="utilisateurIsAdministration"> + <hr /> + <h3 class="mb-s">Administrations</h3> + <div + v-for="(administration, n) in utilisateur.administrations" + :key="n" + > + <div + v-if="administrationsDisabledIds.includes(administration.id)" + class="p-s bg-alt mb-s" + > + {{ administrationNameFind(administration.id) }} + </div> + <div v-else class="flex full-x mb"> + <select + id="cmn-utilisateur-edit-popup-administration-select" + v-model="utilisateur.administrations[n]" + class="p-s mr-s" + :class="{ + '': !administrationsDisabledIds.includes(administration.id) + }" + :disabled=" + administrationsDisabledIds.includes(administration.id) + " + > + <option + v-for="a in administrationsFiltered" + :key="a.id" + :value="{ id: a.id }" + :disabled=" + utilisateur.administrations.find(({ id }) => id === a.id) || + administrationsDisabledIds.includes(a.id) + " + > + {{ `${a.abreviation}` }} + </option> + </select> + <div class="flex-right"> + <button + class="btn py-s px-m rnd-xs" + @click="administrationRemove(n)" + > + <i class="icon-24 icon-minus" /> + </button> + </div> + </div> + </div> + + <button + v-if=" + !utilisateur.administrations.some(({ id }) => id === '') && + utilisateurAdministrationsLength < 1 + " + id="cmn-utilisateur-edit-popup-administration-button-ajouter" + class="btn small rnd-xs py-s px-m full-x flex mb" + @click="administrationAdd" + > + <span class="mt-xxs">Ajouter une administration</span + ><i class="icon-24 icon-plus flex-right" /> + </button> + </div> + </div> + + <hr /> + <div class="tablet-blobs"> + <div class="tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Newsletter</h5> + </div> + <div class="mb tablet-blob-2-3"> + <label class="tablet-pt-s"> + <input + v-model="utilisateur.newsletter" + type="checkbox" + class="p-s mt-s mb-s mr-xs" + /> + <span v-if="utilisateur.newsletter">Inscrit</span> + </label> + </div> + </div> + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + id="cmn-utilisateur-edit-popup-button-enregistrer" + ref="save-button" + :disabled="!complete" + :class="{ disabled: !complete }" + class="btn btn-primary" + @click="save" + > + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script> +import { permissionsCheck } from '@/utils' +import Popup from '../_ui/popup.vue' +import Loader from '../_ui/loader.vue' + +export default { + name: 'CaminoUtilisateurEditPopup', + + components: { Popup, Loader }, + + props: { + utilisateur: { + type: Object, + default: () => ({}) + }, + + action: { + type: String, + default: 'edit', + validator: val => ['edit', 'create'].includes(val) + } + }, + + data() { + return { + cgu: null + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + loaded() { + return this.$store.state.utilisateur.metasLoaded + }, + + messages() { + return this.$store.state.popup.messages + }, + + permissions() { + return this.$store.state.utilisateur.metas.permissions + }, + + entreprises() { + return this.$store.state.utilisateur.metas.entreprises + }, + + administrations() { + return this.$store.state.utilisateur.metas.administrations + }, + + user() { + return this.$store.state.user.element + }, + + complete() { + const formComplete = + this.action === 'create' + ? this.utilisateur.nom && + this.utilisateur.prenom && + this.utilisateur.email && + this.utilisateur.motDePasse + : this.utilisateur.nom && + this.utilisateur.prenom && + this.utilisateur.id && + this.utilisateur.email + + if (!formComplete) { + return false + } + + if (this.utilisateurIsEntreprise && !this.utilisateurEntreprisesLength) { + return false + } + + if ( + this.utilisateurIsAdministration && + !this.utilisateurAdministrationsLength + ) { + return false + } + + return true + }, + + utilisateurEntreprisesLength() { + return this.utilisateur.entreprises.filter(({ id }) => id).length + }, + + utilisateurAdministrationsLength() { + return this.utilisateur.administrations.filter(({ id }) => id).length + }, + + utilisateurIsEntreprise() { + return ['entreprise'].includes(this.utilisateur.permissionId) + }, + + utilisateurIsAdministration() { + return ['admin', 'editeur', 'lecteur'].includes( + this.utilisateur.permissionId + ) + }, + + administrationsDisabledIds() { + return this.administrations.reduce((res, a) => { + if (!a.membre && !this.permissionsCheck(this.user, ['super'])) { + res.push(a.id) + } + + return res + }, []) + }, + + administrationsFiltered() { + const a = this.permissionsCheck(this.user, ['super']) + ? this.administrations + : this.administrations.filter(a => a.membre) + + return a + } + }, + + created() { + this.get() + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + unmounted() { + this.$store.commit('utilisateur/metasReset') + }, + + methods: { + async get() { + await this.$store.dispatch('utilisateur/init') + }, + + async save() { + if (this.complete) { + const utilisateur = JSON.parse(JSON.stringify(this.utilisateur)) + + delete utilisateur.permissionModification + delete utilisateur.entreprisesCreation + delete utilisateur.utilisateursCreation + + if (this.utilisateurIsAdministration) { + utilisateur.administrations = utilisateur.administrations.filter( + ({ id }) => id + ) + } else { + utilisateur.administrations = [] + } + + if (this.utilisateurIsEntreprise) { + utilisateur.entreprises = utilisateur.entreprises.filter( + ({ id }) => id + ) + } else { + utilisateur.entreprises = [] + } + + if (this.action === 'create') { + if (!utilisateur.permissionId) { + utilisateur.permissionId = 'defaut' + } + + await this.$store.dispatch('utilisateur/add', utilisateur) + } else { + await this.$store.dispatch('utilisateur/update', utilisateur) + } + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + }, + + permissionToggle(permission) { + this.utilisateur.permissionId = permission.id + }, + + entrepriseAdd() { + this.utilisateur.entreprises.push({ id: '' }) + }, + + entrepriseRemove(index) { + this.utilisateur.entreprises.splice(index, 1) + }, + + administrationAdd() { + this.utilisateur.administrations.push({ id: '' }) + }, + + administrationRemove(index) { + this.utilisateur.administrations.splice(index, 1) + }, + + administrationNameFind(id) { + const administration = this.administrations.find(a => a.id === id) + + return administration.abreviation + }, + + permissionsCheck(user, permissions) { + return permissionsCheck(user, permissions) + } + } +} +</script> diff --git a/packages/ui/src/components/utilisateur/email-popup.vue b/packages/ui/src/components/utilisateur/email-popup.vue new file mode 100644 index 000000000..c05e2efec --- /dev/null +++ b/packages/ui/src/components/utilisateur/email-popup.vue @@ -0,0 +1,113 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Modification de l’email</h2> + </template> + + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nouvel email</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="emailNouveau" + type="email" + class="p-s mb-s" + placeholder="Email" + /> + </div> + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + ref="save-button" + :disabled="!complete" + :class="{ disabled: !complete }" + class="btn btn-primary" + @click="save" + > + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoUtilisateurEmailPopup', + + components: { + Popup + }, + + data() { + return { + emailNouveau: '' + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + complete() { + return this.emailNouveau + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + if (this.complete) { + await this.$store.dispatch('utilisateur/emailVerification', { + email: this.emailNouveau + }) + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + } + } +} +</script> diff --git a/packages/ui/src/components/utilisateur/password-popup.vue b/packages/ui/src/components/utilisateur/password-popup.vue new file mode 100644 index 000000000..9fcd94f35 --- /dev/null +++ b/packages/ui/src/components/utilisateur/password-popup.vue @@ -0,0 +1,175 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Modification du mot de passe</h2> + </template> + + <div v-if="!permissionsCheck(user, 'super')"> + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Mot de passe actuel</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="motDePasse" + type="password" + class="p-s" + placeholder="Mot de passe" + /> + </div> + </div> + <hr /> + </div> + + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nouveau mot de passe</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="motDePasseNouveau1" + type="password" + class="p-s mb-s" + placeholder="Mot de passe" + /> + <p class="h6 mb-0">8 caractères minimum.</p> + </div> + </div> + <hr /> + + <div class="tablet-blobs"> + <div class="mb tablet-blob-1-3 tablet-pt-s pb-s"> + <h5>Nouveau mot de passe (vérification)</h5> + </div> + <div class="mb tablet-blob-2-3"> + <input + v-model="motDePasseNouveau2" + type="password" + class="p-s" + placeholder="Mot de passe" + /> + </div> + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + ref="save-button" + :disabled="!complete" + :class="{ disabled: !complete }" + class="btn btn-primary" + @click="save" + > + Enregistrer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Enregistrement en cours…</div> + </template> + </Popup> +</template> + +<script> +import { permissionsCheck } from '@/utils' +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoUtilisateurPasswordPopup', + + components: { + Popup + }, + + props: { + utilisateur: { + type: Object, + default: () => ({}) + } + }, + + data() { + return { + motDePasse: '', + motDePasseNouveau1: '', + motDePasseNouveau2: '' + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + }, + + user() { + return this.$store.state.user.element + }, + + complete() { + return ( + this.motDePasseNouveau1 && + this.motDePasseNouveau2 && + (this.permissionsCheck(this.user, 'super') || this.motDePasse) + ) + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async save() { + if (this.complete) { + await this.$store.dispatch('utilisateur/passwordUpdate', { + id: this.utilisateur.id, + motDePasse: this.motDePasse, + motDePasseNouveau1: this.motDePasseNouveau1, + motDePasseNouveau2: this.motDePasseNouveau2 + }) + } + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + if (this.complete) { + this.$refs['save-button'].focus() + this.save() + } + } + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + }, + + permissionToggle(permission) { + this.utilisateur.permission = permission + }, + + permissionsCheck(user, permissions) { + return permissionsCheck(user, permissions) + } + } +} +</script> diff --git a/packages/ui/src/components/utilisateur/remove-popup.vue b/packages/ui/src/components/utilisateur/remove-popup.vue new file mode 100644 index 000000000..4f077ec07 --- /dev/null +++ b/packages/ui/src/components/utilisateur/remove-popup.vue @@ -0,0 +1,96 @@ +<template> + <Popup :messages="messages"> + <template #header> + <h2>Suppression du compte utilisateur</h2> + </template> + + <p class="bold"> + Souhaitez vous supprimer le compte de {{ utilisateur.prenom }} + {{ utilisateur.nom }} ? + </p> + <div class="bg-warning color-bg p-s mb-l"> + <span class="bold"> Attention </span>: cette opération est définitive et + ne peut pas être annulée. + </div> + + <template #footer> + <div v-if="!loading" class="tablet-blobs"> + <div class="tablet-blob-1-3 mb tablet-mb-0"> + <button class="btn-border rnd-xs p-s full-x" @click="cancel"> + Annuler + </button> + </div> + <div class="tablet-blob-2-3"> + <button + id="cmn-utilisateur-remove-popup-button-supprimer" + class="btn-flash rnd-xs p-s full-x" + @click="remove" + > + Supprimer + </button> + </div> + </div> + <div v-else class="p-s full-x bold">Suppression en cours…</div> + </template> + </Popup> +</template> + +<script> +import Popup from '../_ui/popup.vue' + +export default { + name: 'CaminoUtilisateurRemovePopup', + + components: { + Popup + }, + + props: { + utilisateur: { + type: Object, + default: () => ({}) + } + }, + + computed: { + loading() { + return this.$store.state.popup.loading + }, + + messages() { + return this.$store.state.popup.messages + } + }, + + created() { + document.addEventListener('keyup', this.keyup) + }, + + beforeUnmount() { + document.removeEventListener('keyup', this.keyup) + }, + + methods: { + async remove() { + await this.$store.dispatch('utilisateur/remove', this.utilisateur.id) + }, + + cancel() { + this.errorsRemove() + this.$store.commit('popupClose') + }, + + errorsRemove() { + this.$store.commit('popupMessagesRemove') + }, + + keyup(e) { + if ((e.which || e.keyCode) === 27) { + this.cancel() + } else if ((e.which || e.keyCode) === 13) { + this.remove() + } + } + } +} +</script> diff --git a/packages/ui/src/components/utilisateurs.vue b/packages/ui/src/components/utilisateurs.vue new file mode 100644 index 000000000..d976a36cb --- /dev/null +++ b/packages/ui/src/components/utilisateurs.vue @@ -0,0 +1,140 @@ +<template> + <liste + v-if="visible" + nom="utilisateurs" + :filtres="filtres" + :colonnes="colonnes" + :lignes="lignes" + :elements="utilisateurs" + :metas="metas" + :params="params" + :total="total" + :initialized="initialized" + @params-update="paramsUpdate" + > + <template v-if="user.utilisateursCreation" #addButton> + <button + class="btn small rnd-xs py-s px-m full-x flex mb-s" + @click="addPopupOpen" + > + <span class="mt-xxs">Ajouter un utilisateur</span> + <i class="icon-24 icon-plus flex-right" /> + </button> + </template> + + <template v-if="utilisateurs.length" #downloads> + <Downloads + :formats="['csv', 'xlsx', 'ods']" + section="utilisateurs" + class="flex-right full-x" + /> + </template> + </liste> +</template> + +<script> +import Liste from './_common/liste.vue' +import Downloads from './_common/downloads.vue' +import UtilisateurEditPopup from './utilisateur/edit-popup.vue' + +import filtres from './utilisateurs/filtres' +import { + utilisateursColonnes, + utilisateursLignesBuild +} from './utilisateurs/table' + +export default { + name: 'Utilisateurs', + + components: { Liste, Downloads }, + + data() { + return { + filtres, + colonnes: utilisateursColonnes, + visible: false + } + }, + + computed: { + user() { + return this.$store.state.user.element + }, + + utilisateurs() { + return this.$store.state.utilisateurs.elements + }, + + total() { + return this.$store.state.utilisateurs.total + }, + + metas() { + return this.$store.state.utilisateurs.metas + }, + + params() { + return this.$store.state.utilisateurs.params + }, + + lignes() { + return utilisateursLignesBuild(this.utilisateurs) + }, + + initialized() { + return this.$store.state.utilisateurs.initialized + } + }, + + watch: { + user: 'init', + + '$route.query': { + handler: function () { + this.$store.dispatch('utilisateurs/routeUpdate') + } + } + }, + + async created() { + await this.init() + }, + + unmounted() { + this.$store.commit('utilisateurs/reset') + }, + + methods: { + async init() { + if ( + !this.user || + !this.user.sections || + !this.user.sections.utilisateurs + ) { + await this.$store.dispatch('pageError') + } else { + this.visible = true + await this.$store.dispatch('utilisateurs/init') + } + }, + + async paramsUpdate(options) { + await this.$store.dispatch(`utilisateurs/paramsSet`, options) + }, + + addPopupOpen() { + this.$store.commit('popupOpen', { + component: UtilisateurEditPopup, + props: { + utilisateur: { + permissionId: 'defaut', + entreprises: [], + administrations: [] + }, + action: 'create' + } + }) + } + } +} +</script> diff --git a/packages/ui/src/components/utilisateurs/filtres.js b/packages/ui/src/components/utilisateurs/filtres.js new file mode 100644 index 000000000..44a751dc4 --- /dev/null +++ b/packages/ui/src/components/utilisateurs/filtres.js @@ -0,0 +1,48 @@ +import { elementsFormat } from '../../utils/index' + +const utilisateursFiltres = [ + { + id: 'noms', + type: 'input', + value: '', + name: 'Noms, prénoms', + placeholder: '...' + }, + { + id: 'emails', + type: 'input', + value: '', + name: 'Emails', + placeholder: 'prenom.nom@domaine.fr, ...' + }, + { + id: 'permissionIds', + name: 'Permissions', + type: 'checkboxes', + value: [], + elements: [], + elementsFormat + }, + { + id: 'administrationIds', + name: 'Administrations', + type: 'select', + value: [], + elements: [], + buttonAdd: 'Ajouter une administration', + elementName: 'abreviation', + elementsFormat + }, + { + id: 'entrepriseIds', + name: 'Entreprises', + type: 'select', + value: [], + elements: [], + buttonAdd: 'Ajouter une entreprise', + elementName: 'nom', + elementsFormat + } +] + +export default utilisateursFiltres diff --git a/packages/ui/src/components/utilisateurs/table.js b/packages/ui/src/components/utilisateurs/table.js new file mode 100644 index 000000000..294d86acd --- /dev/null +++ b/packages/ui/src/components/utilisateurs/table.js @@ -0,0 +1,79 @@ +import List from '../_ui/list.vue' + +const utilisateursColonnes = [ + { + id: 'nom', + name: 'Nom', + class: ['min-width-6'] + }, + { + id: 'prenom', + name: 'Prénom', + class: ['min-width-6'] + }, + { + id: 'email', + name: 'Email' + }, + { + id: 'permissions', + name: 'Permissions', + class: ['min-width-6'] + }, + { + id: 'lien', + name: 'Lien', + class: ['min-width-6'] + } +] + +const utilisateursLignesBuild = utilisateurs => + utilisateurs.map(utilisateur => { + let elements + + if (utilisateur.administrations && utilisateur.administrations.length) { + elements = utilisateur.administrations.map(({ nom }) => nom) + } else if (utilisateur.entreprises && utilisateur.entreprises.length) { + elements = utilisateur.entreprises.map(({ nom }) => nom) + } + + const lien = + elements && elements.length + ? { + component: List, + props: { + elements, + mini: true + }, + class: 'mb--xs', + value: elements.join(', ') + } + : { value: '' } + + const columns = { + prenom: { value: utilisateur.prenom || '–' }, + nom: { value: utilisateur.nom || '–' }, + email: { value: utilisateur.email || '–', class: ['h6'] }, + permissions: { + value: (utilisateur.permission && utilisateur.permission.nom) || '–', + class: [ + 'bg-neutral', + 'color-bg', + 'pill', + 'py-xs', + 'px-s', + 'small', + 'bold' + ] + }, + lien + } + + return { + id: utilisateur.id, + link: { name: 'utilisateur', params: { id: utilisateur.id } }, + columns + } + }) + +export { utilisateursColonnes, utilisateursLignesBuild } diff --git a/packages/ui/src/index.html b/packages/ui/src/index.html new file mode 100644 index 000000000..c9e3a28f9 --- /dev/null +++ b/packages/ui/src/index.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html lang="fr"> + <head> + <meta charset="utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width,initial-scale=1.0" /> + <link rel="shortcut icon" href="./favicon.ico" /> + <title>Camino | le cadastre minier numérique ouvert</title> + </head> + + <body class="bg-bg"> + <noscript> + <h1>Camino</h1> + <h2>le cadastre minier numérique ouvert</h2> + + <p> + Camino ouvre les projets miniers pour mieux les gérer. Il présente les + caractéristiques des titres miniers sur une carte, détaille chaque étape + de leur vie et expose les données publiques dans un format ouvert et + réutilisable. + </p> + + <h3>Usages</h3> + + <ul> + <li> + Les <b>entreprises</b> gagnent en visibilité sur leur business et cela + simplifie leurs démarches. + </li> + <li> + Les <b>citoyens</b> accèdent simplement aux informations publiques. + </li> + <li> + Les <b>agents publics</b> centralisent leurs contributions et + bénéficient d’une vision partagée. + </li> + </ul> + </noscript> + <app-root></app-root> + <script type="module" src="/index.ts"></script> + <script src="https://embed.typeform.com/next/embed.js"></script> + </body> +</html> diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts new file mode 100644 index 000000000..cc84a504d --- /dev/null +++ b/packages/ui/src/index.ts @@ -0,0 +1,80 @@ +import './styles/styles.css' +import { createApp } from 'vue' +import { sync } from 'vuex-router-sync' +import * as Sentry from '@sentry/browser' +import * as SentryIntegrations from '@sentry/integrations' + +// le polyfill ResizeObserver est nécessaire pour chart.js sur Firefox 60 +// on devrait pourvoir l'injecter dans vite.config, mais ça ne marche pas… +// plugins.legacy({additionalLegacyPolyfills: ['@juggle/resize-observer']}) +import { ResizeObserver as resizeObserverPolyfill } from '@juggle/resize-observer' + +import VueMatomo from './stats' +import App from './app.vue' + +import router from './router' +import store from './store' + +window.ResizeObserver = window.ResizeObserver || resizeObserverPolyfill + +const app = createApp(App) +sync(store, router) + +if (import.meta.env.PROD) { + fetch('/sentryOptions') + .then(response => response.json()) + .then(options => { + if (!options.dsn) throw new Error('dsn manquant') + Sentry.init({ + dsn: options.dsn, + environment: options.environment ? options.environment : 'production', + autoSessionTracking: false, + integrations: [ + new SentryIntegrations.Vue({ + Vue: app, + attachProps: true + }), + new SentryIntegrations.RewriteFrames() + ], + /* global npmVersion */ + // @ts-ignore + release: `camino-ui-${npmVersion}` + }) + }) + .catch(e => console.error('erreur : Sentry :', e)) + + fetch('/matomoOptions') + .then(response => response.json()) + .then(options => { + if (!options || !options.host || !options.siteId) + throw new Error('host et/ou siteId manquant(s)') + VueMatomo(app, { + host: options.host, + siteId: options.siteId, + router, + store, + requireConsent: false, + disableCookies: true, + trackInitialView: true, + trackerFileName: 'piwik', + enableHeartBeatTimer: true, + enableLinkTracking: true + }) + }) + .catch(e => console.error('erreur : matomo :', e)) + + const eventSource = new EventSource('/stream/version') + + eventSource.addEventListener('version', event => { + if (event.data !== npmVersion) { + eventSource.close() + window.location.reload() + } + }) +} + +app.use(router) + +app.use(store) + +app.mount('app-root') diff --git a/packages/ui/src/public/favicon.ico b/packages/ui/src/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..77cc5f2c72fd8f831c1bdd297cb18fbbc97743f2 GIT binary patch literal 1150 zcmZQzU}Ruq5D);-3Je)63=Con3=A3!3=9Gc3=9ek5OD?&U;z=R`1jYZ|3Tp2pFjUW z7{o@$|Ni~||L4#D|9}5NWX_)Y`Co$b(SKfshyPcaoBw}y>=;Di-@pI=V2U6jU=pMs z#CZMc&;S1RkN;(a9{=ZJc<^74@!|h|cJ}{m3=IF*+S~tsa_}HX8QdK(eLsHu`(K*# z?!N@jqyG#H_y6-SJ^U}g`0zhJ!^8huLqh)V%gFdYk%i@dF9XB>gL!#iGyebk_y6zT ze_-~*2fzPwu-%8)$@K6)KU6PBe?J@B|LqYG|DPT{{QuFOJ^!~yM*ctF-w)RJ59A++ z5&xruUW4tH<$wHNi0$EjJ_d;WJEEfg&lVT|zcVK0|A)JG|9^Y^8chHB`4egenEL<m z!{7hMkNo)m{oB9){aqjbGcw%&FU;}~EcxWXf&bG*ME=iLR{sCx*)y;h$ZjwLN`S%w z6bB&gkwZWJvqHlU<adzWFHW8M|LWYi|L<<x04c$U2ax{XzagG^_VmwxHHjzS@HkXd z^#9`2ssE3ZmxJT-;qKj7^@9cfBho;0AS68cSy=veGBW;eWnlO}Q%2_hj}IRpN<kJv zSa1^L{_EGz{NJ+i-G2^-N8mV|$i(!23OoD%9tMX0TZ4naYH_8*-@pI=zkmPy|Ax9d z|Ctyb{}*O{_<te;!~e-3H!v{#Khe+t*8dlz5X?d){``jUOS0dA;}R79ApMh=ng4e) zF#O*V7zkE?OFzs@-i|N+Gc!E+F9fw8Yz8AE*bmnhF2rgE$nPMDHOs&L2c;oU-T|dy zkX{g;#K`!+ALJK4zW=Yzo&_mIi9?wF<x9SR-7W-5#|#kvgY<*&Bqk=X8B_WB|3BQh f6UB^oZ~y+EKJn9k4XG#Kd<(K0l>Sjm1JZc_e%TZl literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/about/gallery-apresmine.jpg b/packages/ui/src/public/img/about/gallery-apresmine.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0597937d968ab0bac77093d6d86f76bc1eef2144 GIT binary patch literal 162007 zcmex=<NpH&0WUXCHwH#VMg|WC4+e(+w;5U(*jQNESXtQESlQUw**LfaxVShuxkUK* zc?85oBqYQ|#KfdzRpq6mm1V@l6m%4n)zme$G$rMA4RkdOR5dg;7}?p`xj49lxwwQi zq{O5&NCy88F$i)nHLx%+GYT>=2{JMZGX6ipAkDzQ#0+vN0}L>;Ffg$)va$ca#lXSH z2onAMHY=#4#n8(+e)HV5)i<qgs!Z}kLz<s|Rg}~$`_E8w?%Mnn_so~yd4sHGg6Z0m zaYcXMysx~eZg~@newAkx|KuOJf0-|Ff4$wc_~pgd;?S)?vk}Cd^Sl~Fbyl38lKQJ& z=8>uT%4+K?zyJDLf`pMBfXSZR<+k?ZO_fPr73=w*7QWc?<)++W*(07``D-$fHLI(q zVCtRZ85Q0-dD|pUh0mLe_vrT@+xe~k%N~ER%d_PpF0u1gA{n4<t)8FlX>F-l=b7hu z6J#OOU+QcVAFfwjGRf1Q_i0V~4C9?jJyz*czx`W%eVWnHCrEbAw$8hC{q631<x}{p zPfrTp6uo&bTz1N%y(^!tzwN2A=EHu?&s8<*v+XKR{3!j~zUaG?<y>$S6qSK3oG4dz zO};w&Tk)JZbKh*QwpMu$4!TL6D$VjUKhJBAkJhX;y5XX`WKtl1+fSWGuYMlwzpMCh z=9<m-lglgjom81T$z#1}vVFqdxsyCqI>I+EnY`z@73aNgWq04`SKm}muU47l=Xq0Q z&Zqr$KhMp3)_;rraqYrM2hUu(e6f6!SB>@IC-Y6??)UI)yXbrAw^;f23f5DyUiUhT z+I+*0t~0;%T`g~S)#{5I+RksTyR`ScO5>90d!M|Swm)6}rpkNvx(n*ZFMX`L^>=Ib z^Sadb1s#w7{bx8;+fx@9%4}jAJWIHv#`<JZ`sXFGCKGn^YOdbBdg?1JYwbm=Px^e& zV@hL9p7Fb<e0AY;{lshYGZm|&y~^%R`nGm==DD&9iCf(+$>l9raNfWsQ#3t1-2US8 zY~9Z_qCNXp9Wf63H7&2+M`UKUcP;B4^>&8OXHKtp_C|HVOp~f-w@(Cp^y1@t&yyNz za_lsZ)U(&ln^O})!rxundo{7cF7EQ)XloDN$8VOF7VKGO!CR8aaO=#bbA~f6&$)W$ zLPEXG$Bo<XGO4y!w{O%s8oSkf?u>a^xBM3y{$-teu++_TO?79sZuau*=;cp?*!9z7 zHLd)t3UA6S{+jdNv*(i3?|12m%-;K0Woq*km(@L!_m+uXeLw!nqwJ;6H0LFC<|<m3 z#YHZu@sl@+wsLuJes!8o>W;k4HE+ItzI5qQux+X><4xXat9v#q-F(QY&@;&?FfJr~ zbDmuLR+BFRj#<+Mv&CH#GPJ$YUYJ(#mfT97lGqq`XlLZvwb!1cyb5SGl-xV_)j#%K z;Zqm8_ed@@48CC^a53twNu%-A;0v~K&#o?;tyZ2iccG)xq%SKp1Pa^c<?UUNzsKa5 ziqShKHlEWVr|&Pzp0>92;LDQZDQlb7e6~JYa3sZe(PJjv`SB;s=IbRH#+`RA(#dW; zl6hph{_3mq%ymt#+)kRlulkB@e781(_o<F$&T}|!z81UkUc<b^xqw|?t;b;YwXi?Y zb7NX-78tm@r^^`Lkd!$8eC|Vw8`_D*4n7<+v$jt7xnuS7)Y@&D?lVtL*>FhId@o!0 zbl)oeg3LYFvYD2oUi`RFU$T6K?o_X9QjvS#=52jy`z|gj_nGRMt$F{}7dzE;8+4v+ zDp6Trs_oYEo#p7JPcOVmwuDZ7Xm#p?mrkycLF+69^Ta7Hzlt0%m#;0-v9bAKxk2j2 z2j^MLDGjT=owt>IYEhp)dAatcvpnUo!HumVr-Fn1mYxudRocmtxLD13!qo?Ur!8{q zmSrtVUp#Z&%7bf{=0!O0avgqS^VrJyLg=Y<6|JsMq1kQay@jhgdgWJ3d{I28#qnMu zQS?}yh)eR+<mOEevtDXG@hb|kxYePYF2&Vpz3^h-?#qi8cCUPHva{gH{g62eN~Rf4 zxfYpaz?`wE?C1JfCkj7Z-Vn+4WhKu6mC8x8H!iOfco>{<cW;B9uFlcd#??#j`3V%d znkqV2x9W?SpR+k~)3rLI$g=O*-eBL?(*xb76j_`+zipYt-}I1+uT(C`W&SL4GPpEz zsl>62WyVrVUmXtprkHutHR8ohnY7b;^ggxk$lGeE$L4s^_H;>t!gXa?(bos=A5dMQ zDt_l{zQBvct(RWsOnX0DV_npaUEvxn%`Kb!3TLr5=Iyj9dCRdiY$I!!=xXl7(jRXP zEiSLo>gwNE8eQL(utb7S?q)z`?R77`39Cb{tnDdbxsl7Y;#YL^Jcr#Ljc;!#Nl)jm zK6Y(=kNyS|+0!v)s|@zMs7}1FQ}4>w@O6>FJd32R1}>kj9g&rJp^BUL=G86jr7w1v z$jEz^r0OSypZ~Ew_0^BgnM+-`OU0^eetkS(e9vpz5n)!Dl^RMCd!Iabx1ol2-@@n> ztJVg5^_6Yo^NU*9cQNwnmvFwiZ5?mjPG3BDU)}hUaX^gCinfwl>(fiz<G4IIjyiWg z+3U^wA+}hv`JSf2qY~Sjk5+9@l1S9%DeN#33@Y9ud2D?f|K&^Uk!K7$_Eqh!Jbv}O z%icuOFI`u~pYS&PeCx40cEJ_*3qp%ybd0lZ#T`C&=Y<}dwOCB8esRtFm8SB_Oo8VN z7I}pC&)Dg6)wT4dqFyVLlk-G_seKX)_kL=9_PMUtW2e(jFO#54tC^=%wVW?sX1IE0 zx{sFB))y^hTGMBIf4FFEOry)(=dQ=wv)axaG|OUqSovQ6t^7IF$-a|x#ZnvAUCgh( z)qBN8U(lXs>cZfJLoYTPihjGomd3s@;l=J#pI%?sy1lB-G-=VnimmHaPps^+TDM=X zK>Eb5s3}kPvId8DZgdFx9PBpz*!eG}3tx6NzHi!YR8rC-_^GEugXN>alThE-FPX*5 z?t9pE+}UpW$tY~!NrjsBwTavtu2t>Y8u6H~+iYbPyBFVv1uGu>J{00EWTo<Kn|#+7 zU6Z^^K~F<_j&8fIR#v>!>-OF?`w|*<uXTU3lE*Jl;llb2OA9}J5RXs4d4F$EY{c82 zJOUkA8?T=+{nNfG$>d&Mc8jLP4nM_p?w2^W-h0io-ttgG=K3{Uk$WaT{KcpD&#OoF zHPhWC%3;&Oodu^&Ka;y`&$s*~yR$Mhz0)$D?7KL5+AiJngrDa&e^Fm?eBSFdi&Q%g zt&lZ4c~HRX`l&owu@k2i<KvlQ<1$MwF*W6=_-^cNRuEw;D}5Qrdc0=Y&QMi#?^S1` zg|;70=vdnG_Ac|g;9U}O*)Oi2e=3r;b?wb(W_R0OSZwe6Y^#6qXHp1Pa6=|T!`Ex( z4lB0=s!#Z0Wov60#dG6%N%J|!yVEvbJ+V2@p!wCd7rnPE?|jm@D&!scq$+ru!NRMa z*JJCac{(k+8o6sLn_T?mn7D)Pn?9R|^XN@n^DR%_{8|3acLt^0PnW1@KZthIJ;l=g zdhz<6FSn9jui;=cdfqD79CnRc_35lGmy>x>p+TmnLUu+zxe=-LCOg*Ue&b^;m7Mb- zdssqu6iq(%?ANg@-m1HMp2#Goyq7%pT<GNS@LO32wm<4iid3Fyy{)|BO5_G%=5tly zru{BWb(?l{9zC-zxgzq<*PJb_UwC3ZS9<MSx;<=_$;R{ku7`M@oa22F(A{(I@Cn`T z!oJDE;TH2UePcFA>}#Cp`r`Gbse;p)?PO#3d*6EUCP`*#@U(soaiyylbBmVn3$B0l zNg&ho)|LI5$KR=TJdwC$-D6_+tXPrDbd~wXQ&GV#zqL|hOsu0Fmu;P3bTi7U=;ViY ztM8@kem>)?<=c&+GK+q`i!6At#cNSazj5x|%lb_hGsAc~X9=g5I$Tq&n=OCh*IvKp zSBuijlqMW9HVY|NUA1c0v(V(Nep|wX&T+9{n=WQBr=DwB%8y&WPp@9blYKjw=}maj zos=mbZrwh$HJGz-(|o<E4I9t-Ro;>NCGR}%_}r`8br0y@wYxIiHTC3WrPN=B_B*Ck zS_OWV-}OA~wMD?0Ls@z&etLEMQR{7sRa$tp=C0Z5Gg~DK4`y0@3od!ikYMxS_IAyh z`<x5k2|Y>WSt~o={qePxueKhX5c+xTi?71xBNvLbl)Mi4`6BG%Y6~~+Q%Yt2uG4}| zZ<`qz&%HLu;J|6_$eg3IcU5(ST*(ieEYlU;951h%_%iqT{$s_axA#7fas9e3y!!df zL#6j!oi?xdHcwBA*_~B6YmZuu!}^yTIzp0cEI&?_=;s}qv+7B1QRuoS86U14_qLvU z-B72-=h1Tk*6Lsd-Q_28dKDDIrd_=BW&P@>VrKst3gnMfUlbQOnpyJY#SKqo{h}Kc zW@6XAmh4?^IWsQrd%8jPb(=d^yw8a5-Z{%sPk2cLH^1ZRTVm6#VwruEr|e&}>c+RD zj!VLCI>%I{ew=)%=%rdfXFztURqezlPsJK8+;>!Yzk2IkUwf<Awbcgqm3J%*Sr(gn z^QKEtNyV~x-@CtM>aL%3jcc0p9sBIr&)be2TFU*Xc)3Gp#ueq%p#GHf#S?RLK5t&& zl~O6Wev#;&-(vfh91KtD3*{+sJyqpzbKpz&Jg1v!QB2=n-+o=i{p@z(CndJ8=3I*^ zR~P&AoVjyECR6?7t4)<5KaOwtv1*a;p7&m-D!-;X2kV`Q@SYZTM(wQ+o7T*V&PhqF zUtU*Su)i<1_};}k{8IJ46Ki#P{x1Hx>!Y@W+;T~WsN;#j*{Nr_bmP7De9gMj^JM9& z#c$s2s?b>*8@K#Q(dPW)q1V6e%eD8ulKs-IV$&O5oveL=FJIhSpc42jVwJja*RoRQ z1zV+Cmj-68H-7XtQPgoSyYtg2U*&3-Zw|O2XXM-RW`Ed6quu9t7k*nKwj?(5^<F18 zuF7*Op3SfoKCP2;HrH^|j=+M0qSwDi9*8|3x_jzp>y6>peAqt7T>5(K*y-w-vlINC zMDN`0Y7A>RXDGKcDY81w|Dwq0aDV^vrq62I()jk--VGPG_x!mvb@Q_9osLBfZ{rr7 z`g-73zHj8YjHkUqf%9|rUOoOg{i}Ck?B-JI@|$T@XV>h}(T%Bk60pX8+V)Pl>C0DH zT1iW^oTyuEa9bjKOR>Lg^y)R&((2mOH@VxFPFcUg;7VTFqaCfKhy0DtXRWH6o3rPV zdB4lk(1?o_Cl9`?HIVnX5%uim+1Ov}m@}N8zfNDhc+pheg-c)F``q(mvhmBB3f@8s zqaRl{Z!J5VBWtL+zWIp64e511YvRLKw%7ce$5@pwb}-_m?;%m&u23=WiN|%HfB*cY zSh{$7uFY3=;WLtf8ZWdYTDC90!<)bKxlH(#=XpmzYX$Dp`}scWvb)=r+|y5gaaXQ) zUHZ)M<hfnPXBNf_*So%O4b7Y#8ku~4>Ljb)yX%*q{;;d|!uij$cCOv9cHa5yT;>e{ zw|D66KJz*3PWYv%PHX2+J0P|qYt_k{qO-HxzeYcZoVK~>n@PlB?;DPH78Ev%&grRr zE2bkp_14}Gd(L^uY+tTnW>jD>^BWJhj8Fbgear1Dr|ob3Cav=5rp4~rl9|dcOg_Zc z^PYP9^wkW#lou<VexCa!)peKStCU`)`_ySGZXGXm-K-(DwJKr#o47^qM6bViJN2;G zI!9ZMuUWrZKE2Gz|1m$wKilSb?-~AO{^!=%=EnNyg`c&5E%U%;-Lw@plP!KR-8_1w zq`IzOU$IB-yT!@5I^RuAlIMEx-qCB#xh_`W$5igb)3JQ^w8bkntrc0Xy>jj~>95|7 z_oLp~&)ghpdNn@$d{%r2hvvdr)7C9Fdf&5iuUJ^w{=VRlb5$bmpI%ezFrRXkzqIIw z!%LsgvY&I`+Okjld~56Hiv5Y}Th$C}m0H$ya7=sf`R1C~7R$4uUyVC19gfzFy1Qme z>bet_=dMRzVDR2G?exj{h4XFJul98*+5OCQ^E$~5@BH+tj+R$1U6<Wat~vedr4O$* zPqV%K&FtchPhadeeze<vexYygvYO^uSru}%%<d=GNShs-`Q_lmU`6XhpKb3Kbc*+H zS@F5nOzc|uJf}0Vavioe?=F~<wLQC5m1Ew%O7<D+SK3czs7+h+^X-OXUREcJURg<Z zf7&I(TQhyuwtabR-YI?Ri&yvLh#K7cx*~4py*;}!wtoJ&{N3DBk=soE-mI9F^W(gk znC_|N!E?PPt~J_pV)H_y@Y|bLCUWq-u#U-MUFDm&xP8s`<=MLPjrwb+c`jdkI>7nr zm+(WInb#e9eA{TH^V;r5D_?96b+B@N<?i*XR7lEu`>DN?XPvg25^wgo>V62L!SDBa zF>hwPUwQV!)$<pR39K&4)?biP@+r~k(6hJibUlvMnH@C@jXiSew58_8^{+JY?P^&5 z*7Z%?{O9%cb?>b8)=zyNnOqlonft8ra+_zVf2Yk-`P{zwZ2+@wvB}j7Uh?_pbnpAl znSZW!`qDEQ+j6JBvFRy#Z;_LeIxjLv+R{EtaeAmJLqg?xk59+9^_=*ub|GFzTB`C_ z+p$wezs_pSU+KmB?fN$TIrqNrdR@sYYP|8y-#Z~ZGk&@q{rsieIeO8j)9<Zr9<g<7 zx9fLdVB4^ld)0M!-=r6hf4<OPC@#&+eYGmkdtSp?hvHB%p3T!@CoKAxIyZ0Ys;9AQ zdNveae4+PgUv^kG597C}7po^sUv)CyvW<I^QA)1q^24hZExM>a@04%c;?3cFC4zce z1Mh7(yzFH5%$z@}CAKRIZoXw-aVX{Vg^QPcYhvQ_Zp7-98(i7;dyCiNi^&V8F|BZa zU0z|d{mGucXSc`t$TDqza`Ect%xZg=XL&_Y>wYF}pSn)e;n;nidmDt$@We#EdH&@2 zs}~L3{ae&prBhCsM8+%+tdy<I`ZV*<k@Q`9IUBemU2RV6^_-mZeW{FZ?T($Bi@q&d zzp|ER_XTbP_p9EFxw3})W-h8eQMvp2nqQ#?pKbHRw5xj`i5h*~t9x#0i_I}b=NBe& zpW{M>s`z~;=H_eUn=f1&ax0?t`g!g0ds>#dOMYuK#N4^%T9|lNmREI8$6nKI)-jFU zF3U;<9y1r4{BF(B%zhkooPXxoMN4YD*T0%=x2;OJi{I*Qz4WQQWqadd4G*t2t*!jr zaKdK8#_g}eKNz#_e#4=8<<GNcVGc9Y-j`+`x#2RGD@T9%-Jq11*V|pQ#3Qn9Of5Wb z-!gr<@$rz8hKp8J`TV^0x8Y~OgDcs|wnqXl9NV|-wnpZ4)pQg6r(dE^s=3~<u6%x| z?CPCM(Y_C6=IrUYm$P&A)5+H_-Z*wQs_{^<$(dH+H?g-axeBb#zCHVjP-aM#?6bA4 zeL7d}l<d-ar8<4`3$I7o+p~g?<XpZSaxugD*^6h-w)##zbnx)<i0+>&ccgtPb=y|l zuRX1~^Tw<!v%oib^OfaOW{S%4p1CF=zu3O*PWklHJ0dwX*RAHx;`-*SnI>>L*YvND zbdz0xRoSNd<rjUnb?@1h=jR%~zB(z%`dV1FrJL9VF|)OiN&2hQ4ZoOVU9<hge$C&r zbjHbf#c9V@IVY$++cxc@$kO6X#on(>rk{zuRw&b*FK^thelEr2qkf3^`BO@J)fa}O zF8+CT*>T@ED~H~1GmlGgW-_dE`{E*Rzq;eu`uTCs%(8yH$a<w#^VVlCuUgIXP5b9x zI{QgmzVu?*mH4e!%g<KkefzLWZpY%oH^pavI&v$e_Z4ryQQv##4Zp;8^@oO9l^U*1 z{k-ET$K_fMfh%`?U$32U<L%0$BCZe5^x1BnzQTLrFVpERlP+ES{PXaQJh2_tlPzxl z`119blwewMaZ%Znb-f$E7u}Peandp(aGI^>_5PF!cehXfy5rhUahH@BzR9TjCHL%E z=eHGE%lnq4FHEfFbiJ46{fepmOvc`6N<SHI<_B;+dYLA=&~pC5S?d=Z^0e)p^yH1^ zguCHo+wL++cg9p@KGoFOHh<1HpTK(ko=<OQ9K9hpD@Lwp<*NS-t5O-(U(Wehay?$s zcdxGrbN2I+TT=R!yr$8CiJS}W9X4N}^&&cBW}4NF$B(7&oNPG%-n41;9;2Vuohdn% zE6?lKvV1l_StF|+cB6Ct_UqyS#iGYvxz#+M&un`6wlJf?gp$Y^zFPto)<<pLnc&`B zEbY2x^ZM8TpZ2#)Uml#X?bKKAm0Fwo7ro(IePHLaP%+N?T0K$oJpZb6Pc@nP(ByUF zrpGg~XU>`WxAo%(^K+dOFV{@36|}q?>6OkYuzcrbmW+O<U7xLV4?j<Rd_H|1FW0lL zw%STtk1iJ8p<HUe@cL7Y-KJ-bC0&2C<~_HM2Y=4Y$P?KUtRkxvl}kRCfA-rpuVISa zHfgD_e96{nUz)woR2ja0ncOsQvHPj7QJw1L->&YH%d@>(?5=KFXJ55{Mb|c=)tA%H z7us$$GXL5;b;_E}&!S!(mAj(%cFW57p(S68CaBNMznt}D8dqo9le5-pv*ISNeWj;w z{N~TApYIm9`hAe`biY+RL(h)utf`sRe902Yo`np-(GE}E+3~eXEc4g;Dv<fC<w5l! z^Cz2p?A?Bwoj0|)duvyKI@7m1kIyvs%~*MMX3d=1qE}i?e2dN%GaUCbe%IZYQ_8=+ zG1_V>Q<BEZPur%Ioz-75Q9`?$`@ETC()w5bDqnoxcqQ|!gzJZ{?$q<=YM$!Ft<1K* zW@?kQ;`IxIW4WKZPBg95pY_-_I{Vy=-P~JlRiu4A6?5&}6*ejV?B}tJvT4lQk6rR+ z4nLc<ufg{ItmiW>^G>w=Ju7@Kvt6}+l)}IFUFm0Yj+w^)vhV$*dy}`P-^<E!n#k<j zn1!pJvR(Lceb&vR=XaJE7ror%by4!thX!Gj<5vQrB6#<#H@I=JC_6oC$2yg|S&>K8 z^z(l2(n{1la*OfIYYvv|z`!lpKb^KOUSG35vg=-7TSm>Yw*6&gniGAMl$uvr&$(VQ zi7i88>Y8V5p=)mVzR2!guv${GCfIig`=-TK9nU3pK5kyI>E7APu6m{mcQ2fASdyK= z;d+@81K-N4UsnBG@A&-6WyvDvj!#kiDhwN*vD=E9zHVOQTP`Wrw6j}z$$y49mAc(~ z+gH!YnZ0{a-peO9V{GQfY`dm$X7ApFO)RI<cDb*5qq^kK%2z4ECI`>1Z1Cx|`fQ!{ z>$gST92b|9DS>@o&86+k*Tg<xc06LU&G5iAhrgkrZE?}+H<AQ<W!Ic~&-yScQ1s7+ z+C^4%mP=Q!VR?Pu`|1V58Sw(!A7=z6N?)*l8hLwZ<~i2MAzaFHmuIEy$ksWxh=niS zq^qFVWyPjfKTqgAV)Z=o<x=fK6{qi}4-^E&X8v2D8F2c=WAl}zmy<6THH+7N;psas zdglBE*9E=Lrt5B<{^{qv`FbmCm*t#RpFe#u&(#u>uDjP5jvvump`6|K`i0u-ZDH#o z^Oig+y?E&?S5C>)s41Kq-q!oie$INf-}h|1YBT4t8&}SqsyR}8a^_soJ@>9{->`lD zopljkr4E;6H}flgi}TOgd6jYHto2(y-q;<@Q6=MI)OV=;w%L?pHEXpmK07th?jz6h zSnhePP0u-f{`UL|2)X8SN<TNdvFJJLnN@EWtg0$}^ij}gR)*@*7ZRVNfA0F}xz$#v z@~!dv@&akDyvBI5SCSc36^m0gN3pqEN6o8PQ~5^sS&YpY2mJ!+s2Qu5ovv#;)h`{P zc0THs+AFQIX<^kOs?MPkI_DhID%`es(W%`(SA^bqc0}>z{hi#emrgj(v23HuwHbdl zmsEb=u#P`_`Qy;9>Fc^?R{wMRRryQQOj)!#YA3Jd&S%#@ov4zsd}8i#Ezh+~eiaw@ zzJ(XoUAl5HHYYpnm(*m_wmyk#MT;)E*UVJV^XpdCby|AUwWllOgXO=aJd?K03fyG4 zbl11~i#BfiC+~f6Wg+Xj55+U$^K;HWjaIy%HP4&t#dK@e;#aSpMa+xrO>AFXbaL?m z(`m0~y}T#Qf05&*h=p|7nWArT*ZpG)wi&!$cgQ1Td7|^y;-}4~%Z1{NOI=KY^3QGD zv@KfqX`bcGl~cZ{&FEhGymVE=U%hF^r>wgj%^R>-V#A)}+4sF?miSCtc3oq4$Gfea z&gxeWw2OKNHO!u=mGQ;<*AY{rYxiC`h|0OmoOk|gb_TPSnA5XY#*_MP7H-q-oF5)+ z`I1TJ;hQ6yw{TvXH}#b9!RK-ZE->1v@qK$fA+LH}U@lX->9g!W!<emWH@yt1u4msJ z>bB|cA?=+uF)e3L?Y#Ik!^X;Ri)M-AwGAt?b^SxqFCUFPHm5dZI_u}%%jd3ICwEOb zGm}x4McmtEnX_?b@yv3K9nr7YZu1tO*iftPa?S4BrE@0R{xh&YJsB8o;ahlL?b!LH zXD)9okiP7F_NC~)H8Wi21+J=<Tffq@_~N>yZ2S0n%fpiOuM1m5ep9Us`BA*1U-9$q zD&EqH3p-~i&oWwYI;!l!MY+tFWoM=8#m~&YGVS-yitw)yvrBikX3PmbZQ4KkrFXvC z{!5#kH$MxoR=k;iM&a9x`u|55q!<}MQ^(*rV$eJ>0|O%yGXo1N8+huNNq~WY;kC5} zqa%me?c}!Gx!cfDPE^LtVjqhu*2q$67CdE#c`?*Nl;o`9n&!Ln?Yc5_qaf0lWX>j@ zHC}5b_TD^4v<?QBbvKT4gfHztaTeI<18-5?#k);ecH3<p36`5|iehrzy|clpAU0h& zEWjq6yO|f&<B5$o-fp{{+;V8<PS0n~?kkQUnRsh?V#5LE&9WP$bIcCIP0C@&-DaJ; zjoZk}Z@1D?C94&ue#7N*w_R1v-5{M)cq73~Iu~lwfrlIscb(sEyq&vk*2|4&RE%1r zmpyG$PTnSMz@EEJI(ggGBe{(dO$8Q-8zgeKNka^CD>}W~>$0Yf!|hy?`L-{ceWuKn zp1Z4TnS#Qp*DD)thkgh;-FNhuI`1}>2DaNtixaoqmNB@In%fx~Vkoorb~<Ax@20mC z)wi*n+Nqv-c=5so9#fx*Y?g5rJ#$;zVxe`8*%2ADQ*O*Mh6i|z&incmtUl9!=4I`r zB{z+tey2<9+O*$hZe)>kQB(=%qF?<sSJr7W#yC%Pc8lrt-1Yg&w+C$2xf>2-ZsVLP zq9fRmnelw#l&)i&xUb&P-*&Q>Z&{Av5+{aJm!dz;_&RCx4wKXs=MDx-iYu$FllHdP z%&OvYW^fEC?e%+_v@v6^dg${9TQ1(Y_#)|5aNml%E2G|&OzOFr8RmH+TxLd?)tsWN zl0`eC@_LxAZ0c!XmkeFmRMehk_|CXA@>Sck_0|E4jXbq7b_#0T`J52FICqBLjAt)Q zty$)3JI<GUdSl{_Ut*nkk^Y;WrJ6=toH*YW`R0sZP^|uzom;uHMcv$0r!zD#oj3Pd z5&CpxqyBPdUmv08uFGyMG;^!?qWy&LD5IZW;LEU?KTiuhY*xNl7Cd8-CQksPw&<m9 zUG8msAH<8e)B*|(m7e=5oYh(&b>^_K>wUNOgiYnHd38@tN?ljvjEnOw-&*WASGja` ziimpZbc+|^il34#9Q-$*TYIlo{OR5=HjncTbv);7jLq%y<BCWNnH+j9Y=N_@d$8(M zshO%5jaE%rnDKe)m6sdJJ5m*%3rpT+wz&1tJt#0LBP`uiBA_sS%g3K@tgD1)R^4eR zl9ruTG{5A7rs~?VpyQgQHyWn~Wm|b`-Q2wC?9!x{GksP>87FO4)OJao^)l?U@a$Ge z#%!Cj+6gZuuhoVK`_0NR^a>D7nf9`e*&|&^Cw-#Ki5D*y7svX$-rXd0K-RRv=V&%7 zf1#Bt#~EKP-g%FwI=Y>`7#BIOXRY5UEh*1m2G8nROM)(&+;+RfsIFI>_R#C7ymBD3 zyI5{a>;?0T$Fc54%cflQ4HwC2InTx{=w@x=x5Vqw;c&Gx2d7^xHaK}!Rch{*p2{i8 z0SB^AoVcJ7=F=SbWUuhybWw(<32R?%=WH&Sv9aW&^TafjmY!Ab{nOhUKQTEAPPuS) zf^I><@~gA9%@>-}JGE)?e7|`?$&IVpGdx-ovbbK`OxqlD^JT=j$<r6!e70#VPjisY z7M^sr!y!58e*2@lkMZpgo@1f+>hv;$QpbSBIcqLS>*YGXDXsaWeeHwmU6XbT$zD&^ zxsNpK>T+j_>m}d3`9!g(P}=S`N1MW|lzDaMqt8FjE7ZL**{vq$lb4e1MD=Y(+?%Ea z6sI}e+aG_Pjp?P%-d!nY*R+)+bgwvZDy31h@A&r3$HQtu9j=_pW;n1o>AA++uQl)7 zrlqX8$nP4tVBwQ1Cq-jxRuza8+6aqel~>iV7^g3K^nKPg-w9K-R^8=3V=SuhC1bh! z>d$B18km}$O@E#ilNRQ?<?YL=dG5;77WzCns_D_wHRFt-SkT%A4bfS5MITN6QY~k* z*|$t$-NGeHn3@heEj{gP*emnq-};FyR}3X~zk0NivoX4uYx?^yd;UqS=Bu2wYPWKn z)U;O#dw6&vI`vX#rdMAm_RN3x<Imq9&!~&8UXq$M8eAQ#10@2M%AS##`>Jvh*I^|t z-OO`qzB|s!d9~g@=wH09kXjbAb#Pkf>zD5}Y&>_Zh~l+1IQO6_eeL_7d;U64J>~Yv zDfF;J&@GMh6+18XZZT#H`MOgvGHz3ba!yCuxt&!~sgrbHR>jDr6))FPUi2!!w$wIh z^M{`Y7d>=#c=3E*<Qfg#SDy;6R{E^+cUQX{6xOok=F^<jLD?1zx0QZPe7?lvlE&qk zZs((K_;a2Oue!IM-<*rf(#Nvb)9Ci{7pKl2bD1cbl=H3RY12h3hv(}zo<6WstaH0V zr^t(l&zJsc3F=CpP*C(<eX8_rp1QVP(apOohb6CGdaAzZ`qj6eqo+^vTU)VZ)zUi$ z<6mz2@N?VK=kFQPmrB*Np3YPh`TDaa>zXUK!DYU;hMjzq<C=DE_RTc79&>HGYE;dh zbJ|9qq9$#A;mzfl9`U<&k4>-Vr{Yt8J*My-ICZyf-SqzF7k}2OmY(xS30Sf4@cXd3 zeACXzx1BMXv0i+My-7FBeScOiTUuNiXxSFdbvWI*o69$7TS~^o+PHq39n6zF&bG#7 z++|*V+4DzW-a5apbJ*Pyj&eN-KR0i~!ziAeMsq?VP6V!awK>H(Zo-`PvtG+i?|pG~ z=X!CaDI07jEY}WBS$%q8t@4vCORnzud6U&EcAC+*TF&!_gD;Dgnw89v7S-A+=6q8x z=dRw-vJ)rIT{~1#^)BPav6334yF8a$j^?@URlD8ZUo5Qt<>!OFJd0<pm{C>qxhX33 zt3uC_HQn?5_g4Ig`TlgNH}B**o10p%gglE>wH0~Zn0Jv=Q#X8}P1DpU!<m|=r)3xK z$~3%r?LhG<0Wa??lPOBBuf#8IS25{%U3>S!yqG0h!(Pr`du3kw^k|zIRt+awXKR%n zlg`}jd-KNXR;?+MZC5OxFJ(H{s<QaBj!@aVDcaSg*HfP5WgdNecGBnU)lQ1PYUTFv zTZ;a&{`DsLS;0N8!076$_rit0a7v%Dyf{_sgvRBL7e}WWtzCIR$RH;F!jwXf;@jd& z+TAT)Z0dBLoBQI6NxL&=q1&k~x+g^=(wFG&+C6X2pM`t1pG@;NK7Z}?obdSDnvc&% zs0N9}$oMuWuX}x5YuBRa6=h9lO?pngv-u=>PVe%P<-#u_J?2z-Z`rAR>5z@h<Xnpq zP5rZqTIpF=%FBN46@THFp+EER%w36RuikyRX3rI#B`3MQ7_(Rf%1!qWj#_UNHaFHP z<Iv4ety3%2x3X1SW|{9dvp{p3XW&fb^Cz+wpFK2v?c7ww?6}vv`0d?8PFY2tZhIwm zGk$5}^FWclcNq&!mNG3$yqr|fKg;^w)R&7sE55mu(Dymqs^MMLPOjT2$r~?wiA7ZI zjZF=*t6{Jem@6N??{?81>zT3_GoN}cuUqDLd%L)>=%TV0MK@c5PJHp}+}7=Nr~B%w zvojW*+;xj5^vmg~MU%Y(Pg%xpUT0Z$v~uTfSCPD2)8~6C7wdY9EJ*))GB`{BOy9h^ zu-(D8rH?+{deEeLf$^NSnsRRr|2enU&%e&KdfAk$6PNNXUnzAE*`PZ!qjiqi0j99J z=<u>>amkWln(}7TW<9)c`itH-CeDXTmdjLC?Y%S4=Iix&f5Wb-_s%(6S{1ucbEoL% zs@-8Z!Un1O+$ok_?9C!Ur5jh9<rr}J{8)X~_<oM?JOf4L*>f{Kd)JCPG0cjSQ8hP; zFTd?)FL*xa?S;2~OO7aB(ht+t_?jBzrRkDXEVyDuZkt=7Q7N}>wD7jb9nUyVCBJ5$ zF~!RA!~S`D?rg78{;R1f@uA{Uv)+bpe_21*glv8Fc%N9+1=+CET7De`it#?3ZJ}o( z1D+p{HFK-&YTtRq;*Eh@gqG3b?xL`w7wTQbPnO0_eE#P9$<xn@^qrOq?OVR}s=fHR z%~#d$zF6S(HL2^(rD%qQO%s>6Jp0j=JmHO@q-5j_nLB0cJ&Tr3QB3hD;!A2@_48-P zl$1;F>%F&kAAkFWC;9yOqjA?RhlG5~+HZL@{Y}%CUnhF3x?9VGdiZUA1<bX~+~~V< z+wB}Po`ub?4DP&*nsegItld0w0(%a|W?yeF?yK{6YU>D^TO0HFPE-FyHyfLY_Fl)I zKj{sRte)J;x%KrF0nYOt#{-V2oSUom#*O2t)8!nYrF~pi1C3XFYh29vq3Gz7-ZfKa z?PXdryZGJg(p))H=c{!)ioIgae$}zL_B?F8%HNjgugl7`L;{j>Dt=n=DKgAfp0jqF zP|<CZ&kKdGTLu`%P3m{t@bvRFmldtYwwk;;+;-}OTvOh}>M*ZOmQ{bl9z0vwxJT^b z`f%?H8iFsnm)=aieDOecXxOokNJA|Nlaq_i*}U7eb-FLtrs9j6i%(x!VG~!i-aX&k z-g48I3x}0Hl?D}h*r$m`Z1dZ<>e(9QIC=FATYAG6_UK2soyxdeUgbIO<f$dkI5d}Y z37H)co3Eoam!(8E_M6t6;??U@B`qtH@)J+3x@GHsT;t*OO*X34aeMY$o^|o}uHA}y z<uY#U3$NL(`8e~%%Qu3(3Ty9F$}bH}$vCm|vp&z8-jb^v{wD9bv(MF<PdipKXZF&! zcW%`fJzbma@%gMV<ApstN=rYLSJ&0gw3EKLXw!OQzTaYrYL5<Ix^toRWyZ<hes33Y z?UI_b?BZrU&CVweecs0A&9XYBow+A&)7<7F4X%uN^P@Q{tjb?xT*}*X@$iPvU#9Ke zA1~rAY8g0pf{iU#-<rgb2^;UcoR_}H;PTtOzfAu8le_jZZJvd!?(w~vMFm@Z-(ONb zwP@<oCezsaD=pJ@Rr}w6eM`<JpRM|mZOD_Zi!*mA`25hkaC^$}>5Eu@am2N))tX$g z*<;IOe?}L!1;LYNSeL{v7n$=jV%POm!EH-5J&O+sE)TLYHafQQnpAkj$LQNT;{3%o zUF^?suQ}J*u=T+wkM#5@!6ikTzTSL(WZAvN=i9<KZ=Su;Y1KHhO2}aD@;2Vez3QiX zZAIo>{T1E2<LA3M_qNCPF1_sUSaaXWrug_aqjz_bw_kn16j<{3`K!-ycfP&7=$;i< zWK+%`XqPJJx;*(y(VmCby^B8|XMg@B<7EoB&X;Gc8B3q>Tni~Uley`f>!pGh@Al7q zbNS$7zjcT9{M57f9$+hT{rZ<(T%Wa$6n**p>Ff2Gk5gBg%t~8gbxb(UwIz5<dAJ|v z<;!P%cl-?e>u`Raw$0n~;Wv(&8K+%e5~_0Wtk$I78($^-yu+XHSwB&~9O<~~`rD(5 zr#A*3O<!(3Q(;SMmF2x&&x<8)9!^59-#njt_gebyiShH~?p&}|S-tG2)nbhqUqT*7 z2HolD)Vn$(`dp?$oYDTYB}?5zmYm*L&VS1#*;4oM!YdnnPOd%W^MbqY<e4ibPQi`J zuG76sE>`3&`}XAhtdi)tq9<=2IW#M%>$sP#z^athK5EJ06`ps#X)yTtSnaHOYuB^< zqE+E@=e$C{vgz^M_w?O+9<EUi<Gva;jdSOYD3j!iuip8U`&IHgKF~Gs`MEBzIG#6Q zhr*FSi&bjZN_o;(Pp#^D_I$o^R`9B_)O#}n4_mSI?0RU$Z@g$L&z)PBql@QtmTJ7v z*tqlY=V`08e@Fd!d2EmO{fM<~j4%3^>`a}wGP>kY!i9(Dt~j@*%qou-U$fxx*)O|{ z*gdy4{o0|gqstspt2yJ+oToj{t551&d-Qa1$qjSEIX?mv-o9UYPc9>R*Q*s8cV!I) z*YIqba<<&9^hNgy;|Oi>?psWY?F93xzikhnbF9>Cy`#&s*7-^=7k_oDvUy*+Un0xp z+sDHbzLoEpKDjmNjMdhaH}xvMl$y`KXnrPan&-7{4}%w7MW@a$zG%gs_H6dLHKC`@ zE#Ywpo4<7KT&JM+73*yjzFj{3<jXJdrxop<o!SexJexl2ZtlT4&#pj0cGs<f>#yf4 zwXD6l&`U7$Z1*C;V;_We>#h*UT5?r*)#OQcPU_q=p7L_JLuycU(dW+}x6a&dFa294 zQcdGu*}Ia=J<6hMUl*S}H}wU}!NBFNX|Ix9w@hE&qVIZ|Wh&#D&J&geChC2ErFYp} zE=-sCwqsg$^z6AWcUrke-3VLOx97ur)Aa{ST61+Oa_!bW*Wb0_X6l(%&A4^J{aM<{ zf~VaKSISPao?ZNSdn%LHne^h*8m$xAT|%qn`{M&AvvFQ8n*7X`Z~f_Oef?E2a&;x2 z|0<qUkMg~twmw90*RMVIcDTt3PFnLm%U9FQ?O9oqxx3lb<*rLlX@#6!J5%zxUF&QX z*KWSWM}wCAIeWQD>C&b2Ewks$Tl&Id%E!Ig<rhSrTzVZBSMsV(^;KM5+nXmZo<+x2 z{IdB~R9d*`^4f@SnLpR1I6c)~mA8g3@Sb<>z`>c#n~SB~*Cm<0nWZ*2t@F|w)pIf3 zfhtp8&Q-p7s<KLs_f4W*UgfXT7N5@V?#Xm}dzVx1tF_|8PmL*znUl_XFP&F&`DGuc zdGF0kuTUY;H9~)!*Oe~z5q+KZZ0)CGEK6Q&3tRI*<NZWUsn0hjFLd0q_J+c1jdCOJ zsk*0L+og59yt~Z2;mNr(ZH+tAy-&|xel0HQ{Ir}Ur<c#2bv7<(t;ZXV{#ah)$$@HH z9-h-!SSn-h5)mj+@@X~8rFid6QsF!OGHeZBK78@~wE6t$mnsh3-n`XPaNShTb5n$# zZ8m9qHF=W2C4={uCj}nL4A#B$$a!(vf`A(~1(QWR_U1f|w#dAiFBF%t<>jg7^^T0G z=}+3Ty=QeEZ?_LR5xV^1TAR-|Ry_Zbxh&46{MDludG{hUQaVZ%yEmA7X1xk`Wol^L zRe15S@rx=WvrYRwF3R>UJtuYM-9+<=&!@hP(9ykqQZH_vUfqIn+ous}Z(XK^zD#Si zI&A%cudisX&Xh?GouxXPmOJ}g7JDUR6jyqD(VZ!ana?Rk?>7~jb<iqKec{BCj`Zp| zO4}bTR`<7i{&I=s>N>N2yR%MvO+TMcSIjKF_{-fkrpos`ck!vc5<W{LE>524wvYSj z)EhoQ+Ok(7ceYtRYyJ7=QKOY!y3f-G%a?|HX}#)T*;wW0wU=|JWpys6PI_J5s|B9Y z3Q>Ib@*;nE-u5^iKUaKNKS$f*EfweHJ3PDoqS}e|-1C#(CF-V@%dSVe$Xat3M|`nU z51;vlHMGIBF}+>&y=k+h$5I2sXHQq%nw)uiV^r}AUBTxieSLG~tYm^$y=q!>DYfO7 z<#JEyZ$);@3r^*{NIE{zG_xdhO|!On(77r5RduHLwfZ`2nYG_m_2RNQe<!71eD>^R zWzkv-cF*?s+P1Ds58NB|Q<sZqd)~4Y*}2##S-jHq<+(Y3J376-%!|1?vFmi&84b&- z_2=eluPoN~m1?>g*|z1hzs4%%)ag;z1ee>ZN696hSBi_hy3qA?l*&`R%F=mS%Uxol z`BtClDrxjf%}74!{#?gecInoNBdM1&PF_m7dRJRZccr%1oo8oapQU@b^{UM%=#4z6 z^CWuqjMqh{?xfyJ>N;7z`^k%bo9KyFp_RL;c51x)aeBqYLr$HX!HXSTtuI<~=Bav> zUY;Xm=hNdAc<$UYzrFfR2j4g|ToMnFIeX|{?*Tt&X^DhAt8X8coALGAtasX9^CDX} zKCL=(ZSp*<!_T1cXV~yFGidnviEzfMoHB-`TW%bH3{ZnfrnHD#uF4KzHUk3#lfVI= zWHwIb1egGbW?^#ZO1KSTVZn?%3=9mMP7_xx7loUGrfiOO0t184WTz#Uwyl6kF)}+C zFfcIqI6xi4qIQ{q!P9HGPRPt~B?+i1HV5V$38oAw2}6)t1_lNvrpXKpb9^<lQi@)c z2CZy>s!L+_Z7$+)mT26#4I(nxnQ<9|T2tD4L$fDIvJ4Ci3TzAv43Z2C1`Z6&j16GF zFp6CA3{c#_=xg$9N-xh!k5vqeCKq`vb|o+<R5X}1GPKQLmN1Y`N?>+iX!of+b7PU) zmjutyKwTr3r*{}<C26)WZM$-oZ_YNw1p)?B7<~kITX_uvL)0eaFwBy^a$J_Ph4bD* ztr^dj6s=X7=DKoMYiOddU$D{ypST>c1-#4-2XYsroL;o~?5c^YGT6@C_m-U2D9GIA zvrVs8C8T8?!-6Gqeau8tCTJ{ImI_=}U6O9oyK`9s<B}KLk%uxh7G8JjpSeYybL-`$ zZn;g7oAQKb&CN+F_A>KhxwTTD>#X*Yl}9e6m_1jHdsOs@L37g9X3zGOde?X~XNc^6 z9X#8hNLOg~owEu{EjOyHe0#BJ($ZeHS(?*WpKD(D<RQIKahI{?p6}OHw@ch$;$Cqr zWINxo7%wU9ydy42S}NhoL@!G&(0sP+nbW$?DcX&9V&2Z_*)A|`a-im>TN7igPg?C= zWgLFaWKv06bZPJem)$cWZny7uo7yQXb}#qsyi>)3zP@fV#jcfl1qzp3%BV`as&2HU z&BO13)2h^z(6v$LU0ck)8)${zSsUu<>1d>V?CaXhq$SQf(=JU4UuT$duiWIJ7T1Y3 zMl;`%q|dHgsv8+MObW4@leOA*#yaaCiMh88&wb72=$&hBxlHTj$@H*Sn@)&&l{~rT zDYs#%bt6x}rGiiobq80Y=zPn>ZJak|>S&&xa7*C&#<Rz5WrZuAFFUR$xO%x82lwj3 zj^b+`GG!WYsd8FL6|atrp2#$-*vM*OrtpfX0<0lk)0EhRE+y|Q`CC)@G3u^oc;&<M z+nVpsSGio0zWMB~86E{kG;$QTM;aP-oV_W|)!E2!cjuJJ386E4%{o)AT$}Zv&E&7D zzs1GWRTrI~t(~-WR*_cbij)vO2X@VcMp4camUFDlw_x;MxRUM2gjvqHh6V{244iWK z9mO6#o-NC7;2B-HQ}o%5NsJ1tMU$DL1ty!S_$0hcixz3paPrGq7UkQq#JpIS>tM(0 z6(Ub{&uW%(&AzO1dF77KWdUuTLCRiJ7$*8StoQVCGY^_6^1$-~Q|^^hGFuKzcbvMg zFIMx`QV-F}6P(koZDihSthBYT%eiF2N<)TO0vEJ5tF@g9PMYPRlDcJL_$)PVi7vT` zGYqq*Y&#V&S7}Lt*~_?~nO>ixyCPO)rCwQ;)S{}qfPGP$Q!>}WQ!=YEvfRUs8gkfO zcT7s$>bY<Ub7+>=6uy^_7G1jF?`+7lq}6BE_6AGm64j`L861q;m<4?mnYT0hur)GI zTq4T6#6(R<v03^`rJ2{HPPTwmDGQf$1*veY-D!5rWu>s+k*gNYg3hjdnUnRRrukmE z6?W@frdM8I(Ck&2hO<(wXP)x$U1BuV@XTS~LnT(h;rc$$nw%no7;ZUhEDGLpR;A^L z+RMJEtHP{0!5Panq}Uft-#FjvtaDhZ$21f3OchIkU=GuB<;ngA9$5iaOOA+gUVSch z(BoqA%B;LuJ$L;~%na2Q?k<^p<=j0#smn1QY)rG*T{?2SI+s|pYe`+1;&W<u@?1rg zdDDDU_1${z-0cX@OV#d}5L&wET<VL9UL}<+rkZawRHrH{&EV5uyRpDOiecuonF^=7 z7V^bqz3Xl@TEWh_+t+Vh;+Mzs5>D@4EONP6$7D_BX$J@1Eyoo#FFc!lmLcX=Nc5a% zULjhl+RJ8n<?dQy*-^zMkfHKw;>69zG!}LGUQn4O)-N_^c~+><0iU8rTclV-rMP@m zgpz^+=4{~N?p!i$oxqVh%P!n8i{(~$^JHSk?VRx7Vy&pXmP;3u8^sElt%_AB)mB=& zJm|ue&P6j>8(LCJW>`v3S!(X($Th=s^@@}G=2dK15XR@E<s^5}e4)1)gRjuj3npKV zo(<3{Y6_mn+j2WHGkngXlRhC2RZV=Zaz!&5m-!t1S~Ts-loQhwHYL64*jsAQSth`@ zD#9Vt=&qN;O-)S=#>-5amNHj;Hd?m3u(VATG7-+sju2gU=VF+mlEOui8<rb)6{X!( zSF5rWTxPgxdcm`_$glua7iZyXOFF%6LpMHK>tbeNvgOswPqNQeHI?zK_I*Ele$0dA zN*gcb8Xem*BWr@d?JoA2&aS!LEwfiH&GxzQ+)DWBr1ojPT2&0oG_6%$zIu0EevWSt z(-tvXsjwYMAG7Xqc<jFQscpiMyQU(Y%Q?JtHNDq<aMoZ{dm^$+cmZqWsmeneFMBoh zFMs&5$I9sE$<PJuWmCSK&G_*w<n`h;H`*@-PcT>5GVN6iW3i&qW#6}x82e(DnOIJ{ z)-+?W<B`+Co7{q?zR&qmvoC#GZwbp9)zZb8&(3*mcA4CgxmHzQD>W?hmCkJ66CPc@ znVO0VI~R!R+%{=bT6V?OsAPiLRP`^ma+O<t&Z}CuY}$$GTc7X!+^w}p(#<<#SCEjj zS;NjVJHxe>dMD52@L-B&YX}Nn!E&lp)51^nrApA{d*@>+b}GzOQ(Jpc^S)c@cI9jC z#&cEmE-yCqyK<N5;z=p5f;%fqZhIB)tV(NRxM=j!res5MTF@<Tvz2j8Uw>GZynglI z+1WKu-<EWz^_e}rm@7Ods@YdaZO)WSiyF5~J#uB)a#<_k6@j9BCnOFywP!vH?KL&@ zov>-)j$4~AZ?iS;pW1Tbigd=4<(KE~Nx5!zFOoNR$+F2IFL|$os+vx@e0J;1%~2X1 zJ7-TbV`x<kYA~HPQ_ovup=s#;rRV3z%bVMkny00{_%!Q!Y4IG*YwH%KbG<z+da~f< zS%r-nbJg5B?yj25%2u8`WfoK74F#EtYtl1UuDL9_dHMcsz6v&xt*-o*`rCEBJ!kn+ zwb(LLZ1TdUP?MH>9q00GQzvazS*&s1=i^!v2`;D1Sw4!#)~=M8d^+lRZ{ETspGzFJ zEGV^HTD9`thACTjElC$y6KLI2G<jvHxmW1nZoe|mz&WmderqxVjZQPVoV#>t)yXq% z)1IuF8RgLNq9bJW)=!hC+&wM!aaMR)uUv7drcbWdx{#ew&I`5AZrglms${06ccD&z zd6bY@v(l=Fw}*Q!?{ZvX8hKc9Q>*TaE9rh&pVxBsW**+^vQcw}+0}qnR+W>BJ-rs* zxoB$KYtEGvx9yI$lyPXd(A${qIhSpdu3Riwc6pi5lPE!v^s*VsSu;01^DeNQ^Ey1k zX=lpI8EdkZb~<mG!zFSg>|D>HyN<@orZz=c&0NuS?y_@P+N7OpSMn82O1qS`>`->F zt)`{v%#=%dPkGJMJ-xFI`s!rf**(*N^Tc|KU6nz8>y-2+&+3%>@PSvC+vZKU+thiL z2DcSLWd)XHFFGEX*~`jsd&yL;Wf8BU&a9g1;JZ-eC5KwFtKOwxE2~H|znL!$Rxdp- z{GxKJ*cGRnp=bO`S1kAWGNY8|+Np&`qCFQy8hJIQ>ujAG5%5Ih!l9@cIV+u)PF$Nj z_nywm!bQ{K+IX*7pV=KQxG3A&H<Lv*BPuQ8_R73vX=mFrO*NwqZ8chJoZ4y0d1~?n zEuK4POOni<%vvjMJT)}ZsPy`L_nL)fTf99kW^6vQ(xk;8p)26(B%#-aC5hEpUcpA0 zs!}T#thglVD5_kpm9b~pJhxWM<KA*RQ!BHBBYjJfMJ6n3_4_hYy5mCAl(b7%E?Xos zXeG_d{qk9NQu&<iIYk-IPR`h-cy^-CS@C6s3n!WR1g>_Q>D0Y6@?_4mHRqkJb)VhY zb#~IznM^BJIjvR>H<YqCx24@=u2;^iB`f)kEG{<X4;OptE6V$LP3YOlv-c`zK8f;9 z2|YIR*{^KLXjjcWQMYA9SFX7^tzluz?kgv=y!AGpz2{hP!SHF6O6W7UbvZLb^R1gc zy0zWZ)o2Uqxwq=mTtSmX^YW7B_4;lKoB2FSYp3d=;w9#hR%$1>W~&`p#uc(w)imgp z+oVNanr<5txjKDbwl9hEy_e&&=F4=Jz(CHp@PNy6JC$vh^>Xg4?0T(wab7sv&MTsx zXT6<gO`3eJYf{Ulu!R{qU&Cfh($dV{*lVeItx9Uf?v__9szR!n9M@h;o^4$=ZLZ8U zZ<XGiE4p_&`@Wp9^b%WW+N}^x>GQ60Pp6)`mb%lUS3f9jQdgz)>W*8UmFHTv&XSf( z4L#Kvyr5-^(ak{9h|;2{bL~rvw3Y<CoOHH$#YRID&IOaMs;+UlXLaFAaLE(D*^XA8 z#hkt!Yo4t&^IEwjnUPn`RxfKoc3zmJU)YulE_`pFoSN>aGMy(k<MZrUo#mWLt8>1b z%*|SOnX9L4a?EUXtI4SqkMidF>`1HRH;Ojfa(UvbjVY{ZCw6sdwkEDkX<8S=a;UxR z)6A(RlhwnoTP(L0RrK;M=F0avbKdq+u!~gSWWhP7IYQ=2warS`eKKcOAm1`q=SwNx zKB1vuiB>9s-rm7I=8VDS=65B$*XnCC8DCl@Zu9o??8viWQm;EJW6pG370lErxvVu; z)bGbjW3MG^4y|K*?3NanHerpc_rjj8d-8fsO(i1C=hJ3}t}B_lXY<9+Tj$LZt<Y6l zxuc_GlaKd4qdD8om1!%6O%{8UwP4MwRVj>j7CtWzSi03J)GKV-Pfd?mIl)qvS)X>S z-o3Qo?dWxkguy*Dzsr1aWkvumb5)6!XPGcQN&t4&vXvf5KocT--h;xfh6MRN~a z%9$Z^)#kmG)CJ+^bFEC+k9@tam$qj5+DEH>woW@{lUJm9>*%&eZ?9P;SEak%IT=@W zV!6?@ovjPlow7q7HqT7X3!b))*)|}PPwCZGtxEN{j==7Fde1GZ9xn{|I_JWq;#Hm( zMLo?f&-rD1X3OVIpR^5}eLGU)X0BZpd~r`&o^R;nX`78+KD)PLxix>(k(l?(rhLAt z*J`<PS=@vbM^t(rzMhwLEvn@6RZWrGJTsSEIhDEO&e6W-E?bvMX?9gRY)ZNooOIeL z)@`NlVZE21Ji=xbzdyT2EHy>i)nwKl)6TgpPFkUvy<1h8S1QJ8R$fXf<=mJlsvoXV z9Ok@YTF9a~JK6erHec`!y;2;tJN(@0lw|#o@0MF$-aj{2sC}l_6S<jN(*4DwPE6F@ z6zXtrV~kaSNt@J5=FZf!o_bT4EDrbbTyDK)@v6d8<*$2KqtYXF&VCg$o$lh3KPTpB z=tT1<uj9UkbH0{qv>Pv)w174BTvt@mq}I?NpV_{m!eT3TPS2gWX!h>Ndpkab#y%5W zX1M3cSyqFyJ#sg6lg)m~X|0==6cCl`JhQ}S(S)sScT+=|8CLELaShfKG<hjH^{Ufc znXpM>VHPL1?L2!m>6z(T-k(3)O(Lhen{tNx6;>se3z{3Pypy&vc+HY<-iUW)&zH}3 zboF)g$X#U8Za&{<$-J58Ixc#w-99bL{I;=`jMuHLmyDmiIH730CvKw8%(=#UL!L&Z zG^cR8wRRQVE8l!XFDvEB6c(*TcU&73CuLSz&ziejYh$+M%hPVV+zK!DwWdv5D)VSj z@Lh#NTZ5<EeJw5-He>S2Qoc1kw}M`qUYs)Nu1aRmvSoU&9KBbjOf42y4*6oZy@+Aa zovh_{owqGgF4er_+P2&yT7BMno4~DW7Hz2v%FS<0`|9<HGi0?=^!A|j9#gdBZl<$Z zPxqQ<y6EVgyK$bgp1Qo8a(njHGwZ#gT>Sc{W-N~0^JvMXuq_(B`qt}$@-DC1mut9n zA%l;2<>AtOSt+kit9;qft9oX)YS+>p71Mn4d5e-#q%9&2ncX~nYQa*Y!^;eITs$jW z<z^Km7x{j!^<4S?M;MF*7?>HDm>HOu7@1gE!6(juRtgFV39~ASC@C8nu?dK(7%Lb! zIt7>{h^acbfL9PQGBC0-8t1$yUU{J1=C;)wh6fUCj137A_HT;+#iYys4U0QeFMj`t z`9IEWx_Yx(t{JR5%(lnQXzJykx~1196i@u|d(W1wZ`bCxU7ve6%juTzm2LAfv`hXo zJo+N}%=k#c49V+OJTHtFoZETb;+*}P!a4Qd%Glku)|&pSy7lkPaf`RJ;?<(P)822o z&$&YPlfB{opV9I1AEm?3u9c`M*;?nNH2e3($UkAvc6)Lt|7W=2`263$b7!_re`=R~ zWZ&EFbGlU-{=q?e{xfLbte1*5iQw9D%dgUZ@~y7RPqbaQwdQ93lRNb)>#e(c^vC7@ z8Q$=;uTg)t|9iv-J8#ErZRhqM^LTsu6GO4ix7U-I`c0m^$UHPF#_rnj(>30TOLiUF zed50O(jRZ+ik?3#*Zgt0H1R*f(dYjew%-0;-0+vVeI6hGZyk^LGc&5<qn}L9cK2g0 z&NKdzCU-&Wxaq2o)mwZ^Ew7$$yD9WD_x+4{_qP5s^IyJtrE>hYXI4|@mi*JNIJi}% zW9N-;YpqtzbN|o4Jm<OPx#Bs`E&nrY1=03jivKeldT!TQ{-2>Z^v%Zq3>`9-=k&k) zXV~Db{QO&u>Dsj`pMJ_LJ>+TZo|y3K<$s2rH`QDPLO-@Gy8gt@ZFl6_4J!W`xGisG zeq?!7Q~reWePFt7;U8avhwjY(8Jf=(&-u@Afv@;KL*#!3h2lBS8PC=KX#XWRg(0f> zeV|pgZ^fzFBtGF^jQ<(Z|9Jj*Ykp(S*8K9DwYi$JGIKUvuTJf0UYB!Hbq?R&x``F} z8#w+d?pD40pMm?PlKgXvHRg*w487lN6%n=T|IcvnvEAm0|5DN=kJbKXxCr*!pRl}D zQ~2iVf9C#pegApuhd<9Iu3WlTcdPuRGm&O`H6bEb+wFY+UfHzxd(4yiYenZy*=2vL zohkWXwZ@#d_gg-C+D1IIdGw#*ko_j#s|;^Do=-S&-i2*e_AR%$ecKN6{E#lsDzrG{ zy<YG?1IU|)is#?jeB*7`-J<;pO)C!kXSny^x%?OY&(AFn-MnwVP6itA=Zd!#&w22l zL9clJe}>DS;?-@fYo>17f9cz|_nUUfolyRG_w{1g)*HQIlW*p!uP#X4`k&$P`G2-e zwRzdvdbfA1yU#VdVTq1x<$s1H{~7#0ioLmBpLaI2wQBE+n$yLt8w%=A*ysFaDp8#C z@5i>33G45wK66i#7vG!dYQF9~|Lo01HAng4pR9NPbN0~U;?x<@1&`k5h(AwX9rZaf z?%kxjo3-=qJkGn^yzhkWr`uVVfBv1||D)~Ce}*-&nfWtsE~>WA@B7)O_;1~ov-4;2 zoBXt1=l`s0iCvz4`;)E3f8(RsPrv^BZ}HmRPq$9be=T)mzy6w=wtuS<a(-DJ_|Krf z{@0FUF%LJdJlD>0o29QZeOl%7d6mz7Ue8IFyl(ZM;p+LHpMMws^Ly3(Q%EDCaQi2N zYx$v{um5KdIJ&A&*1K_TTan=m4ZgM0e)eWYNe8aGw?5kck$hNnw7lAXhKad5S+3mm zJXx3YJo)jzu<GoEY3=8C7t2<wCV%F=T|Vn7x7OnuGcWBe4o~<t?|3nHx&0G=rtQ=F zPXx!U{}eKL@-N?&-<D6lKIfCx6cr9L-R}NP0Uz9NhyUaJo1hfIbKlf`&ew}8b9*Pc zNPCII&b*zq%I&hA|5J|8I~=K>?xejxb8%x`<S)Csb7b36vnJR^^Uj@kXI<Ho@+ZyB z^HlyA<rdDLVEoB&{i$Eus${%AHqG4-Y+c+k=l$HxbJ!UV|7UPlw>($>^4GcIZDpX8 zYn^WY?Ch~Bo-Y#DCp~|9*m_+~?m6%L={)_PgL3L;YHqpzNF`yv(cQJ5vqJYD*>%Fs z{rS@EYs#$7{Fxe8KS5gglg3ne)g?3Lo9f*BDev3yr^ie7bY0lf?&IE>%ja8e{P){A zZ&&J!Iu~<}DRW<)-*M&Qe%{VJrP+QrtM)&2fBxgj<)1UNU&_zyf4={;!}aJoE%uXq z_8J<#2Mp^1CsoDkKk5GLyyNHM*ZI>npMGMVanr3Xe42?x{hEK9S4s%a*cE(EakaBC z%VU-s>v`la?(ix<wURkt-fwB$NjLvgUeCX{`{TSPY^x=gdZewtztTeD@w~!Hi7k2D ztL0x*_vn5PJLk{v?_gW`W3~GZ&+|7N7u<KaR!n03<otF28PeMO1B|vD&R<t??uWcB zyXl=Nv!pc>qAd><&*7c(-14?HkF^kc`BT%a!Twp+LAQSL=ElssqA}@bh4}SdA>mI; zp4NZ0wW*(WC3y4a58-!zPQP(*x0}d*3v)GAJO5?!6LdTO9RGOJ;o6O5@_jb~gl^i- zRP)Z|3w(0oUDuu!Q_g%cnLahnrnNDpZ@sio%gP@U9#uuHo-K8&*sCM(^?@a~dpz3? z>`7X|8TM>0pQ2V-=5OEGC;u}zuGV+u2)9q3e`~TjBQw9=y^?uMPc|3MTfVx;cZsy_ zRiiaKRrEexx4pn(kaxJUOK<ka=<qqAvw~LN<S<E{|H?6Da+!y~<m>Bo9XS83cX+b# z!RCLf{xj5+Rq4l++q50@-|r@QbEE(D{M#2R7k>))cmKkJ`mGkrCoH#4uso-KGvdMg zm{--C>#pSAn)=V~NXMTyGwT1$ihcSyDu3O5Rq<s<uRdP8BYE<F2EnYU*MI6(>zY04 z-n?J)*nP7}XZ1hItljXR!E*Ke?B}J4v+rB{R;$;0^8StK+Qpxidqqo6xpCwAy(O+@ zH_v>3tFu;ehIwk#cHdXRv+7TJsXVLp-g<@c<Ca-Zd#2VaA9?lG>*mG{d;c@&?(I9Q ztm~>H>p1UX<IOvwp*Iy|&#%n;=znJ7!F>ykmwMh@!<xO(eA7MS{0TRE9|fPBBXEgz zQ+m_7h*=E0b!Q`1l|JgIS@>t#0>6bvZmn55Lt)0J#9!;`W1<*)tBn1Vx~DGMW&N@5 z$5%`DUqZUGPG4r`yS;ATt(Xlvif7etea^pizRslQ5`1s|JhHc3ch=@V!vyE;*_sc+ zr<o|u?6m#pD0#o<jn`wDz;pG^^DkQ-^0)u_-2U@zk<VR~N6)WgwE5eU#%%rfaQ6Ge z!$~{UmVB@CtKDc@5Z0A(uE_6&uk1{-6_az9Kh)ym-Vt_t#lfv^r$T>58!WoH@zt5o zU+eQ1)V+unjh>QMy#La_n|D^1KW2Q}FYnW0H7)S<)!MMTF;*YStd#SDXXafs+O6x8 zwM}Y!sLi9l4^&-efBk*niTs~FH%*CkY*lP_bG<gM%Fa^ApLW-?+0U?kTj)dI?!^4% z&l}GhC-)~^zWQL#)J}_lukw|Kzg()Mgcj82@=HkD8qS`x)Z*yV&!;yEs8np3_^R=r z+paHdduviRZoQEu|J3W>y~AfhR)-$y`_JHYB;ko)`d4>F?rD5?`L9<S{AbXM<~)+v z&Un;<|7US)TbaZW8QueB=l3`_Oq{fWLBKJ8)05{m&+W77o;qIa6LM6MDZH@rxBZpR zb9bD7WzF+9(&J&fjdk(dhC_dzD+tx?eo(*e{)*qn9<(ZJG>i9He_(&xA-r56X}jgA zM_(VXK3`RE*G=E4Y8k&?x!M}(uc?JM`)|}0Fu3PmPgw67U_6JX=zbQzqQu18-<ZGd zJ@fqb)o)c_-hNr~Fo%yJ-C};RO;P)t>rZFDZoH8$d+2ZU_DjVoQJ;=a=WY1=_e1m? z?ce?lC8ehG<HLg^&;4h3%y~h}?2-Sj&#pH+BF|Q2=v#bw==^a`+41SzYLBMaugG7z zoH3&^e(SGO{a1vK+s9Ybwck9nnEzUFV;}#5=WqSwjOQ8untHIALD}-J^yInG5^@z5 zv#x0=<{RwwYPh*sY?giUlvitxf7@MJ#edcA+KR)bOT4z6cX&Qw^<1VV#{;W&-sO{j zwWpkY_ri1T_P-6EM)%2luq`kz4d7G1%zR9{*5%tVomKp$6W;b!_=m=%d$rr_mr2^5 z8o%bt!<<*CCz9@aMO&vAKK<gs+~lTf;T^prjCbBkf%wUq-$JiHxgIoU9-sH`03KVX zntEo50>K^XU-BAmX|0f68FhHE`Wp$J&%fUuGv{xq=PuyumQ%VMb1VPan}4(OxZGb^ z$7jmSf2Fm5h0T)sg?Y*Hi>lI<rype(>?`hZH`ZX@5?cAI_y+6S&h_7BG4<y6Php=^ zxmu~Ic>X8(r{{QrJMKK|n!51s_chLY7l<i|)^3q;o7-?>)vi+uq^x#@wRY<#eSE6d z*tDO?&&{(r;csAd>9URQ?kryUoFgck@4=z&t|iY76(v1yJjVQ6{^gCH=dYTl^i&>Y z^!|KGxFPA|M0?j=Q&v5Bc{TFWe}*gb_$9B;VP^O(e_{P=vs3$X*zG^XH>{ug<9PkP zO18wp-3dWAHa~E@>bO8P`?j``M_u=M3x8&xZE}9a=ZX)My^K$@G|RD1{Lj!K+vIsu zHg!kCin*LFvwnQCiFq8<5w~}9*4<h6Z`%KORo`cS`{2W$it1OZOAZEw2p@LpZ4a8G zlQpBGigVM$*$HhG_G)=+6yEWySSmVM%<sV49B=8Z3E_>Io5ijzT5xS)>V;)ya|<$K zo<F!*{Nau9$CU@JtkZeJ=+$VltTM7WyU0aH{?rn)y-j;G5BV((GtvF=e$LYdt&0i; z#qnQNf2A*Ezkb;)^Uu5)TU5^OJaB*2`s6J~<uul+JoK7;R%FgAH$JC@zhYh=WBeEM zcjfP?_G#)Xe`Q>Mf0^^ig}-b^mrI&Gx$y7KW3eN7Ii839i01DKwyn_cJkGPDr+DXs zZPkCbawfcaGF@Wd-gLKA&wVCS_`iHp_I@lGkP)`om;F7jli015X0le>dA`N%xEiCq zuJ8<7p<dVl?bwi0XWC}#9@u`r^xXVhz2XyzSKhg8@|?9XXd|D!)QrS)D$!G~>dtQ~ zII`&HG9|T2<~H4VyoVOEt-r0k&5pUHKTyZ@v0(Ui4za1vMSpVNE&ishvDNv=I?2uE zZWcjvy*{m0ylQjEz~^(=(OK&XL(h9NTl1YwoU%jZ_Nv7^|K7}*@;Lj*Q&q`XDlaV} zf_jgIsN3-Uk-H<JvYhdAn*EyV)2Hmu<LbL3ck}h{`k3Hj#-A!}iv0Lr&6#{*W&Yb$ zn`G<w0zQY#7Py$lbKb^4aN@(Qat$wYSfys$PJX=2b@JnK+2}v^duPq(+#vIxq5WRh z{fEmX?fd5hCr6dUADYbn<>rd`4);0#^h2KPlarXwy>8~e$*bMwA9>|_`|;NbkH$_( zox8u%pYdt#IivYWocCuA^ZVk?4OL6!H<#6XJS?V@RD9&o=^o)HKmM9*Ot@30Ypphw zPnPXT24nX+VV2OQSFgW&ww|+VklCRkQp9p<_xVl#Ogd*oGMc`*%T}A7!2VBihw0zL z&aXcnD_x#vpZZub<l(FdmtJ=s=lJU?m9wC6&bK2Ey*51U7Cw18z9(AfbRPSLm@Gd2 zpwsJSKDPN2^7y0Z?DLIge-D4`_cQ9g%m3=cN!eYIm02<>58mIL(UbPTXY#c5nP2j5 zojTd+dbp?e#wS_tf;&C4CY@D#;I!s`qeJJT9<_L@3zk2AMG8AMZJVX-Bzxk=OVM@9 zmK5(c?D=N9_4>L<sjlk9`pLb&`tNSgxw^lb>-_FhivJme!>3K#c+80VF4y-N$8XN! zKmFEpGtZxCCDLq;+1+=N%hh)mUt1z+op9AF?aNc~3th4G5_)y^H?KUGj_=86oL9f& zy3Cqzi>}8eQ@DMengvh2{VTU6MqW{^c(?NW*~;^$n&rD6-|zD^Y15MgzhzT?$F@G+ zZCz$F>20G#qNwEQ!oS7qLfj{YxQO$tc2}Ia!P04q3g3arU;orP`q{??=<8HXD=6Oo zCcw<kAvGxWPx^^D#|m3_9{pP|FM7Mh$&-&8F4s-Auc=$|V84X-Wz&6@-@0m8;)NfU zrrBRI72SX7Ytek>wa%MA1Sa~*->6Bxt@^=Q=JbPAF8_pt!+*RinSabN`oq`FA4?lH zzw({p_<7GW@l5ZVDlhEp9g767wMkF9`=W5gagob&o6}EhJGEeGwUl<s?1f)+C)qn_ zm=<4|clgSJDD8w_{~2@}kBY2dJ~NFa{pLA|=l|~X=*NXO&Utiso7dmFGiPgm323l& zXHm3Q3hVv2_E^+0kKOer-%r0`?De)hu=vSt-mA8|%}Z4-cV}Gc{t=fm>khy2{4Tya zAv^u!I%gII^IV>2%H*^2RzjiLA;klRF=6fpJ-=0-pZEIeGw$4g?AP@xZ_l+|e=^DL zV!-2`kmnLc4_+Bf^{Y1S>z(Una-Q=G{}(Q<zK{)HPAYx;YrJd4`!ffhYdRVq+PG+; zotN=K=KVqbI#VTOE2c?x6y2BGbNrFG=|5Yg!=3ym>!f;b$nSf=T)#Pv*-(AeL&n00 z=L;Xcy)K?O+k9VqQrP96-li)$-55n9RzFloue-6Q;9Sx5MJC^c?NzIzlV9X0FNwa) zAM=K-EV%1GgX?j-I|)fQu5oUvPni7JTF%$w)P<lZ|C^E>OSP|hPo8_iq4dT_C1#)J z3XiRx2OQkGisz}5m7d+sLXB0z7u!$!x~)IDpwz1C)h>;uTbp$zajjo(5XK>W&Wq(B zx2dz`@`MKu7>nl_?A}(I5Iyyj^6q2&S3DRmq)%E``h=lC|LxzK7o)9LrN2I&z+buX zXOz~f^Ka{T3f&i-5!0PN`S-dL3%`YOmn_Je(bKhOVOmB*UQ5sctKBl@2a~T{+`P5W zl1F^P9Ui~pIbSC|m5R{fE>G3o_$6y^aD1#sXpCv`+&ktA4;=I_xOv_pcuqj|w1daW zCI8;M-J^4ZJ5gOk;Pb-R{%KF%WKR6a5#4v3d7j+U;!hC|Z{<wg$=JQ=li|$?Qr|@C zmIqu7+03-!%xbon01Mg9^wOm|hx+fNmn&R!Fy)cjzk+?0!nu>jH(8q-9lw#4!vCT^ z=TkqA`Xm9?RK2S8G6gKh>bmDnxBvQ+wY>ir|FghrM>n3=Vzm5vyygkRmYIi3gXXS? zn0j<M&orNjJlCvMz7z>sZ7e=mIVpxG?QgGTe$WmL&b%8d`sb$Yy#8WQy64rpNHx=C zi_bs$;j`{ds>|)}RrSV}FDGc6$ym|&jw`H%b8=JG4#C@8th!f?Pucpr9lI8{cWvAJ zy3dm4Z|6FvyUx(*Zxx<@+@Y$+)p2g!j=HSnYV3)Z=gpXWZaKe=g5&&kVsWy^>g8px zTgKRkMXcu6+u<I5+ll?;r)yUpTos=nz;0>wwtZb__T9SvuXbGqZ<Y(+c@f(>Kk{zU z)w0sgoXIBBcE@j*_WQRr@$!W8*L8lgYz{n?U3T;u%gpoVKQ1~rNv+%By!~3M{klRS zhbEs;FFyX}^ogaRqBYS{zPGn7v;N!~`tcFhmYd2S-~W5NmzCEbazjqbskmnK>^bfW z51u@DOoOX3VexL(-{(~wvu^k2?hje7xKlOtx`tR{UiJF0bT`H774>fCg&vkp(Q-WS zX~i+gPmFH+<AgoTr<Od8k@_@q{+Dm1nQwG??Gs9>%^&|{eW_zMBXAG%+n6WoUg;c- zFn_J3?y^>N-n64L52iRcDn4~Oy*4yq`-3u*=Nm;h=et{<?ss{9F=BDy+>hBYqT9-n zBn`ti=`V1;(ZB9)WO1M2&2XjHj=!HB{FU@}_UT`qI}V1WrstR}V%u(#+py!d%7Vpn z>Vy6%Zg{;c*5+!=qJuvK3VWotPnHocI5c&!);#;qho^4acGRdiVPU<i$<g5Rvl(6L z*4nK%5dHPJdtHm@G$X%+!s~50FDhQ`F>0!5&s>>sr{UnQ9XB+W{WUwEBx86ereE%h zkTT1@Ki8!!KFqJoUKf<L^VylrevIAXzf4}PZ{7OLRe4U?(JxFrOe=!+g&lnyyX)%J z(u`BL?mGoZWC&Ed8b6K8UHO;&SYL9~k_m6rxvyUNu<Xnq{+yXRs`ecec`T>2`A_su z<vrJO<Tcrfb~W2`<#zM6=oiiU&#>`Y%*(4zOs8bh^Ea(Me@%m(Yjpy%<*Zd-iteSD zE?JVZ@YMb0oANwQU;ZkR-e8h?=v~OQh4E#=XXj5!lQLf-7p?8OJbcb?nV*u|J?Cwh znHKOwXl1CNkWzM=$C97S_iQ*<@?84D#M>TLTlrb|rrUuN$8YYomEbI|ao7>xkh3?_ z%}GRt(NE4n<9$bL<m7#Ib`ocj``1;ttGaU(y7XDZona3OU-BzCb7Q9QzCb?nCv5xn zJz6q--TB<DI#ZVU>8i@^czCX4f%;YdXu&_P=XUsQRNQ*=yzdOTZLd0A4!&C_w%*j+ zVAdAlpw60CmTB7a+Raz`T)TZ!(t2-EgXoebktgX3-hR5`el_u&Usd2$2CM5KU!HVI zYX_Dd=1^MHu+!1G<NW!!$eofmCG~z?KDK0MZQZ%lt?S~G8`Z3pR&VLsTG;$V_wGK| zlky5bc~4JUTXx#k%+d8`6>rq9`EUKKt64Q2iqCH=HPrh1@don^9@7V9$&<TxUcK_I zcFMaiKi-yx{rH=3@%q)HLZQE7;$LsubEN<AkLUjxvfUSNx;C*Y^0v^n!n;o4=|Nqy zg+#uF%@E45I(24OM{h2FdVc@a$tq8FEUWp?AZBc!@Uiz|lUvNc#XJXs8dk9#s#?E7 zbq3G8`>Ho&vcF_rcyy-hZ^*_Vu1WQIISpr-7V<3krrDVqI`7w(ZDwb4?6$Xk`5c}r zJ2^S_wfisj%Muq0`HrVAeiW0qrbAn7(FdcKKh>m?x1^<Yx|GG8ZcqHX-R!-(%w2{> zebb_fJ*NC^SkJzDAG5;K<iOY@>5pZ%wLgY6$IWvx4b=QPOE+S(&Y|gkk{ZUd=C~$y z%CQQRRfrwGrrH(Gw!UE2s$S!SLmlT!7aJA{-R_(GXIV{3(SfA(T>XcA|EkEZv&lF* zao40B>Ndh|=a0ozq-wpKzg~p#xw>rB0rBlxwi_1z3X<KR-1Dd4=Z_!@q2TkLJYRiw zU!DAmznACYt-jODANPg@1YBvF@Sj1}`r(hg1)U#Xgm{XSzHq%QJT2(?)Tf_cH@_%e z8@kr~neRp4w4L4-w%cADi{4TjvT0RwcZl98nf))MSFrFH{Y^IK`NY93*}8I>{S%(1 zdll=B3OCR9v0Nl?=la+o?fvWnx_6J2uVarpye((j(afV?U+90b%iQcbZR^CNM`v6# z<5T&@5cxLM<Y&mWnm-O}RTE@-;`Ub6?az8VX}6Wzdf8+Zr4%X7)p6?-mSyb;Xxn6e z!Z?w&ZHxAgQ?UgWIScp#-NmjZxU6WK%~yQUxvyw>{v}`6^8rTF{CK8pKI!J>eLUmL z+nnQT$`nJ@7EM)OexG^Hq-U*vFTPy2Q}=IKR$Kz#*^ViXY7a=%ed_9AshZciNrfle zdAhWOt$^Ms8Mkm5b@@fDxBK;7Qgv!>-k4}*vVZZ*`^(He>g~Q`x$kI()WSu%M|Pg_ zdgHFTI?9Zz<mR6?i~5PzBbXXFbU66jEQ04BJze=|lA*I${&m}Q);~u|m!0_;<*mO} zuQolVGhn~}bn_g&i>9}BKVLd=&-*i(q377j8H9~{FK=C2r|8?jcjR2n2Hx1PnO9aO z_d7l_tGQZ!*y0Ye`c8+lpX9e3S=&;pwNdB6^!^&FRT8Jyg}v+lskKt~s?u(sMb~XZ za_&o(PfXtGH(N08tlMnej4oM?wO7{c>Zy~p^Imwa?&(I(mv2fRH+al&`!iw5pB2v9 zuivgUnHKq?OEq<`#HFOr1<`j}=N(+FKAT@5EWv{7js?5T^20t)FTa|zuDIh^o3^EU zOHHgK^K%pD$PZo{mrA8(JlWe|ceZigtam$XxdY7%UE|p%8N0_B21ja|&E%`z{%FGi ztDQ|1A1|{V)VT9ILrKPJgIb}>!EcA!XMIzY*q~Yw7L&zuGr@1^u2n(Kyq{)^#%w<k z-Mlv@wrkUgYcp!YHLfe2`Sa25@;6SAomtsewm<qN|MK5et0^h#`pye<pJzxomSQlw z^iQ47k&B_fo);9=Y!G=7oiWMm%(Q5=Wmj*d|5Q$EKeFBMMwG#n8*L#E^LTeWVo&n2 zz0P;MCNOe!&Yq)DXWPDVYUW&K-*7fPEAiSpRfeX?Gu(}5?R(*4uXwFGdPR72!Y1>_ zm%1xTUtK*u_2m3K`M4)<wa;~*&o#Lb5uV%g@XyRAi|yq~vT9PIg&$8-?p|iLf2F{3 zHSsrxU+p{HUgFujSm&*k?i*3@qO6IVFH6sCzY%Xc`IzW)QH%3E^WTVny|?(}vx=}) z8cQmVemVU5faxol&t_2p6OYO|*M;nMPnDNr{HU~~<CFh!rOlb@CD-N@Z}~B2*_&4k z#;p4#%9g*b?|E=~&vo8DwaW=L0fx`ccC&>25i$MzO54WYZo#5Q8_x+m=qh1ek$<1% z5ZjGO8}CdO*;4hNLE7+BPULF?HruGvI(nWqpU$0ZYn}R+&E<MW_{C#;r+w?>RJs(t zw))p!)jreMsp_}6N~5ED>Ytyr6mXU}Q*0o4xO9D{ebK#i3#ZJ`d0x+Y-mLBl?cMp> zj!8F$ZRu6NtAV#m5BPRV_usN(>^U-@$z!&kUGX(`mePv>-u<uJiY)(FewtH#vgOl$ z?GrPDq&ixnySP1q_g`7#XZ)|fNOW7n$^9wo=LLrF?YhG#^Vz9>zjT_`$J=r5#Wvq^ zOV7RDUguQrk$uNk(Ps&}(XJEGC0f6)+uqBzHlBC&jq{u@+>=)%%sm_%Aju=TWK(p@ zQ>}iDmbbq&4JY%ny!~-z$FAd>4x}A=TlA!>CjCw3qUr-I=dWyhSoE9wZkcRRnI5mK z&o=J1(nFK9FY;M8&wa%I#M@p|$^XQ3yJ;(o3bMn3?W><Wja#u*dC}K*8?AoNYs|Q5 zvgm2b(LK+$d=K@X_|xgQ*IJ#e?;giz&FNZOaQk#(mznYkk^M1iyH;+^ays6T;daCH z$9akC>g#PjbsSu=hHVv3Zqk$2ff2e+oA@@&waks3m%1pLZH}s^?r+T{8>461q`Zz+ zS@D~PWqU3Ego0n8lKBzqvr9bhHuT?|uGo5U=l<AbYA+VvPWIRNDzRlhhh9<Km(=wd zYyE8VjK8Nc#M``^xo&riRzq0IgYM!RP3I@cB)xU@$g0ZSxFqZTPUj;}R$A;<3%jls za`RZQw|{J!PzK9Q4*u`|8TRssHvPMoE*$ePPSDq@UVXlL>(%trS%Qt0a~4QT=^i;+ z`E1FJSi{T^5#{S1`|IQU4(|}${Y$pVJAkKl`aHL5s(Md?H$R+VdCT?M9qWcLjivrQ zE25+KNZG!3@yXI;YS`;JBX-xq+($m&jDK+dXApY+MC)N#Wv^1(tVe16KaH(ccCN9U zBfmlTk+iI4l<$Pwid(f(yTr1T*UzkRsZ$pI$@Y4kbWXu++q)Cn%nnbP_vp0dr{zn` zy;EkHIq&Ma^iyTwpN&^?kG9ruGtEpko0X##I#sSPUd>wgS$yB?jY>PUc5#Pa@>sVi z@%Nbz@~OK5cb4AH`>lWP*CpN3`Liu<FJ7U+9#a-)|INvQ>+F>4Z|s?yy253%9OkN- zy6!GnnCbg7Wu_d@#X6zlzmxN~oR?kwH{<?i&waa!Y!0UeY`glq;Y4@O@%6p(A_l@Q zybIQtT}zt3Np1H!rN2i*og-b&UAO$1^Y-Q8^2eM>e+us9%)DB0Z_%oAxoKCqm46EH zT%9z_Y_sLOJ%?B=PCr?;wCmrECWoI&lItxxirZ?MB8z&~hQ&!SE@NcbdQWTjtCug; z!qr#5UO8oHKzM_OThQsN+wPzCPdm5T>*>~CPrhDmWR=hqJs6vQOi2Cpz7v6F(-)l% z>JSp*y5r9~_jK-z=TByD@YdV6>BG0pEH>Y6{Pp^Gv0PavCUKMJ^T!3<H)F$cfA-(< zyE<DeChy#_b<U=l-J2ZlD}D~B^D|p*rlT{{>?Ysob8cA&(~YduLRp@=+x&_D6x6Y& zw>9XlH0v_w(j2Q7+?hu6kL@_j75FPmV#}h*xl=X1)$EL`p11hr`Fl)k%Ff#(rT*+p zF=mwVKK-Zs-swdNjFMi{R?K>{Ch*M($<Uf>C3&)U^k-evUV7$w^p4mP&8G*19t-r< zD~iS^id@fhkXCt|^Orqc^Ss)WFR!E1jvv44oH-@(U|Wt?r>*7IfJ2g7SF~lU3pk*s z=z1*q{tt~S*E>(Y4z?HF5!-JXVsh-7%=T~p8FB?qJoXTkcbfF(n2JtPW#7uf%>BkM zJ@=J=I(Ea8are5Y@21RYZJAMP)p!3{|99Rx(SysfUu`wAS{yIo8M0*g<Rw+PVjnec zc!tk>tF*S-%#yqB?aQpqQ`ZYV*s}JtPU1O^zRhk)l@_A4{~2b5X3jJHTH~rR)6+NI zLB>6X+0y@$#Jrb|H+D@lyv=jqu!_$lAM=xM&&|C5?V6ma(3jBmqF;GCe{2%1b6Be( zK6ihnf7#8oAFDfO%Zn@XUjA`A^mWXiPz%*>FWN<|9)G&A;!e2lS)X09$KQlEthgKf zI76lNs8Po$&9vw|QKOj&ag&`iZ`&KM^Ewl`YNs~O(izq{Z<2+Y@BVxjJ8!Sll(eH8 zEd*AbWMh3L6<_?K^-iPiHpLYY(uI?5In_HIK5>3^&r8>1-;Pa{)U`V+>%VfX;3=VR zZ`MgAHvY~#cui^f$I6+V;k8R8%C`P8d-ZvJa)7VMx`!^(t*xaRS5g=3oi<}pzW%Z1 zRMVMUt12yIv{oc<mv=5Wx5scs5C5`_=k3<K*e-I-*)liBL?}Dd>h-BG!>a4IwU{2J z1%*ueyD5HWXr8_5@1-}L^UT;+Ylu#@H;YskJO2Kq(ck8u5^t(lUwocbp?%Hp9CO(G zb?#RqcDFB{a`yU4sabKe+9s>VPHMh*WvNit$<r#)o3r1v#dim}A3qpV&|w!IxPJZT z<ox`n$^YKRoH5=T@%F~ig`3`l=TDz1dAj(jZ1DoiJqO<SzcKnaYuACJ&n=%W5;XnK zFg-a{!ab^S>5b2K=9V<AE6w9FdcJs3QAXF5us_pF!`}C=KM@<EGwX$c&xTZ4$H(ff z^UB2Hb}%L=UJMmWPXGAo^tw$OmHSqSN-eguEi((M_#JHgpCRbY>YWbV`-MK==c%`> zlrE~7>tG$=ov{AVQ#-f0w^KGv|Dq$n8e}wEMyLE6m-o^GyS4XSUVS++aCY`K=9~6G z-)<{qyR8h%^V$~Nnp->n-tBp5(e7KzckP?^a`WM|g2Ydp!LjFdZvS-US@qrzxkV{Y zg%gzhmw!ARaXDhSCClG05xe4jG%|9Moc5IFo#`puDkE&QG-%Dkm(G#vnO}>>+r+Pa zE$&<JX^!*vEthsoeyO{4=W(&%(^8jf&itu+s#Uf-usUGlgj?&6ohrI==jOB}<@+46 zQ}?-b*eOlx_;J45p#A7;_fOw{&plaGbn9Z)NsGB95i2gT^p=HQ|K`4wyL)RurR9<x z{P!nY8^pFHPveYysj0Lnx8=vX#gR`QEPtbWebMDD-|V$JuDuAG^2)3E#M|SNw_EjA zsr=ozV#&8qli=Qvg`b^fWiXV=><e3zy?$HVyjIq-scugzrAl|*yUkcM)x3w@EB8}z ztgpf9wAIBTJE!Vz*0Z-)-W8Gi^<`ezp_yw<IsRI+sFlPo-|lF8Pu;uxRQw#%C%;?m zmVQmlzjsY{);IqCn5woYqX~D!w@NgeS-kVH+p!YW`?h!5Zm(XD#F^)|c-2$A&%VC1 zE}c8*x3y;Z#=pPLZSyc^c(Z=qUbPcxTS`LIR~Lw-=q-5b@xX6c^YkwXlUEwW9-ehO z_2r$W&o8@`+hiUeD?U}4vxeEm&N#N|N9I#I_l<pb-s~5>`n_!BCNujZ-%Kw3d{rRu zTkqSQtX;EqOYIl`C)NDw&$PEU%l^i$GOH-LBl~*W>ecp>r>3p5x%K(g{LHP}Y<zj6 zcn>svTiDGQqO2eG@q*jFb(eN!ztFlSKjmR?s+IM5@spynd**JlkXFjl7EgE~IU!j7 zmsXkB>?%)>V{z$$k!EL4`dQAIb|r1?vR`kL`@;JD`<IC22KKyJC7Cz%y4LTDUGK^R z`-5lQo_j6o!M10+O`QwvsxR5+ZnQUCeA75`>gBSOH$k!atG8@9TP}QKY1f`r>pZ+} zbzY488F1s~-)PtU?Y{ypJX!gC(tZnxFFbCACzHGVm$N+C)i7I?@!1SVmh_lwvm?LN z+09&b-u4&&zWUI=w}gzRzjze2YT;>>wb`D0cVA27p6gn9WohQ=h=REqnk$w|w{R_V z%8Yp9?zv#ugQUC0yFOOg>s<{nyYVQec-pO18&~bq&Tf_OH~SICck=fS`6+*2emebn z);Y!XQTmU(^V92{tiDV?k@HUO)wwrc<7{uf-~8*zZ3TzP`I$4`Z#`Butt&}iQ}pj~ z<GlK=J6`dUj2f5btz2lgYu}y6C(Lwi23FL(SlG$KG<p87pUj=>@9U~_iqx#t)~TPU zb2xv~x{D>+zg&4upRad4FJ;7%@0%N<b9wqym6=hz-g7?`N%Nn(b2K`sHuhP-iLwZz z2`{$B&cDe2Y0tFHwJp(Z+qiyRQ{6tH;o-9X46DL6>1X}jyW$}8rZbz<WwtvlD}Fy$ zg1`UY*_o0t{p*b98E>A-F4$&VdwPM|iqIVr^F7yzaMu?oPxiaHeABF1SASZWW!}D@ zx40pCmFKPt{~1nfeYabBYvKARf!nbgVw(g1x@}#x!|dWsTejdduhknkHfd}5EMD7b zw0TaZp253&IYqY)?7LDuSxv%ZP3rn3f7Fl7_xh77s=WT|htCmDa<*Oi$#FaFwb_kj z$B%#ek(Ki&Y>#k#)#Jxow|(83z4kuOa>0LdqoV|DwHKU;QnU25PRjbvpj6%+(UuTd zlst1yY|E3YiFVuW1wPag&^%%A<mSQ?eh#xgd~;fs@_0E%^AyuM%~X}}cUkvJlXZMo zP5h(cdRfu7?$gx=Ch6ye`JcYfUh6j9TVZaa{)OjfJS4JW1Gh=f<oe~G8+C5O(*>Kq z2x(^Zefnv%<w*al49{8LFUQ@O?4A~`5%MddapU1|m;VgD>sI#|hR?iYDf%?kOe90{ zo{@1{;->A_xV8pu3HfWk;P>P0mWRH){(An><dcUyxaQ|yN#B1xz3lbDAAW4M_Eohj z;x;c(sF`VWHo10pZrNn<C$Bx<oSUPgmsUDWIxWstwmRYZV>7c`QO7g?vfXvd{L``O za^d8p+k7*A>v~3~w0>E*VAgJ>pVI5u_of|sZrk+yh_>DQV=ufPYyMlgc=bB-y5Mr< z58@lI{>as>`Kz{HHN;-}N}FMl>5~)5Zj*%_zRtd`{qfX~{X*jUDz59l%fI*kQ4$%H zb204hiu4-`YAZEdX3gsSY}@}ht*TzW=!aRR&)e&Qmp)#PcS%=Uw>R>t^;Gu|&r?&l zmYUs-&pDqcU3@luPsY;oa_iVOmn<#UYKwlGb1Un-`i^_QxsGv*el`9y<*HPc*E~M| zjYSN4t3z*hE-t(spYOdY^ZeY{B|=@7Z}c6CTk>qy>Ko?s?zijj+jD*1;h4T<zE3ac zEOJfG_@vXK@-ytlY@R>mRc~CKjA{!{{cKj~={=tFxPjrBd$Zfq7f*!0cP*Z(AZGLY z=!CMY(?1iw*u_3$U*P)1es-X5FZ+z`$JZQrzT?%e(C!nuTy;LWc0G#@Pkt8g@pk5X z$H~cSHG(T%n}0gj(9Nm2JS-*n{sp!=t|_x;zh29maI&dp*_2iP8AR9rlU8|M6Siz$ zy`%3BfBC1epA)1`9mxK}b7a?@?~ZQMWH+xn{i*YowTaGE$)BcY*KW&@s|cR_be>#a zt(DoKD$579DP^mr`g!|rr@ejNad%Vus<~4gbEmF)9onXU;p44av#q)8PI7WhJ9Wk^ zd*X#ddeQ6CWcjzh)}Cqgu2f)A<=g&D-vfDTpWj$&XPglxuf9$^No)z*l*~tJ8a%fm z?YK(bNMA~x5at)QsAJ~p6yu-L#{Q4n7r$pdcgZM5bY|w-`OPmkui{)(apkq4)vM)! ziv%(cZA_bQRLX6oG$-v>JKNM34@y<1vI*VY{XA8v`Q=UvM&_Nb{C~O#MYrZv=65{* zq+yx$pW&DcuZhpCdfURXchBYpq?zV=tCVYRxbbG4(78ibmq&ff@|srLmU=46MO7_U z=dJe@+t4oEdv|SKU2QPTI=^-P%9NFp{2ne{_4mW+bv4TThi}~LDf-W#x#_pOSl&%D zo7&#{9DCONwKI5jwAyIijE_?%+F8dMWdB_rek_D@r_-~~pQrpdD<rn&&HCT~QTr(8 z-jipSZGN#nNbLQ^#r1akmd!ZIczw>^O3&r_du5Nc-9MRoI=44e{n*QlKcxpMbc|0f zcyUq3beDDZnO9qW&bpOlS{4+Zv3_>{^PqQYnGOdnGng3`wf*(ljTz@ZFFSL5Pg?ND zXRS-FTe60ygn$24bzsr?r1ni>kF!)KU3|-Er@P`#`t?dHk#$={A6Q9#C_0vBdi}h_ zB*~vqD^_3hIH~>lu;_%`lA;^u-1sb1+H83Am_GMZoU5DA-2U3)ucJ(j*XMAH<6F4@ zo@(WF$z0WW#c!MT>pv6kW-WSiYez$=Z*B2xt<P1N*|DP0u|85^3$vE2HapvvlH2QT z^02IRYy7qJ_&dw?cO)C^GhV!I;^#j~XC`MpUv5;&{$P>amJ{zko=RT1RxEY?v5RYE zb!~NiuAe-Sd;5uUx6t25-mtIuB!5EN+{^juwf82smcQS4oOhu?%2Y3w1<#@twY>MA z%;h_AF)Q`*mgZ0V;hvd$<0ibg%xU6im6A63z~i{`ZfpG$+2@LWntZBlcD=f+XYuFK zxk-+1_8;fvy{oZd-tOJ6cW-;wt(*~}xAklNo%7MX^9`nM31vTi<#XZFO}uF*O)3kj z_RSW_yL5Q{%Z*o;_b?~eBrvj_c(m*C-z@2mm*#J~^J9~T$BvS$nHNi$tX2m_2hL!c zUs%PrdDF${4cqQ>y2~D75WRkGQ<W`m^n^2oFP2uHEMCJWTktbBn%VD__vem^5Q{T~ z6|X<CByu^`XV@1ftWDP2%`0<xs_jZPFZbv)%WZj?v2Bxc`b{pZm%1uHv0h*E+uLAM z;m@v<3-8CNPCpg9a9Qt$&{W^O$C#>Fl2k?CTE9-Zk$6KU;y(kcf?0|7fuFjuUPda@ zAMdmJ&!D<|`D}T;t7oSy?VWN^u-f28Lhb#V`ll{BFYxkQ>EiRHY3uZTXZ|yItH00h zdsTXA&g6>KW$C+O_8qdYwiZ;fZusrLB{*XDrSEBe9f!K+?7RH?mFD6%hhEQ@{1dvb z>9Y8b#h!O^-knY=`*C;v_0$$_!v*{Hyq?Fu?$+&p+4(cq>gWHQDE95n{#ASHThfnv zMoY(El@EO~p=-;NWvc%fk}FOxsMl>e$YI;Ab4fmXo5U@Z^IESj$lsWEmVe9cM+Gl# z?U`ttcs^+DS4+W!nMTgJe{VflE&R)8x5oP74PH5)LX7#c<~-JBp7%v!c6dx@)#GIw z%dR&byR?8UT=L^9d-+|gVNd*<KE-=oKNzLv7ust&hgmA5aQ#u?WdE3RyOylHR&21F zDMXsJblRJLby8OtPVf2UR?3|!x$3KH9^=lZ-y*APQbnSlZ(AOj$)$01gQUAQZw0gU z?eNHN|0<^3ykEOYF2=oM%S~zXUw78-ns@5z;(hhznO(Z~_N_Ww;r;4n`b)!`lkAU8 zi0eAH`8-QnWoh1P+nIOF%#Ii~`M#L*wBu84wjN*F^0+?#<C<3@KR91sw<W0J&%(>s z+ODqtAY}TpzeC{i^<}%fmIqxie!9|bW9DKf;aTU?AH7(;O04AOa<e<}wzGDWH5;Ub zeoR@&bUfyl?}qu$Zswg<{*!eoGc~Z$YUY}s3WXQ;JZj2S&9Yv~D!Q|xZu$CUMw=KO zPAYkH<-w!<%G0&xh}x7bco#Q+q0Ezgn?&DP&HEDEST*TS`eNbZ1-Ei96&f$qI2y}u zQ`~GVU>eYAa(DCc@D04VNtchMYFn?`uf#KF+y1ojfYvGvkFUlPzxTTPhE83vE%Z<I zs^38lXXY*YUHtHy=<+RRpUciW_}p0XMcZNK4VSJ8dZ@)rX`O$K`RTWHzwcd(?~PVj z&Z6&WD7~wuX<3<&nOD}7pmj!4*D9+eX6ATul&mWMBEK%TYyo@Ee}>a}P4?<rRqN8L zYok|kMHWuk8e6w*Z``SA-8YY%*&R5iBz11q_lwDH&*L`V^***KKDIaI+VWrP&bLiJ z#jSqI{L!De->W0vY@ZSLIFDE1_iuLl!}Vrn>7V{Hh&|hubVdI3S`Y0@AzgDb&#hg& zVb$Ezi9Et#t=;ymt50bZnlI`<`tRoYf=e4eO`hm=GDB?n-UD--%a#|Z3VCi4=2U7r zXw~(}xo+;R&doeeO6oTp*j8z=y#Le8iWrk8x6N!1K5d$Gu;SdF#3IHAf(P?nUu0Jd z5th_DEZ}rTD)DW@hGo~){+Xu#v+H~LV(Z4-_{$2%*1AlX_Gt3@<r`g6Hd(*P(RW|J z<bKP#HLH_9u|Az`_FVSF^keTjPj0=`nw9iC_nFY06M~mBVvRGd%!)cFQfG8AI`wPS zuT`o-DXo)zu1zkUx31sUK0KFSwKjTRyj$^>udGp0YKdxnWf#0ee;xe7p5CZ2S<BBm zdC9XwFI^%%f-)zkC+y~Z&h}pR;8S4-<Mg-(HF19)`p@|3de7~)-G!T%)-C+;O3Ul* z%Y>QhpRHW^#P8o4n|cw^Yh4$DqZ(f>TWLEtgkQH@^26-eX4bzL9;^F&G)=u8rGLL* z)zgw~wQh4i2R|~aSNhMuF>T?G*jDRZ(gCZ*1!q+X`MfyX71Z8Vs=Hg~YkK7FS+7^7 zKRGvj;i7Z<k7fS8K0UJVishnDh2lL6;}orOw(b*7Ex8=ISNqoFTF$_?D~>I5We5;C zu}!j}Uw<*v;nORZ?9aQazI^>#)e8@^{xcN*?Tue~apub{{~6Y}e_YIP`P-%(uNm*< z=FL%!WV^O&dT(S{)m6Q#8<V4^?oYc>xM4xW<)pCdi<0%-uP?7U)n^bC=G%6?FDLxS z-uWh(UUQp67jG4o-yvnI$rX8R(ru1&`<L<^cPw*=ls0|n;*!k#>gJm13$)I=G~4<4 zEPm2EA#%4V`^&|~S6<DX`0<v;;-txov)3nxh%aHUEc04-X!Vg6`TKhO`<^edzx2AZ zN>%N1t?<Tko8wRZX9!P-xc>NdvdV2Mb7}2OR?W6`3T-b6)7S2tuen-u)t67Rf2tpP zd%h^_>gT*o?|sXU{rHwF;g`Q`PMDw#|J#5)ZzR88sXTV<)^5%HAJ?vl-(;(?M<CNQ z;YRdk5!uYpuxsme)!FW}Y1L2cl(Z|dI(ua6O`m^m8W)$uwOJhv5Iq(2_qV}PC5`o~ zCZ&AV|M5%f(#MqgC!U!Zo8$6dU(xZ~6>hp;epXi3)ax71J#`k~x&3o{)9+Wt%a&d4 zm)t(bl0!deM(%xet9?hl*>_xDT~onnuk_%x&3cdhru@e?f7@)lxu(EeTA=)FtkI)* z>3@%RwQQT6WA|-ojC%T&@XUSPEC>EGlyQAtwlz|fUozXV>CHJ^-}DyY*x%>VSeH$? zG1Hu9aoc2@KJ%yNdS2grVKx1+onQV|y`J@MFY3%*9bYu_hvBK0bEYj`ZBv{1wE3%B zOK1K~_3{|aKlOE9s=*PZiR+bHJp6)eWXqM)BYR3-o{N4wyHqNg<MgMu+^=u;TC;C! zVXK*9`c3tdy}WJY$-QzynZe#q(?1DUs3-q^eZkywYpcoES2KRkX3pC!8nXRF^r9<5 z530TYW#*aHOh2l2iof^9!W&m^&ghg~aq4H>apCupRdHMYM*mJVcF*Ws6#UK0JWGm8 zOK)GDm(jf~Cfn{>e*Jn-MJ;=SalvMjg*wmG=H-3(lAIp(N_^2zX4lZOPp@B>mo1wZ zyWw-T_+0T9+k@|}`uLxr`HAOS!(hq(48j2+rb`2(_Hmc>ZAr|zziRdCpxW~K`SEu= zmmkfKO}nlwbb8hNgBPa@2`{eP^z6BBZFJ723pwVMSM${~H(vU2`jYgT%c-_a>Yeu& zPRqHUIlVkF&{TR!>GIpWHE|+A`<Aa+J$3o2bMXf~*AyLf6;4_%omq7~)oA~^?6SEf zZ*0y+Oi7XuFwS}w;@utjLgik4XlT@?Dd&^k=-ddOn!4V2;-97$kvVBm_t%PT@z}I4 zGuLiw*<9Yt_3G)LXOu;@+<m$5)oivEQcR+5KmKaJZC<>7)%mJdm$-b&gnBwduDkx6 zej<<iDR+dI9HUuEc;3e3jhp3uohz!I?QwRqd)x98s>0>L-q~h$RyBHaU7jy`mcMwy z<+qcs%$ju4>`wTGOOwA}kGxl^$lkb&SHrrr&E{FeuF@ToICD$o)xEcxF8RC7LrrU~ z_QAs~=_g+DJ+ez}nsakT%x<42Ne9m-{AX~J`J{e6bN$r>t63hwJLVbRNZqw9{&B9) z`ph@kD%T_Gj5Y@eSL7|`*L<_!TCCTb9Gk6+pI^;X3=<J`ThyIzw^w<qb?VnguWz<p zYu>hW>zAx)KYLHUeO<Ht#LI2Fes#n@*?oL}<=nD;n=^l$vst3_`epRz#7M?hS3?#% zyu7$}!xfQbS9Py$4cqzSZ*VHh)Y%t)@%UXnYhCe5@6^Sp{!`mm<lT8S?U~-*X?w)B z^X=|>b(fDxT<BlcZS6<0dDE`_?pyV1!V9srCfQz<S(@`#s%{s_X3t8Sw_C9OrM7R% zZ<Tw34@Hk#bKdX|P~OyJo_Fix_0_lXPiFcpc)9L?i(}2Ut&e>h?skC|V66T2`P2Eg z1*atM&2!#-{^LcN*Z=ORh+XO0>ui->>MYNaywPscj<*{#S?3*kP+G~}=`<ngpM&wD zwTk~{UpV;Z+}){MZ;DK}rN&ri^<;fX+;G_R+uu#I=SkiR?LHVT%CYXU+?glI6R*cc zUo(E|JuCb2Zo%00E%hQnx{TWAucSSy?u{-Hjk;A>`eIq}`My<Vi%jlC3zi%@?S4yB z^Homx6NCEg{M)t`FIo~+^<tLhinsZh+t%Iesh&G6{^_#kCl!0bwr0-i>A90!9x|{0 z+2hx|C82-y*M!A?NPFNoQAMe&jp4;^UXRDu8l(0#&oh<YSgW28d2{x|Jloe>7@NJ1 zSNB`FP4MNd`|N!#^2Kh>^F?*fUE}5$pWSs?ZCUY5)rf$J`9@b{G$);3vW?kcU1U_U ztENvx;Brq5&NZ$N1$D$qPTg!!?aQ`0bGww=N_A4`4AzNdw!wVo=czqOi_X6~JAQIW zY>ju+&X3YIOMWB?RtDOvPgYJ#PBmWL8XUd5&zEIUY`tV?6|4V|msv;EO|MDpy7%zG zimb_x4~J{oRvq0EerQA0iQgXP@u91@Y%gEsJf>P;;Ut&BwbXCV&CuJ^Hi+HapKyP5 z(!aH)X(?}=AFZ&nTOqmXn!w$EeiydwKk=vZ>x)&d-EJ>r`ugqrqU(OK%G_n{>pyB~ zrIsx|xBKJ9)w+9U*R<_1x$d=hZM}JI?v!g?Z%tntYOVh6ak1yzEjGa<)2~y`mMg?Q zz9|%zdeZIkgm-JbuCS-LdVe{)cV4RWH<6}jn>ow&EshGl;4;@ehJEUleDPP>QyQ-s zuG{~3-evK=YkQNE)@oI3{oe99yd!(%w+I*CKNltVuPR<^yPur9qk7eY8(-YFIxlaX zBvXF-YP5=gOxuR*$=7Y2leMO2GJ2hwwD`cf4LjVVxnum}p0F|5g-%=3ZMVw6(IkA? zDqlJ6Nt*(<FWH@SU)p1ncg7~}nchhyr{9D+<?Wa<X}8~}m$UX5{bQMJFZ(1k>)q|p zxrt7{*1UGBSf9s{yLPp+?k6$V?qBVp+TL|`dZ)MiXHZU)*v&TMlZ;d9os8*c=cdLO zEx2mB@ch$^mwRpIPMvgB&|s0-vHuKgll%(w{IiM<f2x!)I~DA^u<>}@vb<ma8QyN? z?RuA4zHrv5-ditji~VUbQ?597+g|ZnfbNz{<u|iBZ}pwscY1y7&LHnFk#MJUOO+LS z!?sMhSzb5otariP`RQv@3#LfxW*LRYDYy2<&NtoWvhF}&%DwG>Ui-XhyV1ATQsCb= z!>8{ipZ((0A=ps%b$(h#p;k_Idvmt$v=>5EVN5o?v-Tu?vNPJWbGGi(PwTrkUfdfY z9k_FH`JpLqlCR~Pv1MHmzHFR-?4|3CY5Tmh1ADm*Q&LaenY#9lO8l{?{U-}I9`ld2 zUbZuM!&{qc>PdnNC*98c-MfhIXnS7FrpcFt7xh+MzbKSH?e>!XlW*^SR7y8l>^pVW zMa>v*kK{aW&Fz0~Z#MG?GLkwPxAjKoN%d7f*T+{V*4s|5tzvJH*>ZaI+m~kN{2yyP z3Xj~jCsBOm=NmVi8P^<5+-_#rJB!o(QQ?|Yr$3K#T(8Vr{l<5?{Pwu_#@fZcU#ELk zERvs45gzy2>)kxltuLg0hs=LwY#{P=Yp9Bpw4>6QEVErXY1=+rkUMrXBB=UO-_q2F zCO-{MX&mjD)Z#zw<f@2^0u7UA%QinV=eJrNa`)z<!bNketW>{h#~=Or)IwKd!`r%B zueV%Py7=_siLiXFvwtq9t>~HN6>$E`zTFaGNz5**-&y>=ekbzPs)HMR<!#bUGhY9i z8?dhAZ(P+x&p2(<FG?A03zoaO&EgGYZgDK|G28UIQhBY1-``bsQ$C$vvm>g*HB9|e z@9Mm@+S&ZJ`Imf6=iRwKIn~9Q<LDzv!xyc#*SGCvnijcKK33A(C*^GRtd(Ca|Ly5{ z=quH2Gw;pm-eq0}+pYaWe7`Nrek(cCR(7g*=Y(wk2~socLYUv(4pvZQ`#!bp;Ekxa z#!d<;X42D_C)_S9yZY10^W~PQ{GK^}ztxJ`PYAEw{O48!L)ynld2e*o{k7J1>9PJT zyD?q7<Y>NE&{5L`@lUdL^=cpUDvUVh*0XwJ`Rq&YE1ZrTn>uAu-rvP8okpFm^ViMy z@_4bzD8J;r$D7kZQqpGqk9_s>E=}hO(tM_K^zro@8(&)WF|OrW{>GMPo0gDuynL8% z;zkGG-^r08=Ti(>RLV;FxtEF9?dn--8@D;VUet^6)Vyu;?rnU(p3&++p{=LekyA3W zPwbH~e!~*wdHZy~k4Q~r+5AV7bz=j~SNXSJo1Uc^ctxX?!LF;<cGJU^df&O8il|9m zSnSc0>$Q1q#$r)3PG#e7DRY1E1;w38JJ)b?>a~SdYWL?{FLeBR?Do`j)9x(^^Md1r z-&FrnmDE;QcDB{fJ|=q8`OmS%m$pW{JfCOsBVc2QQR~agmS%Illw~?DV1E5Fa$eQ( zb;o-?$Nwmr&ANGJY*Nt4twEEb1si9d)wxs~yUgnMZR2^{j|XM0C|mVqt&@%2=Qo#= zSDRhkabvwn-*wh2Vio#t-Iwi+H1&%;cHwGz-_D}R*T2lUz52?OKV|(Td!EI0aQEgd z&wQb{`jg%a?VD34e(JPKUG0DR&$0KV?yk*sS`9z-^)6(Eu8eXz?UecGT>DSOgDRfR zbK9z_OJ*BgHqCtKcDMT3^m@~cuX+0nKKMPaHaoX_-@R?~wPP7fS3Q(!ot78)dH<_b z8ryO^UoXy!3-)VIn!31Tn@^#fz{2e!*Kg=3I39cT)#^yH!?k&?$xkdop6<x^Yn<fu zaQBz?Ix)Tsp}Wy@ax0^{m#uaS4anOYpE<F%mg`b#ZeFKs-;G+C8yik!2dBJT>>sr{ z-bKbEZtw4D*QcG2`Q~(RuZ*W^ZQq)&#jkne)22w@us)i(_m}Mc6T-rK9xhsQ#DD4e znlF;IeFmqu#!gh(6m@pj$(Fy;yKbABR6RR?)RgJXww)JUjc$huw>sHB49-qZh}ae5 zlKb}O(G^!b;`CS6-_dvTwB|b9JiSDhw|YrXf8=@Jn*Gj>it4MCmTGD^nTaK?TV&Gi z)AZ|lcBJW{nT0=oDYXagx^!jM;f!<9A)O~83iitLZJJV1!n|?wD{H|uo6ZYKFKT=7 zhHaC<_G3GIdyQTxT{!XY>6^;M#;&unHW#PG9kQKRxQ#3LruXbg8qYswi#?hwl-sWO z^&MYUY;$PO2K}5Z*ZOUPw%+`(G-18Y+|XRD6HjB)PH(Gz{f0|dG+sy~*t7P^bT*Hm zT+y@ZH0JI+dEwcr*1EvhZw>`di_@Q2X66alp6#mtsd`Iw;z^Hwx9P7Jg*m4NYU-}r znpSFj^Yg-0c7gJjMABV*tk)mkGwp)mv@S(C|7$)gl1@aLsovYdaXE17wBCtdS2Uc@ zIc-)}d;L?sYVG`B-&1Ob1+Px+{N}YJ=d|M13um0CT;uD^-MR1Hj@u`*-(=;yHN2Ur z&=_HKZEfPZPk*xNbTs|Na*XFB{H=WaQ{dyIIJPJM8D@uFpL=fW)@#!;_v%`+ulUoU znKtX<x#_cBXO}sCl1^T;eU{aK2C1(93^JGh>aJBw)c4sWka_o|a^4HgLm$5UnYt?H z?cAz=;R|N>omE?{w(1P0&h3q}HRt;l-!=cK(R^y}kL6ks+fyRvOU9=6-PK(mzdozZ zHA~z~|7pb3>!&BIcyLnRy>Lm@&9cai-x=DLb}zd8-E(S3f9SO!rc%p4bIxUY-VWt1 zO*x{&RL1g_No?=*=m2YzYRM@+YZxbI|GYZklj@i7$>D!nPF=CCvfHcTB6~kQ;L*YZ zbHiqHn$G3dG-C^xvaLJ#Q`Y9(wpoFm`MznNt+OQdm!#I|{`latR9Q*m@~Jc1R<HC; zRC(@yPB)vkWtN{;nXRUHakfpF;n&%p%!Cwfr|<3#HFz^m-J<f%$=jyOOb^%0KCHUY z?oOG(%|AKI&Sd=-nt0V|uXW|BOq=(KKP7A`7MD++_ap7pWrcITr&gGrJ~esEtFZj| z?*^&4dw2X?%iH6+dUb8F=C;l1(boHpKD~77>a46*ecM~hXT>?Qro=8^w@maRb9Hot z;Oh(RGiH>}mC)!+IPL!YlM~yWcS#*LPFWwC@u+I!%|B^D&-*OmxMuO~m>2gpu3R{G zx7wu{d~(;H?dUq)b$Hu(@vPVT_dnjgZXxgflF7XBA%2?H-q$7;Tv{C6d3Jy5op1XY z9eA&mMLm5t@#Oomxn*f5Z8!StyTMldBK%sqs{f<h`MZT}cIvA<Uh-_|6kp$mT1h89 z^8fr^a&pP@8*kap+dsKFKeb09dBxL<^UdsUKl!=k_lM-GTyI6y7Jj^Q-SpL`)e|>8 z$~q{r%rkU#YJjqGPEzNz>u-BMuDcegHN|7q=4%tnT#tPIQmgb#YGL7)uM5I<WlxTr z;&EFi(Ryye%tf)WuLI(aM=ssO#!?))w@gyWbbW%{hWk_0i)z{JCfjJ_tzP}~@V6V% zesAYX9BPVM{p#c2tM>%5rr%)M?dB*Ru|;?D7X2xFJ70a2+F#9k+l%AhsdNA8a$gH- z1^&vuoFtMxH+{F(y!We~T)w5dX?c2ZT<3dfasBnT?Ri#ho4;Y-^u7wFbd`l^|ANml zz1o$whq-yxzG`99*{fIXvelY@=RZSk+UK^jb2o>rSsdnlt2ASNZ@GHV9&>$$X~Awm zkNrcRZSuFiJvaGd{!fuxOXfB^>^|ey@jz#;cU4)+uiT)&&SwqvB)6^qwUk+ZAy1i~ z?uxD3PIy%ZHd(cJecBwf<zDw?<qMuV>R#8cuK%{G?}V4=EUg7oE^CQyYOFGkJAK|b ze4XR;7*o-Mfk!Xz%l2wrV)|o2pxv1ni}%K=8gDwQW1{zE{-W)9UzR)beqO4(wmL`E zG-Xq4-;6g=w`04PXL@>FEPd^9DC%&&n(8v%`O9|spZi^P?f#7^t=l!Sw}-r+&EmJB z=H`yavCG)bou9TfMS1bcExhUF+2)_O-Z;kL#}yvBee1l`{|vEl_cK#0J#Vt@V14)M z>X&!juYNG=l`YoWe<I@EtxmU(ar*1D^{p1i^dHMw@=<NYn)5ny|LS}%*FRxx&E<Wv zaSs2wb2}?n&6M>vnrO-~dDgT2vi{$FcCBJ!ee&G2^nloupL>>_nssIBe+JQIn?rl9 zwfCQVw&KLqpWOPh3Km@otGpR<m1||*jV}+@uA0&3{X^Hl=hx{7v&i7HSDTgV*7+Lj z_Sq^{95qjG(>n#xSCY{Yf(iGEe!SiJ<=(z-i~eS{4Q1D_RbS2yo3P}W+p_1!yWg<B zYvb@$SkA6D>(aZ&;cXR0>8WeJRbDrI?=n5%n4?7Lm+oj)`7+PxUPpG`==Ld^Q#;47 z)Nm5d#_P#^5C1c$d~3U+tJ3pV<BC_z-YtsjZ9|gJ`E7{|ja_M)GAT#9tzmIav$CZ{ zf9dPo^paIyGXs9^(#qP_U1#^;)wZj?wN>k#tX<7kzF2za@Z;2*X4B`sT$7{h|Fq|Z z#XWzwcfYe=2W_tp-LUR`_df4Jb>Z!&k4-k-cA@;+KmAh0vOtaV+Wf~oFSUj=8trD$ zog;LubgJf|hrzdGH>#*_nBbE3%;!75)$Nt;nv!>2)cwwEf3xpo>(iXve3uuE{V}Uf z7Cl@!ohko@(%iah)y3X#<f4mLPQ5wpjJUmS;5M`W3@MxUdG)xj+mSo>*@~MtY@Y^o zl^L$San&nuYNwxsfo_<y&(&h3uZ#~qCyVf!JoRmw%=xiPUOIioY&ofop9;_I{~UNr zL^Q)_+3ww{>t5yFY+K?rf9kcmRHc=f^KGZ3%xLBAe9P9_Z+fG9tA^3^C|`bkL9?*g z%x@*-PhHOBpETjDl;6##YrX#z7(|@ZU$@KT^(X&a+bwO!&TaU%YWA+I>em;Af1F#Z z%OP7G<X?C*ddtnz*>64=G3=NrJ3DEz;;iMRx(}B#M!u6$VY0C5eZiq9J8zRyX2h%4 zD{gW<_Ognz+SqDlR&nk8(P?KMT4nQzzV=Pc)R9h8s_$K`%HJ_{-qDl?)0Z^eXp`Qn z`NAyxmC4<}=*^<*Pq~`j;Z{lA5V7^GmD-DJ-DQ6FPQMA7+oWNVr5h>vE6Zz6;thqf zSF~6CFjv;<z5jkzK%`*w;#WB_&Jl+ed!?IZz0!8ou?%mIxjU8VSkBEKOQ#jbn|J+u z<9$&)YVz5sT9;KF7FlP#{%~8ts4X=<iZy!LF+bLq7fWPz$#RxmUpUXdC1i8K7MFe3 zPE5^vS$R?7aFndD>(jMufjjR6Y+?Clwrl%j)5RH1`Llj~?#*a>xyEtjQ<){D3VNGo zE<E+=(v<r0tfi&5cYjz?7jR8~%UP?aU9apS+UAzN_BK1e*gWj&o$Dg@%C>XXT{}Lf zH`_O>HGh(8cu!!eYUc^Zv^VuLecQxb3J-8@JZ1mo-C5fQpK}Y&roQX<T~@i2OI32_ zH-#5TM;CqgGN~Z-$5KOg_o<?#tznPyAI9D`>dNU;uVUV~;o{n|^vBl6)BJZ#S~=ln z_>CKZx(n}hS_S_#=ehW5nvwmd(3O!%kukZeEEfGd*P(Psc+UyX$Ytv~Px+YcnO4`a zCSbz!+%$F7^--H$_okiMJR{vbJfU>%^B;9t>8^`@v98-c*}XQcXVrxLCQBkyR9~>9 zAA0dh%J|^pS&z!+FIq7*-6(6R%;u|Vw)UcF^#Ob9)AZ*`GuWlC^zCf%^%Lk*vRC!1 zwlaURd8_ufZz2l%?60LWj|IIxx0iq06<@hu^A{a4(b>0iJ+tuY@8xf1u8Cg!rflik zhwH7n0`|M+w!ORl@YO19v(F-~pYO1L((>QDe@FYV)h6|aLo<RF<$ddZykyFLuV9~B z25Vc(CZ8+0r7g@=&hSldTcK}UR>`YrmB&nyznT}Cv2U3@b*X39&hYSZx&3_`ZU{-u z=6Tn9Z|ilTSknbvwU55Dy*e*$8)*92F<1WbmOD45o__!4?Mv&erM`ckOO{#hdU>qB z;@ZV8*S5B7v(r^||Gne_=krt_=2eFir8c>3bIZ*Ltm^%@?d;6$56$z%n>k-!SR7TC z!7Ea`c7eC4itARP$@=A7j;mf92At`79rSbCnIfGl@!7xDz6yx@_4468o<^_NW$X4# zpT6kR)>*0Fej81E{X}C+(9G)#E513NXDPB-A$xhZh<4viwxy|$G~*{;k9xE4Ur6Mx z2(4{L1BG3eKl%09LhyOZ%C?o$*ZpAXE_#%I)ceBg^G_nBs@<l{`0B`b_mbd^+?gh; zH!O?gXTLk&^QqM}!HR44J-6*bdv{2jzq|F+E-kJo;j7Q0Z{1p+?YNC?%eJ%Ewmi=- z6I}Nxr*c-PzCfs09^dwN->!M>*^+Vj^7UD7?oJKSw=C0I@@xN%bld3tyk3&K?Q?{S zge#xrJDXo)PFwrOciFzh$!lJJ(hZ64%b6Z;ZCs&k<sY4>T6^PH*1LefrA3Li&$@;N zu9QFi<5_Cm9NEfiQ{($DT$+EbMsD?jcE^)vS4I`*x^DI|w)`Ym5oQw78G0k+q1wsy zxlv~%wd9pezC;w8SNTa@E}NV^!C{TMZPV7x2HtIzD*mB%!5VW*@A#ROFUx*CP2cbE z*=432)3RNB?3V9i)wXc4xHUaMdT&Uhqo<=(r{ks<ue1H6s(v%}Uims%XmZWh$a~%Y z?tDmHcjcwZv$JAzf|iARn|qXfql?z9xFYE~eU}X{mn4a9OY4no*Lo8yF=yFxi78%N zwrNa#e?L0*?dhuWMXlGfO6&hKyjYsQ*8lFa-?Gb|Io94|Ke>8pZ^h?7S>HoKcxy8< zg3ncpY|hTUz5SH$nQy)O#iU#1v*SOr&DtJyG@w^;WA{CEH?g(%V*_>{O}WjK?4Ne) z@e^(4k1rjMM(@+AN}QkN%e1ki{8rDIZT}hiQ_E^3*OW;ISUs+)xWaMTt>mnmN%pQ^ z=e(}AZDP(Yy}st_OU4yTb=OrNlvwio(E6AD-6h{^JJ;@W{^Pjp*6;X7{1fh%?8*7{ zHYRH4(zG0nUbCnTlXK)=#$Ebus=~0*hTCDGznDpTY9;eDk<7TMRs13Qw#0RP;rCoz zkv(tMYO~}NZPWLsRyf@2=2-5%Y)kcg7K6|wJUcvfeW!+&Y2VJ*X0JSC-z(JPtL@{Y z^Lz2xL_U{g)w%AAeFc|3>g8e(@NIoAnw*-Ms&_0sVN)wJ&u{zp*<p9nBb8;n4^{rm z&i+vs>i==8McF&2mhyRX>U%ub&F^3DTYs`M?d~e$+j})mMoI2E>$ogtr`{3oi9S=K zmRTnX-EK`NW1nx+xaH!JpL+h2ceKQ=->>gh&t>@IiTT3$%kFKOv0%UMN0FPSo7cwv zXP8p`=#E*`DOIn{)ABEU`QkB$i;wYF%%(kM+@YUizSmEgE1zfOclZOJ=bn%2ddxD7 z*G+z<s&4gx^S<kZr#~N+M0=<Ey>xS%xopcR_t;CbnF^i0lw7^{dsUTlp2)->U*E=7 ztqQBwHnwh^u&VRghqX@EdRO{=-O6`&y{qZ>gupvn&oX}JIeFbwPU?CUe}VJFb$RWZ zc22#WVDz*2?18=mNy}EBuU*)=VSU%LEf-z8=3ZGmUuUa;TutG3cB998Q>9YAa_UR| z<R}+zpS}Ifr1UPPnoe153sdd#sJtAFrI|Mwf7LGN*}{|kH)LaO(^Ufzr_aBGEtZ|z zUo)@$<C?dERcj;8t;uLD&<~J~(Xly@)jn<47af&z$9laExJH#On4c*vBK)k@+2~^W zE1iu@#czexe6B854UdmW4bhq%x%shLy=<M?`dNXoPIaED78^IrU8AyUL({ufX`is} z?~{U`mD~;Sl`P+@?zeyWv43yfY<C5-^Q&H(wDNUF^wwR!y>Gm2dAayxq<_O@=5*Da za$jy-+_pJurQwWTbyE+o$ep_*P0Xc}<NRhfwG~I7ik95ET0GQiO^Uu*^_eA+;)PFH zY9B`I32mCPeqs3|QFFQURU4k2sJzyg$Q$)@`G;lqE|$*amC89G^4Z(MQ+8*^pQ26Y zs?KY6{Abu%+n0CulG7Z%BYU;nSQ1RQHRk@z-Mc_Ie$lZfLH9B@oBeoJW%5Y>@Zvy? z*$!;;R!?kS^5I+N-@>mO0@h6HtGcvmS?O1%xz7(5tqOhWY0UjAX?LTi`4g3T+1XxG z#4kHteth+Go!kCRu~YA?;qNV-808fn{mR!#@8Exif`)kxl`Gp6xnox;rsl5>-&Xcq zp+4#9%8f!y+FGqi+0HNKO$)o4IpvzP_Ro{6yZ1*u*;YL(U}jC)ZKwYX+8a0i6kN*l z_*wtPO>t8f&birm^e&IdjJb1<ygOmvrgzBk&)FP5&!*O!TSY@(hfO_jW6R4dTZyc; z$_+Y8COU;}zf>kJH7EF5shFOWiCN}FR;_=#KF{c3yDc5He^<n}$bV7wJVLWquJ7Hj zKHzB9?&L$=x5b#(G7HBhK3#1(W0qoVhkopeb8WhhD{{WZA6K*sy1#F$V_AA`we>fz z``NNHQr^B5@td*oPmouqcHLAv-JcAmk-4chUfZ-*2EC41vrX#VYL(a5Bh51v>y{ii zw>hgew)%N{!4fI^U=Dfn#gb3X-?+9q>8$sE2C2t}pRcV9|7v@X+rRtfqLaU?_PfQ_ znyH?jd`-AA%<I>>?n=Ior*c>m&RkU4SXH61<yydk1y{0pSMRCd3*5_i{Dy6FKVRCj zOOsZ;)~k|>n;U<5O-y&nwKXl9qL!_Qio0@km4C?8g*R`gZ3xn}4DGsSl=_p`pVv$# zxafC4#Ui(Rdz~r|1^6Ei&3t^f%*-sXCN*K_#=rhL8>R=kzj)Xgm@K)`D{r36;?6je zhiPAOLsrhMvy}UF@y4y{I{DS_Ysx<4s&YqGg-z+!5WRUlql(RIb*kxA#h*+ObF(Mk zN!)6??&q=HH@r`${CagKqP@1&Vd^#R`xm3n9BMxva8W4w@C2nNt~0}9Hu-g$-g1vW zbNlv1U#*;C^XKz>6V`6^^k%#A;@(!??bjksA9*+Lyr`?m4de7)jSIrFvURHazSgG3 zTfb$9z18=7uc2gA$)s>?HO-%fEB&S<`iZ)Wz3~<6zBX;CQR1_D-djDVRqeNFYUG`H z9CcSH>rLs`Wk+MXxfHVsFKP*9p4h%A^0|a$_J)ZsVy=2i`|pUD`EXtR$ySeJ&)dI* zToy^Ff0X|FwwK+NlU)}$v~?wSi5)JT!Y=#d*txc1?+untt0YR!CaJsktPfmhk$pJM zblJOOUXRc3^vw3$oV&F6apclfCoMOs@kigkpd6DtY05jR$UA1;+p5G)tWNsc$swQo z@qn~WGGEtX|ImvHXUz85Sm*wkf8vsXugClI5vz2|9@;EA5temCB(|zF_CqQEju)He zJWzG=lh3?#wJ2-#*4e-2rc7G@Fg9Jc*KPLYRZ45cdM3@VUe#=Rdg^4?S-0YRYs1VY znNRyRH=Xa0)u+1E%g*pF{3*1qah~7FBVqYd{J!icIbkSS9@8tn?#hfXf6dLIMPI*{ z?Os=Pg*B`6+Ai%^6I+++xN>wvc~&*41$1il9=aFw#n{<=q4)Me-Bgo6*=?(idi;H> zFjGnGZp+f;`A^E8eN2+7U2A*t^5$J`0&njI#JnjB$naD8*0ICbp?a&!m7Kb7zfa1$ zr@ox}{A}5Ck*r@_<<^?PF?TD^%XZs(6)WC0TWUIKvd^nPzm<~ii=QlbE^zYt$7<Ja zp@Pc;Hov|X?CY|0#?i*|Ypa!+%;t4#B&_G<e;u_=_(YiMABNNOU2o}1Wlgj#tuOZt zHMx8{Dz3rQRy6)oCX-q0{ILHFQ`cK}uRp!udVTM0!)il`sPK4|m<FlOSEoOYPTJkO zJJu^_?b9c(pS7H8)XF&;B$(o~`tF|B-!?MuJLtCNTgr~#b)A;$a{uj?x-R!N`s&3m zUzbc@c5%7y)}3#oeU@Bh%FMccyF6@L#O!|;_b(`a?|uHHrpcPMO3UXhjy%t=ZoD=- z?Ahw@wDVyxz5Nv?h4Hbz{#kM%Rf}y)FU`K9y3KT@%W1ZSyUq#oMU?xUbbfU%S~w}{ zjG6cH?U!y<d~=-@ARL;tZ~uqLt=;>sth9P{e&eJs=TC5o?K^sAC-?CMOGFGs-krW3 zdvDI#`KQWWWxc-mN;E9%W|-WzMPGirwAI|druNJ&&mWt(-t0~H%RX>YziinFlLt2+ zi|tiOT(5sJd;X7?o7Q^u+iKQ@=BMhtb+ESgeCQV<nz`jcd_bwcLHPEy3uf)QHCsIE z&4-n?r<O1Oo^diVW$nvOe&H&X^sA=vnxavDk@t@Tr+)n$Uv_2Plt1QMw{@w%%ajP1 z_<L%AkDYU5)R|)f-_~qTyt`PLw_0=Y&DU1<?mFC9xp0S0){)NLS%>qN@g7@NQ<x%l zljo(=jopT?f2;g>xnXg4&5}el)g!H^A7vlabZAkVsc5oDYU89O(&zFOCZ^68i!NsS z)Vh79|I_c~ca{hL*?j%-jhg)a=X@I&?QX9!4)1vVI`ZbktCyoQ)au-y<#t=i-;sEA zyx)lH{BiZux6{<;*00P7wYj8Jd?O@thTYEGeLbH0vhvM3Z?4szl>R*RdBo}1qSxU< z!Rz)2Iq!(tuTl9*&CgcUMW!kAxzXO@K)J=K=@<9e*ljVF6S#Rp=3m0L*f&$1&0;H0 zE>DtOQ}bx<Pp1r>KZ&eq0XmCn*GE^VmnABn6BU@!?5e|UnRL=Fcg=}f<v*3-k8Jr$ zUfbX7idmz3Wxi|hu28={`)^Ol-hBCI^@6!p>vDse<*ptRuJ6CTDEsy8*sQ6~a@7_d zy|Lu!vb7t!Ltp&5^=|QkWBE7V-75;*u-4M=wl(*q`4fJw>7Lak_a)BgQJv5~PqQPB zXC2=)qh2(0!trnZ*{gG|f6>e2J@9VIwe|+T-|8V{o?bJ8lcKpDxb(N>9&l-UGSlbE z>4Vl?YP%K(ZhfidAox9Fll_GAs!8t-b)8Dub!9!rlof{im7Z^_+^q2W8e{pEg&9A$ z*f)Ke@>J7$SB3Al2Rx<AuZAhS3p({Ie9q?F+vTC9f0egv>WQg-HhuQV=B2AyIpzAN z+iwoo)cvv1+4{IW*TsdiTT%?Q{<tm8nb$u3#*>5HCs+TJ+*oc>%T_vVmR`+#rQ?g9 zZOAhI(6RBcHk*Zor{&+Tx99A9W)!#VKSOHBhMr%^^LFm|qn|Tr!kI(ti`H(fpZMzW zmYpGDdY4z1&62WKc)M!(j<`oYX{R@xb^LX$r(f@HklvJ&KXsgr-;Uh6)OUL3%PrZn zu4k-UJ88?0wNskjE8A2)W!i4M*-+~B`K2=N*tXc*^_<&gKYi=XmKT*RE-htRIjZ)T zy-b(9mJZXE`{XOhqoP{j9q!d{>$~`NM)9^&7lr0*i!xj#aXR^Y*nbA8TwdJ>mTg}& zdd<u}KRYvTb8MhN$gAwD*SOaoO+WK;N@cLR{F9y)ho&5T^R;izOl|qKzEx&B6pLQX z-EwEG&dcf77R=kywRn%Tp4F3;5w^!SWv{-?)G_~kteM87n=h_jw>Fu#bM}mjPfDAw z6&ha-Q;BLd@O^jd)v~5equE-Ac5litc~aD(%_rn<lb6|fKJU!b-rDq6TbFKk+x#|v z=R(;P_M$0YzNSwo^MC)J;Y{$PKXX=o?yWGsx`3}z*?;4y`_ns~R{WW9DXoP6%<Po` zYc5Y-A6Z|ruDh?Hc}?1`^B4Bp-e?ux@jQL<tUrF$Qu`;Ue*Db2dG*uDb6)ITa#nG1 z^zA35_LqIQ!?d<$zvWwGd+6kR6aKk%p-*-9_v|v|`eNw0RQHqA`L<o>nOEC(&NXd| zj_FOmIc0Hb)aI$e*RRW+UK93i*_K5Xx4%TnZvD3Wc(d`U!=Fn3Gt^J{DP{W4N9%mp zmdjU`9o4`8;nn*e$q}yB-YKE;=Ju)_D$d*^nKM`G>6M%x-81iH&C@tzHS=rQl$o)C zqFVj44h3??<z;PNu)SyL?}=Ky+e2ONc1}_|yDaou&O@n$O66Z>u@=5(mm6<oooRh` zTGo`?Grspt-P5-<Y*)$W*`ExxPVAfK_G$66ok9!N&vtG*CzkVGPwwN)wSQRxLM~07 zdF}SB<vsIebDL(KpSvm}Am#GhYWE*O+MaK++K%lx^}9s&+H9RYS9KgF{bx|Uz1g_f zV2_PR+g7e)UKMVS%~dZLvYK9hd40|`y)AxWSN_E;{_yKc+S#+y<^?D9ss3GB8C%O# z@an{JBcV&dsk=Jn-u8U{-2Lp_bH;y^{r@v;^fC#5+|yUHE6lpz?8enyd#;CPem$?D z@X_>io_m_xmp6B;E{9#8%yQM2Mb2Y&u(5pN+Vz{dsylZ1>+i4?PHc31KjrF{#*UPq zzV**9uWT~gVzT7E()_s}CtX|j>}cjH{j{v0vK-&ovx&A{Vz+LF+DmVIG28mrN!hOT zRc|-*#$4W5vq@w5|04`e0t}4I%*@P8EUZi{Y)p*Itc(myg3LmShK_;4N{L2=EXq!e z0znfOZZu93Q7Agds$!6E@u725u!+NmfJuuseT3fIz-G_*pJ6jcDEpBe`|fO%TD#)f zhpSQT$AiQq+xddC0xS+USSugYxGuZ*0^{8vk*(YJ{QM&uWSDc{s>#*#)5;2Yt3##* zS6-Z>vEW0NpXbfEthROr?jMflR>dED{-5E+EnWLJ=T^Jy$bQrBd01oH<T*d?%)KT) z<(I(eh@0n5+)LTwC#n^Cx~gvT^FyipZ7cnzs_`ZV?OMMk$NE#i%FD%fzov&=3tDn2 zc>UB1>td~@n<NTccdnV*Z2!IY>KrKn5ndx1bIs>#-fv<^J+kWfBc+8IZ~KB@nX#4l zmg-$UBJwNu%kC=yy3<ywn)d2#nIe_4-Dw@4$Q?_cr5{B#|G26@t64wo+Lq&&Ov3KO zRQ_k!;TIBX|MhnGqq~f|d7GwhTRFMWS~>bbo$Qr=vWs_|I=uCo;8sUN&4tIVt?yVF zFz@2+C#&pv6W^9Om-?1kxpgOBs-J3pH*jOt%Qn;XGYbDRl>A#!{7UfF)lwt(rrs@S zvpw#+>e_#2(fCvNpTXzYDw$kCqu`a7e@tR|!h3nwv$=f&x4-%QsBdYCsa|M!o#|tD ziOVs86$}&ib1hyueS%Bp^HR_ILUzGN+Pq4O3<{V^t$Yq|ES~W4kGJ#6PP>zDS3NhH zBONa_<yDE)g>UtrCa)^ieV@4dRK{(mOY2j<r`xyaWdCQ#s|@20-L!XteP`r<h9#M| zE<N5E|7hj4%~Ix(F4tE+F`2?#XcyA)IK<UU#iO_M^N%OzALywZYm7O6(M&?(U<Zfo zA+I$N$E7B-AMh>Jk87~V=(f|~p1rv3MXaTPqR-5`>G8h{wDJsphWzkl^qMOF<$UNH zQRYIc)%rW%mMMC_E4<`Y9<@0_LQkV4GrmdMs(PXOBguPbyqW||Ud3H9{j_9Zn%lou z=59%0ORc(BY&~y1HK4cRX)dpoV)%+1zEWRW@2}EbzHP&9pRId}|1)HJ@v%6D+;|ov zqaNyUNg(fpjNZx;;f_zcV`u!4JDvFUgx2bhVhnaKm{%m_yqY!R?A`wiZh^YeS-Z|x z-}zo7x>0bYUvjM~_ncg-Wl`Ttr5mJ|XsXOF)%c!}(^9qFi9_sVOL$=ni+2H2;j7z^ zr!uTq<-5CJ^{WTUJC+L+hb*|3VgGv4ymCL~Hv;;Wnrkv8KmTV)ydAtp@MYdYyRB*y zz5Y6$2=R5lf6%Js(Dyde$6Jp|mA+=uePyuuRjikQ#0fo>7s4@@oB9&othki7ZcTpX zP5YbXH-nlO?uB|C-(it_z^7BGXyvQ)5A#27UZ!FmHnAmk^QS1mx05+IBP0K~E>iTI zYP2(OSAhh3WYqjk%ah;j@ak2xn{7}!FI4H*4yM{^@wWt~^=ou7F<o`e5-kr{?d#Nk zrYyYFX&t}jxlA?jfXQ=ouKvB;YBlq_<Jnb-R^JydD|K5OyYeF2tabB3rb~WzY**bi zDP(J3e+jF?v)!d#Ex*^#IBBzf2DjJ074AD8AL@Jh*Y%ZZZTzAu{hQvdvVWEQXJ^#f zu+{PZ84~3?^$eJ@4<F3lqLre?ZspyR7$?Kg>7N?lz{bd7xy&(A`QxdBp)arOkaF@f zjTeoYtNhXA&K>Jd%WL$H{PA4!c*4!=cOxTvO2u9zm&DnL_AFq0BfTnK_`{cO&eV0% z8MCySqI_o9Ep@s7>E@Rnt-Iw%<}l6oeLpR}`EkheibI*%ja;otKXQZ|?uO(av5C0b zlpV#wJ9Q$Tq~n%zy6-d__s#q}_3-6I${$Y^nlcEksy<ux@S@;!7G9oQM(4e8V)eWt z6P9FjTCrwJR=T|r+%)6(Lz$_I_^0ZM`)%l~Pz+gd^Q9kCvh;^9FSqVdH@j&qdh^Cs z_fxz<o32P*(Di-!SdvlhF_+Ba*5@Dk566E>SfF?OuWneF{oj4_pI*^>zNPm1*XUns zoovs}FEx1;oSDBu<hHiyo^_W_O;JvHaP9Cm-!jf$OP00mTwC%itmr+*WpT68K7nPY zrsm{Dsk=n{+RE*>(^r2rOOZfsRDZGg!?Mf5Z)T@@aIqGYJN;+qVCdJ9j1jBQU<()i zw?yVYLkCmY)Q~MFt<MSHleu)9qd3&-iu_$6E~DJSoa%Ltd2g0@v#}(X?rCVKIIkuB z@~YY97)J)7RZ{b(bIoNq{AAUB0mlMfo(v5!b~eksXI<=y3g4`na6dldgJ_TNnRk6F z+8*RAc>26VrL5(-{HEURS{HXsedzwMH*k)E<9W_^J*)|a8c|+T`3#S&xX8F^%bH)o ziCj5XUNuWH?p~2~#Q))>j-ula*Z(v*_3=kydT9R<)`rdh8QjFR!uCJu40t(VxBZJJ zEA)bV?=gvLTDkobKT|PJpjgYKX_e7Rp6b{fWj>bHOQm6V_OCmCRerYJi3k~|jdK?t zbbHk|zvNP^eW|zxf8_`9FZ1e7{AW15<7fQ8nal62yS8mcIM*3&li7iXPrYAo@mt(P zZbl0c?^3PjjaC`EBM!?6m~E(?BJFXXd+V0tJAC<)W#mewwbLfZowDY1J)bR@erSW; zo7wxOJoFI|VSLvp+2Z(RC-b4=hA178%f=nPs&|)jrHDN4?n_wMQP%ayR!QKG%|gk! zOz(4axy}hPI=YoQ*}XWnzj5wVhqrA4`5GHnXh;UV6)3!99e!7A=iXDnvxUlhinm?0 zJexCV>9I!(7ctHFy*9PF&Pb%r;*ZfDoz~X5!TV3n|D3hgOV#lz>(kV7pF=;V%(+&y zYwhYjbEl<JdpF<VGL>*XWSZ9?UcG5n)W^B1-t#Vqz9}ebDw}$F<*j?6TkfkRX2rY{ zxuloy(A9BXK(XvCC$o@u1*b~g_e=^gyx~`QWv2V`fX?e$FXsiE68K=F)_sBXm>AFB zD=Y=#6)Yk;8Af|89NLcWDqv%Jy7GPYhNbtWHn+rFYxiP1ATxJrc|L=#b(mYK)x}ke zFG>z<uXJ8wAo}i-@J*lc>Xp2uchs4xoAy1mUOZv*#2?ulXQr#miR4&M$SD_EqVV%- z%1pbkU8WA&TH!0!`jtj@PpOmqqn^4*V@F2R+&{~CCrD4x*Yfk{=-wcZ&BIU>s2=jb zq2+Og29L|B1BcX8867kxEiBL2(Es!EkEv7VA2N$sQ$K}y5no=%KjtY?ZQ;oa%SCmA zwJv;OTP5>YzCF7mY}Z1?suQtCranw~>fJN{@S#J->mRRw$dR)l<kZQq>4|Jxk5&5d zP1k=Vw(izB)hw?@t&~Ft!%kgkZJqBmp)Jh#M{3GHCa($Iu@jcQ4`VxL5N7(6NpGqF zXT%?qV2jvgf&33sUR=ql>rgx-ysAWBzAeE0<Dshw9)W(2pF+>on%Czn<SCF|R$}WU z*r+n)_x6iChd#_sc;_N))T0}o_u{8}Yb(QAgO>Ws*FT(p*#Fu8XKF?4tTpSkSyS&n znHl-VaQQ>_kH`Kq^iR2e*lI;M|ACI!)Ak+z8Ppn6SQkXGDs#y$IyS%W#g-##PFLj* zh`#-C=hC|HeM#Y`^H!KCiG{7){3EsO@hQc_@4CzGGF&w~;m{KNAZvMQ<;jQM8#e#& zsZ%TA5PH6A^)_yv%aZ=fG)=4woVEvvY;eiiqv`1BcEiauGQ3vX{^{i95Bm?Ssh`ee ze{%kD`6n!j%~Q?hA9(2P#CrD7speIZ>^I#G2mjy<`4R4QHLLS(%%-l31xx<PiTUWr zuufeTXy4NRY3kIe${!~FIMno3u+^Zu{ExNMCEE#FWq&+0bm|1U6QfucEIRy(`(*GB zjxViqr|?c>l~teeFSu~hLUD7aWu=_Qr}ABtPGWzcDlgxjC(@82q4E0NA{omT7RR8{ ztKJ(rdKPS2QYW=S>eH4fP8M>nC!dTH&;RLjE@0!%0IB;I8QkV5sENgiul0T<`r3X` zTit(#e&vt-$2Hek>0~hFs=W|=u`P7o+)vFZ9^BWpxvuN<yy@U}ozUKzWuu|ZajZtS z^rqN9VaeEz851_O2q~;CIrVAt5BG=M_AQGxuYXV$dy`9Qas8pPKQ+ofn@*hzGmX7> z+A8-ygOi_EVWiWOFs=`s35PC!i4$p>pQ4bin3~|>khO?MXTj@)ygBu$s!27AZuLy) zUfIm~Gjo1G?9zsu#_X1Lf1SA40u46*U=S(%Av$$ghqD;dfv7bNT%R^hXxDHO*Gy`< zy3pm_EM}?qrPY63QxliQW}Z6i{~$rfTxR7z@dE9O?^;aD&IwvhS`w@MYh4!K&d)o8 zZuRN93oR2Uj`F`L@F0BY{pF8ut&?vnYROo-BF@O3r%p(AO7+B3Q%jx&zVn^1piZhz zz@F#jznG_9${&>Tk6UR<Y09@8Dv=eN-!lJL!kUiA$jFPy9~#75L^w`_rG*zOuHLmE zC#R7u>d8yB@<Y?u`M<I_zhkNJ%TPQUskyL0z&zT+?_K;Xr|G6;TVuKI?$NuZF1X{O z6U$noFsV&qClZ-FoXQW)stkzO?3>t{&LQA+w|vIb+j<`anFBW&T(M4A?{Mg(@S#?{ zs6-x~g$pA)TqbbsVp(_Xkdn$`1E)fsW2c{cGhEh)dYP}i-Cv7yLc>m%gHOwM1xUuW zoMMaVi&?t%K<qW`@_<D?>$RoUta-Odpoitr&Er#|)E=&S7vXHM;R)9<uFKjQL40qt zE^>1@9qYEzbgP&A<M@Z&sAYNdB5hX&$;iyVVuokdPjL0Pc2#Nigr9zYh4(pse(3IZ zsbq@UjQJ&1Z`<C4u$xqBh=rxk^wF=-&*#1>*uwl=N>tfs*}~%BO?liKb~G)MQ!bqq zDpMIdMP7R9%@3az&DBc0Bh*={rTBY7`<aAq4qNZuJHhs(C2{GBNiU{OS7zrb{j|yJ z(-P5Doslu?Jp(g?q7pM#33&ux;odD5a;NnSpWoZdsh^ICl}2e~#w}cRdM+2|)@X4# zudUlQ-}DGH2wQz>qELeXS0`h_;}3`ZOtg2d_HgHmN>9~OzFBtYTt|!^_tpjGtqdG4 z5$pniERr7<l(qKOtP$Z1)PALrT5eJ8G_y0ZEc`3~tF3Rp$1P=K-0_F;u7k#>hd-PS zWp@}fSm~?`n;>$zNUwPJ4yQ1t2GuC1)@7>|tGEvH@N@kL`2MtJagDaO>@UqN4}DwY zwc?6@I=#*JKHauLYW^nuY?<f!)18+7=I|?x;&EQ?+bgi_!~LXLRSgU8uQIn;cqf;m z=I~oBm8ngeIOm1z-1$B5^6_0vvukwKr{pf>GPvS!B6c~WU<JpvPme0NathVoY&c%G z>fQWTYnjZ0b~kVb1h6hRRl0WD)!y(GYs3D%j+}DsT+Hrid-t8_oWJRO{uI3kMVD=X zY9i^<3-tb2Gj%85J?-Sb>u}2N^}+jI%-u6Z)|mT0gT`ETf!&FYmp@2}&WQRaZzNc7 zp0U>X&4$!kNB2UPL({gF3)P*F%nlJr5|NmyboKlu>B{KcXV&`sUQv1K<lp}cJQ};W z+9kD_!k1=jjT6b+tSWg#Y3a&7rAwBv@3ijhblu;2eTS1^_@#vl9v`}5e%E8AZ_V{> zmfYn^H{RNB;^T@rHh<H<Zoz~lH@`WZ^3{?$$aSru_wv+PMSf3KF8AYllYh6Wbsv)w zpXjyYQ#h4E*XtIsUTgc|u2!QgKL2YS>pGUE4F@*dznIO@Ih9vnOOT(i+@qwBSIf<H z5`7kJ781L)qCg-lQ7EZK$J!<F5c||y?=MC@6y9}sf9NauRcuR6W#&1AD#(c*b7FTp zbmh>Isrs37Cod@P6}6B(cd+&Nel8Zp&+KLA95~J$G!Z|j&6XSym^WvIh5Dg)yCdE@ zG57Bbkhx%^TOV4+)j$2MwngORZ-E&O2Miy29B|jZuI2exKyCHk$#cyQ@$oIsXHcHg zI&J<%iTpPUPJGxMz!&tCqvVx?%gI14&sLT5yXLGsepfpAjmV@9_76Ax(|1XU&cEop z!eZAwvDGY2LZuN}GIpmgElzFEnrq3*;80w9{j`A1x*Jne?;dq5?rLsYtliprXJhMY zEtNH#&fAnvt+;j|+efWyo$8X6#j4)X0!w{Zm%rK;!N^@}wBXcRbuD#`oF~PL4*m@< z-JjaDQ~TAF+?k(Rk8!<xa_UC)LUz|ln_QG<_H&$DXntzWgcid~`?6;oe6n)(o^>}E zH2GpTbjMx%ropy@pJUh5wt&6YCjJcTJJ!9K{nXEGdN*3GZ*dX%X{dR4wNi<;zJZy; z*Ek!7{@Qyl#M8oal^)cr;MHvvZhjgQYpq;dB*t)Px<U1+X<Iiw%$9WCbE;rRr?Ix^ z{co{f)9;qus(WQ!AHu`>ip#3w&hJAO%!l6P$bZ#)_HFfA`9(5%AB1PIq?)YSF_U{w z<9CP4N>}e%Jkh&Q_fYoQgAYzuG%W3y)E4vKSjbz{qd0jUTX(kGr-nk|$1ZsXKWum| zv}Bj~SG6)#$^NTZt*iHVesi$Aw$u3)3qwU=<o2%t(b@t_%>1Y7WQTBvt&RvTf5_OH z*SM26<ewq8YX`SV?L@v4H*L2iyjXRj$!A$*w7_14zgMEJeo=lI(UNyYDS^e>X_7P- z2lJ_ej0gRUy5}yMpi;f~mVKy7Ll}pG!i8&Vqt@MTU7VWwse&tWlI+ubJ0_zn?e1>I z&#S%)%Pda*{BE83<cCR<=h(DxE@v&Uy})M~_Eq{@P~4^WS}*f=y{YKe=FghGXVQl7 zqJxRfm-9K#vKcIT8{#oxnbBTuD<w9u<dfQbEERzjF58yh6ER^Iag<+mkol%Wf!^cN zPlpqkzHxq7cAfKS&fcJkh~qbXH!ZrTeL;kcwK!v!Q_dXGSM2Xv_;>Bty7cg=pJz7T zSh0-7XU+0SiBZo>**1h+(iL2xvFqC|v&dx+dSYasO5~pV)LG0{;gh&5rd&bq*~<KP zVVMo0>z4k~dzHfclznT|gYfKo>_!`XY!{z;_al1(e@4oig=^$adxXb5QQqnAwdBLb z);sLG-f(=Iu>0{>r{n3TCM9O8fB5n+akcByB=LD77IodJEjEid%oZ3aEba^{vEP*a za!yOk`xRcx{98A;y_&mv%ZVq8xS8Ijh35+9y}qzlBKEK=ug>o&55BeYb49=UC-CmK z(s3)dPXfHF^BWfI*%@_0FI+mxMq`!TgLT(M7+H_cjGJ=FG4n(7a>F;vzE^8la@a5z zd|Fqk`swz1RpCV+7VbYKcJ*(_oeLrNI3fx%o^tozbDGG?biF|=r{L4>mTC>X<E+kc zjvqSp_4)$0#|o64cx*kzadu_c^fT|mlcTlwm|N>T+rY4I&cX)%DY@->*ZOyz;8I}K z%_xl5o9*~4VDDKuk$tKT(eeW8u6$VV$MXBsg&dQv&WiZ3SH*lPU-4|o@3Cte&#Zq{ zt+;&Z93@B1&X0oDD@)DJ@8Zo>i`@{#cI<@wQ`2n?@6UvvF`U0N@!h0_S7pBkU;FDN zkXIOHankLA`;_#Z`$Fbkz2&v_iT^I8exKf^cL|)w7HjT48OW2|H(}Om@AF3eh0U8L zyzHHzo~pO)p7^$diJn)>m9tYF6X$EYwVI3eia0eDZFsZzE-Q1U`iIP2f}2&=?A^3C zWvcFqy-p%h8{aLwTHumsGB>*AvXtWGtfL0D*P<0o-XFTMh<zo~<EghE{#rjH>ZzCk zOI3cJY1AX5b;W%qex-f->Y=s=R{m_g^{T_3C;g^C=79$*bhvabI%iIOt^0sgR3;|T zA$#xBDlv&C*7YSSCQJ*@Wj<J(eQPuOo85ExTVMZXH9r`{>=3a{aK>*<ec?B2-<8jF zJ;$eh((hoFfLdkj#PVGQE2LO*f^(yu%H6-qxwJ2}e4DaI6vLi^Fo*eC&s~)7Jk_mk z-!=PFdsXw~H=WfV4`rB~%-7zz_IIl}hufuP6OB)q?>uM6C2m=>(=PD+gk?*E)n8tf zc4%#4-_>=*y~TRVg;TuQDRn81d>Xf`J3|f?3a*k3n=b!0yd-X2Gkem)ore@Be%IhA zkiWHjm%p`o+1|sIzOQPGH?HL9$}`z9$4l7o%<7oS!FN*|L={snKjdVq43J&k`ns_9 zqWPpHrpqd$7~gEx))73jV#`V<v7OP{DLOnW^)iCqPE(9}B)XP!+qS2AZ*8>K7k*gA zb--W?`(3#kWvBQ1UO7<IW~OTO-Di!GH)H)2YevpXv&yH)UAIzpSa`PR!oO9y&D+AO zi%PV-n{Ej*o^4fhTqze4XCJCt@>|nTE_BoF3YV=%=9jifeCV;Vy|`U2ykzQ)`!^Z5 z)9?Cw%)A?ye*1%gfT`TWH+$L6dHq`;C+zKD7f`;;Ja%1xQO&ad3_kLyqTI0$)?_SP z%q_pk__ow3y;SFKuFtmmCoL#D==d(N{I09PvHnvbdwY2812m#vPrWbp@l@ZlYK>Qx z_g-IN`nS@K>8-lVN?w(zLM=}Uxw5t~T?sCHS{DB9aq4t#e^r4jo)2sFXK(itSzEvB zte7~9<MITJy8*1`oDmu2Q^mIQb8l&USQaR}yJ^d|CAqDl61CUYJ-Mt~JS|tx?RR<# zv%{{Z9xN9gJq~$2M>E%}z|8Tw*xZ7GwUv|BEH5)X^mG5h05vhGka*sIAwqUPV!s^d zy<)XFk?r37i%h!tiVTNKUgiaw%$0i;{aJdKY+z2^>!;o!2H!qy4td=2?y+!dyZyVy zy~p3plv#Xv5yw;4c^?)&-#*3n5&P7KsS67A0v;#|T@n$nd*$NJ74mOKkjjs^NxL0` z{#{#c+7`p|)cJnK!^9)!UdhJ1{H0*)KGQeZ#eHhe+RGbCT#cSEOMVY<^U@8>Ij;Te z*5RjOySTQll~vd%wqgUTVneHLaeK@4eT&yTWcQw+YaqI|d{^%UUIQ_&ciLMrcWto{ z)tjorZr#+eoqM+{@BCE7g;Ccm9kcg6bkvbMC|P?y)x5UL{OBo{hINTkqzvr@_ns|$ zBz{_Kam}6n<e2wocFo|E*1mHfeskZcYoT8ymBjxu)U2MXx1D46GXXP~xj!RrANun5 zis5GYJ4@ewJ9XOlVfm>OhuBW<Z&ebpi<Vx*ex!Q+E7K2iWO<caa?T5M`v%A!Vqd0v z<5MHk;XO*4SI$qJzVn=o{>)(Zq}{T1BI1X4xV_|c^3=HX>FUiO+fzRy%U|t(Zl~Jx zeo4x*P19ekU8N#w61`qy>wku@OS3c0>te6x*`0cj_j}#9+uvQpQ{HTPGu3#)hMLtK zlf)t}S+JI0?BB&UgSX%=_bP*4CGnFAb|vZ@o=XmIP>hK6nYbn~>f+sl0pFOCQ_D^s zHJ@^)@6G~`f_VZ*?|6nAUi%Sma3XGJq{c0=m?zAs_g+8a(1>1T;cIZ`!=n4U-Ws$O zuG(>>+V9%ppM9@R7Edp5DwNTgI+5ds%5o2ZIX3GK><ez=u~3`ev5xs$%Y_%U`@<R* zy((oZi>y#DEu1VDCh;y+z|qH6=gr()dyPFo{i&~*52-!;7Qix<FFVRib3x*&XM2vl zFo}5=V!8ZF_(gW9l^Ok;x>|18mri8S{LfG-WcM^-D~J6mmVL1g>w{ybam?4amm;fJ z#yu@kqubl#UZBW4M&}hjZCLcvEZvzZwKJvHM7i&JD-cjvyzjK5oLkq!eFcrl65i97 z@NfG3L{sC-(~V2CPsjZH7g(^MdDWKo3Hx`SaJnJKb=M(tit}ymYf?3Or{))}TNP6~ zJ>|#LyB<O{%AZPOuQ6{3%4)J`)!{LI>g!t>82J5z*IV7)hb)UHZkn0#X?Gu2ckwB; z*>9xR&zxG4Gwa{H)q7X_iU>J=bFhkkUV7uZymIPvk57w|Pc=RF*A@z6e7WxT8O3Uu z&u<zOUp<?%u6CMY>Lv?oeTRulSnqJxmwwXR_~k#t_AB#ZTLN0xRV}Zw1kcF2&U~mb z;9vKZZGXiYITf?^uT-zm&a>nCw|ZUF?l-+Rblr^>wk}+i6)ty5?a`(iF`BAn+q`xz z*7C>_JG8RUNRT6TQR&^aA3Bq*`ft6R5|%bc=fp$Di)H&_|7g}`e2b{|KK63&0k)1q z_b!B<HMrbruH72WBo=R<;dJSB?F9K<=eRmfeR+MVEx0pM#fhiX!SNE;yoJhlnQpMG zD9o@~ACc1+GNZWmg3^pEaV8n_n`PGTnxn&57QO0M=V06ZbT^k(x`nDl9^0q273y!A z=M+lm7&!@exJ(oL?hwT8C-AzH`$F;Gl`UqB0xPGRWifIbVXE-WTNit7=dBlW9-YZ- zXkC=*UuhTqrSwB{x59#lLhJMxO?MY9-I`S9^!(rJ80{Rz%`4r~1h*uXZF#cj+m;=x zS6<d&;&>*ym6NTUbKSB}(UPtCOLluWu*E;Exi(ESL9b!cBk4no%UMnLi7q^9Hr32# zlF{3f4)55D-By&`<^9xq>C5YAM%R@Kk8HhjO0P6s@Yl-iUtLl(7Ed)*P)hhatzByE zQomJ_3U%FD+)@E%8FQSs1aGoYTP;23fba4-b+67Ge4;&}ZRXR=UpjT&ml=IpSR^A8 zg5^`YQY8fKcU_iIkX5X?wKL%AXPI{2!-uw>3$CfxFkN@<1$W1sbtgad@VwVpE;Tc} z?zDeO^3_8ZR<D2i?<%ie>?My+`<MS-<9}1=*iON~7NLa)&aHmB;lLBk&0IO9i(5@z zzMc^j^?J&!*|%4zc{^?2Yjsr2n_r97;Mso$j;|6Y!p)}4FRgyjCeWQ`c9rp36uW$h zVxxcr7mEqwp&h&5bfkY;`a|=0;~~B2j(<)}y1#*=%*y6Xr_dYS>L0Nk;zzcMb^Kl) zb)Zr)I){1ALfv;#hXnnlSGGA?a6gmw-?Z!6w46Y}#JJV%THHKG5-s2BT`E|YEIUQ! zF~^-0KEdo;`{uk7&n`Y>EWArE+w@R&=2qYBHVa(sex9;*JMdxM3Lf68Tb}L<KUK{6 zWQ_&$LowU4#pg~$y>_3XS5fKG8^E*lR#9B&woPmgQlo?J7p$A~pigizSLXA(4jJ29 z^xu5DShG7X+;3K^+0*hJ(H7ih&xHic`8OTuIL6iVIKN@-GA%pHyGau>KCD~y+;7_Q zlCNR^R<vyoQEBA*c3E|CQ3Hp8aM{lAN#D;MlwP@Gi~jTqjToObTYYC0^d9KFp5wmj zjDk{t^x`RebtkqNtz~1^ib)GeahtGi_wGr1y@g)hWwhdmTAc9iS)kvXskbiL1@DVu zUV5iLWu6#=&~A^|$9Kg|{!X9AG}}W<meqq{<!tv&RzhKm!W4c4I3xzw-xRL-v_Phy zZ_?6jPtz1VirQv6uI*Xv$@@r5MzuCH#%}7%jSSK%i?6)-)UCf;YW19d=LEO#EVyj= zlzZjmH%t0&`Yu=@GAq5LOv-86<1@-%i%+#B-xYg#sPuxm+{-29UWJzm8u>mothsk_ zlWgO|1O|)PEB{`_x?Pi%5kI}Wpf}7xPucaan@K&F)!NEOAr9YMHZHP=vet^#wO*N* zK9#?raodfsTY@{7r8HTZ5BTX73T~RD6tMB;_kgF$p_6t?XE^L&o-2@15`1$ZyUj5H zA(z$69U8$q4BiE%c(;WdWJvT|t-NEAT*8mAQ;h3$)oYvDE!TZsB_!F;;kxa&-a)Yy zyDmP_3A$Y2Vq*Pn$+hhVqo=*=U2txuFEgW%QL4$N+@h^d4=k*i=OvzWdC?x{Mk`i! z`#U0&8VV+qw7$^Fvb&%1;K1(N91MT$jrfYa+rO<`?(_HRk=gF8db;Pjyl1g}SoHJv zTGbdob;T-$qIRE^D;@=!oO9}OXIOc!Xx_Eiv8Q&ge7ETRRqsTZWo=eWCk2+?ezB)F zWa3=GbKz6}Gqk4OhzLBTbVp-}%DfPPRGVE+o30meH6$#%`<i>l!om{|1^8!b>sT#J zX5K$lKjGwE=BvDq1XVvhEiZZ*XmMwyKJ&W{QSJ$%4INLJ4(y)$On45TG9&lGrE;@p zbvB4?+gkI;(ecYag%ej(I-W-P|C`$KZOu%_%eViXxE<todh_<mDI9t3Q(x+RcWqtI zdx=ShXWQ%omE{r6(OSG-^HROF%RltI-l8O{H|MEq(9K(7G3hPWHu!Vw*m&bAV_|0O zGS0st8y~ox-r0Ufk>UANQ?F|x=60{7t_dGm?^3jTt1r7}@GBY9sB8Po+@$A)KD`-x zrg+b?U|YAVQXy9ST({ns%QTs2F)Of^Ity&(Hk<fvb7JyVhXa}41HN5;XSeLt!q#Q{ zOM2GZ1zvyCnOq;@!hS`Dhb1ed_S_Y}4x2-h*G-uHt|f2X^yCzsmUjyd70WVt&A%yj zXMxGXTE%ifZoM6A4Z`NHnmc8)?!z(@lNA*^M5oPYl{I8H3Yj=@)7#=%PuK%5b@1z! zPw|ftuU5WyXxY^1)yrd3=4;G7#h0M4h}XPF?ct@4n&suSUApqC8dO(gNOS3BmK{xf zD|eK+e%BUJS)=rV{mZA8`2U*X;-z?Y=F_svycri(FZnw`CFatCK<1|KWa&4XZhqLJ zJ9*dEyY~XJk4&kEU3>1t;e};;j|!_fb!^cO&U@(V+&iJ5<EiwrFU89i3SCyM4>)A* zd*&(ohTn%yzqQs6&|+r)H}!0T;NB;v3NwDMdDpq*$pslHwiPjto)-!7W}bVcwM|yI z<^8OeS#6Fkwo3}1ddD)CBs7&XvVU3fBj}=*x52K$+uNs>Np*L7e?C<D<<8A;(**_V zM3Vw#GqV(|x2G8OZ8BPV;pwLawt$sE&f8nto9?IhYxZXB_^>Y9qu{1+vUAP)8PayA z9XiDNOLcTUPpQ}E*tsG4Ig9?^MR}^OOZgu0otROmp6Rl~a^F*7zvVXt9{Ox6R&_PI z<!{B}de_0s?Y8sI*#8Whray5Lzgewj!r8d!i^Qh@HTO+#s~f&Moc8Gpj)-``mKI>N zY;vmauJtp05`BBwr+8G(6`iV9sc5qGp2+m3D^WfgWdU2*`BQH^QSoqHoAETE(;?Po zh1TmOZ<e0CcJQHihR7X7$ATig$=?DVJ@~Zr+__Inw;as8qww5p?*3h;Q}>-VIqamc zV^`_1Zoa=4+qQoVo5Rl+wtdxg-gg1dcky{o$kq}*+2Yy!%_T(VlzFGztK7HJ8r2@s ziOhxSwbN7k5+5w?EnL;)!^<63^hEtjz=e*a(~Cqbnkpa0Jm1E5B7(8}nX@bV+tvvp zw+vVP%;DJ6_(qI%^@cO)cVqs&sR}f?nVlZWE4F6N3fq(K@+MDV^)czS(7bZ9-)6;? zPqR9;W=J`SJ#Z0yS-f}3y>E;gos2H7pIR*ys5{wC&>-qb)Puk+ze-&8xqoZnj>-KV zZ@B2<DOt56g}a)Au73#3dAcHck@(U5hbl|vGcr78b%>iVFNz^})iti>z=J24WAB}? zuzJtok!PRU9mB76tz({u;k&=V-K!nsO5?RwN}RU;&@CG<b>nx337xNkv&&SCccovQ z@@$jTefghmm(*)sHJ;Gkd31ltqfgg84_;W#<v)q#pytF?g?D%s%=uoc#U`G8a_aM& zT&)M!?f&X|*Iiy{lgrw&i<#`LlNv6TO>SXzh;7~B$1v5nb<$eF*1{a^SvNTBLwhs@ zzqw4F;<rykAlS!4bAg25)EqC?o_Egc`!(28Z)@^S=VjtCS)2ZCaiQ{|xAG;N%wL1< z2(MAPz{NIsPSh-YMYb!v3VBO@@pErxsdT!YUeF%x62->1dWVMt!zG&)+e1G!_KB{$ zlC%HYqS+nIt2SIMs5`xXd3g(CPV=sU;(}Sv7&xzS*&DEZXf;!hKX>ZhM4fNGrHc9A z78V=6*<E^-&Aue+b8%SAfy<{CntYYI_PJ=q<Iw&L<KC-hmwnst;<cCRb@@$4)@;3Z zq18P>!FksEeO*2?KJ0F9x$sV)CV6VH?Cn46ohNLY$tSa$BjVcQn3eh)c%`~uUVCTn zlNfV6hU3K3q{Yo&n|gMhQ=f9(Y;xR>PyKFFy}zH@_~^P@%YTMlnG@WbdN&xa5_dD` z>*x{Qqib_WZrP-UD|4q@oiQci7~3`z2eF5xnUiW1zWrLP?a(~K_4JBYMPC$q8C~~R zga@;p<Jhp_PI*gG#Pizpmt3!=dcV3XSs+;8^J3$%*|+#6b6rmgF!0F{<l|NT?&AJ# zcj-eHCvywI=PBHA%BS8l{8SCfG!p))TCFbbVzF30RnPd%jAJwA26tY`Xze+Z)g2$O zyR^W9o9nw}RRb5}ltSK53pNFNT9)0>dw)~r;7xO*(mxEk$6Az>*bc@#yCa@9sZ;;A zuIW{|Y2C}$yt0VdD&rV?v~1mX$D4xfthPQMI*#vROIWz(hs$=>sx3j+4`nF7YcTxJ zFvZpKoAZjqx_BG?8Aayd{u#jweOJipS@j8QD_o_|uAGv(p>~SkjJsx%%!ghFmz+Dj zTji11zmt0%C(XT^-Ogxs(JpjdV<4x{(^{v5G)CXzXx8IJOV`fd_3rvzCib$QPLeCn zh1|L~Z-v+fc@}lco|pV5TBRDgd~G)^Tg-9JX7%h;(~MbDEnDiMaxWOqa9#54HOG#` za(h<8%{R>aH#?YwO>$8@)RwUBlfoJXw|%FsTTFNB-20eAz;?m9Kju^7S9jUEwLG|- zywiQvyVZSdiA)b(Sl`*VY<o`qu4yuJrwAJ!V!Wl@UUp%Ng4TY)xZ@U85wSuGYIH5X zX<gfLshr(ufkkhJ?-2_{Hkt5RPi<aPmk;ZT*T_!~k>%5qnR=Un<(AIM>hm0bj5DIH zGu@nO=8?ga%JgvCgx+%^6@I0cYBJ^*$I7h9+Q=|3V2k;w_WoTPukEPT$ZJ^qV4;P> z+$&Nut<{+W#m`CKQkA&KT-?5i!T4RT+V)*(UrU2a-fBeL$WndfaNw@Eg?p>~rZ4mE zc1@E|4rt!_&{Lb?)LVg?#f7RTwwSDF_k5b-K6M?_)~y^e>Ia!>mQ5FMd%0Ka#*HS` zSe8~LhuDi#nPo)h?2e4LTJB$Zb<ykp3|o}0Z@OfY8uO^CXkUV=+_dHin;tAY+teU8 zwe*+X<MmV99Ukb1?>gvW&aJLkv$;KQ;aBd(lKvOPcJn@1HnVh9%K3eQyoctpEGwCl zC%<b`QR`=;t@Am0Mb0l#;MkeCgw^)kyzsQ;p{(y(i(d)<U3tslrnr#A`7^<@4ki3` zSb6q@&;!2-0d3RkH!<;?3z+zB-pAF#?o%rLm;L3MHtp|~jW>b=%mT8tP1oOCx$xYF z!qzL<Y^91OU(QrGZ#{EcmF?B;xkd{Ua=PbS5{p((m~*IROTp6Pr&O<c1{~ix&+!z~ z)Tq|kTNBUk5XlN*akpOZoNb@U6t$^hoAOk)#`-Q0xAM%mT9uReFz845j%hM8G#eOf zuLtc^+@;^Pb@R0X$(!{@WIVP_F`K{Z$F~~S>r&;1r~kNqHRsFeX7^418QNz>u8N8e z3~gt+dC{ls<gdWJN6&Mf<>g=I7ZG~JV|!J~)9gFTtgoL*VO_py_QF!FGV{s1%>F)2 zFI}Gzo*cV1c5_Ku@SM!qj#uqIL?+C5%2~Uig!{t&WvOKk`kWYY3c@C>(K-0kF=NZr zax2kg0b3VaO?~Pquuh!qXY4s$_LS>xf-4IY8E$^4aM^kMKf}VvVh5YWDSoG9Zv0+7 z@3W1jVBYKKrp%Y$WhYBqt2sPFTHS1;O2NL^<R^MBR79LPllzu(-;nOvkvHd<->jl7 zC;Vq_pC{ZX&Us|fx4suAIk#;~KXoap@#>0(-Nu@Idf#0aoQU(%yTFqeb=P!??v>>h zFSg!xRaqB2PkND_#l6rQmo;MQE^Lu|=z5{`>?G4uQxjeK6My*M6lbsS%V|4ydf6v$ z)BeMk1$XIL-Vo}@{t)iB;#Q#al!#jWc9Bna=XjNIC?s0F5&iNrh>hKPW%lBRy-e>@ z?>(EE*HRErS@J>f<>eerlLMbNzx=S^cE<Ho-881s!@f~{>Q<{`ZU)_)xasYo={vb& z3g!yFYdyYI=!g2LVg~+Z?JH3i4;@~hcb36m-h)?jt@1l>=(i+X{m)>q{zrLR)2#dd z8O)E?GwA>5Sn75Ca_+i%?Z?{TEHMWpRqf__O!l#~J@Rdm%Q6XG{~3qu0!ttLoz)(F zg?;V*cf0xuHm92#HSQ6b_q{Cmy5_QTpLb8WYkjKHdI4YeCgB(kwYr0rN6sWU@$S0h zui4n<F=q-#>AHC@{a9ywnyqx5b%v1$!_`mcPCO9(oLSeU@b{vSa#CaFp*PCfNtRj? zuRm@&ohn`WP$2p_M@ThuI*azp134M%vj0vA-Bl^2QNs4AXwBM{Uk-^z<$c&Ic<OD2 zO3^wUS+@_fo`u*<nDtCPx@eV&#jkA_%knpEe6w?xqvIE)3a7=aTg@3QFJ|{~hnI<G z1TapX;wYhY)?LfKgxg0VR!HGLgXWc2X2~rNj!xwL7ns+}9Qx_pY@L;V;x2g}o8LJ9 z5Z{X*7yVB8b!P-9GP7Or`!ki<XyeLHOL|5A@hm&TxGR&NMO&+2so*-{Sw$xP+rNao zdz-zT<I7#)-4my8zZ>(TK$>B<TtrRFt$Km)?C+jd%gO9MW_GS4dR~ok8I#%0sOS=z z54&agsu!5Xo^U<7)8#AUZ(ZZ39zslF4<{^o-M9Le2j9%%V+Z*TTs(M{F*tbF_HFzv zvN^JhH!XT~wIAL6`Fhdi{|pB|9R3>8{^UnO_#dOSKIW^Q3+;boy0S_uG=pnH<sNa< z1q}PtcF(?fk#YG=v0G}Mr>bXpO8wSU@}GOLR;y52;nh0vcT79~P0e1-<&&3s`0s>l z)vM;EyA}q%<4;L^?EhD>?BoR#4rRf<!09Y0yI%S+3YVV0CcL3=(~5lajNN}bVjh}I zG+4STZ|lql+L9fy&%C~*GJUvUztdt%XIg^7qsP`x?^bZVU1oR6<f%)i<WxOjjxT+V zlP%qp%C!HsYj5qHIA`kgZ8I+&{j9J<M!UZBwcVZN1}E8#I`jCRXt(StopP&J_JD$v z!n^?CyAPSm&&&wh5EEtH)+*K`xM<h%mBI_dd04&Ht!GlqaOB>-twhoEjOMbmQiloY z6INWCUwo>fgu5hI#j*9(>4{q&avlh9dUxNYuwj-XLyx@XTir$r`<9gfZKrpNTzc<S zuzb1p`~yulD=(H?)lLg!TyaNjrTac%^QR2EH_ku2eU~7U-rTEGo*(qn6S$t$pmM|^ zV#=ix$=fHa)qQIpa52&>q_@oJxyOfwnx}~tK9+{>OVVtoTqvG@PLX+$UWUv;&iy*k ztHc_){%p^fa@*SDUSQ7Oi`DVV9;}Y@ES_97llj!1{lbg7rcL|3>RXkw_~9B+n=7?R z-z(xJKbrh!Sa3YbXMG26rv0b08S&g+TipUz`l~(K#mo1jvGn4Wb@TsNKXg_5&yXE{ z)c*0R*ucj#Ti%`cWV9<cd+F(?o44+2$qY`B{kSN7#d+>00gP`io;y|i>Q~<@@7`6B z$`eX7EKCdv#D8u5qnEfviTjiA$~{%nS9!*o$-31}Z05OW-PXA?w)sta-fFWWc^w&s z4>Sro{EF|&om|JuBKzIRB=*e|?}CTBy}ovfez~LNw6v4os$h<<_U0L!Z$xh0xIHys z<AI7GKd0Pv#WjB7wKrrI|C3wtpJAoA>Dry_mNNr?7i=n8zpNzwr^BV?_e@Jx&-~AD z)4;&FVM4HX&!jTf{=8ocUR6~uh%MGK_}i6hE?j)bc7F-Wi#acv1;WoTY|qh5G3H(# zd@uBOp5WG9in2QoRnIkk-!#+je!!%F`3arA#eOntRwbEe&Y$*X5$`&_8w;}&K7>~s z_&Yu0!Xe#<o`3isHsnPH&Ogk}9;z0$GeYp7%ehsmlAVQzcnUf%x}?2PPw`pc_B7Z; zarvuHi;gpx>T;AyMcqGe>ke-iw|5&~c#7bT8>{>7`(*5k?pBu6_$phM<TT5_*z<~L z#<B+{`hg!FUS0WGJw)rm%jaR|f}49n<Q*OR4$U@|T9~%@%G#NF0W2*JmOU%_&Oc<o zR9L*fg?sKKBa1+l$=goseA4qUeDjrO52gMy$bJ;L_2X^M@_-*z`Rim-?(f?EaAnEN z)6w#~c0bmhpE&il*Ylz`YiC_pwR0U`=8@JLZ`@wY5I)4Tu>b8{8@4lZZS+nh9saGX z61DJBSWFI=H)}&yKS%$mStd@2;s)uj4kh18WY0)txBOUlN}(b6rQva#4?WhJ+a<TR zURjW28D{dl_|Uc$2J@s8csyN~Fhm*NU6p?6VoP=7q$Lhqw>!RtvK{y5m^ev1$L)p9 ziB)I5tz5kRO3c2L$EDNb?k`#QP*Lc*bGcv6x<9h2Wd~UuzpPA~7hbCOPL*p>#Zz%} zU#`QA0_!t&PhI|MW^uxgpwxAFsTQ)ExD=`uD{}Qn+!JWx_GnkzdS+U$h#Bi1C7#Dd z<*pkGV-IJ9$+Rc52F*D!lk?mhUNJ@&Ayt#gsmife`_oJh75-Y_sCkw1@tgS;+1t5f zUd|Krec7B-_u7ZG<+j7#@=k6EZmlwh-L5JwIbvL=K6JMJd)a%3<v{6E=B=k!nQ61% zG-kRyQ@LQy%|iZzhw^KT7H_fEpC0zel=JM8OBXFQ_c~VIGmBN*v^ajv6mFKstiEBF zUq#>9ubm`Nt30XPL2BlO0|x`$d9KDp>fdl*$v-V4EbWPU@Q;pH{C9K>7x*<YeAv7q zDCuhcmD$C6FUMSDbUjhByKwR;g*k8bDNZR2J;WGZ6I)sKaR1NPDULR~?VGFD?U<l^ zNNKin$=~ZouCI@IxHfhE$&gzYJoFBH=-mE{e^H5#-Hem@TCw}OuJ;^UDsU+8X3aIZ zx7V{he!tq_XX>AQg#RYzQ%fU0;rV_F$<_;GXIw2%G@4+<J&hxGu~V?Z_pL!&4qB*6 z6j(fD_fZoU5NU2+$#M9EoAOfb6>64#tGzDgt-Z5Sw`_t_#{C>krE80#!{78YXI!<o zG$~opN=rWV?kl^%<d=PVeoI-NyWX9|A~65bySx=)c^pSHbKD-RsP%j6zDe<syT;`T z4GW7~(d|F|76(p}oe&-&nR#{7I^A~7xq*e1GN%MSgorbix1{TH%s7*}TjRMh$4v>N zIZBVr!Y`!=uFy(Pbv^TCM{23Gk*tc^wUiTA4Ue3?sl6&mcGGr&&|lSROiHGjU+%uF zoDkf5|8L;#T_s_S>o#>*_54=c$+=FU$**&}M8Q{v9`1&RnH+O8u740nb$__vKZD{! z4?mSR&5MHjInVxk@?J7z4(n!Brb`~z@AB<5m)W}NppX-PuJhHoUHcv#&tx^ZzU<kx zjKjy;??x+F3T1Av+}(1kZ^eORPyb9~=5G-f)C~Hbbx-y$mU+un6S`}npv=@%w=E$Z z*$cT_7g;(U;)p%d8Mc2{=%0d);ufCA+)uwJn(RmqQWSd28NQ+2)bgAHci(Egowp8$ zTGjKqvmOzu(eGFv`t-^@)qUc>nD72tb@t!MP|lKlYm=^<AK-r2-V$>mWdZxD5JB}! z_Z4b9r}o*s*t%|)DQotky*~thEjwIlz{IznsYH6cAKwaz1Hl&7dfz&(Xs?nHxo}YP zN!#No5kEV2-wa&Ar(T-tkno~8>EYkyu9r7&bv(p)=$XCeO)0)SGsi96YcozfS@gE{ zkXRtk%9RCorBb3J<|K-3>b|SqTAD2pW2_;!proVdmEoatsbYV8r&&BadqwZjb#sGq zx25LOn~MLg-sJ1}yY+7E<5%IbvP}zHzMKo5VPBeYB5BwB0?qgNs{(3-4zJMIV&>q! zgn8zk#RUibdMEH1s)cY|b5Xxk?A-B`^KUtq^cRV95BX;5T@jdbtTSsx@=b%S2h58a z%kq4)8{SIGEYhu+Z=tbqr<|F#-bL5+Z<BYac`_`zIjyJfN|J}2=v1jUc}!cHQXYJm z>$BmM>~ap<b;@_e4Vd3_cgOcEsNX8UxbxPUW})SCL*^!hiSY#rsLwxa-&XR6X`b-@ zOM>iE9xxS`Y5rQ3x9ZSySt%~77{eBh?0Dv&R<}nMq1-pJ*j`**;g`8Qd6{ES3^V)6 zQmq;X<1ZO=&bQ}U9Gj`4Ho;Zh&u7`?<i^aB7>n2gJ7ngGY+{t|S#WD@`L0x}kY{h% z9-7P#(p?u5Y4xG|*0moptCyV%D|@23%PD*NMYBtcPkoMs_9~hBHH$qGl}f#~ZEegH z=@pENf5vmgx83;F{xx3i^txnEUAsrY&5o)^{&jwpbIuc(8~DW2T-;_=^23Je=++r> zOiDE;0$y}nSuQ8OB6&)#?L7gJCpL|`v2PFDS$v7NkoRl-Ljg~fDT$Wng!7t8{mc$X zXm7Gg7JIi#agmwJ4(7`#%XU5~mu1RKUnv;Oe?xn{nkn~&vWYJpr#x&i4%*#%baSD9 zf81IQuA_%m@9@t#ynO4CLqE?Q2*0%QO6EDH&5tr;K7JMGwv*k)_*7={nPs3YL2r3h z`Tj__&UrB7VsucW`e&94zvjO@RLkEv%dh;Z)XE=Gy#=?me>vW1n0+~U!CNV1&(9^_ zCbfoHBp$f2>eh>rGkSB~8q1g63lwa5a8c)u_AF}|-H3~&QnL2ptzx~#Pa|YIeR-eS zeouKJda-%c+qb%>y>>R=4JkNK7LsqSbbKbC#D|%__g8INaMft3y?3eW<JTvB%XWq} z+N_&U!n}y5=EM99BatJ$7Yp*2njUey$aXyQF5|uvg16Qd9_s#j!r8ESRlAH*g1o>i zUbXWr-YX}*2~=7<tER;}`|>wc?`Y*i?WPCT3b22C7aFH-z_Pq}lfts!%JyNRYP()a zIsJ@1@@m%Yn5egjt_ygl2N>Raxm|3F;7h5g$t!o5ds-_-$*N?T_^$fC<yzmJ<#sn@ zD*fKQllS!H6S7g#Ffp$UxtGt!<`L^Qqu^Tbs^AsXo3*}Q=KJn+{nn+Du;wD&vW+SW z%NM)}HQV^*?g3TqXMDdEyl?O`EO)M*drEH;d+UD&o*(5N*=J^i*2&E<x}ki7X?A&b z{o%;(PIJTKi<@H}?^!M7Xk((Wz}d?-==m{6^-$YIk9SQpdK+SJcK0&RnZLXgvY(e$ zw}`V=$BHM+yjcEycSFOu&0H%pbW@I~+kbi}o-@aHvjr==OY<SK4aI#SmokopY`^kG zl&|LYlHSWQCymUWia&X5v?g=92+v`*muE^Hd4&|KcJFjsdfkGxWM>~c=TtkDu3o!@ zWs$C1<)0U{T7@oKwl4pvfBkApADvX2oQD(U2Culb@#fo$aw|*boZ7acys7#9D>)`T zwujFH<~$dA{z8>Ks8E-4{XV%_o{5ILOt&ucy>XLk%l*sDLE+vHXPgRLz1WoN<s^N+ z3$Ip{_IMoMRotO#d`x)8W0thgOIe$WA6m`GiCr0Han9g9hs=lBtF!v87U;6b1s13Y zyuIomd*G0Hl|bh?8?BT{3Wrjc1@vFE+?~ngpms-5(Nl2l)GHp(Pvu^$xa;!N?bO0w z9v7Ju7q@sCvl_lNxRkKmAmh;1IWHQrXBQWV-q?L9aALoFPj5w#i+0;8sqc(dUPs+E zSAY0&_wNzMNWDzoY;A^zYu@d4y?3;{-D#4p%8Pc5NozmM5;guP@3nUe!`!6;ha^h) zq}491;V7_MG)Lymw8sAoe_W^XUR-FSoNjw4G~j@*?n2(RCo=DfYgG0;KP9&H;ICAJ z@O2lS&)Fig?$wvSUt`x4&zBOE2;0?D!OnH!=%#&z4CfY#OT3dhReqW;yMM)-SsvN$ zuV&S$U3{h_9PP9^UPejoK)SP)c2?UoQ>)Ec+}<9%@!SEEO>X~L9=0OlRy)hP@IO<n z&m5UMb!*nF)|m|ky^dFQJn~wRwWB<t!uQPFqR?{(GOkbB-SYQx!{HFayL%2Tar6JZ z%K1@NjK}Hd*}*F}NtyB8m0R=R$hw!s$?T;~?N*D*wdPDPm@TE5re&R)E7st)B(Hgv z!JKR(N8^@b-)--Bm0wp<{Mo9y;bX^#b|0C4ryhnZW>(2+D`HAs&35NqK|n&oO}E1} zm3}Kj*JW0me6XzCpO3>gO?Y9-p=k`6|03fb>8Z`NjeHoSvy7WxQ9AR>t52Psy-w^) ztfv>xxwwP-Qp#MeOpzG2We@s;O}=d9|7Tz#*x|G|?RZ9a?2T_P8m=e?u2Xn-)N84D ztnVS)$+JUS4=kHD_wPg%kJg*ZURcB$PjQ~DdYF4lN5$n9pBa7y`CD{&ih2#rdOiIz zEq4Vvz9}!T3>J8MHNtv<qtN25(zVVhr*E(LEAsDki-YZHYaP)&%D4MOc+35IBwSo9 zr5#m@7BVj~aJ?fsQQIR(yhvfK-D~Yw0owzWjz^w}oKcJY9JxbH@IM3Jbra^cS99bp z7hEb>vT?04!?~5c#VRs!Tuo=P6i;52b=_Ys>b*R(*feL^KDontXR=z%nqZ;O=~t>X zN&VEzy^lVaW{HRBDvR4FeT<tuBYNfin?Wnw3m81Lq?4O>+$@RuE`H>|-N2b*RTC=Z z_>w}-b%ZRP6|=DNt;ILL3^u+8%Xg)nF<t$Nao35UYp2gGWo~{Nlbfk#(CRDgFL)~3 zg^lrL)<Kn?`5N1N&)sBtDCx7oyWF>}eT(c?MhiBpvwf#7A6f3MG5?xy;sJyC!8?4H zJ8s`GKeA|&XW_ws!-dKbEw8E$&QHB(a^j|RWk5UEo%)B-22AJnEV@|!YlrVdl@A-| zIk8<*SG)2?*49f}Z}*|D1-EzYj=bvQFxS)R%$~oxr;6*;zB#<zp?2$W|0cD?aS!ft zhi6<5@ataky=2|5zOLCbKQf%ZB9MM~hv|W;yI<7;e_Xq3)zq!g_Mf4>Vus_=ZO2|j z3!nDVE$lBX&bBa_E0BC&_nG(){qFiR{nG>QA2R(X!?(EB=lKbjP-&&>a@SHS{B|u} zcQra-Utn&zM>DJ4?7n5ji_Fda1UBp5WiTx0SslBND?9zEwXu{EU(Kq#thcA9o-J=$ zb1!hm)0js$^I8qJ`iO8xq|BKbAS}@t<v3^gwmID)f0IKlU3XrruzJG_F3yIQ6dmR{ z>ZS)hu7$ia@wJi@_%mmvRpBXty{hN06zuK`dp*Hi%YS(aCz}|b;DojiNw<>`7nHMS z#UAcaFlTf*GIcIHht-^|cUI5yw9t;8<#$_+ZK5&zscp*_oY9{k_qwfP+V=fF!aR7h zO)i#rH~wdMulfApGs#yyYNng~9#6?*dZ*0Att%{*)f}h3d&<d%P_vDXUQL$v%5~s0 zy#H?PB<IcL9N#5-cZ6M)-7K^_i;a0=>zZu}%dEXp-iTZ|SLt?G&q{6Qm4)l><TR?e zO_=L7&v|Qh(<=+<Z$3X}7W23+cv!lwd5Lb3-J+hHQvX7Who(zT^DixMJXE;))2wf& zm>+6}u4K#8km^;P=c1Lr?9z>sO=~1F-kpfs*we&iWb4G~cW#DIcdDH5nn^W^)qVlR zoCO-}P6d@)eg>S>vk%JSRLR!*_WV@Ii@V;T=FxYxt9NKi)?}0fePrNl2v{ZY%(^mU zW$*?D)z3YPZZ?FjUnUt)>+ovVm5e{r^R753-jfmk`lhFm>-&}IZ)954cdsbj$=9dF zzfVwKSMU@=;NkKtfs=E)C*OGJZ#nZ~)b*{;zeE_k-Ly+ICNHn`_TmuUTBq=gBc}?O z16vaXLw5-^=NcVc=_@g*nB$Ao<NSBKBPVZpC>+5S^z3QD>I|tJPaS`BrSA81d^Y!y zie+2q&J3GnF^+tkPu?#|&s|~p_=}qhZ`1P7CGH<~f3;G-cS+`6xl5<zMdyMA+1yI} zS~7tJQfdv46<v6AP4BlBfAQ@r^-DE0`giq;>UQ1;)9_nw>N=a&I;vk`QM(<zRlqxh z*NgW|-mE0ISxQprN7e}UbBJ6pekxnr)Yc?eTX*b-q;IKJL*vpzSMwfZEzS*Y*Ziuy zg(W^`GS{~q{hXV9*YVw0a4|b`%gavgO>2VLbCi68EM->T@?GGxvsoc)$)smHzMC%A zxVG$uj)6e!r5KaIIeD`@l<rKGch~Gqll4huYh=BpbbaS^b3ser?EV$*n?z<k7q)6S zcA2esRo9wL3oJjaU0&+Y?z7wTqOT#J#e~qWa?d>jJ-7Rv*!tGI_p*0{dS1BS>N%G! zZKgy;>&_3+DAb!Q5i09@_m0|@AUy@oR{s^h=NKlJaeSF6xKeu6lvk3;Tb?NA2HJ6{ zepM@G6}OtLz<Y)xlzC;%21Cw;ch_8*dC_+5ic8AdHG9`_82?%+t-&g6Ahl|`M1tnw zN3tTf^gpdjwU#tsyeYsj*U89d?p4cUp-Z?QZ*^Yw^McZig63W7R~ER=5^euB?Lbbd z)enU?PCtX5SGq@pn>K9rds-?k*6%&j!tGS*y_bu&8nA0F>vg;P)Z&_gWgGjHhlS}^ zIO1*pCcNq7XnR%qp*xG`%n56?jWgChd9ZxCx7L<lX(CrG>X#n8z5LE+d;h5yS9oi` zP<XXL=2>m-{ku`u_E;xtZspFcn|Zh9)wd04OnOW7=H6-DF79(?^_`S_j;#k6{O)M- zOnt>K6@5tY>^`=Z)moP_|6N=W>n3hBd&}Gjc?-)eI<&qEDED40yy({4ayj5c;l)*o z=kh+U_~yd!Mp;$Bu=SiU^O3$VAM?!cSi?iAPZ;LtvM%4UT)rbcc}LK}+uH)q2)^u5 zdKkwqC!n{Ax!g_bj_d&+^+(+COB91XJ#UtjTJ)bGdam)iWmB!fx4$g7Dk*DKW1f0T zYn!cGsb6yDp3OIX{WF4HCYbZZ9(%m-AxE}hPfq9Fg%iaZ*4pnXJy<w3!2fRO<Xi8( zmR-s<+Lgj^K4jSpmbpyRt+yx~3^<bUpx0`>7;j+mLEhb4EtkK(@S)qgcjKxR$4r-X zoGbM$$ldbwRAqX}s$NUIn{58srJ*u+nnKlVk50L9>Cr#I8u6XWHDbKi8Zq9Ln({9q zf8`3Z?#{YT;sF+y`}{wwoZq^8#TDMNqrNf1TaACWcFLZ5^q#}ang7|Hb!!=7{&M>6 zUE=n<)O5Gz{>0T2+BQw-O|@5BygYajUv=}Ghucn`<$HJI*vf6wqW1~w9iE_{VE8b4 zT4C$WkG#bdicFsz^I4<hWMbFIPGfZ6^X<8>pwxnJFYCS&rX4T5C$D^Ds@b}P>2Oo; zy8QAfm!5O)(O^k7+BK8^&q0g16^_kc{MQEa?{JV_@G4KK^r_g+B|B2tgHo4#3O`p~ z)V*+*#<CCopIRr(i2HEA^wP@{*6)^0KO%N>tvQc~cf@txPJhwpPY1sAg}z^Ha({7? z$^<jHfECe7hVL4FOukpQ>{av1Jv(H-g-x6MyhScHA<xk_`E6=c)#R^>o;`XJU2}Vi zw70rX#_T4)&i$s_vnOtPVYzn0JCPC(=2I^X+dl8=+HkAgBfNd<y_lrnyn+O~Nuky^ zw6@+*SoEKvO|kD!$JQ%%Z?*r~J;$t7zhHTQtn8-Jr%P{(X8v`0FX49oDZ7j0ZPyCT zh4Yq{A1T{qaOK`&#@=J6bj9Xtope0n-G6D$qYKybbgwe|B;REC##FA&({SXn!tSO; zs*`^yyx`9{UU5n(clS9b#Wj0a;$A1-QDi7J+g|eQ+Op{U{4%b}Wv}Ply{P|kvh`xc z)_qK78}}Y|5S|-w+h4$|Vp)j8#7WId1ia=RDlA*BePhK$-n%AS*aaKJ&+NErt^LZN zO<qdfw(m?*@SM*|>hD$>yf~<$HtAtyS$aadi%Im2oQrl5Qjed9+?)FJ$m!)%FJ`vS z`JVf*=9t;Tne3WJ=N>$F@}cFGIWm0vM8t2a8}B;m@GO&IK~yaBDIrg0_Lk57Td%YF zSYEHsn(pjyQ)+ol^#Yj#*Wa>+ta#;i@nvxj<5TCEhO2TKGyYCK9q~Kn{Y?`SsdbgN z6Q7zGF6*{8dU@$*yVDo%#&?Go3dy(qjn-={T#-~Tzf$*Z*)wAe3p+j6bu&J!`hM=f z+=+Vpy7oaC%c7M_?>3lQFLJXfnx*sp&SFcg{|qacK6l;}mte?fEN*`O%B4Gx>#@SA z8gmI>UZZlyvnsvU6SlnBwP?13#`LY*c>OgPZo6IROfV{KxykalBtAkwK*?~UA0KZ{ zj&N07U!vvHPX{-dS!qSD>wdO-TdjwfboqyU$?Qh6FMoL_?2)tOMZog>;?n4Yf2T%; z8vlE}$>S>H$Mhw4o5a}WRCT=-w|HU7_5HNt)x{;(E{Sa@XwTFO`?BE8`gtD`7TwzX zNaXmPMV}aS?uj+<r$qZa(Vq25{nXoS!mFY{s{tN{h{}AFYPx!5@0YuFtNlW+>{EMR z;H2C3`_%N^_J@uJl=f(>4(z?99`fw$Tlr0Gxoe7+zMs$QtiK`0sdkgcb5B2Bfxqf4 z+JY08GjjE>_|H%)?7t%O&2qtqC9f|PN?Y#m*)+xeerRn1The{4XPdVf3e5O!afh!x zRX5Kv^ZJxK6ZjUqne{7F#wwj9Z{4cnLVio0mI<kRckFNxyDPP0{!IZBMMjH!?WH-> z3qmf>c5Hey_xEBJ@7P7!Tce+foAy@Rjrf(i<L#D(JS*ouSdp?vw)0SS*0*#%&fY}+ z1fxfy0UsQ%8gE*d`88B#!Lj>#cjhS6`bjx4P0z5nYPnU4*ZE~})6NAaq?SwP>s?^j zb;NW#PXiZ&*|T#BuSC7pq|}%-_<1e+m1AJ=aE<zv74Hsz$(xt8CDSstJXHL0>BbXJ zEhiVMu}Hdv=eL=pa_txOZ8)-l)o=cht0uZfdO5y@*oi-U!EQ9WdeuA8FA*2`-i2t+ zntL{H^^TcgSJvg0FY|h3AJ|_KE1-9^Y|AXG<Nrd<e|b#X%^~jd*CJkR&Xzf+bZ7r) zdA9!on^&qrjKYymy9(qlUuoX7C-MG7xz(E=dK$l(8=jWY`unN4;igYFnEzhnJN*2c zZ-$C_Qec;n+sn%gt)W|&+%mstF=uy%#_3s{zgMU6znMG1Ay)lyYa&P4iGPA(uUEY_ zVm!5TMyBBusauohm`{1PWLC3NAdjI{qQKkoPmRkCOFu5LH``F=q_y{cj<WCPcN-R- z<IB96Qoj9rc(7UL`PS6AZt^QK+7pj;lxFU+WVeVAJ$T9EdPuZVvS0AR#Y(o5<K7$- zZWNoM6*!5r^~z;|REt@QEtECy8p)mGD)|*ME$-l&tlb>d>c%UAq-5?+&tKBnl6UO! zDFZgA<Q(}s`%-vTCMw7-6%2l4cTfEED$b|B6<GJhTusd?-+D*1zkU8&wUBN7{)X=Y z^hA{_vhLZmq;0ShvDtdoalJ~P%z8b;cT0B{Z<5HFs~V?r?8vL$D+i?umToEU2zZrr zK;_t~OFSP$7b)a&Ncp_|wBYrwQlpn;o6LO+6B%Y)j45F^+BM~t=>-;<YlpL{npT$S z#m!*R=g6LNvVqelW9yYK5?Ae(`!0QJF=1x5WAT2?i`=Vs_TN$8ICb6mUDIy7<2mSf zKG!BocKuDU8cmg6sV7+$5f5KyxX7%zqZ<55Ja);4j^gLLgRaOro>h1?C(i8fw%GXg zjEToi9hX>k`OU80>gbBYc@ENALe>o&w|tcxuDe)$Ei&XiC9<-6{)!5L;2F0{ZY1kj zFE5RX`Ok1hrq#c@xV!$xE#WmR2D$$krkpC7mAH`ObhuAS@v0YBR;kD)DH_dGe7H|U z?7(#?^->T0Igy*@cPx42_&C1gA)n5UsE%9*My<J77Iu@^o;tGdpIIG}UcGip{ZqF4 zEHewrUY&0*^9yOWJb3%V+zg9@Q>0jS%voTgKP6>Viy7Cp6+0K}`4z|HY96`zmut(@ z&E_lxj1`BQs^7oMJbNncOkHTH*ulHOD%KII+;^-t-U?y&ZeJz9_*q(8c7@ip$(R2u z^*nx)$8^D~wOe*KA1ZyTE4=TOl>c3;<NmCY6F0V8-@f~h>Y9UpC;Ml67s@QGJh$@j ze}>*0c232nX-CU;1(se`6)yc9)oA4Nls))s#?mLrse&CBnU4M2y*kJ2hcDa116-fI zwC1qA3Ei4`+sYziZpIn)kcw%GG^L}AnL|a-*cn@|YW<nL<-@{b3_-CHhq}_O8N_{m zD4MTUIr6yVap2}1MjNx)w=65U<GnbMLp<2lvE#01MW<gvipgJ()29!&MHO-#+r9g) z$qvc;oZExH{CjP3(CJt4hGQM}i*EasURm#P>~P4fzRNx$vQAqU?ow+vovL^BxKRIT z^WL_unH_a=SFY7%*zw9sH#xWG^{UKWObS8yLZaK+Wka_$M1MK-sy0UHIiv7x8FllQ zGaY2vIv2bMcKGIEc$V#M?1EUU_pER1)-IlsxAKP3yi=QBsW5JO(`J5dscGMWlLe=@ zYcKTJHrLXqoJ0D&?@vBSRwI7jU$LhInCIL*r20nj4om8;Ppx4)KDp#AxvVpJ^@dek zZS!Wf$Z3Tz-FHkAkxJp3#k{CM<N$+%;Hqs)w?zMEc(SeT#Gl)zOKqk+4A`-Go|u-& zyGPNS=a!v&tFk;sOMG(Ens={wzqzhClxrm8DSPeROucM{l)PD|<atsLRrP6QwatH< z`S)U}dFpXhZpZ0KBEH*YZ5BQH;AqU}CpCHIL+gN;InFAvlbj^@Oicn8@7FqLaYa2$ z==p>M*{N0~hx2UD{%0r+JSRMtYlYU8t<%#_9ZPoko);i^@2$g4sosWn!n4l$tqW~G z5^V0kt32i0gg3WO<*wb?FJ6|y&(YPBnRrFr+Q5hHhtsuoIf0%X4_e-Jd%LV$^T_Yi zgB<%)O}0@JH@%aPp1P%Xddb$^+H>s`7GAKtBU-<9_g0JPV)lXm8MYMN_^^Hv_uPk( zku840huOGG9oi>dJhl1Li>*yFx6BBYcsOx~zp~;^gT=ie!E>_KiiA04pGtMO9%ah) zZ5Q+ICcW&u-oU+!9{1?a;%2+lteI4NcU86bi6W6(F&Cwr+9nIG@a0RM#eZed;fy15 zl$;N)xOd?~u<LZm16<dvm%V)`z+TKSKZRw-me*ycmY!j{D{ZM^`|Z1|Kz3Eh4ED_6 zyYjP2{KUV>Fm7VKc1rfvqwsQ#_`p36J?gl!@5lzue$ybjtDJLF(VFDEy4Aav9p2ov z<n#^ao@S#}rJ64f98udOb@Qp%_3V~BuQsDg1~>kNKW7fl+80><pCNdW*xqAHZye&S z_Gz3fp>gYQ;D*$-mYi$XDK9g4asK|Hw<^029`MbMimCNHug+>FICp~8a;wEDGMpTf z4jwsnB4lBkf1$N{XzKc9KKIIeO<n~UC`>k}PyHLEQ@WXDhTGCN?HN&C3HD(|;>E9~ z^Lk{oeEYs5TUnraWsTtqHx+A_Q}GX11{EG(tbAtimEyH?(nF*@m}g9y@4fQs>Ye^` zcJ!FMnIEuQmz~u-_@`6x-Ke*7e?~vhepJCPz38!0Y1ocev$8^S?@te{<W;)KXuc%o zm|LPX%kK{hwo4~k&l6pL!Ms<XLh;7w@W2I}$2KySW}Zy-l{1?4;QXBDPu#k^*L+xC zxoc*Q*rz$qlI}fn(p`0Z$KFkT4VA7v4K*y+&H3j&`PR(3dvRTA@XtV*SBo6gxi`#^ zJ-Ib5vB%)O#*P%30}sn)ehPLJm%Zf|SgL;hn^&%RGfVm*vBNW$3E#F|ymRxWN+lfw zuSCALy!JKg=DJ*9dwKEp8MWAc&Fd+-Q_Z_ev^UINY#Fxeb>D|YFPYt0jtkkGYqh)* z<LxoyVacob;tdA#uFsFkvA$cg?&2vn+4{L$vkMOdm;CU_%yH*R>2O*+PsT6NdIh^r zd2(qSfA$flW%4h}{-}SMr`{Kk7xn(TV@pZx&sg&bHS4EbP!4@nB0Iry?=9BaAa}OF zNzdOahs5V`dosLg58p1y_3Y}7!d;9#V)H^5<!0VAJyU*G?}W08%YTM4;W^L5g%?P# z?2bOpakB8!zS+U$%Qv!fuQoTy)i8@;XDqwraHC`D{SR+*GPC$}Yj>Nwn(hlVTsejP z&=#Azq!6plN=cWi@0MHS9gLCApR~3ti<htS>%8wV{EL)?<E~pxp1sY(wg19HtF2}` z&OJG!HaoU>i;Ct7#Sck$Wm_HM11C?;IDXgv@Fh|GGs0pm_cqQs;J@v-<()UP|H%kF zT*F$cpsQ>YkbFSTy5+W~(d(j;u&swR*H#;ub9|Hb%Ad@2>#AW*nc|IX{&%G-56v;1 zKXGaNN0p9WeZg75LY$2m^LJ&-1~%C9%?-{7EMZF!oI0a;=6=m{brEc{oT}Rkij!1r zOnWx&QQLbV*`ww9-iZ=d?G~$;d-N#lDIPWwSf+Ypx1HGbE&Ma3ys~F-EPMOV{jlRw zOTk6mTW)eqJ8SrAimU{O)#~ouTRzP$*m%J8@^8Hb#WQN2+OPDn-8gxPf<)q~*viaP zwqZ|?|LVPcS8V$0h0@Es^_IPS8|b&#S1h69BCon<-op_6vL7FM&E2>Zw@sVkv1Q}o zuaO5bPWDcItKh#-Aa;f0dGosx56xEwd{1LL^{BdBIknn)Mu~rRapjzjR>@DnnS2-C zh1cq>=D%`z!mR6tn>T8`p7XqbO?b|?Z}oX6m>z$-vVc|LntTAes@;uT1#5Ti-F~_L zPvoy!Fe+#GCI6ke)}^^1_Q`SX&5sOfQZ%xA@1M%NHt}y@wV}LMCeOxO4=s4!aXQ{O zx58|8`->$Tw%*yYLUJzGtR7R@HLOb4(l0gF@>x!~VJ^=#_j3M!hF80;+__kBLd)9Q z|J&-X>Jm3iwjTJcUdlIT*`I?(y&JAP_+kFa@1Xgn7k4!6rZ9Wt?rwQeQIfZQW^bZg z%ce>$8EK7QGP)Nn&t>j!QDO5FFiUuU$ZVq2-zn3M)rWfg%Czu^eK*ZwIafhuZ;07E zn`H*RcM7_7`M&wt9{I53<>3i-^HZ~Z+$O9!z+BL)<?~LBL-Wh4_~N=Pk0Wd*u9+Kh zH*{_1b#8I7Pr(^&?ZMAmeZSoCf9Ce;-P{7f<(J=NyX@f&^;^J~A-nD=*ESQLx>ff( zE<ERYXeZ38saJTuB`YZV2IITAOxce5_A}XKRh$}obVDzw&v0mK%DeJrSFN|4t-_0^ zdK09|{LIAr^+I;(@k(z{zoxrP+VEVk)@89hYS;L9*MD_m430gzWzKC6$NBtv|DLNe z9rSpt(at@qSdl5_xrf@tPVQ&sPwPBSt;xKkd+zm$ch_^Rmt9F=_b)D$^h-Y+vVT{i z_`KskgUc(v#@M&A>#C<*YZjicj_L85wK6`<6Bq5g>OJGGAs2^H@txTh^PCuV^qzUM zFXMRcRfCJ4j=z~*ynertN$4Gig2IM<(@mbR&G!s)t5Nta_Q1nn(Gtl!N{8>xof>x8 za+OjA_tM3)R1}^+yYn-4!RFt=agUReL**UvZm)8XYA9O6QZaGrB>wv@TILDM7ONlj z+PYu+XwKbViuND5a(TZt*th;?(9^Ow=e<R9XR5jzlOEsKqB)Q5-L<`*{_+sxW|pTy zH&xy&Qa$SZ$YyGj-amoTzk5WpGaK%oS=pU;syMRkoIBSe?}^!0L@U_tF&XA8R^9oq zY}eyM<zZ561)=8(@_$Xt{>1Rm+IF`{>hwc=OK#W&6yLCI5@y!c-75F~%EH^<r#M&l zz1+T`T*Rj%Z{nei+ZrvWyv(@Fks@TTck)OCqf1C;wuJg!-ynsTT*iW{rcE|pRPFOg z)O^~GE7$lrtY)7zDsx<?yFI$oZ(-<9%jF$St#76?PvTm1+o5p^=WIX2Qw2+J+lPJV z*0wx5-_ut&dC9M-fiH7hcD(48on|gH|Df1!jb-;1J}*r?{8eDFZo!r1n-;Gt_L1Hm zc7yfsrO-8LGh*+qbA7wwL5<F)S1rGeonYV7RPLLZJl}WHhx=!O-H(`TT_=1<c;S%` z9Xfmu7JS?Gz~s=pUpeI~v|JoEd-y7U_cb!==i*xS{-5FMN{0)%8|PiUuz7jl@@)(6 z)}Lwc_Hh#Vt805?dHKdSHbv`q#hWd+yFcB+M&vTH=EAvG-Iint6lP9bd%|vZV|M$O zZvhvl$!_J6;8aQHdcFCOSU1C!Wrmxc3r;H0Ja~LZic{BQsn}D6xi&j~Ewx<V^OQMo zS7C#Q?K8IU#I1|xUKG`3J-kI-s>Nb^XmQMqdBOY5o<>i)=k@iD+de^NhKyO4-ef%z z39!8*ntk-ExwNv!VTlr6uI=Ccy@<Ka6zqM@!ENcXi&H)RSP1S~8FtCx3U8WlYfO+; z?4}GgUmJgot&PW9qWEThb7=Q7)?kum<T#S6dHCVUjPydQb=Ml?S0378bI-KJAa<E> z^RC>b2W!;+Gj#swuC9&}KlPras;PwMO+&S#VyuAKsob|lb8j$8iKK7ITX=rjYv~EI zB4owY4;Nd%+rrCmM3m=k)%%8z8)HB4yy(xny<$rgi?+k$W3MhL-xasqrTyu;OTw!; z1~moqIJUTnG~V8$y{@?Jrt4Itx0C1a-fX=Suz}&y+_XK)b6B3)?`T@McH{gY20M?d z&Iug9m+!rCW5tS>S!xC*K6?&4jSYC9Rho43CcEjaobEin#*(~E2c&;`I$x;ZJWw`0 z%`$A>-HFL9JD2BP*fn<n2UEcAt%p7D#>IBrbUAinYhS_KiTdvhzbve^N<A#QLv!7# zT&vEjahfyknY&)O<;>?iacSg|9ktF}&-Ts8`Ool)*U8jQiu*r<&g(b5R`YrN?#di8 z{<W(Ahx+vM>n3ky3^uu;we=F~e+I8ae#Vt&mq(m<*A%eqm(yH}b4Fe(r0mjOO<d&q zJRopoIOCd|<wlQq_<|#s37@>$yw&4!spgiGXY%HUFG*3lB&{pXc4+lS*1t>cW=~)% z$~(_-V3&Wc{dearrl0RhuhwXf`S`-^!MoWk4w9;7iw%Q$8=o@i6`M>AioLwp_adKf zHM92RzURDC-z;N}U7=VrLEmc4wnvv2SS|AAsmgV{nz>=S-^B@YJS3%fC%o*tWWeE{ zU0CpCD)0TI#_d+iw%mER>wv|(dBVNUe2V4Mqb(h_UJ`wqT@`<5U*GbnJ_6VF7u^-l zzMT=T`{1YRxwd^KPi3MUFN(eKTe)`G@3}j}?y_*_Ic~pm^N46RkNA&^IWeZ1?-+W| zPl+hFyq~MLm#>&p$^5(H)tC#9Uwvw>yr6E7Wvb2YdoeSio%fIwTY-4C!Q0{~uVpV6 z{5fcHJv+Jfpii!nKJPYV*H;<!-`1F2a0_#>Ntn2c?Irg!o*#jw*WMn|Yip`-JmN8T zqS8X<K7r!Wd**>^{%_{U6q##p@%(c*<bvLTcMj8=_>AUMZQK6SZ_5i6xxgF_$w}+> znC^Ca#nv&Cuk48WS06bM?)7#dCOlJ1UbnKG4mgqFc<tW7cBb75t?lU^u0456Jtf)1 z<oRq?cOL)tqFdpq?fRYTE{Il$_uq{>_V`uiP47<(7tI!anZH!{^2EKTeodM6phSvk zUgn1FCr@xa_-WOnx%k$zIrBn$ldIYzgtHU`uUt6)Tis|KyVUxL$_K;tw7ybKayz-@ zS)SwaOXd=;XZb%p+MAcX=UHgpg3N*jVaZ8;3uB%$2EVjAw8!KMySu$-tXaw1yM1TY zEp42-{nV@A<abYa)Z5IiTa+7`O|2>}JDeK$pMmGSQn1yNul8m;o!5NZG3VBqDcK?V z%gWeY!`|Icc=E6;s4)AS?4|<so9S=5<bt{RO2UGTVsEp%#6;++2hGxQby%+3*vR2? zOjm2|+nrO{U##p3U^MH`3w|-Xs`Z#?uj1R~Q!g&Eo_DixQ?1bj&+F2kR(=!;$hEFH z^(yinkJZz;Y%7l*XTQW`HiJ3kR`Sm0Q)FxvjtDOdIqL9jPoDVcnu&dHL%5q8e5W<> zc|H|*IPJw=2e-mq)pH&^dCM)c+dU`I_1fu@)}Xm%?P9;Y&Kg|HO`NJ*pnKQ(j!VXa zb^C49+g`5G%<(ws`%Z1~R?Y)H%pFmw><laqez+XGmYTYW^I<vndMUro=MQg4{qS8K zGJDn?=2N-?x3>oTXYk<I_9sZ=e8JqnE$5#Gd76LfC^XyuCFqXDw+22%&rFUjp666; z*Rw>0nupAk=y1JqX7bFyTQ)Cd>t)VOtXcNeGQ*#B=BL&h$}JC`-!h$Yt#OJBe|yfB zCced`ezsySoCM8&#Cjz$9xn_GzbL<I6K6`!x*vrK{VTLp7q2kOd%0CbdTZk%<5w)_ zH_6^UR}r<sa=Fwy5wZ5ZKn1JoJj?Ft=bXQ3wp7UecgEc6#C6664)b0IY&kr8Q^N}m zoBix{!u%gv#G_Aj{XMJ9F{@OT&(HRI4|mhsclmmL6D21w`Y<!hX}R$05Pu7=)wG?9 zJ+68d-;(`lFyn5@`&IoNHEca5EZ+XU^Gq#cFQ>ffUKu<q#luQ_YmYz2ruhqZotmku zE_kZ_0-x@IBZ{A;ZtbyHkXd`MEMVuCD!(h~A<t~D8@$Xrz3Nlc;{#XOH}U)p)|m8f z@!dm$rB-t$bmm6ouPMv_z1XMfj<K}TwLLqSJFf}9vZ>kr%<Glow1j2TuWr3RJ@w+s zwv-L)F0yheYfGobl=x;l6#MzN{MwlCt7cWXREvzwoJH5SMGIY)P!y9fDz#R~&t56a zaDFLYXM;gew=<*IEhpK4lAQ<5mg;w8yM3A;HYIy~tKZVJ3G&BIu9aw<lErp9T3A|b z?=2Z7MavDp`m8f%XkRKQ`L<@4-?oWDGyXGtSo9(BoSuc>O4oyD>kbvH+F`MCk#2Y+ zd!-=f)-22Q>daF=OW)#OY5TT}qqWVuPuSJ%hR2<(&8(9rn8v>4?G@BzJ>1#hpB+2- zrQgbsJI^0o+_bAv&qj6v-&O8XEsm3}YiCRUo;3Rvd&#HU|6X{0^QoL1R1z3?;d-j! zmfvpek|FQDY@d4PCa;m`d&4>Y+O?&M23sE9nsQ6^(pi~zq0TNxZI$~qdsBWbi=L8` zSYT;!(PW49((OjOrF?DuTO1}m<?TPidDn8Qr0|ZbmfI(pPG}VOR}{OlbmH&Thhr2H z*|R<#TUDnt@rg!uoI2-*7~?6?)hWxkH}9&LcRjBxEVAROfb6>CsVn=0qe^eamTuhi z+?aFP!?Pz8%{<;-wR*Aj&hlx^33tsVvb~(MatEUUQ*z8@l~qS3A9m5uQ*FpRHL>xj zu^Qh#!HI95S}o~rvxxnBxWrz2o95fAb3~i_M7MWZsWIJtFoV@5lqKX^rEelbh?ML^ zzS_sfPI=#QxUuloXLf<+xdjR@=DW>(x5CWl<=xr~MZNC(Y$wl%=KXUtgr}f-YoBn$ z?~RW{H|mzHFg+u{H+$LsHP?3h<vZw`oAltl|E|6F#SYw)_E~=AKZB6A!}$~i&F&Xg zeop$unwOXHl;_QN=TDHZdwJK~qM;-+Hr?=G!;vYkdJ?Z)deCZhbgO!V>zZXMFPdMU zc62+n;o2PLT`OdsTlQHt?^1tZC34F@qc*@g@1f`^xd3)v?dNgVwqMeG*L~wUSMGC_ zWgFPJ>H{9y%|1A-GxMJ4(+PL~teP&Q$&<b6XVN#}S9g>ixy@em+~n4~3%mV`fBGtU zr|-}(xKUQ=VtQ@Mi`ZQ{$sZTbS!H<XnK_TTXSg@FIeUGI%)9G?w+}eYKVrJ{zzOTs z5e7czxtBe=@t@&8gM#Llg>O?{H73t^#;D@ALMqsYSKUSPisH3?FSf}Y`7#Qxm+*Ro z{8O8}uDDSC-Mp-Ahu19IdPw@*xo_@&Y>(Cdb2|B6euH1amUoU<t+yPScFuH)^}@@) zmdExyG%-lgTd>UIs<?22%EA~oo`;5K8)Sd0?Mg9m^er`t5~-TCuw7=-mOXxo!u-7^ zp^PaKzoxohZu)ELm;P+#gjHg@J{&ZAF~?DN$;Xx#D|qIlYiwJncRS?!*1KB1c8ls$ zbf<54XXbd7?bm|zcr8tvVCL%@yC3#v81fzZ&oG1at(9A@=CyeX3JwOcT=^7yW`gih z&+~6~7tJke{^na6)mMD3A!Aow=^mx)6Ou!3Syw*f$h^!arQq><^(J=>u9Ra>>jN5s za}|#l^-Nah2vK@uB(tkWDgBi%%l%^}5i0XfZSZioRQmjf+vi`(9%tTK2HzECnXvnu z9~W=-22rco8H*V$4lu|lT@Eq%5S-t`s?S?2yW^&iUPEWXRrU~pdt7>Ys*59ny<_$6 zikIqcKewXc@uAF%_fM%V?A_ga#dDYFj_jXNW*?NEa58?4F_mWZ-4c0q9m|Bjdsyt$ zA8z7{JDzpr*OoKQ8@MJeEtY!YWM01M-h<$*fc!*(hr0u(dv<2V#;<wJYP#mnr3b6x z7380qgjCP@`Q=0Ju56=~v-;b;m{wM%FF6qSVQShO4|T3i<}FF@LRxft72S5L{bzV+ zzv6MWo6S_GsX|i8JJdq--xb(BWa8b}8L#-nU{}objK+kvUoP)FuUgIiWbffyc%kK1 zJ)hdVR}(GwJg5j=6?}9_-pYMNk0;Ia5l;C#)ieD+LvH`3<e0Zl4IE5nstVmu-8aca z*YRRl+7h`$w(ALe6Eiut@LDY6ms%%P&MNIG&BC$8+NWUljPy-M4V$N=Zrk#*^;*U& zgGZNk_5LWlaE+hCw0W7F>V{pZ5Bnu9a(AfNcA4Dc%-70vTvi%8BP-S8-LC7)uP{u@ zTX<bie$}>Vv;H%@6nkRwX5R5yE6tLkPAQS-pHr>b_pF~)b}{PPx3^Os++Qu}yGd7C z>ERs{UCnDd*YLHJGnb^>sE1^4@nQ1(en@fe+J`2Wi)Wm@mT9(zKTt}0mM))BqV@K; z@MMn)*L9O-MbB`$xXe3vk#*nf)v~(svqaZ2{Abwp{(i#R%)>ixmaLtAiYH|Q|6M+R zR>91EE6rt}PD<u$z3P9P#g{Qts&{g$f20J5<9oTq8eEs2vuIA6X7QMjQ`~sUb+(Cf zgJ;}mPuSfWHreClv4sX(_Zy_&4O;7R)39G_bGD6bkD*-Xxs~h@cZIYn4LU^bMXw9s zPu`<$`ZH7b&8(M<i>KaScGR>l?K1Dftml{P|1)$gb5^+f(nf9XyB)nY+S0mZ=ch#8 zu6XQPnw1bfqj!$@8L=z3PYH*xzhq^z{Up7hH@rG=->FMCr7iMiRXbW(hTAQhr)s{q zY(mT%(QIvRj;4p3Dslwu7XDdvX0?mi;v$cK!M*19ea~Jq*fnMAouU<8A_vawTw!@; z$HZyNEqh;H&f?3S>sN8t^3nCJCw49F|K(L1W~RA;M{lvqu0rWWhu*xXy_^+uIx2yM z(V>k)a?0&TFXpE>SEsn|$~EhI{wkn0>9|>SuBBg!V43YyG0Q`-)7?%k*&uLNx%5g} z%$?uLL28c|Tr}PG&E&(b)~B00e3$)acxk#RrtDkjEv-nmHzrf^j9ro}gB~#2<Osir zdF;BJ;aza@%QJ2#|Eh6*5=hP5x-2G@ee1T3_ZoQAzs^xBy=!9GdT?D&XN$*j^+S5q z3qI_&mbjblqEmZzrs@js2cKq09r*UX=;G4(Qx;z46InY)K_>23wE2`QqZvGDpQnC0 zu$yJa!kGnMQ%%=xnV!E%R&d?oR1=p^Ozg|vy%FU6S<EO9^{{9463^RHS2xaNjklb$ z?k<PR{x|BWg@#scryRb;ept42;l@q6IWvW|w+C*#%M@Lrp(km4r!hI=U3!Z3!gh(f zW&9oiEEZE_BYrC62uzVU%NKt7_n~(e-h{5L(3AQgBAxfNoO_8<<`%|><<eravL5Y= zv|FP$n{k`1$LS?&3^;wuS~}j|jO2MD6ez}jHCiI_c1xL!a*0sQ>b17}gUt4Mo-eA* zPrS?3+Oyivy6shDaiK(5a}HmyhyICEm48+>Zr^q{u#hi9U5{O8?j_!0zjc`>17*!J zr%rC`h+8Rj$I}0W#m+;D5g$@-PjTav>J^rF6aVs5_TdH#sf-zMjyVT=uTFV+pZy(E z>N1Bz`acQ_`#t=(KQ#{bTVb}?P)H`ERBhqm6oni<o0TUE3|yA)d~;BWHJ9y~no;*m z-z7ZdqNbYW_nubIa=6Z*|FbITt!#_;J{iMX0=-&!tK^~&{1pwmTs^bEcB|&2(5QN0 zui3FbZ?585!tC>?oO_uvqt%j(n_FsKV^wE8z8SRUZpt=4lW?2Uot=IrhrMN6zB}x^ zWzrHGFO+A~ns(%FhVx9Pl90Q?y%)BXUiB=I<LjL8Q+XF#c+k?;j}3E!#SAa>y6-ts zxAI(G>=IG0<Lz5!7S}Ag9xS`qssGa4>fJm1mIrSUPd~I_kL}@>s@R}U3jJKKrkt02 zYX3|!<2YA#m04eaQeIiYluR-9Y4h%0jw-#zHGP-u_Ru-M7Bwut{jTSVsg~P`;Ozao z_*UHZnf>qNm9>Ax*M)3o@{yRDJpWBc3e%lQOD4|e+;&)n-Ai}dqgYi=zUj~I2~?Dy zys<1+xAn7@;1Su0EYsz<YTf&;Rn=beKl3ZN`Np%;J1z<qOb|%k$YFX&D(RB&{Fxc8 zsn<Sr7o@z~(Ni!>;)T`&-@^@!TRzRbdq=oLATKt`$??FcpL4I;w^XgGm~y%ISs067 z_?PoH`L^s@eu3@Yi#=8k|E`ibT(;0;KQFV!#sy~fCD-@vy~we#aaY~a;KH=7XTPq# zxBb03>dta;ncR2H1s-?Ss;pnapAvB~;a_md!Mmro_)pDsn>X{r?29Y&e{G4?T4Xk% zBh_=|0pHhKwwY+ID^3+VV^**>VWQPsr)<aB^`(JZ(|7N>ylB>y=5=3gH3}A3DVbR> zH+<l?(0&nfR*vw>KN)&@Cs<1}u1s7!>+RH|*9#v?&3?h$$HiN5@|uZ%PT7BkU8Rww zVds~h>Plbsowr`A)aheT$%J)!+Y@(c2)%hB_&|2@Z{zct>k_x#a#Gkc-Tc!-=A1&+ z_<$|#RS_-=?oB98SF}9XG&ksG^R6Aq9Zs8HZEW1NJE%2k>#ogh9g5L@%l+$Tod2U9 z{3E@yKkRAEXN98qZYy*}4X*Pzz1KB0l94{N`on&K-x;nCKU%uBu$xtT)$Fk{$<h;D zRLUw?)2_h~ztfpbbPda`)^Ck}Pi*aD+$XH%V(j5p?7^OLoO4Itn};Pjd$;?Eusu%@ zNOtJgJi4Hv!q-%G9ZS~knDo!uYTDbcY98LO<N3<}3`^vqZ!V~abv~vX;VbgQyj_Fu zT#J**Su=|*=R(adXGfQ>UF-U`C)0XWsFlOk$7<zHr=Qen-M)3W<d)Oc56?acto-nG zw!+JWuKNW(D;(N*w)5hp#o@w2tzkksmQy#VWR!>J8H5^Fr!<+~tT|Ry*t5WyeLsiY zGQUQFZ_M5ebG?>o%6qb>oGf3GF!zdSLwj$yXJ3C^z^h<BzKP{rJ4;S<Op&>Gx$KqP zrRO<Mq**Ld3c`<=?kJfgAa+9St%=JP0j8hRolabho?j4PE;e6PC^z?h(3|Z-EH61O z?>ffuF7HLOzWt(ESE`eY#7l0yQIc+J<UGsAvvTW;JMSI^+GHPeJ*#kH&T{sLvnGV@ zb=!I`c;%IM!a`hnX?ahjlW&%rMW5=J8OeM%`+M9HDaFO73i1*TWyjpKT3qxpt6AYV zU%0r{@eEU6vn|I|T8ksp(!BEeIP9v~_AF;8Dq{30nRZ30<B)!$-3cazce1<qikYJ< z!r3ztEf1XbztrlM()e<&sQLCQ{IBNw?RLp|yvg8OMcgtWzQ&UW44#~b4L|z$if97s zk!_BjX35k{)4sj%h(h$V7tPIi33mg{jEsC%-;kc`To%r#UiN8Sn$%<EgAYqh`NTyl zzHCu?b+&l_PSZDQSdW|Y3d>(fbvSHnXeYeVa@xNjCXwjSclO~aE7nQexpUk+G-#^1 z!1s4<`-HO?(k6egZaL2MEU5BbYfOws3EQax*0aSe;<A^cN}QjuiAge-+-Cm0d6D3E zH=dw7tG&BlW!pFM7H(Ns781)*y17;NrsTmZ3h&n!u6mUn@H1B7bzaGfIk!`Iom6LJ zUfuu0w^~-mV#{*V{|vLQG??nyeCk+n;ilCBwu*-l$4)<1-1U2Lu5+<e(&Lprrl;MH zm`-rGYO!(Yxko0SR!%o@_$R9N-rvbs^V(#;I|^*+ueClEEj`edH|t>{pOMGii2EK_ zrj~k5;9q>#ZZ>y=bn~jp(t9(6PnoR$x!mFHDF$}-EuQSBwjOCHDbmY)D{RrBA#QTO zJ}7x@dq!gV*29<nPE{;ep1sVSt2uX8<E>>+xOSiPF|A)N(Cuh8-{(VftlxF>t8doK z*~xTmw%f~dOAVryzEe2%^5F$`o7FvS%%{|^T-Y_`cezrSb%h^O_YH=L#ib70mbUIz zzr1DVtw!$ULJwEH3X?6nExRzJ^wHfzZ<t;e1-$m2y)ry_3AZ_Wz}kda@pl>$i`f}X z*E21ZxL(k>z*>o`dXc;qx3{~7!^Bg24@uOAs4++@NjzS~Anm{D7>@$qp_E15v5!QK zFHezjv6$lR!7Fj>m4bj-tMKKuUz!(ntyQ=?ZN<CuoaeSZE_)Fw%Bp$9;-NFIxmB%i zcxlT^u9+*mZ|7^Uo!-vgs;3}pd*%G5o9j9`7cH@HD&#R=9`h{rP!HSAeM=ddpQugx zbi7{U@-EL4t+!q%yjXZ;-Z!u6#4FDy?y`NlUFJW-OYT^a$9Ij^BxFnLSQ*UCcqjPX zaq`R)4}*;-DxUQdZ9FjB?c|l4Ucdal`t5rW^25RX@SGc>PFYtLW-HBRdukGv@Txb4 zZS^n4)*pL#mPK566+LldNb}Q8<^D@zi|@`g(LA@}@e#&d%e@xw_RIgXV#6QTXNBdQ z&nDk`WH#m6pXjyku9oczUKk%R<6>#7$Cj5R%Vh&}?>cV^>HX%QoTnTa6~p%OiM8>f zx4H9YYw`Th+{(E_kj>QDLTmQQofnS#nfaxZN(RL~U3I;=m*b|uje>h+TsL=3?)%lM zBYU`T*DIsN5q?ojv*xb5`8YN57$eWuA0hMPYtC$Vvus9Nt4?-z--k8z3-7$y9aFd~ z)r{@CeArpX{nD{lJ;kGa9DIMgZz<k?`053Vj2Q=CWyH$O^?YV9EBV#KjHtJJC!~g3 zOt|6raMOVj-cYSAaxW(IK52L1uvR<Wxn1(E&!2-UZfG-zYEG1K$~e0Au8qyk%L{w7 zGX<qrq+haoXyyC;O>nRMs|=~HxkYMb(FfaBsy!(A=HTYfxyC$d)~Q1kHj5|E3s3R5 z(-L>;+$X-5hh{fN`Aj~P&AWfv=asHK7jNxuy}I-KCTW&K$$hc;H<n#ZPmm}zUKyE} z-umg5-gVAqHuHy(3z&n}t`4z!JA0AAL6(DotOp8O4jdEa-5$GYnn$=n?3AkB%Ow{I z->qFe!(X_m;6DS0<(4BoGOJo{<w>;o2VG}-G3S;a+e+=_v%i08{dC>b^s9`Tf?Rkp z^HVEF!5O{b^+$HDyY71XRoS0Kzuub4m?izpEtng!S-59K=FjEde3VjyB?U}B?|S>T z?vK;91a+R$m|Bmr-7%-KGlNuQ9o_nmu<g8TaMvkOH#5K2iJ_`8c5Cl#k=WRujx7&T zM1A}DR|meGaY>+!-MDPgt3tmL-<4kTcIt6`JE`Jnt+jNSmfV9mn!BH!uisSawMOV{ zqUGAcW!HYCUkbUrf@98>1yPrBe`{|QERk6@`)lqx;r$vR`if`S9t3PWlqOqL9V6#p zt$g9ftl9wkMQH)qvp+i=pRmjShttVlcP$*(uVCGAZUvkDJMrx9)Ue#3Q(NRWWh{No zCnUbXSz1xeXpOq--3E)GkDC4IchqIio$Sk)DcS1t+*(~KuYjGy^nm@jhs>{bWGr(o zK2;yYeY?M)*U;ec)VumD2^qZ?g;zc`Yi5)1ziH-u>qD_J_vW3u=BHlCVf)a%(&VQf z<HIF6t<$9Dy(nF=_3Yn?75TpNrzr+4{umM)x47tp!EBF>Q|v@IHy>i%^zw@Qw}8tx z-Y!=Z4n2CLtd)^5CFD|S%x8n<8y9M{TMbUvhcKq@IoEmR&YL404ztpIe)?9_pRSmr ze&ciD5$lxNyx$8i)q3w&JN|BVP<O1`Vi%zmR-BBxR;^p($@}F)@M{UBr@>--IzG(c z>=X!Gn9Y5A_VjOlyII?r*}q1WEer^eHSSSjnC9n{up<4{H)m7bE4%YkXC<Dw^I}cq zyO7_%5AD5ltv9ONX{lzK{XdqtcgLG2%sG{I<FD6rf!M=M*>fI6c$plTP%h!R&h|kz z=MqmowHk$pG*b@2;)qfg|IFAk9ZzpMF?-&Oa!<dqaPiaKJ1YEgZm0#XGLo}&+LFB{ zr$Z<E+$0x))(f#G0>h-PJqzH;VSBpb@D}Zr3@x{|&VFH$ud#E{nP*pA&EKkgS|jB5 zdDE%;tmVAI9W{cdE^fMe)jVu<ri9||)pm08mm585o@w_-A>QXsY0<pj{p_wKO>Vce zZyhdpD#3nd#r)E0)ouJSt7o#_KGolmYqtOJlx-Vy<~Hq|nR!JibBB!Y#;N)#=5cx& zZB4gYau+(>d$#k`?eBA}Lk<T&dU<j46~^5^d~@HfICFOQ%54*t@O-liz7u!d^hO^O z?~lUNJzk<KtX`d!%zx&yiaTTPqZkXP`A2rI44t{Z<=_>w?X@b(x<`~WzfIhf-Pp7) z|HZ67*#dpS&p(}FuAJ$#?37%A)1l?Q=eoPhHXh;SV%vW@f7AR{+ptSQZyXt8F6vtP z=-Ms)XtGM~+srIk1HTu0_8k}bzDsXA-{Vv4LY8;q8+T;oM{bMlZsJ+uyj|6zdFGc7 zGi0-)KI;{&bdhXlXI|3s=yIu(@AH%!+y4d%^eQG!WI47k)Hw9Ghk|6wxnsNBvpYkp z8&x;5rv~<AK6<#ob&2G&;Q1xuidR>8Z{^L>6`3Pbp}99|;g-zKww9dqI{%wNFB3Q4 zeaLh@v%|Oa^0vS&w|nL`Ez6wr?1jfot6zor*E!!6KPu<A>Gk8t<dvawofa~sU7q+$ zv80~!%HchoVMe=S9Om$F28LOs*G|^FxO$rTwkIE6xx{|$71rFwEV+7OhLGE9%dCuS zW=%ffTQLrfH+7W+R(@n(>2EuE*L0KmCA<Pko8{C~c=CT~&wC%|z9~aFwyXF>Pr)2l zx6Ae`{p42F-+8lIlFfvxIH&IA<vAWs^WI4<m#SOXq?j$9GqZHtyTAg&L#cBP<saVF zyL8|3`75LNW;tEYnfmG3)8Z)B;MH}L)|Ih6Oo+Nvs&yctUUOmFtK=ZlP==Cpp;oKD zS+hGLSR~(m>R6JtY&nNS)8k28#cSI$+LN+bx6AsSGCs2)GiarK;N0MKZ5z)XpEOI; zV9S<QPG2@&Ug@~lP9QmgS$O8;pfblNF5lMPmM)qT6BGBCfw#$az1>qGy@ZV4n(E8^ zw!N5JdRgMr29D&N+?y8Itf(=0;q~)sOcejkSO<gcQ(sGdTDRg<+6p$#yFzKR_srz7 z3*IwFG^}I6v6C}7`*Y0>Z}1Ghn7mDUrL95D)A}I42dk!PdlvT@%z5h&s`9$EI$ph> zvuDfs7R}qe0fsyL)mw5OiMKr4?^;sM%hmBW;8LJ$I=i*mT)|hut-;F!n!gJEQIo1U zW$|Tssme^>Tq~Xl<}O!Kx7ur$yIk73$ySf!D<|tARgRJcxAK2mO0DJH@j!5q{*Shr zgPk0f5AK{{>t8ACRrk|pV&_SY{a(J3=U1$so_TJu*s|F%narAN3bJ43o^U8RV&atT z?VP#YV10G&eplaTddxget#@$U+J54p=U;QbJe~}u+J$c`AGazVZJcSiYuAcqqmBYw zqcVTny#|3VXWsKNlY5@U^>23TV!zOLtY6N*v<o%g!Iis$=TNSh@xDL14^>M!icJk# z-0dBA!=_Kz`OYIghZ`c7{$0B@>)4KoQl^3~+*9n9<RmC*Hopsr^WKv&SFn&{$8Kx2 z`wIQbr`(d~I(VgE?-8Dsh<}$#H2d^;r!{_e*!tL`sk!-l-qQNhS8d&X%?iDsSJ)YB zw=p9k^YwQ2mN!WWs~1eUwcRDL)cc^+?9c_b->usEetzz>jfdKqyb{Et4Eau}_G~dV zJ-qAh#9f6eT5|H(R_~nr&Go9uC5u?wd<n<3a%%(@KT=}r(|%^V!QjSKvl$8!Unb4< znw-1+@8uZ}9{ip9b>%PLW#)dHgN!WWb@&zt1Y19!qsjX2x7yC7XUgBqiJZJ}hyJX8 z*FG3@l(hLIrwX@cyuCap#?xl??0tLGcb+#~V##+SuVICf?7R8J{@XR2i#NFW-!$31 zM|P>)^yOD`G<m=K@yN~#u9`1&L(0kA%3Z-}+uXA~K3>x;pS)F-3U9Z+lI+kNn;p68 zXTYoYfU?%o$gaGcj(;Mxab-?h`zqxOnmbtj^4(m$gHuiRsX;H>s#CqkH8w7n_9_o~ zYBF8g(RJIAC(1kBIrc7kF0kZs+wYYM$4>0oy!lXeoXJJTvM$GVAHh>fbA&{zt~uxW zn0S?%9ZdC&DGQB^n>{yk=h9sQ?LJK<y&^Kp&1Sb}IIs3Smu3F6<=d95OKU7&@w8mq z!kE8I`0T>9b?ME!N^dZ%o7|D?R&ufY$`S^<1^1rnq})GoMXhba*2RZvzPkm_cvh)u zv_kdm<0;Q&b}mYc-f+Y(KyA6_fith>yvh^nePpz**2&ywdEz@;r;j@VZqHt*XCG9s zNaf3yTf&h(8OD-Ri%+N(sj_XF*kJ1z%&(U@^*@8o$E%ss4c^Vk;x;T`Snw;so%2j} zTS0I`X6KjY4ZeAMCU08x?TNXw{hPTuyuyWghqkU&J?{TDZu0lAeZ`wLn124ZRKQc_ z!-jk3Ij*wv9uj3fHuH=+d+?FxhZx`L75J_=cVBwpp4X~ot8YjLJm);RUc7(d{Wo*2 zZ}}wGd?VrGDc$7LG1d!SbjxnIobqftd($e%M!|<xXU-W<c__ZU)ReiK|4ke3nG3Hv zO9S|JDZLN&d+5xcaZWIq^IZBA*F^_ZwBGCPd^qj$N6q>C^X@&LyfY-PP?SBV<$G4$ zoPRGaEiXR#=k`jW<NxAM%?_G#$9~H7%+Lis+N(nn^WSwJ+~=0CIA{VNbMA#->7_TA zJMY>po|W$Tux67=>i*xZS6#1X+vvYjSDy0jVBQPQi!z7yrCVmzoRmJ4vFOM0C&~fG z6?QVEo}F<>j6uERxgDc=Z*bftX^ED16W<l|yjgqgGHcnM3GZ)~wArn6Tw{^P@@|f2 zo5_>a(YNkS><!$#b@NxX=HlZGYhN<|Oiy_=U+7R~ul<e>?fwft__FIVrD*L97vFpC zZLyo^;ypzj6-s|6R`<o;&dLq*-0G9?X|qJ+2`i;%{}|?4I32rl!mrxY$N0`0^*!di zPKS!8n#!sPzuJ<s+VqzPSCLY1-^O3-ChKphnl(GD)xbMA_M?ci#G9>WZy&1pwI!_0 zeOKus=B;z5eiwRRov!t3;kjDZ%PaDhyj6aw`S7n*-i&veXI_<W@8#m(9(%7l>YL?a zrNCKJW-{wm%ye5~kfhkkyqe!e>017B4&mD!Wd(w>ay!2YtS!EC{k3lFl3BhQ4`NsC zo87s>W#U8TAm4BS_f5NIFZ?*w_iuC_*IKK-x1H)G-<q#1vNhh}x>>g&;Z5k<8l&ok zVus6BpP07uwpxFC@hrCuJywY&U+#r?M+elsYK{-OXsMun`A2tljm?2_u88j?r!tFo z_pO+=>s&}ruJ&@Tna$J1^O{}Qb{EY%zRU9n>t(e^&(2uZ9Qw9#*Ot7!z8mH{_k~yR zEf=^nyI@vTf*RMFoeQFP6rRmqe93L`-O{M<X6vs=FXUXm?7;)mPqU&u?y+R`Fv%_| zD3Dw7(6H=8TjI~~s~P<LORWw)-+a?U>3LD}J&xxkuQ>$|=`*zFUEa0q+1zL|g<O&2 zSFSwpxXxjFEL~-4?Sr;wf`ZHwX7jRLTxsc7yKRTe)a-`##~fSV@E%)eA^6g2xryb5 zhkXH=>~b?N{P5qtb+Or$gWi{nH5bi^ddu`ax7F;p46j#V<-4cM#@ei#I*X%!z1kud zpj+%v_&$t*;a1%esly7qqAe0ueWDMVZcNk==Q}Z3i(^Yg^xcO({~6v|?wIo3I{abH z8b7IBxnH(_*ZQP4nU`~2tytST&QmJFDv!0-e-yp($j8)dfsp@;wM!=$tZrbLb|PQ< zpHJtn+lS_N6wEFD(wZ!LIpbH~Qt70{{2UuMtHxS#E`A|(ig8ilrrh0&W?Rh@*uwHX zM0Ufx&vL?#^**dof7g1EJ@wME=hnikQLl1$9(VQo_Ul=B%dace#jLB+WS(%xS=GHf zD{nY|YJJC#a!0GqFH_63j%Tm6(#{m0H8r*&aB=0<<zE~(9XF|x|5+pA$-Cp<tE4RT zm^+_Vn?AY6yJ|tH-`@_7XvM?nGV^!6W%HbJT~Oj`aPEHwgKR6O7h9hlT(#tQ^RnN| z`sU|uE?I6iKf>UhlE{_%46D5Eo5l+>B{a{k_KJF2)O>c~+N1Y`XD-RK(OZ8ccIl=o zr`A-@J2m5+V%7bUlZ~y}8YkE-f*T*an)g8UVrT5F9j8pAw<(H;O$?g<Vb-;Y3QRAY zmMUe1FmVT-Umf<Qdv@6DWU;v+;qv+unxpTW^D60nY`bz@o^n!n*fi&DzAK{@wllYQ zuKIjT#M<od#6&hTjYjnoK3i|z3qLz8L?%Jx`Q?eH1NC?DJx+PxdZw)Jf%@S*_EO!e zhF_Nm=}P!dn=anFC3vTe{<P|Ix3%ZK`WM2K?#OETl|N|7^Ok2@uQb}tyBVa({>NQ8 zwNmIg<CMo41}1USC;VqvR<K(l_q)TDv{{@J<`gNsnfEH+SU6wv=$eg}_q7@>z11^C z!~K3qd_i$=vo*Uao4Iu?_p*yKuBQ|;B)eX!Zf>`3ox7poj^tEB70z(8$wjKBTP3X} z+~yk0PT*tz78unXS8uZ5RW9?Hr?D12PfPj@gf+7wbbl{vP-0uTu>EVuEf=qyP5dp= z3%LIH^~&h24Nq=d)!&}Fac6k=s)J{yM7thb@aV^tWu^D3{pPHjs=@A~u_Ef&JHAzs zDlfXvuUWm{u$9^IROyo2r`pRVe$~ud;p-^F(7Vh<jXk6Fk)jFT%fA!!5Bv-5726mo zWa_u(@q`kGY2T(^*|SaDZ}Ikn;Y^%q#=8nW?TcRY)@kor*25*2y`rMGPpwTmyFBIF zALYC0D-K@18|!(@qg|_X-`=TL<JT=w@^#EUw&2y;Ro6ooeeQqjr&I559{caawDKJ@ z4eqGTyOqMJC>S93SnyD(ey5=SBqQNCsasP{9_abuAhxslRc4mLmR)rVO#Jy)$X8B# z>~i4UySw7sY^Q2hN16KTE%U4NO_<3Z)XZA8!}_<0UusrQor$E+iklk`|M1CGa&|A& z6WY~ZdSy#ytXFUS5sUr>2Uu;loL$47d-=(p(B<nV?8?9I{4kE8+Ob!Z^DW<d!&TGy z4bNyTf3$n$`FzcHyxU?obucaV`MsQLZT9UI)+?9gEvfZ=Sep5(LR#&1P)+OnJ&T3j z&SKhnZRf29Q||4{pD;Afx$#>;E|)!MflSdN>Hd|sG*^DO&lyy%=h`#P{1AgZd(oPe z3YjtseWKJkdonsCKg|2s<!iQ_qjYwRK+YW{gN0M>_`Ubr`a990KP0O50*}g0<HZcW z;wrwmG{lssEP9xuz5X|AcCpnqRTHzNyC($dZI+nO?tA3ZoKJskRxadU`ry>cLOTJ` zWtVrE1$P+aUF0^nIYse^`8;7?3&W-Wy@I*i^&gh77xWb`QEPbjsHo$5LO^z7^KTuQ zm5qr8F?XkX{XC|iHoK8|YWAFqfy*z6?N2$rsgt4B)g;UFru0?|-<nsZ)_N}sZ?wKL z6y$t(cjw>Gvu2mm-z{8t)V;W%=V5cuzU&zhwYriTSITqMGQ>lw?p3>UUGtt-^r$T8 z-miOQvBxfQu~j%twLG`(DchrqD_jCEWU;N@xo;}NwA~@@Eu0s$D`T(C>Xmd_@@L~F zwY<4k@9?O#J=mRcZ%<jRqQxYm5{E4*Qx2~@(a`HAc6^t(bl=M}FMsXuS#i8(;f(N0 za%+WGTJ~=IQNVjOWO>AGH$Sg}lFqUvO2>s#4kc&Jj<|buO<{qg^RhhMYZd-teTJ*{ z&F)?=;cz86Z+Vl);ij(guXby)cD4S#{m?n;gC(oOxeIe{H<U}Sd#s$UaE)JOkzC<Q zqZL=Lo$V?)DX8|aMaHq%Z$Xk6o8#`C*89y9w5#SW5A~bC@-L}GHQvv|zf@Q5W{Y;< z^@d$j{+fCF?>o7(s~|;fo6!M2n}va2b5^`;o4D$V<$Ui7_Z7#b>K1ZbNuFDHzs1$l zc<IXC!ns{$Rm&O8o;^=np}0Q1cfvu*CZ_C61A}~yi5~1lBIjl;yQ1`XfzbXXQuj4{ z9b0!VezP`P>f+BnAEl@ylPM3lPxc2o>|DFu(@(D?#C2=pkvHWoUDGBguGPA;!N<|X zX12#~_35@}%P%ptPn@&$^Qvs;sJvgx0>!piANuO@D)7h_(PYU?Z3!p8P^JG2zJYe9 zG+vl$Y+PdUGnVgG<NYAE!+F=H=CHdZo?LJ`%J0<4ooi0`<Zf#`_QL<_ssl4zLL}@r zy}6=Z5tJqPE#ThclfJAAOdnn9HQ-FVYLY9zNcWw=%ePKzmu`)EsIsbW-vR6PDc2&d zo7uaT9$oLdO!Drj{G8v5;+&IHZ?IH4uFX)$>ot?Sf0y0nrktolyxy_E<H@DWC7i;6 zKjfG;{EA#ZY1Ze(WuZ#kcY?b&`D=8X4D&xzwqoxszL3dNeGgw<*caS*Wm&aTd%@yz zovec0eTk`JuP$ynb1PW0^Dq;SOuE)bUaMB6wJn^7RK8m*cvN?CiF{Dot2xJKZ`3wD zAG@4KieY{BZ@+bSgI8Fu%B#_ud_SnffA10@z2D3Bw%D#a_+ho<`vkV|GZUnLnilw) z%&-ys_iDEDl8xSZ?7dy33tMl0*q0Ky;<n~j{Q_mP6&d>$oH(SmGNoEsV?&d=^Py~& zZoir-*NxVg@Rr9;mHF1=z0Ga5v#b9Zr&{lKg~tLjv!#CSs?_psmRT~*uSLYT!B#Qm zjODWMQ`x&F+U{Tt;#XZ)Vs@xG=CQ*2PM;UXJXidGFR$@GDj2k^r<c7|Hz9j5Q^DpX zuOAA;sN_m5dZf$jw3|C7{!YNO7rR=oO)y{x&g1j$^e@nRWa0X2>&oN&-yH9+D9ZJ3 z&s=t$_0A)XJ5!kBVz%s1o-t>}KjE4e_iQh|S6uwXeZ{q1v;M5TP%yhf_~(uQPQGiw z^Zd^)Q2*=b9QAtnj-o{k)92ipap@v+beZNh3pS=X=R1}cUVBzGVXfz(wF*V%j$iIx z-XHLG>Uo8&J2ejNTAi2ikZ*Qp$)gIl%VNLgZtzKcyju2%n&mQuXX4J69$9m5(~imT z*K&(^vn=Mu&9cL@PhH=Vu5EQpP}jV|W$U$mjU7*y`)i%*k+pxA6BW!oOWMM>!uD{$ zf?uAo3f|EM&Lx^xUj3Rm=fnDJg&Z3N9g)xbUQX3v$?H^-vRkjYu#a`mht8U5TM}0u zJ-$7mcb&Mk3!~CIuj^W|jf(ZmQ@&4B$>?1!v&yVW@BFS6ehn+POS9Ibyb#ZeEB8(F z-8El>^_iNm$Cs6J<~{2RUgwgxPRZwC2z!7aR~m=Izm;FJa#!tJzV?>dnQ2>|sQ+hZ zPkAJ~{zz6QN6hRiE+rkAR}V*o?OJ~7sZnfoS>vBo>ymd(xs$qHT5s9Q-wnp<A->ak zABu$?nPbCx^+$Nqx7iI(l-Z=--&pj0>w(@|vls>U8+5NQ`)Db>_;QA>k3#B=22-bh zhnKEOTt8Q|Z*k&<t@}?29B+H`<+}Xp@2+2G-rmR_dTG(OwqEA4@3B#9Ph37#J?nK; zLAcZGMT?7Ur?S~L9@)NQVQy9NSA#hVt{raI)&65^q~CuvB8J)G!77yv;+&U*)*M}9 z`_7uxo=d`S+NagC-n4CDQr21?AGnZnuewy@k&d#3Tw7N2t==rHopo)6cWL^3jzE*Q zo85PZ7MdGZXg&8hCRO4R%krUHepz6n;>XFG-ZlJ_nj5s3G2@IEpUz=hMa~?7&RtUG zvF=v4iaRw*T#w|HIEX*U=DKrN$kST;#pP4gbt;Wt*<Lj#J-651I`eKwS;VmpU5>=H z>f(%xUIndI_EElSz_&r%cd_p=E`Cvc_11SPzqMb^&^$10>$L;b+dnM)xA#!-%DJXV zh3qWvc9lxKW;~?Y#`11sJMUHbj?QBK5~b@^TC)%D2yofDoGJLR0*lm1_JVcG)a*-H z=l=?4Yv(-isXus2b%M5D>6!y93Cg+Nvk!7P%<cBtcyGQ&$)`u<T2Tkf+Jd{^&TZoV zwNPyDwh;TNY@7`RajnZ<2y4~)R?Oh~oiy=^P~$4cvL#MRt>#?ClX^NCl0vs?ZYgjK zy0hri%sWbKF~ST2-!*!aF7H~|8@ikKim}V5(yRiDk_W5fgyR=CwCY`c8RTL$Z{Epk z^+DqGn-rf}gmT+0XuLkfx$%^MLAl1XnT+DH0$aYxEM)X9_|NcE;8UvUcOmtXd?mil zp6oLs$98XfoFP5sKSPUNuKPB<{)I-}{>c{wMI+v*PYZrqv16Oag)OExnp({}jxA-j zV6zV`H9uWa%&ytA+S}pDs%aax>`FYjEp+X*YnuNVp4#qz@MvFOp_UBy%I$hvp03=g zDdbZ&`B1fIai`6)J-=SQ-<h>c>ijhSCC@b<&RE8}_|VI(&6_WuDvc4J$26;7RIc!V z-%{T<?Cpupdi*?$CrqZt3s}TP=H8y!)KQ@Sh-+a~M`h`QncqV*Llw7VSvhC~CFD+- zoxvL(!kaPSc=W1#*K<P6|KuOBDil0468Br(xP0w_SF@9!%s;!p@y(BgPog>dlQ-`& z+vjOj)GYhD=>6dk1E!x>Eq27+Uwuen>oPMZSF7S3SA{N?+Hx@~6>>|>y}I-q<IZC* z*f#9$?y8nQ)|g=Rym%ASMAda-yF$InCrK}1@l^d9JHdi$zU$nJv$r{~Wj9K+?EA9k zWXr#oe8P%mGp0*Si4I%I<Gfm|SI*S&uzG|t=hJuD%M)gOG<egaRWj$2PWejH&wRaC zuN?N!npv6Myp=iSRmkl-#)X$eOtvro*(5$W@s4)pj*x`srI`v$%|1~veJz$Z`-FG9 zUjDUg+syBLPlak-tt)T0W|vwTHOQX#)lYsWWg=QAczCjJ_!c8&u5(iZYUYUiT>O5{ zy47*IQd@eKMID#?a%hXirn|9E?Y1sUHrzjzFF|Ftr?vK+JI1a)$G@_%bA--l&WwNf zVh`ull6xkW4yGGVonCbJr!W84qB(z?CY1$*{A;yayw|Xyfr<O8?=c1^bFIjQnvHkz z=3VDt4!tXXOMuVldZPWb1+OZe9}>BB!Qsl3pBFM_F;3bVE;BWCXWc&Wvu3Sq9v`}; z;tPbQGG6-`Z?vE_+xK4RVFuYU4rj-js=gC{!jGiXSo1pgYd_j&wZ>}y5gG9}{J$4G zpCtWCaF<?gl%-_iH(y<qQ080#0hNW7*)RJS{$3usjHCRz&tJ{+v*-An+NSekR`lnm zrdRn-XS`3aT4vQyplA8e^qM5kJ4LZ=w-1*Y|5{$s{l#5C`m0D}#M|2~&n?7er8B4e z-SMeEcDoyMqhJ1E?kIEXg}1JY=q<c#6<hvWd)0>j4B69{>@KSR(0t>P=CnJ(%Hg~1 zPE8HlbMJdB?+vwGm!35yZ&<Z$^Som_z8!SyKN7S=TJ<e^;X_Zx-Wy8QoBK-+N1Rrl zD?IDp&&!8|Z#-O)_B!y*+z)@vN=tSb2|NF1`1ka(X@SYy2@3O;zX{yOFy~OIf&P>A z|Bo<e3otS;K>#x&12ZEd10#c=qM>78VqxRNg$FlY6nOaIqk=(zL&E=C3>+Y7djWRA z*X<$YLhBT-S_M8nGQ<9Ws_%b>52=SajCGxu|1&K3&+wVkSJgqSPhGU&1uI9=o<o<C z&U{@jEOv?Oi&vlWteYYZ3_TGKTNqXq?^$GW<4rf)t`g(!j;;sQ1sVRO;$m#SUjBQ` z^vUdKwd&sh)77(HS(-exC@lET@G&&8;`GX8s@lPaoZk9e50LdLWhm6tijn^(D*qvb zYpV8thAZU^tGbpO_y}2_b(Cc_)1H#icJ_?I{UtgZqby$SPLA54xijs^_K;8giw<6V z6cxvvKH08g=1FA(@1@^$I<L6Za=Y%Dsw5?Ql~qNi<NbezFJ=xWa(e84M|^PInS4z_ zTIlo@3&!kudd%_Lx;L$vR^hh0H10y*D(Ou-+b*av>vzvmG?$1-d-vVu?5ma)juD%# z?bfq7f9ysR$J~b9O_xJ<wQ7Wy{Ac*{*XyuGpWLITOzTqXTNm9hU;l53i|$&d3D2$z zXqQYoDpxThZ&Knrm2}2Qv%ZT>T>Vbrwvl{i-RsJ-@Q%2O&inlxifOCv^Y7eI@qE>j z89%ySbTWs0<yyg)I{#9<kV4k)goCg5%&6Kib>XyNpM41%lxqGnO#jbtX#a;zF+0<X z9{y*zT=}2j(|VKl9pCcS$;K`{m-;3uTW;w=iI|182dDpMSbAF_!oTBy_`9I%?9;4P z=%_Z`Te_k{is7B`k~d6^XLu$U7TyTw*q<cIZ_QG(Cr`QRhEdI4uM)9s^B$R<*rNJu z_jIpRt=1!MiAGGXkF06rQ9odF>RZveW3!qrZoC!U)g<`lxwzz!Gm@N>7H#oz-~XS1 z?eFRD?D~4|1UQSHo}R83|08PZ&Lxij#Ccu+Gcf*V;Q!BX=aIs+^0ozyf?8!U%3%|h zUr}08xNm``@1tiSUaH1{D_!;fGdT0|`nq#J&@avpmB~JQXDh>^b5C}<S+6}5FV(*( z{+`f{t%-6{!UmQGU(F=h^%g{CeAi>V#kX*gL;i`+dJc*_vPXXS8Fm~A3Z6WP<@gMv zLmOXPy7BD2QFFR-He00M!(~Uc&Mjapcdh?n{!i%<_sSUt{vX7e_5U-pp5D0GFfHha zhtui&fVicbZp5f1*8gXSEHLNV?{TJk!>9G~9r*#%t&Z?$ES1l>Q55RZ71ius=$W_q z9S7?x?X!XZ8P0undoFt@*29wZ728tw9iLe@T{_y{xv`YbMlQkX0n2THMLym+e>Z&J z+Vhd&-a~_uuBG{hxozj1v};j0{o{ybBG=l9Ejvvw-#PfS`Qjt3Q>&Hb?kVx^xZM2w z3V-CneE*>NpJL+wsj_kZv^iB$w%c+2zlXBk{~5&M{xkezF^!s%xJcCC$Rqxl8A0Nw z{}~6qJN4c6`Ia5^Jzk0{OIfCQ|7S4Qi`h~CZT_FRPVNhK)XRBJ(-2mQRwxp`*uH+% z-X9K%{I0r{D}=g>-Ft6JJxTIXpZuKv&WbGNcMHTz`nq?tY@H(`yCEdMkm*WO_>cAf zMD(X*Fs9zxrx57Z>=@oPtylNat3Su`rrqyLjyKhNedfS{lgzi2Zd<#F9X?`t>%#Qg z8WTRLDP82{U8U&6AA5FYGqXl^GxO>hLX!IuLuEtF6nhO0+!wrU9VjDrBYlJ8nXpCi z#eUZo#$7yjO-KHDXZ@r93`hSnbhB$pupBPj9X#Xgl-0g&r$b_ci&eWWrp-5g(6YnE zEjv`7tEuDebiJ4zZq@%89-dhl|6ua8RJH}DJ=SrTimJJuI;H5b;ImjFbJM%(!{`5a zDqF6Jn9if1rfM|PXGQ(&{|wJTS?g$bhpkDZ@HRottq<m!UOE0W*|0KU!vdizt0rt> zw>)yueM8enLDdMYl$Re4<STDtm!H)sqCfHRj586Me;l8!T6#p_l-n-l*(dg?7x3vV z4f-Ux!tZK9_wk>JY`fMvu+(1W7i@PbV0Fj}YkJYdD{fIJ!L>^(X2lWD^7Mc;H$7)0 zU6tII7~?Q4Zc+-Xx1qy9S3aKA6JPCKQK~5;vs~0_vGSF((YnSq&;P9~W;M8Ks=tRZ z?IGWcr==-}nh&IQGMzUyI%KA^>A-jX$lr~PMSD-r-z=dNddEWb*dx)hg$&x_T}ct` zDQ`7Wb8d1lGM&k7`utYWlgaL4q<+cqBhr@UX~Dh)Z}}D^?YU=`Zj@5-pFxDxBA9XE z6xLO{6__UrgmC^;>RRwQ=+EU>c{?POLZ?c<uM^_duV_4Mo%Q&V3$M?P1~)D5j~Y9s zcihpF^@*#fKj3ym{-@}p;|A{HtXD)78yxsQ7CpGL{71sthXq0p*o;;mWN}(C$H0ss zcZcFO)+@0E9PffX6${>S9Y3;oZN+H;pP5aWsv8?679{^n-(lmutheWWnb$%Q8LswQ z>KPBWGP8c=cL=s{TKjv3vBrW*d80KgFD^4bik+&E9G2vLfw%ekj75C+0xrKZJR0r% zDqJ8qYTrVOoVOB-ukBl=C3yN{fwx=7QPGr*uU5@G!gc=g=>?ako6Iqgs%)7&aZ$`B zCJPpef9q~43q|nm;Ql#9MO0$r9jCOtU01xL&gswGxAm1-z<id>rLl?aFG|)WD==Di zy!<9Bw<w2e(OP?zBTkFkR~Vkmkr&V?5L?@4+P(OWw8oKKy^yWO-0dw^J0?$hbLrID z)p>iJdS`{n9$9r;QzCfJCrS4L$$e?eA=RB;ESEMi?p>M~vs@{u?UqyrbA?U-|7}B- z+|QD+E4D=);oh@!#jB!7cfr*XpWb#(u<p}kZ{puQMb_ZG%<MBdn+}!RoJsqq(EUu! z(<{=PRV*pDY!&y8?f*pCjRWI2wrR;OP(8|F&NVA9<XP}ePp>=6Q#`c~vftu~N#jx7 zw!r%LqAA-aO7VsDYXqjo-l>u(WSTP5a=qa0?V|Tfxt3XaPdT+Q=a~#MmuRh1qHe;? zM~2cDB#ypb^t8}2FEMCliNoHQ(8G!nXRIftsI_h@+mTXGxoJVKDO=Qvvu%@K3I*Pl zQGBLte9D1?>8;AT&6S(xED&{h$KbB|Xj6F6)fFqhPiZ?nU0mz9y8vJIjs^y%{$Lg7 zn8PbpnC9@_-@&-V?~3z}wwCC7JJ$$iGHlM=8vW<c`?rgC|Md#YH1^rpJvD0CqH}8} z?dx=nt$f<TGbO*>G+@(bqm7y&`YjO(Vask#?6~)9rhxRnj;I$=w~y?M$S=rG-liIy zUfeDAT~2drmj_3yFw6JbGyB+FS1?VleikOT#!W1G$LTv-6P|Q;@n+vy87ZaE@Phvg zOXQ7@9Gv$aYf8O5cxO?vLFH7o_nKE^^M5HmU!RiN7<<k~wd{7sMA03}HkMsnC$(-| z)?77dyU`P+MNPNGrv|bvE989YdwPDlpv&TCi}f>)99$H#rR=jr!Ln$^F5N53rrUPj zXe{01=Jnu_>}spfSCOozlGr$-BZ7{IWUp$D(6dY3pt|>UUsBbqqkFuMysJEQXtEf? z)WW(4>gJOTEY<q{F56vV*&ML$nAV2YlZWLd8T%~xZdFio#=DPg0z*#BD)X`(63=JL zOe|)M?AFrDV_2}9nSmuc>8yu!LJY^JMb=E2yMOeD_X&%z1#K?udgpd?wu~9m38vP% z%>jozwl*7nSTogSi-VgM!-ib;7O$OQJ%QmpQ;o2V>5Cz^0->p}+Grw<e_?3^hV z>d0Zm{3<+8=aZ!}qqx68<BZPYK;FqLYR-udUq$qu7PoFoVPdSG+32!5_t4hn-H%LP z<*k;U@_dQ@k+Rplwk{qKo+~z*3;uC*4K2PSc1^bBRLs_Z+ch%+xGIzu9gk4z3eY@q zqK>o7<w=K!*k>_K?vEPR-JLYV<Bb{$A0;Gc?@KtHy6}<RTo2JjmS(E4r#7V?_}RYX z*48UV3TNiTR5|7FaVD&~ES;*LVe(ak|BRcsmPqJK-=iVdV_6v9buIYFx~3pG@Mwpn zfR@G`akU$6Zv<4Y7qCu{T)*Oh{*_HVB3vgnJkc*TXfKqG6b+O&xO(={qI)-8eLl0Z z^W3>ruB($}x>{xFX1j-BGbhXVa6jV-_t}2_$mz;iiB4S}YUQ4BRnt_x5_-c}?{FnW zG8dSnHfD!kIo&to?JKS;!HjkiE3SzY9q>s|mfG5*;CRS1(Zbfe@Oc<}p;lSbds&AE zX0wey<ZN7iMUuhS*JWRUd&k1ayx<x!KDL<I?Q0Et*^SP$Pua0Aa`LPAJzKhr#Xe0F zh@WvrCQUr=b+9Ps(j7a>EO*H0YBB8UUZC#wG`87yR+Fce#uV0#(HtJJD-A7@^jsI7 z{VFRO!#;D*Ys>CW)lM6v&I<(8N%iyc2wvg}W2-&2TDDoJcdFS6F>{CPfZUB0ic%WZ zYkO9Q+PI`$3H^RX#_Tea`c`gJzqQjMZa(a9;JD-(YdK4G0^2JS@kADn&)qHGDjKKj zc7!}|o+i~Rb3dx%(d-A$3X~&W#UA!PeC6P_csKRn&*kh1S=Tt$E2%qfX7y>5)7^18 zJmc=!Hle=^CPxBy`?^M+Xfj-WJn&=xM8>Ia_8yO$xy**k<7c{n#&PW#jf^vdoE3Bu zw0AGlU@trBawyZdtNBC&-_p%Ynh7l;2LleAJN3coqT>RaL%j~!Qaf@SELEi}3;Pze zL~r_bi1Ew<?U~OxHv6;ORqd{ssI#)?URt5g>1EH#R4P_*@%@~!bZXEvhI>y}ZOboq zjk+S5_e`xxp=g^H!?rue5^4{edVIzq+~$mq)9S^0d?XwtCan(F3CyeGWKjy-7VNg- zZI4LQPN!RQeU6-a{MvoK!PA3_&uArmf2XwAhe;!Au5)+Ls}Dysmaa;xX52d0y~#nT z^-bdLylW90DR+v>x;94cToL|hx=)m?>sNlEbL*O?aVPXC&In01QBktm>sD){vL&{A zv!TzL8wVNhhDB?##<DE-$w>WV`c5`M?^Z9z4;{9H?=+Uj%sths@OoxI<Nku=^eK$7 z^E{?JIHtTLHMOE?N9@7Inq#_$3wG}*Eb5thM|2&pJ44L#&hpYK)nc<b?K57B-OQa9 zwpevVA^$nnM}j4i8Rsg~CT~npQ7QUpq`9n^q42^Afep+I-+HGNO$^xVr<#x{@m*;B z#^gr}rTJ&PjY>>dwAU%rq2!>C(N~dMOLrgCUiJKp%dLoQt&h)`@w4bPox0%qJ5^(s z*Ad>;dmPqiiM-z#vOrwuaN@BEQ%?FNbZl97=TuAV6$LdP{S`k-8y_YWxb94yC*FE| zi|dS13F)-dYo2r2b8;jtRlBpU-bo6|?pPdFtPyx+>AkeDv{#~<(a8d0?+v%yG+V}! zyH9c2*GSHJF%Bzrx6fR*z3Ad8cdo)m+7h}|E9|E1^$ESH&ANHT^LKIWfzlSQjCz^H zJ{^}?*r&b6>$uoe*Qb-7`HJuAT{!z+TGE%(R}3F12P-LWKchSC@tGpF$el|L)U-%h ze`QGzUD2^HX~J5SoahxA+ho{QJ)QdE(PG0HR}>bjuuZ6FOx>q0XehQ-F~vf3@1Y5* zGma>_?douC4*RUhH02J5Nv+Fm{=k+cKc-Iq@yJ2{tHD%xp>@+Aa#j^cn7XsDh1vS> zZb-9?J5_U7YUyF_gWr4vc3xy*+Z21$rFhmfu^)nMPFwYU<r(Z_5#71ms&`3{f_BV| z1uIgg8&8!F*u;H=N$j5Dq*<0b8=l|IV$aQ+^iT5Op&MGSEWQ{#n%WRy=f}Ba#o3sv zrn8snoXiN32|5$LP)c>#(gSW+b!K%h+u0$o`H}U4I~%yWn@)$R&oFAbwxBaheA_!k zvjvv#9xRGrm);Tee8bh_Ee%D7uJ1XvZ13aFKvB*JX3-T%i`o)B7Zg@cU$kfG;gl7M zOT{~;Kl;%-F?;1ybN&YtPo0r**kt6I$-0TFe#*^f0pct4iw>L#+>)I8PCMj$XX)m` zqXC6ycAPePxBH6IxkP@g-q@N$%TD*F2ON?qyt6-gM_9yM1--Qj+5WR0<%@~u?4RPj zs&DaSp|AO8_Hb3j8tXh=q#?Rsg|=IkhPmO+iW74V?bwjgu;ZZGq>Ivr15|P{B^VC} z`tIzSn%WU|QCw$jh|V*a8L!t^eb?hQ-f9?jy~(1__Y6nW4u)<fv7e2TmCrCtU%V(z z#+6w~az~VR$}J~n>BFk7I->W&Qgdc^O*!haa&^^I-QB$_B(E2+&o!Re-2GY5Yd_D{ z;<-i-6mJVexZ5mRd(6A>frIsZQNyCN$PFE5FNPg>c2K{w$GzlD$Eo#CI?7v$78q9E z*;%wLk5%d3yrnZ6ET=ey7CgvZ>#e15!8Pv{!=z@0J13X!)f7Bo5@Qw^5v^-;tRd_9 z9p4?{LZ5U)Hr<`U@zMI@kqx@ZI}$HkdKdRcYDM1Rg?B_en6$0AmMQiY<gA|3_O|a? zK-a3c&zgE!Aq5F*<{VDDv&J`jV&i6~&;t_BPUId8;Mh<s77!V;sWDi}vs18Oor2^~ zU$<9_)M{=xSKg`97m(QC_h5QJ@)ZupnOjv^V`e8D)DLmtV0xGRXRX&{=T>tKg*~hr zi)L``T`UrPOX25_4(~J7ZKtLQY|$1ww5?FLaz}HbQFnZSfpl2XiiOkWxCPDDH@0Ng zFX&tvevSEgz(=uY<%KI6xBh!NzgoDX>&;OqtuTgCv99oGA!aHD5edGtI$GBWU4PTb zAa^1ncvquoVeF2!l`BNHJv_MCqOqYPPfBFQJJA@!vW6o^vaauotcd!OzQNwu#KO8w zS#d}Eyfo9YBTln+thnXSc*OV18iVBpjn#ZgVF7Dg7v4&Hux`O4t~ZNPz06~sKCbRq z7d<oDuzY8Z(XEJ{&h{hOacAc}ozpPQfLB_zMC{PiJDV;tw%ic(ojvE;i7f6TOXtbB zFFc+S!R)g!m1Bdms*8SkM91^KzSKDvV@_v>9$Gk4=Iv(2S9c5)bmvbI+`zm~xrpc1 zXNg-kJ$WkDn=<Dzdj~BnxGK0nQZ`Rg;A*iBgHI|4bLbp{Bip7tN?8%KfN9%?L+ywD z7)K^fdeFMGAbzIfZlk*?jlmu}o{9O0&T2?(>uTJbz2XJq?kif7(X%FJ>+E_b$*?t} z<Jk2X0v0xc7mP32GVI;Dv+P09#O>J%NpFu-?|F3g%wDamRYENbbIbWwtTKL-(Dp__ zalNy~={2*avHP${?{#%<Zu;aD*2BA_@5#yuQ$xHzYHzi5)HaSeK1DXALF#Vtopriv zpYe2+KbW#2`lpY&#_kS=x~Qp_+O-Y3K6Gq(pV+g`bH<K&tVcGMJe{YodPjQ7tC*LT z99tQlO)k1*&-_(PH0f>Nv1PJs58j*(oxHMBvs^D-Y+^`Wzk!6qn^F-iowCpDQB!tJ zaj`Zz5_K~|UU03o;dN25Lz1D)4AmW7hUY|*mU?gqeOql@+4+-mYMz3_j#XNHsmu3C z2rgUfKJS5&&eGQF@*T0ypJ@g@3ieB$YjkC4>iM7+`<esK?x=<syjwc4$514@!!n9% z-k%*!h1x2zH$n@=0&2X}o}Ada_Utnuj!isVTC3tV7HeHLT@<h1`o|$cy0kDs+sdNB z{DX_+)~;#AGkm==IGer;M7()<lDpx>b;I0eTD!Y=n~o($XSJBV=~>0sAEzM3G^J^t zV!PILCWD4&H)~b*{IG66bYPZ?sA`_U(kf-CSgBV5JsP{pjT+{!SnQz9vaai)n03zi z8Ed6%IH$Jevm~9}K4a+>k$8Q>1N_Tag2Pw$JP6ya&ByCB+w4EXl?BOG9a<Olq?QGD zU8(I&4|uZK#x-EZrPHb21^TR?4c^&2NqiHTr>wZxg}0^kd57S^t+~@fN{(wNNMGZ~ zaJn$PsryNjgJrPLE#WI+7nTPycr9#gYS(1A+CH<BIkK~RYg)0^4Q1tNYMY}1rku)~ z)h=@REi>E3AO!`^tbh*(1zuWfoYrypHnE+v$GgLP_d)G8-pCzW*$zhByQatCGb6Qa zS5WRd6NO!mIGW6EGt9JkJKgR0%7)((4w?57nrd_wwX;w8!@9srJKraC>hG?GmbDFi z%jEQTEV#DjX9owPjf>a!Y0(YaKVMmxz&GO)!_;j)DO05*3t8$^HUvM4@iufgd+1or zDU)Xr>+~WdcYK(8Z0YK3mw@dl;d+-RZI$4A+rhbPL$UPKH8a1w)MhFSxNxCLODP~C zWkT<Dr8G(1eT(Mo_PV9ET`-wpw$4h?Q#Up}==t_$YM4jFdDcra3K>r9*i_}#<5lvq z=V*}hq4Ksj@02wvV-9`awfr-8del}P!~4qJ(=;!h*gA9G)a~APR$h3L7Ni){c78{} z(O88=i%a{17Kyko<C^zNF<_&?nj>=BRV^nLt8VA>>6p5^)}kxp<21haAA4i=ACc+| z;!bRNTKc$v?ZC$~;*qRwyA&^YmMI+H5wI)Zl#AY#Cn0+lS{%7?@ova9Tk(P~OY@e# z^jhYZ@Y}k#wdS5ugUB-bj%UxVShVRp*{Ak{>4#@?+s0O&;4OFja`n%+iG=UCTJW^* zTkwXa&52sd0-tM6%@SL+LP2ZgZ7#<y86MWj`(7omzvu{D-_`Z<;o=o#CA+)z-fdev zLp9~5Ru#8c;2ft5p3ZYWb2-X6iyS{TtHb$($!0cJv#0zD&Lzc~2efxII)xR_FyY>L z<g?q%pzt~mQ(MQbzTzcWOJ9oIUXp+K@MPTr+tbalp9Pnl{m2n@cWQ@|HrJBthTghQ z*D1WPsGcs{K5tRZ$-9U0*i1F2MNPYY+$U;>#SYelya!jOmre9`dFZ|6?jysJXg5QH z!<WQY{q=cqaE*_OCxg!Rh?y)KclE5Cp21k~YLyK~Y$;376W&vo_65sy9gJ+hAHGHF zqXcVxN86QEXS&|X<uq&E$>5&qy~T_D2(QrNK%LlhlMNdcA2c=anafV$S7LkgB}<FD zDC*#3<yDOf{Kc8p?poD!ZLZQ0X7y}#k4L>GGY?pVt6efN5fS^h(1&}9nh|qD$A0yK zvI7QLG1vCEbHDlE<Du&{t?LTY?Xs37{2#j4I8N+fOx!EZlVf&gS75xwipLkrG8$%a z%iKB2p_kUZ`LI@8-L0v2<c_7DNJ@Lk9Q8_kWpI_#g)>&%H@7=+N&k%4R@HFq(!r$# z2h!#ludt9z{LkRysMNE&XL78d7`N?Gfu(u*e4SHW_jZ@-<xHH*bCAvKh0omPIbZd3 zA8*WJY_R=SuC?}}OX*=-&46vT!U|zeR`&*a9Mdw5{B}UoJzr?G&3*%s2i>b$gEkcx z+b(a}!Su56k!rNo<rb3^3$aByRk>%XHWbaCo>Z~-bc}n}GuhL9Z)I57n}j;^CJQW6 z@LiUs6T4bat|Mp1(hJR5=0~QS)okDS*|dM{eMPCPy{rdxt~}Q4?v2ehG|P<B6BCkk zW1gOJM&;1jnBAxNHVTOJM>WXY)6^3?@nHwApL~a)CHpf0ok`7Vojtd$6l%hbot)t` zb5WD7d(!5D9~Euu_!Ol~6S9nrw{16*eafx4@>)F8J?=+}M&YOBlm0w!D}Ev+v%>QJ z*+Yl9pTszo6$VthMs>{EaQ31Rn|UHDi@J)E%M(*0&W+5WD{ktE_Ul~X%~)sTKTYB4 zL8bX=sxvpN31hgH;Al82FVXGWs#J}LyHB+=7GHG{dHQU{{0SV1&VDVA=Gi)RaGe+P z$>IyRvT@b*@)^-3*Q1q9yLOrOIPBEgeMe?z*EH^ZAN(Hu?rlm>D;Irou}vd(IkV}^ zS?_v74lmvDis?lNbC^u@5oboNdx58TigZ%jPFQU8sCb&j9CL1Alk>zQg+AJQkDmOH z_<O1Yd$#1}gs5`~Q=_fIBKDNrv10p?*^&~tHO4!LmDfRbQO#zKgnYF$4mE)+jkRg( zBIlZLrik(vgw`#*6CIZ9(0C(NJKD1)%U*x?k%}WXCm!hE`ab(qYSR){V~ZT`%pE4r zDipLA?<#4_;Ck8;Xyvp>A!{jzbM-2YD29xaA{#4K=t*0O8tYtp#l*4aP*@P_j%lHZ zjJnmkTy+jUJQKn;Z;}A3?;4c_UsD$Ni?8ZZeZjaRNpDq*Q`54Y(L3v`GWYskniHyO z$$ZqMB;ve;VM2OSQuN-BJO>vYddDi|wLAApeAv{6Z9&%$9ufA^QZ*3!)SILBa++6G zC%1O=+YbICu}1`EmzHX496l&my(5t;?%rqpR=Mc@B)uD5&W{R%r|(#^oTq)F)bY7F zdO4<7!XB(%GvS<P?^)jY#tL&ycQ77*q|?2xTqbtT#A8f56#iT{<W7FD<HO#$3i^&V z2Pzmhg;~ki91fcoxKYx)qF;e|!Wr3skO<w4j{{CNls7S6I+?xVpv!eOC9%y*CxqRO zNz`MAPD{{Ix*1{QcfKXagx@pSGJwgTa=ST;ZzEr_LRIIS1F_%v<}9mGuwT+GQg}2= zV3ELt=K<T<y*tk=4G=5T6Uce6^&>xj>{3B(!-Y2`7~67A38pdy%FRhBmYOv;MND9u zm672R`)N`A?#8D4w=+)6zB+Nz={P2Z4I7yg!@d^=*yTMuRhhB!AkT`c$6QybCbMvP zFI+L_w1v>GH+wr)Zo8W-U~j@EV7B9NTMF~GFEbCc>g-aQsk7**Vld+s&#=4Oo5J=v z3oPeeoO<wY$f@Z%I~|y751rg=_?a`!G$doHtKW^&u0=CdxSjU4rE{#_#CDb0G_WjP zqDg_nFl)z#-E+0Y8m8R6b?8gO3l;-K*Q>3rO4oXJHOMGzVmz#Fa3w&Z_ViZm^BlU` zbF4cKO|SDT<d9ypxGqa-bsk%wgplAmDPfhvJyR2E4;+!<iqSHBo9Ys>Y6pusGyf_6 zkRtB<j*yiZJh~iKC3B9LhdO>|(-rqPma-*^iFxL`9@~u<!v!|6?KrbJyxeKyWS7FA zsyPDBDyB3Z4xPgta4*nMYS!#q2DQvvLPZmq;;*IMSbWHR!qJ7Ix;g)n>Q3@&E&IM= zj%KLK3XaROW^iqP-tl&0)y^8brB_X!&Ml5TEtYdHFK}_(TY2>~^8&*Jfk&51t)e}> zstlJ#$(YVq#>{K9t-*AL&=&j7sA+3MmMKIBN={Z<JVA5yjyW8*hyOY#ZoSs{Dt1T1 zrw<bkZ?e2~hUZ(X7h7_{(KVH)MB}zxUYYXs%2Hq5V8NRcukV;4TF%hzm7HX#^eFqx z2BDOe6>HNrIc@W7ToHc2!?c<^YKl+O#+GEayEd*m=cQ&=9J?{AZ^{g<gN3Us%V*4T zzGURq%NLw;q;<`uX<R+qwRa})*jzoe&uPcD70+3Z$}pCu9&o!V*0|!u%7<*Z&oo11 zdXG6T$Vzw0<=vpcD%CR8_qNsrxg$&gQAhm5*xZ)xzGdO2y*ubf+nGfxkLT@6J#cfk zi>^|p3-{xYL%iDD?lbe&-ge`XJ9{*iDcN#`xO;Qpfep{MWCir{M5}Z!UFo%U@3WAt z#cd)13EMsO9GK6g-jXc!JianOZ=DarOT&iKTrbyU<Td1;IlK6X($^K+84Z`3ovA(a z#r5I!bq^d~v0M_&$=09oE9cq7iy8M=&zQ9}mR`v+UZB9#5&JxVY3r?=_InTKOchwE z&wT#OBK{6ZFOE}5H;%QRcqMqHX!U9F-Q7lqoeWH8T%MiqwB-%siCoTNi=620GI7^C zHo|6?izkVvcLp>Tc6rP$D~Z;rXWhB5ccXf0?7=tulLQ__E6sFi+VC$i;?Id$2R5>O zYCb4@?7Pp&Cfy$C?hQwxP90+4-N2II5^loNF7)Tvr>r<$*6QxlYreA<?RnR+Ojoqf zLv{NymctV3)EZPd=dbp9|4i(D-ey_dmM`94j_V#0xb~{!!R4|!Wu~Qty90uPH@xA| zN-*Bgw5mus*i?MZR8PN%bCaHZtYXpdO5y6~Wi@9z^frzoddY<i#|1(ccXH=$Hv9b9 zpfWepu&ZsCe<4>+;-tucJf0bo+KhH~Zhw*VW@n<P_R*ddarYLMt>tC@F1<FOFfZcT zhN52XRvu}`Bp-pA$A!s@@&y=f3U<$yw$kH@lobuONoG9a5LFi_;&;O@urTDo6*rGm z!v}vh>^K$Z>?S5s6|(H>GLu@T#Fb&XJ2KueOrL(-G@1Q$2`kSA)32!sQVcwe;aa(i zL<2OLZuMRXV17F@dFD|A-WZ;%hUd7quAh;l&|1nbyVTq@+33K^uENj8VtwwKDST4P z4Zf~x<2l{)eG<ci$L72y+qr_h4vTG>v8ZiU?^)Z|cPevbn0Yd1Gf(@dvz+7AcZp3C zmd{{poD#XGB>7V4jiRM`{M_eL?zSJ~VU9X<V7mJHhN_OGc`XrYGBcT;uJtKeHC1ft zrz<v#a;BzrIt0i){d_OFvo3Dq`T)=S0#{Bcrq{YoyqCF5b)A%z8t3iB>kUfg-k7;Q zSY~osR_FthTPh`?S0pBUZ8%d>uFa_PG~>wb$V0uS8aO^po4D)XjnZHrC9BjYrcack zVtABej-FfkElKHY?1r<xVb_vxJ~%DIq<36L@Im>V#Z!+?Na2|2-5Yq_=R``;9`A0o z8HxW6D(&`tvTGWPUWU0wV)^nNs=7)u7YO?O^={4Pe-;tMu)c7G?J2gW51gAiM7MM~ zpQ#c1aYdlu=sL;JByB;d#@o!FVy4SnZaub8ncKlwU_rpvG*dn<*$H`{!~+ga-SCmS zZ*gPbk3Izh!y|`#J@UPac}156{&BJ9)0^p-VAND4#PO8r?xtB)65*x#2d#_S3cNlX zD+yJ7mFO{hzd*7w?{v{w?4C<}cJ3B&j11clab*|puaK$tq)yMCDVEIonUytM{Ftt@ zgr0^X&!zU`L2r9lry7eqnsekEQ{&TFyf&#H**^N6IA5~Xki$vVsVU%<wt8!e<FZfM zJY2{AGZ-G3C!zb5Wzi<asIUdn9V@j<3#_g^>f3L6CBkgmxkZmS4`u34yb@4xMDAho z%G4`9*BlzG?HZ;Xo<1*gcE%sE{({zf3LN`q|8e1rjkzMDJLh8i!?}t-FG&hkoOR^m zH)|`k%BbwRGOKm}jFhitdT{}3)$&9exQ=C?7WDQN*H7&V?o)j@onyoF#@xj_Hq7Im zV-T@ZXw6sAz;zleH`;E6oXa(Mqi7hv`Nz)8vP(xfKMFWUJo})P;C#ox_0Z#mOxb?Z zENd**ww$n0ydx!I$>e+}W}PqJVaKZG-4+$?E{oez51lGpqVjm(j3)ht#R50Wi#d#* z_69g?jXC&@H*3*}e4&3*mN_fCSg%=k^(Gx=HO+I9V6`w5VCvksv+Ztct1<JIvYHHw zR?fgXdl(GM1G|Ku3aw(BGW|2})(=VIlU{u;ntIM;|BMri3HwriY!6RUV>I`vY+bdo z`=-_JREZS~MVtoQyPE<Sjmz#Vk5bE4Gx6owro1mDYiYr`VzIon>o}~84)rPPn4WlK z_3`Dy??R#Fk++o1WF%cLeYj`LRlG6ml!lZ(S6iOXcI^%)fiFpVjI-ZGEOZNLEmw=1 zbiv<o$|92~h1vpkQEl3}Uw3{=*k+jdB0^Q{9&fSi&NE>j?rL6NahEA%xxnP<&lbHn z&n#S{yX=C5(7N4e+uB_n7?jT&_-=K|N!ZvOu!_H@`HF>d75lLS5gFCf=J6U9PJ+Cw z_O%DprE=vqp2@LmC^1$#?#O;qU1^(Z8TT>clr%j~-Sw<4{wWF<T-Nn>7U}G~wn#f6 zM@{_HpD;bew#1ly518I@ta2^TjPnRtuqO1%>g8J(t3(_YSByxn3e@7<7~Qswcj@-d zl}DF#O)*!j$co+_xO7HrJD;i}$FI0MRi|zmXlO@Btavu-(*f?gJM5IMteo86F_9<2 z;F(6$D`nl)i)WO~dfEAMS_-eU{+aEQG$(1W=*gODZWa@}zq3erAIp^cr#`YJ++%yl z>$pKz@ZILF6z@2(-d@?|qG1lKOe;!0R!>{?Y>mLzGnJ_;GtcoH*(utfa`K5zoa)mV zCk$J=Uc|~JE?bZ*%Avp5G5^k@gvAGXa~tOxe-w6V_ge90&b4()89Vb5JNPFD9MXwg zk{=dhESMmbF3}imTVQqe+Iz!kOoc}_ZQNXPM&j~|STE5vrmNZxUA=J1<nj?!*2Ohj z17rj4hQ@H6uqr#NDG<F*k=5w9%k=JyaLe|Un^vFE-S{x%kN1HszKgcD-6&k~-r3-H z!S+xcLxU}@&Rog@+FZ{Pw{D#Ak)ieW4(G^Lhh^XQ9@LnA^`~m|;Wc-(*SvUSpJh3- z&}RE*=^ZaK>lR&d(>*Pq9mBWxl+O#Fvl``|VVf47efChQPI8WP&AUYl+cx?-aK#_i z&6_&uQ3%`dh-o6WEgI|B8*1uz1Z&<&*4V9F=KhR#+iYinE6;f!Br-l{PW~(~d+(GL zHjS~<>lT(KUrk)0(sT7dmwu0<M>BU$46kQc_-FC1>%0$s^fM;RJo@d9-jVVHGuF=H zKHn6<xXWFSL-TO5!#?GOc^d+j>S*`0NbdAeea<JDknk{O-4{DWrm1f)Jy^QDX2#}l z2{TpO@2g9LqgqUNXr{h9nXai3^ypNosZZI9YtQ)Z&6#y3Fho*h_tf<w8Gp|j=xSzu z*4%F`CZ}g0?W!lXlCR%ropw@^^T&p%3b!+&1*;6!33F$xdbX6+b(PQ0mOJyCEDb(6 znUn+@EK`hP;uLk<*1jf7;6dEeE8Drt?=0M+o9M!1ka4#EN@%I^hJTOZcyB$~G&A?q z{3RKpGU8h<w}h@~JH2w@lzRd@=4xI{(Dj^gXpg22Th=b`kc)HHi|{|$_OthJX7+*y zvtxOu|2x&;BPv$>?#&`~hqvkKS8DFZ#Tz}9VN-213f)nvCsFuHyH3|&eP_AWHDRu; zb2hmK?2uZW+RQC^#8>V4S}*lYC!YREiq^UE(nU?fV#nRisn-@C%3HJJiL8-!ufXCZ zT$?tSu2?6%E<og?$f}g6yk)n%zB(UMm)7Q=*%lVDg=6nJW<$}1YxIo^Cx<s>tY5W5 z<IgS5t;=?)CX^_iy!=Xe_tOnZnJ0Wy<|O(Y4hhW6S}L{CHRX@n?^fLzEmnu#iMl7} zc^p~kCbf8mo^ZZ~_nz*Z60=#?7#(2dyWE*|LR04Sf#|H<cC#2>6_GDmt6m=w;eGm0 zCb+clt`~Fbp^M48CvN-rk}dYgj?kOW0$bOmrtC?2-LY9{Zl*zph1u*MwG*7%Z|o0n z5nSvZu2;To-NWveTaG2&cD$$^I`zfxZe{V*XKaFtb54uiIz6+Y^5u-lr(`sn!+vaN zUcnj?<jioEKj(ChL`kI9B#F&M6M6hJ+*8(W3aD}8oq0g$m|mY;(pTGtlj7XzeBzHx zswFMkuHC*Gu*QgGC$H<q?iQ1(sXMmY9NkiOdXM+3#izG0@Lb-WliT>UM}O<FMbbH2 zH%#O{bk<>>lZ^N2a-W3?j_oWR0n3<PK4LJsVXDz$8LF46$GBTjxhG;pqOjV>q8aL4 zhJ_mf0+M~Mn7{qboN=O@XTdhtbJm>^cR!xlnPsiW#=Ilp+_qJTe~)YO>&hM3V(;`U z%CtbhIsZ(MO2o?;K^6VP9R@edMC*$d1kTos^_speYuW1<on6r{v>QC#E$*CBXV4VM zJ)6}y?TFCCTPgp77vH?Hrgh5tE77V~&oriYe4n^5OyE&QT3>{~mJ?UlmPEW*E}_Rz zc{ta@wD#bV>cyI3(yQJ}O*gqxbXeBw#PO8#D=bR`gyWTY7#4EY3Z6>1^s?J`ZALUB z_wqiDN?(b!hDR-mPQ4I$sCpwVf%A?if5W~>910R&C7HA~-f?hz5U059+*1X;yI0+6 zV#My0s2)1;sbhxLfyAl&yivX3`q?cFHyoQzI8HIp;xAg@xWJ-L&D2BlyG(IM^hSj( zkzS9O1>HoB=q{YGyZeeekMWGcze`_cl=X55p8d?aaQ!>e-7m$aFiI%|BzlGj&(S>X zU)0$3T6@ZK)yak5t~;FMYO-dZvb#Xy*!wFhjM{?MrEWCas#AFP`C^WhMowztEJy7Y z9bD;p=G3$o5)1B#@XY9FEHGO?!#ZK5v(e3@=zU7l)EjnpGMzfrWFU~CI-%!S%=K5+ zO{@5(pV?(py=h9Dc|f_#6`R)SaS|;O7q~+rLLykqrb-lkmJyt7BH6T!H99kPS*p}; zwT+iny_0Y$5<Jmy^Qc3`)(L0k2A@geT@&he`dHG!nuQk`M3x!yh<}P(l=W<05P!ft zdqacgXP-&Ch;LHbFCscG!HsR5n><UR>ypDkNjql>p1tbmt8wb@DTl>o2bzz$&rI4l zPfn4`a`OTkK{JN1qx=Pd$-A_58gjHumh^NlvpRDvIAx2%x&9r!?FUQh5|>GB&Tie< ztn?`4b-(45tpUL^Cx|9K6<QiIy_DhNk}VB0np;lGq=hveV!Ux~>L$rc1u<d^OiG2r zre)j>QC+VxSJ~&Z(yC1|@0@3RF-*O&;LSYmKf)YJ5}ZAvl@>}<S@)i8Fc)|Drc;{m zvu}>yGKQ7aoME|p7FVtQDpdR2z-F4of=4neJgZmElxg0<^lZzSs8{Vjr)h0x6POTm z=rh~Y=)?)Gn=`}i?|AL>;t}67=Ld(xH#%l<vpto2*v{g!k6G`qT+Hd0_KJ77Hl4lo z$oiMio3vCn@yuzlmumw{E?Pgl!@;yqVp=AvYF(P*XVd)#={6U3e>f^wr|o;jar$bf zzo!nSzWpqm!`t23CdnRpXT8(mNi&0my4Qxt@LXHRcT{tlb-(!?v$x$h6sG8f%+tNo zmfYa4bcsW7hTFeKqPrJPvHqI3l0$Uc%z~Zyvk&j^W8LM=yt=z+o@mg!Pi^lzx}vL3 z%_wC*{j0f=&si;Sdl=K|V+soc;zSST>`4fbdDt4J7k}L8CDV-H1&=r!`Ex((A37(x z;z8u*^#yK%p&1R*XG1~)9ggtl1WnKmH5XpG^}^1ssS&GRX$0RYy{+-e?aEWRJ>Iw1 zohmuvEOPS43U&_d>qRe_;$kN(-g0R9f<&LZM5kG-F$=4X-Rg18ky9^lyk>JO<Hc6q zLpw84FKSOZ`a{)t-fC}A25IJ%c{`0}?_fT|#=hWj>&9YJ-am&Do^4yOxbfu5o9rrw z5?C%iY>@n5ZTHw{t)CWuL9Ix6#XJ_HyQj5ozYFEQ`gF$?k*B`%0}VqoU9bO~uG(-T z^pstixKUeo%<RsvOO0Jq0<JDBn)Q9kQ=u)}>N@7V33}E2YIf=N&beNpZwqcL{t&V> z-FI2)>6_gycYO9OxZ!ZR?DQuGn|X_)7R+D{IvjRj@fF7fIZOB+ih8IQ=m-aYX58pI zRa8T{F?kZ>&G{>|I&P|d`_Et(DB=>eiAAV*g=iGF#)`FR=1H;9g=)XFjW0WGGwhzX z?X-2^*<vnz>+5j}y|%aS1k9SVRZ8@Tjq_4@Kh-oYnGK!W!jA1d8uYQEPik7xGv?GV zZOh)QVDDWmy9Ex3F4$3O;IutaJTNPF8^`X*Q~6BoHyrORer40dmR)ewG&XR?;=sdO zHcai#Gv#eMlO%lc&I08uuB)Ms7H<2Hy3BJazxqcF#{2_aK5UL%Olrs29wsupeHI%a za&_qehIrRIyM4tco12GrSyv?|3f{6gBvLHqb8ubi$!=Azm9vj}<vBB)o$z(9j!*Yo z;h#N9=U#80A*dZN`)9Lag_~A#=VEpJK#9fOI-DuLPk4L_+|ji{H@eK{V3gL%j*#pP zBELF(w!hWyn5E2WbZFhzN6I;>4tY#5l|46ogH``HiR^uKDPHt%?`Brd8^`Y)xwIrH zEONs4W}{cf_-DM5%J%x@?y=(1i75ekQn81)-8rfkJ!v>;ZNK8qEbYZcZ>1h-n&e#j zHSJWhctVf1Y}96hLwAp?<_kafX!_E!T{BCfUfdE*TyXd3;hdoPcLdwE3#>8_^_G<| zj+rQTWwnUwl{pqWi`Gfsi8(8AW3t54iZH!TVSQQFwFYwz9^&p+T)-=^^o?{V-$HJI z^6xs&ihl~NlVjpYojrA8W!Q$D4sK0XLnnPL3eIp*(&IOA(0#B(GOLU4ugvKUjVz*Z zS^7#V!cO$JX!XBiH(2&@L2DBCVu5IF-j^*ru{-y_3KUtH$JxxobcTgp{2)(@`CZ>F zp#mi$AFFyS)(RFYn9rEAV~W+Uu8(ZfZAx_*inGr6u^f|}vgd_`VA**k(Vx@K6`1vG znjrY{?<s+xd*Lc8dbyq?lt>j^aShl$Pf_k-txvYI@{z;r3NL1AxU!^nJfAw(Y4)_& zTFw1>xjST+d%Wok)hLR45TIVk7NBMRQ9dB6Pt7DEMS6x?gucPqbum4sSLkI<-@MuD zB7@N4{7h+q%gaOWIK=My-THjt)PIkv7c*>a&JK1L+U31}#vG#uGOkgUg+X7dHv2~< ztkRCWb$s&zw#2*TPJwGyY0vt~^w3Q|-*DTZW7h*a{h6ol%vXtuz5QV30h!Ppy%SzO zf6=2fC#mB|U9vxmtnG$lOr@JyVwp=^r(V>v`sVlOC`YV|B&*I^=iI&-RqrM8QuxJ` z3va7$o6qy$*8|B$(fhm(45laN`6Yev-eZ-h5S;XEuF(={_LK^hI3A^-GTrtwu9;DO zc8es%8+Ds4cb%-PZ7nLco2mP&+r~KGaLOt3hwpe6?wz*BVWs}2?Tbv--nd&et+iF* zHUq~pfm@j(f4zSd8C+6MKH75Fm*dU5p!VBKvbst_@3=&UA5+!px%;E5h5J84Oo#?M z|CP$Jc0=#eWnye%FHU(Iv1`ubIJ;@$n?;H5vIP&Ru?waBl%1%<bi0zxeCmPNGX}~f zl8RT_iu2sWXHDn)qOgYP>6DI3W!r3$g!WF568fR)mVCnP=APBO6-|*^k8K?^m7;pm z&y+n(oc8y?m9tXp9Y*cG7ImuIHf(%&T7YkM^2%1ReCt%F1%Vs>_)0F5IwRD|8h7Hj z#_qcZ&mGX3xqZi$$g^Qedz_i_Obcwn9<8+t3W;8D#!zwHDYcLlJHAX4i^_EqmOOjv z!R8%HiY+5P96eyTG`DLiS0m$wl+67B4tr9Y_}p?&Yxq2$;jr(szfg|yk|}i+nS}*G z<*X5Rb8XJamdc#o$mc7cmYSouWX*w#Q?I`ZWZ<#XOYVz}ZV1yYE?TiLXUmnm3nvO( z=Q6F6HgpZ#-QX?IWT_xC@7E0HqNA@^w)F;VZC2c@c%*vi#zWFO8E5yX%nKBGu=d!~ z<jlrRNqnFBpK(U*<`>$>BKXKDnr(Y>pqt*~*2ebMBP?R^$}8KiD?M9qRorB=P}RBI zX9lZ#Z+E1!EKB;?di_w$?HuJK3(hm;cW)om(Mc7bu|T(PX<3V4h|%e9ff2TjZe~sS zceY(+yKqrcxMXpYU{{^yXWq^*?M`2H?kAra+}frtoV9alWt)o75BD7keh>7PMRu*p zzq4(7!yfgb-}`R;TiE?CjJ533u0~((DaRT2Kk@k?ww~p)?lVoHPu0yC+$WyQVVM2= z93NArpW^F{8LRpW45AK8YVvsp9@bl99?T#XdQ6$~;_B3$B`vEMo=J&2onEBKtnGXC zcTdQfmuE}$CrG`t*b$YN{M*ZR>+OmarH=bG9wa?4C_1*&t1{&t&tDcLk(>j)R}3Cz zcdhi9`0BSRi<szth6ml9nJ=BX^!bezEnvHsI5$n>&ia~Lm(M+)VC(jj-7L>kW7AHF ztE(MD_L!dJ%A4iJwzH*cuAb5gre$09J)3$!W$CNb<Yx?jGaS~0G3u2$2l#83@0zN2 zJ9GOLZKH;RhgWQ#7sTS{%@(qA&s8th1?xpMIl_b|#Ri8w?D%xS@rd1&_eK910-4g4 z^wyQ?8)@^nOnvtKof6~G`BOHQsPi>3@Rxq)(kKb;Tkx*ANwWWlIL97?*V5fQZ8;x} z#MX;m=DMo7xU+&s>$LmcN9v^vriMC2!Ep-4xxGo|*RIY;;>udJY4Mk4*OehBW36Q! zy%%H{`4)O;9r!SHLzdA`(NC9D0%dOJDMq*oxj&sf<*m8&!$=-6{|S4xN{UFGF%da9 z|H$4#lQpN4Dz;5raP*{x;HoRr+H6nDo4f9CEOl=vIn{K0;+i|58H%}z-~EpF2d%y( zvNEuPBR4`d>SVUfV%DM)(^*}$kNc!Bi)fxv+`6nmqlfv*jWive50Z&totJBbxys^h zbUPkid%BD}jgfW2wryJK%yWNq_4j>cSt~Qg=*aDx(^>X#|CMps7-712Lr>Eg)<!3h z+<?$sN6&~lPU86$9ans3$Lof}=|(?#v$g$a+<GmNJ^kb}Eyoj<ZK-im|57by?^$Jg zG^<(XJm1=5Pk(Yptev=KQM>yNgM{ba9|Jqih?somskwOkRKO0k9-}v>a!%N#8fzu) zG2~ETlhF^<@p0gF)sb{b^*MGtvRh$sRj|RQhX-90S-a0Bnckl6YqxYN<FSN-0>y2r zzE^MO)QIlPe&S>D?ycA(=?lH*J|2Ih%`Ye`>m}QIFzWAu=*h_&I}frLii>k+hg45_ z6vzA3ErO}=7x$Zw+-{wdCow%;v#Ecw)}?;Gr_$$cw0|^f3=8Z(Uo28{OnvDQ!=uZe zpIOn=V7uu~(r3v~N8c^pddah8+(M%HIuf`g6>f8}CfJ<i*crz7D)(h$^|YfRr*3!b zeQ`Z#9rtw=Z?@ZRYPY)f96iRYcV1}s^ys$g#dF?j8>BE6hVQtX5MkND(G!r<F;DeT zap&WfL`9|D%Xe;Zf8zLR)zhy`tWxc@+t{>ZqU^LxWEqOD@Gh_^)MH-8>-cEe1k*sT zE~5zJy*`GTH%ngpY&Q0}Zz{Sl+<Rt^eo9(kD>rA-+qM{0)szOqcb_-esW7B1P_>bK z+p}w9`;=7@`l<6&MRvuWKJ2jh$BY`Od}WRqcX=kQHYg5MQ0*2CoThJ_J89A_?ud{H zhg&=I%sS@qOmxiB(3w{LjzzRP<)+-Fm%_mZmM&Q|K_EoE;}a8O;(nDq=k+zFZjZR5 z;vQ_W?T_!AyYWvAb}XK@^e0Qfn|GFzcy|5%C~<FlqQB7RU1#}}wY4JZCUz%mkY_%# zwe=|@XS*D8fySKRG!OoOSL;`Ny-}E0*%Kxa+2ZK8^2lO_r0Ye89M?139x+Xc6&Jm_ z;Zb+;O=g9}C#q46t*h9c2C~$}91e`g^>+I%$g^JXiXU@VRKw&beTy~6XGleFzqWYe zx}Y7EUpXRlE^$4*#L0A3BrSNI*aO+43Qo)i+=N#*UiHdM=bO}eW%DB2YVOSAXUd+2 zMV)HqnyngsM1_OFviMB43%A6CwObzLKi=SbJm%$6)u#3sw}aQGZm3h(w7I*HX}Ppw zwlb5&+)W#7WX~viaL@BnUViid&t-<I0nQ&52@7ue^!}Lg5upuNLPQF}1RUH>X)*?0 zW}Z3Cpmc{}(EALIO_$UdR#vbdFA#Cm-F>{{l5A+l$wTWhKM39_ytieCQubc9a<-xq zaY4}sW|W+@W8=Q|bmy*v&o~9z+zS`89uvL7BethdLQ<|{?b6y)s;k3R8!NPn^l8~~ z?X?T~r7H8Ze@0e!b^}+g?ZE(DqhPsE*S=J>OE-@kSutgf;l8UUA4xi#o6szERQF68 z+xi*jjf|e(ddTIXqa@WQmFl2-XEo=-=K)v5>MlLdFxfvNR>W68(5oVFgL{eBqGxCK z2VOHMI=(dbc23+aNo}5EL9CaP&zx#_v|yU^p)2{^d*dDny-1K*z^&cx;d8mUO+Ia2 zTINy7?L69|HDaa=f}cx8SkBy)>dr0Ft?G05yMLy0&DmwSpAux8bz^k5^K72uWP32K znS0glmW1yj8d7I#9iwwMW(9QGUpn+KA!hln&QCSB`mH;(GP~_P9M=TI+Z%E)F3?*4 zE<D3T>-DkZJ4{_sk3uDM9qzBV%67R_|Ba|#hr`7^x7_y5_O0mm(-)PhC}9@5#;wP4 z+~tI%@`TQ#+{uE)e|-YlmY&v-Vz&9+FFq}A%^4}#xd~GqPOGkUVeRLC%dmj8F79zJ z^Q7lje7mb1^%iE`t`CR~x)x!lvwg;^vt81!L}h2Nba}jV&3&{~(u+0L)-l6XL;j48 z#I0-7bu@3?e-^~>Zb9#)=UT6iFiwqpUgO;zsjvEV2j|iC59Dl}t}Sl$zr!q{c{YBA z&Vw(Hf|RBt9&rnIN?>o3kV@q}KS|)kg$L7{&TAf@-Qo0??F`rLk75qNo3>hP>$SM* zl%eW#Fn-4!qwU^8AJgTYZV(QizQy6G%d5yWY&`GM3~ks{`m~x}Hb|{*{AyCWUw%eT zkJ1*`5Pd)Ejt}g5dLrG?%R7_f8l-y~k7XA#?YP?Iqps`y%p%v~-s(0j?r7oTex+Bg zsx4yJ5!N3d6k+qxjFrnOPgf`;kwKJOcgLn6otBhOg{xXLp6nA4ZQ9w;#Cyx-Yr9hX zQOiXZD=dXYT#HPY-lYr9&<%Qe+uMcxwAhgoW;=DR2+cV>Eq2?%wBOS+-7Pl-+%ONi zAb!zj(z{g;qc<r};N`P>Fm3JWiCw}Cn)4?me%loNme*`$)ieip-Y2a)KLwn6F(p%G z;;dUTDeVbSQ%ZF+G~0eoc_|#O@ol=eBJahk-B)sU&q@p7_I?(pqq^ega_+`GzJA%s z=|M-&uL(5kxhlx#`go@ErlN$-P)V~Z=G&U?oDRx7zvaxHwQ>ub79A>mr+C+Ir~B2e zn;mAo(-No1dELu;7`#C9$nq6yxclF6Ud@Q!Jxx_?;Ti7im(6Ex`cGxKtyRR#)H&h8 zSDv+(M4r6e@gmf-`1j0KxfO4Dx<rN6t`La07r%2#mEpst3CAoyYHnEj?nlop<zs!u zLOem+8Uo`LE6yxF{lZ!FUChdzbH5uO*=;VDWXkwRJ=R6dFMN-af;n%C;r5wFk2V$y zZWUYiv43ZV=pQwW=H2}<s;l)y?!NiuJ!|m>cSE_%_1&FQ8!H!g_bf6ouS<*E(O2uO z;=q(!E_q|??Yak>&RmUKUYN=E^hnXU)sbHxOiQUL4eOY&J?!)=Ep3O^RR=<iOctNn zmLZUKY28ZC`Gw5v^<ta;9#r2b9$Phi&HQrFpksau9(*@qW%QkIQ1CPN{+FW(6^B>7 z={T#}6r$}^U1+d=vT}Tfy3vQGrFRc(@3t?{YS?vXJxkKEp1!yw4d$#L4Fx4}=R3-( z;toZbhlQr3eq%2);&j?surk!pp}g_B(N^Uwt?thjM`sGe&*0m<bI*~c2|KO3WB0S_ zuh5;9aKbxct<KSdQqNAuY?NU7rN!+gvEazwN4dO*c#}npPP?@T=B(Db_j`IsxXG>` zEgWn37@s|8>RznzpCNE*XUN**gY{0VIZ~$=vjoY`Q3(=D)~#yN&E9PFT_lEY;@ydh zdUs8^l)E`j;nAm;pC;X|nPF5q(^1hQ!bOtTWY5zXhYl6Kl)1%|899ZkBe87Hga-Q) z?|3;ly7jMUHA?DpHi{N|&VLnh>UiY-Gn>2$Bvvq7xN>{q)C-F?-AVhBQm!j<cgiE# z)vNlSvQ8}gR?#u5PP<EoX=BZg&c+7~XLg^PVe)*f!EUvgt5{||+U{<CWE<<5smvzJ za+6dWUd}e&aZ+^J{++2(N?qO)`y3weEf<|UDfiflR}oXr7T+oPSXpyg)R(<8)8L87 zlERw6mwkeoj~E-hu08E&l-*!+@lMv^=)9YA8p>A17tNkhZ}7p*-94z4m$Rz-n(BIq zN74}@Q%}o!o!|TSD9_=>rB@ETpYAN9%I6iV>CCk~N_7Fx?z@E<Yl1~$f==(1dv9#s z%o1~Fne1k+y~!Wq3m;z1niS3uwc;dSV2qWltJVSOwJ}**Im<<kb@ho>H*vd$1YCJ4 z9kkxIW2S5WkEvG-oKn{CEnT$W;?a^r3x9I&IKy>ayQ5Pitn8K2EawA0uE!T1*<i#w zw_~b|+xwNwRa!?x><hkc7GADmV0-bL!lPq77JLtG-4N$%b3CSK`=OF~f2Y^PW;a{Q z?>razLhYm*<sB<`tYsF7H7{+RU%;^0=76lw#m$pT4+@;!!E-^B<--oPBcJ6K7_0RQ zZ82-HQ$F-)R`QPM6>IK9Nt#B+x;^$aKl@QQJni(AfNt-VD{@wcN+fLFdRVMiH;Ex9 zTvypDDT+tniqDAyy^f`4tQa1iDLGJdf+IrYjE(oIle_QmwzJOa`!r!)kNZNOEw+vk zF(qdTxR*6IewMpq<<;e*cTZ*g9RHA}%{naq%(--<Q?jBetTi-PmW1qEaAtPokpj*l z)0#Wteh&}+J@hbg+nE(b<)3egev)sNt-g1$ceBx^Hsix0OqN?&XJ(wdbHE{l&uXR! zpXY?>IZIM*<-e3@V0}Ep*URAAr5+ihmF;H&dsr6Ae*4a?a6rw@Q|M*-%q^O~XRcZM zNQbw<l$*=w{W75qq3!H5GNjpF1*n(R9^afbOL^Jt^RlPCre~KMJq(k6mb#sH(zAo? z`2lRw$Ay*NC|M|YdFFpgdt7+;d{WGDHp9!ZMz0f{?}Uj)ZK-TMq03xabId&GXmPFY z0ok9bSr$z9Bs96=1S}Us{S#PQ8Gf+2Q1Iod@>lYFJF1@vUMkB!bZAaXLCCtftGMC~ z-e$cl6v!12Iat|vAgkwTz?$f+x%~wyhpc6sD~s3yS*K1pkoUVg<B3jgykXbctrvv$ z+Ft0EvpsZUNp2{c-%pEP;nF#AsTDg;Nj&i=;@0Kd-C6kU@J9|EL+|M;ZZeh}Jsm3j z#`3fD@*|FNi<|{#6l%=eVkh<Yc*%mL-#kv(clRIN%gtEdv1zvI^W0;y3o17Lb(<z# zc5#kZ)oIOkD^-<N_YX6j^F+g*Ogo^Fp7e8Pm4}3QzNh{Y*L3$QT<m@c|9p5YR_J7| z<3AIyBsXH8{bJF-TWs$CbGZ@v@KL?ij5UY)1h_*rc#oJq3@ivaBC>k<jD?5RJ3ivG zQehVtFDO|3we#GX1BTKJ%lZuk7G|GyYUQ=?DrI;bQssT>rbpUG4Oi`~_nkFIBE5Dn zFs4|&E9c~93E0P2u01uK-(n%tgDH1bJ>W|0IAXwk^6#lb_gI3@x-Fh*Qheps%?fXx z*n3Iy3#CHX+>S*|6+UDbe?aD-)Rd=EcNZ0S72P~^#D4c#p$?IzudJ<=_FD`t&sY~0 zdO~PT^9QHdHgk_=PuTPOyTRd8r=kvA3E5pMAiZ$QIi>K#OXnW$I;hj6b2EO6cL$%y z)9E>_T-SG&MC7*itYR#96p_j+yItT)g3R7S?Q?6LquzP%+%m6Y!MP*TCMalDPCM4= zeMOQbvPYspQ2XQ~RjJ~o&tl_*&hUl@oGmO5SoMY3#j>jKnehP|LB93Ytzr^_9ru~@ z)RcPHAMx06>VpeAi-v{$&W3fWvy=mt$WPkhdX@3wj-Py-x$}*t>{~k{)SYc%6knx} z&(w?CefF>?704-=h?dw$H9AVKt5cQoh<L@Z&-%<7k)MJ&Ti$NpIn~lb#DQNvolT0N znzynkU|V4S6_%K@yLPq-GsRkeHZa^GHhJ@rtz3oYZwf8l^Mc=aF0V|q_#_#nt5xr; zm|CYtOsR4U{Vo?c>5rj}&J;0qL(5SAnI0S8-rO<amdoqg0w-<e_XN!<t>|u&<l)|P zsN<pDM#nSNo}IUv-S5atZ{&MyW$EZq`7CPg<;AykY`z{@FLQ*`>~vI8@|-1S_v(mW z)Jpoj(jocS`z`CImNdP*y4U?;tI@r~@kK{g=S0PK@I`3E)NFXo(75s4%%aTlgq2>U zp?WW`8w5I@&q-eObwxv2^@bJ2WeHM?_%j-lL;j^@NCbU<+H7=Z?fMRfHLLviXRu4; z+~b;}#6RgqBEPb>_?lx{Nq<yxQ&xW2?D%H7P$^UV!MjzdtLK&Yxy*}CyEC0R^DJM) z#>oLiXD1j;%x(OvqZhl+@l27{hE}}@xi0UUJd)dadVGR);^Y!Oe~RYVU>dzYph|a_ z#b;dxi~JeBDQzE~?V7$ZdOOPl*Cox%UU^L`4O-hQQKVkDZ|_$_%Oid+S+h0dl0R8K zp0eR+l+-7$FOkAdg(4xXfy^R@HZTVMNOj%+{I~PV@SCk($AuRv9$w0r>fPkn6jj0_ zYks~XSmn|Ajrt7>(%$`O*tMGZAhS=Op>$^d<uk<_{J;97&$W_U>MR;L{jA$F@4dXG zI^wFq`|JZmo8K?zd34;@(7<a?bz9m-!vmZvwD`WbWVO%s%-O`ua$t_kM(N$pSPg2< z?0cB<nQhtS;C*?jsofgWnYQNStyULSG3e;%KJh(E<yFRJrbB_tgRY4%ZH(;JNJ>we z-G0!fH$JHC<ieXp3szfvW*0gbBY4y0!_qtYDLmH#H;40A_O9u-^<U`|WFTdwmiL%D zdwn6ZZrJ1BGc*qL@rN^1c_mL@)x~=&Q=zYSu0WS^)V1#he-<v&Vp_s<bCc>b$*;V7 zHy8>UN>+PYu`)eyo|0*B%3ASXK)^bNvo1B4VsD*Znjq%A=XcZZ=@-3!=duaB3@EG4 z%yha~d`nj6Tvx-4jA@orSKoH+TBmAgT9y@Owc73EuSR>rXUnJMW(rCjww!uQU9&Bn zW!LeTm|(?ydB(90=XOjhWmx;|h~9-o50|WpRx=dmeU|*AWa+6nbABG#b5>y8;<A%j z)*0b7-fxm;h^z{q*2JzDeP~a)KuTC&-?9V^D_ga^GuQH%L~k0DIGvSx=zK(P>x_(e z1A(U+rFyx)*y|EXR^K{erWN+?%^9UP;rzuBebK+B)c!mCo$2P0g)1KOZi))tnWnVe z&p%MWo0~Z)cjj-FZ;ukq#k5Zz30UacoUAvk%{@oMAYz?c(avK|?ysj^bonvMxoFvm zM+=Nriw4J~_H%@01t<FPrhIbik$M?+^v=?XurT(}!+ADG(u?lpuUwryAx}>u)Of|8 zvuX=+5BSYEv}h%-;v*J@mIBq#1Dk$LVU}r4nNfK3PuN1ICp_lm!GW6W^;fpV$b8i~ zQC<2-B6s@IB-O}p+x|c{*3<h7`@F7b$GCp6NZdNdVea+bn;%6_8|qH#f5l*!m-U@D zGl#n_kmrN3*e=D~i5l9O#j;Bt1-wez_-4w+q!$gF#aiQ5Cmwz$-Js*3yX7O3ckvGX zgPe<_8cS?D)J0cZDV^H8<BjsBGI^e$JBc+vn|*op5Aj>ho${cGL5sP6MsuP|$-AHZ zv%fOR#me>vPP}pB{wZ^DW1e!Z(p@GS)3Xld8vZ%`MTT`s%X*=WCH!@Y{vtu~!Ymg3 zCu<y)mPOvG^=`Oum;2Lk&vnJ0g-(WCun|c7QM;(3YmHx8p^Ucf(Nn75E4~YPw#z<V zF+-ZwH1Kumh39cenj#1ECWbP+N;9^O4f)+BcDH}WYVV&y8v<lRJFbatEYh_%JoW9{ z)7ACvcTx;*Kh`+3rbREf|A<>MXVcsbx^Hvkrx)`CcD}!|&?@o<&t6rtuiH3Q@H74D z)-*QBG1+*qc|xK8o9^As@+}_BZ_iYpyL#3;?kwZ{85-wg6A!$#di1O5Sf<?~lgRXj z9m_LB*p{AJu;|n`Z;MGULf`aHl8);XPKk-z$KkN_3774mX-@=J9XfrQ-R-u-{r$$4 zM?bJG3%*izwsMv1exV&{Dd9@zj~;JbZdcjT-mZGekyGHz*4Jl*T{pJuH~JuDVy*o= zpsA@$D!gFF+<i@j1uG{Xaw#$II1zJD>y=gPnG31bvWN9p=eWhN=OsTdVAegZJvBR4 zBxTwc22nq8iL&C7cgLb+RyX<=&E{|SJhDqn_QEB{g)@xK2#0JC(cST*fw|@=pNdb= zscyM%aUN_O5jpMc&w?goNW`Ttn6SsWWM$#%U5%SoI_x*Ny!zo&Gw<SA;_WLVopQ<~ z6umTrR%+>rmbn{xELM!NF_p67pBDG<KZD1{lYuEeX2rO@y199Wc)Q|};FhbYGaNRE zT#*fl^>JFIzBF@6U{M5rVgIR@71O;_-*NEfbGYz{J)3bsZ2Gcv>4&_j_A6&uT!``H z;x2nvw0uQT?jt3x>WIvVHs4Jc^xYPz@cexy=483oC$e{Y%>lO;>d!1fqhEZ~ICWay zC0THy?~co9JP&M+uJfI)bV%z~aQZT#%RGwWyH!mt1l{*jbnjhw{m|*i=72fkaZ9tU z)TQ5X`W!T>bX-}^{P@hy+Dp@$;!d}+c(wfY)a#3W#?7^O(f64J4_!|EIcAx$;cmf! zqcaxniP^s8(r5o2$`{mG{xbwFI-aFb{+Y!@DO&&IP7k&VC;LAeZulsA-Gb-w-h(}? zS)JV*7$+TFxYtSd9>eCCES=9rkJbhhuDtoMcGX|!MGQ6S-(@y_$?W{&WRQ8R+d*G2 zB`MeZUggg=rdAo#Sf_{w!CKZIjq{h@T=i?lQEBGXs+Ogu<s1hV=PPbwSyHr~$5BL# zDP@{x>^-eLQa`(9iJ9DWJZ{vPqP@wwZ;GsBPuRYv=T|0j<gT%w!6v>cX`_+)nSX(Y z!xemQh4m@wSe;?tZ5Zg$xTjo>S8HXzkJYBN#+Fr!BH!`q-Z;`)7t5IEp%VIV!zG`# z#vSTs7MUkZGD~FLe>`ZxMfqnjI|`d0DZS=OeSgN4&BUVS)Zdw5chv>%E_u_iq2b1! zFK0Ln+WHNqF*rT>$~-e#)I2Zhn!n)Y*{)AK?o2sSX}Myva=D>K+8e&Zn<9dAa)jo_ zGRD{?rshPx()xU=dRpI?jk9bIa#+mi59(Q&=d1r__Pe#rvfJ+ne%KQAx!`u>e4Y)i zvD)iPoOii77|R4SY&rN<Zu`_Efw>Egb~K#T@nDHub#$rS!d*ER9~?_<Ocgj}bD(xn z&x(HwibM|u_&s9FZDIT@7;80u>Hz`O_dj|wboUtw1@Jbq|89@ink;!GU~{3h*sGNx zKO1K5n5G`6v7pG5i{aM7E3!ut51dk6S#ZpES~0uolLn{lIz`EKbB?v#Zwbqm4G}mQ z{#7c|VSTZqj`wq&b8B|HtuyWW<hF9tN3oT1mPhu4%vk+d=g{0moBydku$mrwN?cqz z^O-aQPuN52neFdN=G^!!?!6;-pO&2NJ6(UjbfY=ie1Yv(7Ho(s)GcZ|-moDk(s4cq zr))u_e%G`hrnauV745g4Dl_h0={@B@AK$*zcLJyLXM8QlkX~N2?hezrJuDaAhV7AC zdfD~fjLRX%<!a7;F?#kiwbnsLf9LtHQcQ76(p>{C``!t<B)8iue#KSI@P*6Y#oTYu zf8)?~fc1&|j_NzSd+LL&v^Y**iSAE1P-tdy=*h~}OST<+CCI;Y^&{2t5Z$Z)8J_q~ z<H!t(;acI4I%}F=Q}MloK<BVY>(4ziNwK-U<X*4FJsY1znOEN}ZufBNF*AJ?;<aki zan6-$cO(8Y?D)^X^I)~bR1vRJoktoP9{3pxdqtUqJ=5Ze%lLdRzAz;>bN{>toLP>i zk8C*Eb!P7QY08h!?4Q}LB-<l#X}f2R*@MT?3?UgQLJh9To28E=Y<l&qV1my<<*AxW zTs~ZDf3_^x*1pBWoa?}60p?VZ6>MwQYWE+gxyi-<dqtPwnzAz?(orUSnZLUoEN57I zOS5J^pRsh7Wyj*6-^bJ>HO%hbEi^3J-X_e<+SYM(;er;0nan!;y9)2REas>*oDtz$ zwea|>fHKDWJJ^2AJUpx4VK-;vic)S*?XISjhdxJt?8;tRIlYjD>lBMq_Rq`4UJDA` zICM^%=^R)Z5;nuHG5G9+7%wqPn*)np$Yllap4IkIoz*&hR@<p#cMj}KEBbMgBkBeV zw`*7J9jyn}J6=Tf=-$+b(kY#B=50tCN9!J4MdMFflhUp)y!nxvi8ngXrQ?J6Bb~jk zz6-2et5SIIv-BM;)|6d&_EURi1#a!QELyPU__YhMs)tvt%lMp_-zF~B-M&J_TzJ)I z?bw$46Cb6$%entm=+Xue^Nt9?7O53i119{`)7G=9wLKoSqch>T;7T27Z+&mQ33pdm z3M}+$-l32+>-&P|&lsKFys<sB*}?A00u_@D{wf*Tkp&Y4X1(Us*Kxe-EK<>-b#!&v zq2n^sYy{FaU66ER75b{R*<oYR7OoGB2lhQJlnI@hnGh;z^t*F9M=$TOpMlIxe-8*I zXm4D+zQb&um00+LZmA`E4zxX+ookmMs?NOmQIhBhox7!C`&#d=b$jyOwA4~{()=0C zhpPl*w>8Xukh*ZzQ^RLGJ!?#sPyOrKxO>Lp841U_Q;)n-`p<BL(fPvbBMeg_XCHf< zGt)7B#TzRvn|*;>R^8asy|bpv*wlSS-xaNcjHiX&4o~6ADa;XQ@wt8Sk#TQS{td?s zsa^Ho7(-V!PJbr!T&?Wb)hW!OJbj;MS}rkI^I#gk_oL-0nNiyoujka5wJDjs;A%(f zmlabQv<d^?otIwQoOU%m!+T?;rZ=<2b%#%9U(G12_10=!Tv%$A=vrT}PW5o~uh}`D z-t1*JY?!s}r~7(A1~Y+#imIklTt~!|*gLd~D<hnqFzTJyVCg2=RpzU_W5FG<8<Fd} z9%-!TStc-JHNU^%k!#0&oK!Zk2S&9%$hH2}v-Hy5%B~$wQm157`aXXbU@VF_vTJ$O zyEwbJN!u13DE@Rxs!Phc)w8;2#R<cZ2lYEEr)rqZb-Z|R&YS5Q8Z-CW3;l^RG8EjI zvL&bQV}SUP>V;dboNhb0?CH%}7nhwZbWDA=s8e8r?{+JW+)|cYX~V#L(TXE?zAUt! z?w)aBVe}QY#kb}x7JI(j++f!2l%KsUKaM$ZnPe{Xo>0LosljI-Fm;-Yw%{3gCnKl% z-7SnqwFEks{_0xho0)sML%<?C(WGKl{1%Of4I8VwGkAqgZ@b^>{c=CM-K5(lyxkv# zcG*bpno;)P!0jUo#Wbc|-M3i#&dOvi#Vb;(CKELnUd3!>mTkG)$1FWfoM-8F?lWnt z8Io+yEKGN@j5qAv$i{wjL+4(7?WZdq6(35F{XO0Gl=!lS&fPB#y!hQ&FICn*<9+*$ zFHMTSuU@eY<81xPHkrq?MIs{b;FT4-N|Lwfy;~&Dk}bw!<60?Q`6;11fj!8vSdS~& z#Z9k?e@cWx{Lyz014Y?4rV5?P+N;{T?QGlUD`tn}3O*g|Zsj;-!;`hu<%Pfcrhtf~ zqxbj{_UzKymuIS&wO(k3xBIq$*J&G#?oL(~{PeEqymsf8*G+4ixC^fBP@erFF|Fq4 z!ZQm~KJ!kUulS+K#Dr<}shHr{i#zllEspisVyHde@OfwOqmaWB6XPEVuI+mGl{Lrm zw%-C@Zr06DSBOj%O+O;o^zzHwn}Sns8|kq=QY*M=T6=I(EN}eExeqiR2NW-JUHa$L z(`CogJk*XgSe^fBY_`qvqaf2Rv;Pc%5|5{*ZnsNb=b&I%_ozEL>HV{)B}WU(KT7P` zHY0df!wG?2?PcjYxuN~<I3s-4x36^)ZS6UeloRkIDPp0^w(K)14cjgTIy&h0FIkY$ z@N@PQMz4u2XE&D{-4_rQ`H;9>mcP!!drPpzul~!N@p4Nq?Z{pFroHTNeErI`*D4+f ziRT^BsM>KiYNd4lE+cK9tU2#_PjRoxKP|1j^p(xFA_*ov*FvFX$L#|}jy{c9Hsg*; z#2(ifyq~jzzcOvq$YHQHx^eB&4N;A&@Ae+%-|)|)Ei=1wr^};d+R;@FbA%NI);xAe zT^lDZc0{WzPjt;M!Tg<-zIQgtr9C#?_D`{^;W_t9HS5N#{<#~i9G0Ef+oK*7oL$^M zGhxA!&N|bGsbZhlaz7orq`GZYuhFBME){3C_O|_7y!fDqae?xwS4O`t<^*5AvtWma z{T*%Q6`Z{Z`*(cm_@uF-`Y88fWu8by=leU}UEn!>O4D10$3QHEVMoKP(3!ie_ANRo zxGQbnW}ch}G5NJ?;?jz`G&fdvANthA^q(Q{0gD`mhq;<S=&z<(ch+i}SQc5FlZzJi zVEc2ZMO14&&*_b-*VZU$hv@_dt?XD>-r>!d8|Pm1jJ@tojf;MEnBFUscHO{>M|eNw zC&%x&aV~s;tZUeo;^2b|y4uQQ#1Ha4OLRZQt=F}>%Vme;42kMvk8Vx7@rtcv<C%g3 zPjm!hHS_c|UhSW`X`1#Pui2to<!>3Rk2u0nHCva>Ugn_L2e0|x11slDovm6iVbM$f zeG6vk-R4{w_|yB-rxoIlEmj<13!Le1eni35yP{%+&eYWShf*6fENTym2Xn7ylL_Yz z%)UDzUg~E4%67XgI;HP8WK}h1xdpC|IlS3o&DE+$@d7)hGabsBoD%k6YsEXun4~Ka zeA84Semb#u9}>_%c46zUM}|Rf%@)@^-Q5(l=~n}<o{Y%ZwO)rbg;keM<6PCCWwK`T zJ5BE2nVq6J1v_*eSP4B^)3V^tgfA71XML;mc~feRopdb^c)obDpqQ49^zouTKCZ~G zay;DkXME_mz$QO4t4U|q%V|9y3K9w;*H0I^)T@8*;iXG*JeyzpdNr_I(XUfoJu#<h zWsBsd*$I3{L!*@!TwQ1J)%c{&hrg#M1zainYVdGwaH>m3%B?*I_%=20bk6LSnQT@a z8~XXSWYJ-ctc>Y-wcbW-IhuTnyBcK{-0gU`VIphugFAby?#764O%_O<SuY?{aEyEU z>y_Ij-!_T%F`e@`wqVzrX<oN<FY>PCx_tXg(V82w0(oJ27tUOIa`?}5okap7S9k6( za*&Wdc_1&8!RNH_$_CfFEB%|?)?0*KtNhtBLG{7xee0y#rsx>Es7g-xv)4U*(yfVn zjB6H@th%zBu`^n<X~wiwf?T}2*Ch*DoIBj~jMsuKDvx`k)~65adG<}3Xm4`csquKn zO^(Hr+1H&|^~Ygj>eTK~7daNA&J9_w;+l9QyI%NeJYrt&AV1^K(G4f(dG|Cj1-GqB zef`mL-61(WGmRaS`?NA`U1S@x=LZ;eEYN?qK($a<^-rOGyyRJ%BcgeMnGdd3%y9CW zVSe#Q`KKEkIj@YePp|gNI?=J{PC|>4sN6n<$Fq-ImzcWH=|@FJXy|ssTP(aYu5m~D zxt~2^c4A%K0;$kRk0aG3m8yE9)t0j_E;I?`60_5@5W8_|;#cEy4Po*^w;Wg9dzT$! zc_K|T(Mqx9n3VOjQoTKn&nj%3W3ATg2$opblJ@mku<o_?omUtGuNNl&aSS<o=D|^| zYwnYn?`-F?IUN@3wwryWYvL5W^SVb5-JNy6!(oGZ3X^V!jxw9-ruR#poD9A3d8V&J zZu55yjo84e2b;^d#cv8M3R?2_OrQ9}*{^~b_HwW=CS2L~NJh-zSaRF3fV6(0zl=Mg zpUUp!YJbtp+A+&6iR;<H{hK>X#5QSuTp4wR`_KccAG&vTn_fssQrNUfmwm=1^M39Q zr#9J|gEFZZmhPhLQcEHazP@7~azew<Synt?x#*s>&pI6WodG$kpI=i|6!*(&OFsEK zY$+#Wzu_l#b(_;7Tji|WI7EZyKGJN<>t1!GMyuh``J&giOPhDF7MMkD=kZkwShi<t z$0=7Co3AsRrXKzHC^fE?XVM{sTR!^5My0JmMU&rh*nbKM5XrrK#eg^H&LhpK3C&JC z3F{uT>zwBnZd>qV-p;AJ%8dEvZnz#c*-zPcy=uqxwM$(d>29l>_gMT2<B#5Kbvf$> zOUr|$cewc{h*(*+E#O?NKIim2pTO-q+I2WBn=(@_y?mFr>l@eR!fgpWrZ%FNHJ=GP z>|<QM!u4qCqu0e;H^uIpI(0{e@%kOt#|GuKj<<Jb?myx+cW2kznTgy6_m8-0<jl3R z@jh#IuDv)(hFx6b%0;&WpS+_cri<QqWw-Cq+UAc2v!0j~oo*7HoxHN?piZB^romMG zO`SXjhuC)}F(#~N^^9siVtC+Fe_e9tioN+WO|@(oKPR92r<!4U>&nkAj-_q=?@VJv zO}xIDs?B3JXpjxqU%%p5V96Bg1_Nb=`vo_<Ic~Ps98&u9u<0B7l``Mxqh}sXSIc=7 zaah1obY;fhX4yNY4>Wei2Xh=c75R!o*Kc~^25zaMxJByX_BYM;HErxmE=vmBy>)uz zhQ-sglO~GUg=ucr(p8@^O<+dB@fH78e!jA?C?~O?VP#Rnn>neLMf(Fp!Y-wLl(O}S zTYY4wpx5R-TXsI0EaRZPN>yxLs?wGX1zq=g1zY<>FMp7GCjT{y|6O<-Z)CvTV@ED) z-#&7@a$CcHhGL7vMTH-dQjM-{oqxwJEvL(7;gsz7-79Jt_RSC0$?M@rSbBL&-ZEzG zW&u8(gB-U{Gb}w4B6y2mXfwNGTpL%y#rp>pUAOLj^fmB`tK;fYO_ht6AF?c5u<}={ zNB&{McOlJeQ(EtG`=6{^D6jikMyGCvxb1NbH_68IdEvaf-u<#u(29?p;_4c8)>zI+ zC$4(h1Ku|MuR^V?(X6vq29#@EIbXCh^yTI4XO28$pQ7;Q@v@&Qo~?PcZnMr=BT4z2 z+BW4&YF!yz8eT6HxD@<0y6=OUxY6q?TZ~?7KW0<2h|)h2WOi29<UfO;(dJW8YwmD0 zeYyH)aqHHA>*sf9P2U_;+3@T!kNWcqch&?1q*#1q&0uz$B5>|i<1^MtEy27_3T%hX z_Dnj?nUuC?(}tKssSzcM9x#4nd2TE_@o;H$nEY>fGh?QgXV$SvzYRA~>fG=k{b}p8 zhM);w#h7~An%6j)wM{;hCa~h1-?;}ry}}k18zk+sx$79VPI1;li3v*^C!W}N#w+8f zjj~q51)bVEE~Qbi`A+5@y81aj=j?s^zc_}t_AU4{H6yscR76E;!G8vGS+0DSik(hA zTPLrcp&Bi&ml_+H=g+B?ov_KOOX*ulO}KIX>w<9hMZrs_$nX~&dcYmIiBr@tjYFW} z^ya6t!iyPF9hW@`iAp=|u+PK3TlA7{=Jf45zJ2EYp`4of?eMA2_A`=hrCV>l;^^fL zEq|wWt|9lqIpqeg6VvYO*WD?+Ov>%)tk6O;HumiGI=qW^O<EVf_V@1T{Q+#3tKOut z?T+@<@2K3hCd>B7!iO=}OSSiueMp)S+x9{5+nNuOO;=~D1{qwxtSc#7>%M2t>jG`n z6?%KUL?ovaeU_3)Rbq>3J~Pk4%Bsz94ez|*XKKxduefJ-FE{$}p#QG4V~5f_iC>1- z^X4rMZx)I>xpLdC-U-ti<`=6RI=YR&gZ0|iZ7Q*xiA#h<oWovUIl!Ep_>k3XdR6ku zV1pZ(Urup7y8S>+l(p%e<rRnRiB7UU6SOX-*&I}O81=flY0I>Bd0C$pt{lyuGb_E5 zS(YDeJvjZD%H1a$<evGyO34ZR$kls+CoSd5<@rxVwmg~Be<fnZ*~;w!54U%y>Ta;v zyXnfctOK)RME%aQtYx^$5Zf<kYkDA$g>7NZ<w-WnzJ%Q`@H(Eh=Zsd9K*91hn@Q%8 z1uTqb<Bze<I_aFcOffQYE)QRz$#nNKHHHZrJ)ecRT)g?Q!!%a3xVu@@F>BY8nMV5M zvW2~8J)+jkHJ5zxa(>W4quGhOIaW@4v&K|7%v)bmc8B1r&9Z)HH=WxVmLQnczhhA( z*Mp>+PuT)LzY+;pJM-$#MY4w<%EjK<{5Uf_@%)aj5u$U~@_4bb6jt*eIbPIg`t04a ziAhiUR<xxaT==Xwpyf!$Q48&kxs8*52t1d*=WuoIu|HK4vkx5K|G;?W-jBTN8RYCc zI(IG#KjV?OrHEs9?5#72vODzN7jWLrF25sGY;riXvvy^1$=2sr^5oOJel<P+GoSB) z!57om3I0W*MJvuJ<t)4N<&26VoA8H(xiaT_4~xcWo;_rpt^MWqnc}%RY2t^O9<a8C zetZ?;k??O(N9r`0>aNAhGk>**^zd<tth%-N{FH>&v*C6L`vSwVAMrbFeX#IR)O0TG zLRZ%_vv*%`Q94-s$g1_wksF3D;##k;m<8Ov<D(R|b9<+Y8>`HI9h(Tz^=DX>w&-=Q z`IlVnedOSSjxC};z0OLQ<y5Q2b!b*TQ;q#(@j6(Z@vydXN7Rwt13`1_gXT+4c_q4F zYtWtZ8XDsBW;A{LxqgNG1y&=w<wgOEre86NdC^m+y!PN_C7WfenLC)2mkKyDO>VOY z-5CBXa_f?IjYB-Tn^qpG>N`BwtC&MvGd%YCcZrxor^B!42uhpSv^ZB?n))eG@|??U zJv+sfk)Z}l1ufjouR85k`XH)vVAY{jj}(-hjpt4{o9+7N@r~x5rIozCPKjAZ%XLNm zzT0y|a+cTIj~d6gnV+n5TUE{QDfGZ1b5=Fm8FTKntUcb@-`G;pZ?JAf7mNAZzVOm% z=cjyDiq<{$C`abX`R#$bxI%AAxNtL{`OMQ)qwqs;dEuW!Z!9PGUEA3(^<H<UvTy5_ z;5kPe!W@?NmP%ak*KiHU5zj7{VcN=)cl*flY5!FBJf3mMTiU;6IXlbR&L*j!Gh^>e zJNvk^RWF}=e}6~Xaee(ei@Y{y{JZ#JW2OJC^pg>6S6?P<5jdo$Fx~0EeThfu7v?x$ z+4kau*6Q^~Zl`IyTAXu3>{+5%IFHt?HjTDa-K3Nb(Za}roigXQX{PyIwUhA`Tx}wr zQXeF`Z{v=9^`)PWDNH<e&MNF*n!I^{T<U9slKveNw~Iz>J|flil5gYgcM2>HJ7g!c zznI5%L?CPTAs4nsKWnAq1+QG;$^1B}s8J>C>h*UKJXw$3=l|>r3}CIk!lh{OB$BOS zjny9~kF9M>zn$8wB;LMjZtKQ#27T$xdlqe}j8jT|=hOXcj+1JZ&TXA9-C3et*@li~ zj1xa=x413+cG!^jr@m05g2MMd3)@z1TK{g*v128?MH^gqPTTyps=q<&-SZhU%)`ol zB-rI%-1_7dj}qIGeI1F3O40#Sg#<UA`e);Cd~w2N?Et~$*{k0%D6QNax$n8<s<b^z z<;<kEKJSw_w))?51CgI=H_V+l$73V6jeE5=ckc0b++yMv_ATDEc(1*WVvN#z&KK8= zH91fHQWbQ~S!;0T$V0QGIo($~_{5_5X9idD_17&HlWa(+ey4R%e2M&>eUqk~lzVWu z>Q1Y}Vzvu6%ZxmC&){9x-nrC`CFP@7OzyD)$J-1$J~J(v!)hY&L(?(Xc~d~lo<mt& zXXIA~DctkFa`(gZl2cO_oIA2^GjGqz`lC$ylhjs5hCNs#ZoYEL9Da49OA8{N3b<)8 z{K{MW<I<Olzo#CFb~uo8BubAl)kKWR$cp8zRfFoQiMw`Aduft<h%x_`yg`Feqq_O} z6?=r2hCZ48-s_fJp2gL$1N>eMdCzj59+uo9ZC;ljyjWw|zr-_6E38G2x<=~s#W#r? ztyob1M$jX-J7#MI`+>F2+fKb#UzxZ#O{T`#f$h|-q93bP#=jMHiH@+BaWPsc_U`_- zMVq!K8ytGQ;q~=9A#9CzkL)qYnt!IEozGjUZ|Yt?p0o*Wj;S(RpUDPxH^*&UJ441H z%dGSTXPpx7A-zk-KJJ(iJnOr*Ny&y845?CQnD{k{9azOzgjcc^xLWY>@^f>$FX?66 z6vh+QEvGQyw%^T%N})?P{|pJ;t*X8!yg+-I+QO&OGf&S>p1xnuW#iJMGJ&UJ7DlI! z1jOXb+$PPm_Nb567TGVS-4E`UT((bHdEtUI>2nKCH-35}@Yr75j8A``+T+bp;f0(b zQOfT$E^Y5_QfJ`TeLCCa6j%4D)3>Lc`?zk#-#N^>-)yQnICcC)?rxf0F1A=^1-Gei z<FnA|t5=*o&XHNwB)+P7`|5Jzh{cXFZ&R7)b3Z-%PxT@Lqr1;%J)3}C`XAa916Wt= z{4vdVrsJHF1DhwDRNl7dfc}>oPmO<0aaz_lb;perbJa5pm#gHNr?-W-T-w$<?{Q<J zZdTaav^j;`rN@HqxXvoBQ@v*>@GfwVmcEOgn&YX<h9XxR%-=j>abYmxKH`=YH8oBm z>DGorf8B0N#>)IX^rs^w@p#eh4#q~CV|Pyko^L-RA@Ct=jZtap!<8;xE1EZ%ZF-(p z>(;=1Ie+HOir7D=)Y`6`FfHUWYu7F{Tx9%Gt6@&`@|9VNmC`@Drn)Dk@#^Yl9A39| z>%WIbyIQR}n{G`wRQ!(V^bGY_qcz2kO`pY=CZ6*=Ej;n!o%J)btdy=cy6AC5gx#9m z^2$rQrN)h+GiK3Z?!u7xfP*hA<BR5g5<FP0rL$(yrw2`k+||RM@j4{)Mjb49ay9e$ zrVRc&tcSIGm7?D%ZhggiVhiUAv93za_|=j=>vzm3419dBCzQ8m?IRn852|fywYe`N zcdjqe3Em;`jmPbvL-URe#v+jwZ2^zO+gD~-6)yjLg+16?W0hQj_M6y`5;uOz+MW^& z+>li-AQ?8t`x(y^UGYsbgBqJ>*PJennl(>cTcIp%`M$JM6Qx2wxov3eIOAry^X7wT zr3*FLKF?514aj~vZJQ%!s{74V)7Z?}?g(#lf81u962Evc%T90psCk+UuOxc|>y$W> zr*}xqWmz-l(BoN$%M!lqxTv~f&idFp`FGWV_{0oZzX~Q~iHa@`5RiI0;q-3nhH2t# zHgjCKyh9F}YOdKlwaV5jv}{w3Ll<MYj0xX?D#slRd-?;WXKkqDTV?Xk{mr_Nc{^Xc z+mU!pF4}x$YpitMUSpB9sRtru1H_)b)XbW!WO^;>S#H9yN;QpVY}!{O9L(POP2cI4 zohPh5qqyh8%GzRu>{mjn*Q&|`V($u@RC_a-o#TDoA*0Kk{a9#YwtLrQqsI$m`B!{B zT)wZhlyT~V4VNFZEokeGzk8@`gG9ooQj3?W?R)MXV&RbITgJiOktikMsH?nYFN;FL z>-62dCz_h>wU|87>#y1|XF`6%BRQ?|1J!eWY5GRWADVbEdDc$PK8Dokua?ec+%m1K z!`Vl)y|AM}_u*exsVk@Rr>}_ed5|Wq!5z)_=&68e;os8@s-l<Kdh?DQe->dNsu$KJ zo%WyMTWHGamRs`{x1}7PALwvF{6I&`xlh3dS+9L}TWlko+kCx6nRl<$<(;Q^^2_X0 z6PIt(3i-$y^Q)O7%5|BEp7rv{t7lpyEa^M7YUbS^4a`${OO9(S+_)oy+ruMlPgc(v z7sZUer%lr|4gMT4%`=LLkZIA`=Pz)hHoic#`C>=2#+&>j=Ikd9e!ODqcr;)BjL8L& zdpmoC%1mOcTD|mU&R5S9TU^klJR!W$;P(^-b&aVhXT5_JpWZ&LzwtERd4@;nd#eOw z?>ew<Q`=#`V%Myc!w*~e4y-tE-{zFN&@u1JqSt=cJxJZfw&!%o_KAt*LR)1j(>o{S zC6u^qm={rVEMe>25|=XzHqNhmCKU86w8T4dkwos-4uRn6HRrAy)l|Ir^~`cz$kMpi z9m{3}+<iRd)Rcw$re8T3YPjIbyAb8udw>4uoUm-l7e|LS{-{IWgx2}?d;e$9ICIgt zdEvR#S$4g@>lF4dhFsL*KQU1*b@4|X$pA001!Cgi9NAsLDKS-TE9Xy)JET2d)nsqp z(v{N|Y<9dAvcg<PzjBSwa*I^{Rqc9>uPpyF1h$;LqWRcp%9hQ!S45e3t7MN#99{qS zQOL$QpSBy!eC-?>^Hq9Muj$n<6|?GQGg|I!P$*>YaL;)n=l83RbAjWMpAsBem3n8E zxQMKAxHi>2&5%)Wi}{N`X@QCbQ*=!)ckDaPm;JUcNiFAU*_0c%ja6T1oOb5B{&1#s zfyoEe(us+su}2f;UC`i2Yjk&yoVm&M+ES7G0!%v&+&R1;^q%}(d!bg>%bSm+&AAb! zrT;4K)E5)Yo3gFE%vN_yPbKZtx1ZUe+9S2FM}_ICW$xF`MJ=AQ=X@}ErFPzmYxCQN zWx-jic#rK2yBaU9Riph$xuZtv)~8jk;|+XX)r&|w-JblqP2{c;U$pHJyDjc@$<|K6 zSvPt-?me0i5@oTnVCx2x_=2@+huebB6f^Ca9eX@ZjraD733n2NS2!+h-1Okx4dtK8 zY-?|~@9ba6UG_-dOI+&b=I`3?c+|YVGaOnz!CcB^q1V=k4xf#o_A`SSHM2uMv)|=u zF9>XGeUd$6jWU;<T(Ztx;YG3UWN+HW8$JB>_@ZQ!(b}Z%X1gqB6-;bDpe_ENVMd$N zt@NL1i;f<Q{eFdOx2e<nN4lDKdfcx$tX;ITvAXxSiv;(R-Q80rw3_ZL-f?01tEJBI z=?0H?7~g!CaNTk74zCHf;?J+VH+4JXi)Xq*Cp1s5+~yPQ^vA<j^>p=m9`4;bce7N# zR+%t<mynK8?Vs@^yHw$bDs#uT$}VPKGxbT!;>D)^j(ert+149;#Fg#aKE>(+=8Eae ziEBOtzDoRkIRBlVQ3G%HwH@7!3OfBpla3}GpD)a{aMSZ$vMwuD{c+-`{K#@{ny#bj z>WS-LDQf9krB8d`=`FljJn{Jq_Gzvco`2?1n~@u`=aeH0d(@VFNdhe|m2&nTYVJJy z>4^0S9j3WwtYbBDeoyE5<D&CNRlGxWQ@7e`+dPiM3AssbKdYxQ{yo~dD6Te*L2iwU z{GEiytZQ~=NJyNQn%ZV!_$7%mG-m6W1qmjFZ@!AMc}dHz-yv|bWaXag0(n87Pgk(- zb!%!}%O3aG$StwLS}Q@$a#dXJlr!a@s`?7DboZ-Uw)BK`Iz4_Ac<Y+_XA>XcljYh6 znjdm&RxbWfZkD=A&+^EfW4w!(ZPsgAW45oyYSBdp1F=I>Z|fxSK7Ad3nI*<MaQTFG z!P8<dFU-8RmFeIe@s+Hmemk0TRn7L^y;8())^+o^<(v!Mdo6l7=S)w2yhEo!kf+6f zIY81qXBA^))XSeo&#>&-{#kEjR`%ZGOC8gFEkDX>_Drn{SSM1&am?Y;vpNs+208Z@ z;h9{?rWYKJU7e{^e<X0hu_+bGYc6%qdYQT?-TuO{6Wflgdbj8Z_kp~7Cl>Z><@hf2 zTKQ*>*@8$X>7RXG3zk|MeRS+vlE*mf?sk@`i&GzkF|n?ga^&HpSfiScni*~%Hy$qd zu5?SnJ3eZn-aUoj6GqQOvep$@cd$Nf-S~#{;uV*UzHjH;e)cXZceG1-wBhuQ6~;U+ znd`mhzl+u2R<8TweQRcBXQ0mVgn}P-iir|?uNKR$^_j(d)4+l0i0#P&*VWP;+KkTc zcU*Ni;j`aZV1?P9Q+K8s?7zs6(`U@Tx+RA*;fegSr|gTvZ8xhpTo5`rN%F{Uzwc(Q zCr?~I;ux^t^71nps|`3@EEKm%c1&Cre3*OM`zZYx-ez4zhraQ*T1{gSbh(~Bjb*_D z*}$_7S8`Z+e$0I8Q?UJ6DC6_xQ_nmsQHl9<=a^91v`HI;CtE0HYJ4(fS`p@7R%{r& z=wi;=`x@puj;AE-tl$q+TeZ^9ia&&X#fuHkxBaQ;RCu!HM*n%IZBAKM5}Kv~M_QRy zTfeV7Qt5sv;FsJV-+e6H{+Fy4U5z$h^e4pRu<n-RBU$+mT`cZC?Av%#Szo;~Bk;iG z7c<^6MyE)3mY$6%UJ+_JmAhP5Njg%@cEPrp6|#-jl$BSR>DI(O_*OYZ`*p$FYZ5yi zR()l;wW(36&O_&9PulMz6$T4CKb4Cqbrh8yb(c;Kf536ZT=TD^%qq4240o0`^;F17 zWV9*m=HvOy<ihCvTzrSRc>NiPdAkHQ@C%$~cp$3n@XVsbB&GJpjHR==*l!0N$YpQS z+CPIOB&A@lW63mzRaLV;q>26fF7<=`#w+PX7F@xrpNShXltr`kl^B@vzU;Z7YZIdH z>9t(TWW!b|zB887EelIMXVrL3dN3jIn5y?PG4AZ|T#YwQ{9Ng2;<6#Jxu(4(Ib^N0 zncIzylhvlYcjp>?e5clsbu|6Vh9*|=&>caBmCO9=5+mbov)P=E`fTC3_l|Dsnziy< znAvXWi;G(;FR`mVz+o#^<HvG9=H#Ot%ipmZCapf{;^H7Cp18X{C)x5wx84?8m&=Ds z&;DxUFyQv7a$6I|9`t18T#4{^GWYxgf3XC2?l+jZaaB&kGl}5m&-Wa4DtF(0MvK4T z#;>LsB9D)+FS_-x_wg%brm~_^ji9v~N^2dMcvPFTx<dN;ze+NFE)SZuR<mBHE%8|T z^^VwSUByR^R+z>8nbf;mJNKv{^Qyw4E!!WS>RYJY&R+81#-*(v<?_wU|1*Rb<bRV} z>@Kv=?`BJR?4kZ&%a|lriwPZa5HG#&@$ZPNrJ9F@x_`&VyA^htM$7KRz3+5QGWj*X znDfL<Gn)w$jV9cB-ux>0^sKbqy=A&-#&wE+l(w3!|1K`2*~WJ${<=eMmETjnIcewC z`&2(!!lxCxpvh<X{0^sgtzI^&F9VjyGisk&>!bJSr_!hJ*jUE$cjB2*tMlv>9Ob8O zOxUE{!d<hlP$V*kKh{-W_Q2Y5tx1=&8@qI>L~a`wUI}aNxToe}RK4Rv8FR$c8?08* zoVzNuww|BC)5x;z-ZMreJ-=G7?!(>c>lB$bUM>hIuUa4dCrw<pi(BN;>m70#t>w>; zx}7qexM|LTGncv-@6Zu7__tJlatCinKIf{H3&o0Z&lej{3rLB*!r|;^bT=j|#^ZL? znE>u7s`^aFqx}x;XFtD!<pq~T_OviN=a1nkx(gRdA77z7B{QP>iuRX9>ppMOvsDwR zI3qbl=gQv$ZI5^S==wTiQTanfUfIe0ol)l$4j*Rr=905<_?&S)?B7C>MM2k}2{7C` zT-j&vwAJ~v;I`N{?KPi`)0Rr)c2E0wi&6A5+oxyKs#a_|7JBDnFwaeg#TL(YHi>99 zEU2EoyovSp?q?c%`?7+yH_iPhbRtbUXS1+GOpT7Ctjc`DkS+V>rfQsazGtPH#?AWg zfy#*+hWe2+xXuUua^P-dt(-b@(L%4O7kqVd!XG_lIVF7N<Y_hIhXrz4((8?`sR>xk z2+=)Sw7q6STxZFd@7%T_A<Wr5i`IxOmzQxm(zw{-8(+eelS!iC`z>c~?}@e#+Hp(N za>}HIizY?nd^_~;)M5X?)=lyKfj1M&u9jXAP<(kx$@8q~i6p7HqHCFt?^r5zaPvD6 zvyk139yLsz+kGTARBZA508ZVK=QACbHWa^;&8(29Il!bcbNjo3%hR^|i$2o%kr=01 z>$p`i=8CH0BCot~r4yoBzP-$mGwozv$Cb;tUby_9At}Q7@UCZZLfbd2Jto9-eaR9D zGv4P{l#CY477lDy+MTL6G5yXei|L%DYiI0upP(17;&k()cUHOZ#HzmRZA@$L^2Aic z9?$PgoFyRhSm3~chSTeR&PY+-tNI}MfXlK&F)KGFY+-jVzMFJ9F7?&Ij4#)grDt%h z$XfL2CEwnkM=UONFI+BkB3U5gwD*NArjm2Dp68rUTcGtjarNBUKZ>m`rR@zf-RPxt zzTNJzWG(;WBkQ<=rmepd-8#8>)y^a)R_BD-qRCg1MKb?0sAojDepizD-KL(QHRt|J zmz{2geF_a5P5(Oap1LpbE4lel+u?&+^H{TGcCL)v;_>Qw#P6;-7ed+ZZ0vG+I4i<- z=gzZ97xe;`GR|?+STJQnX>o<*f{hl*x3g5$1vH&?BCXm~ByQbaF)JrbYu-IoHs=MG zH!q6FR+|>%a;oN8T)glM4`2DMzDq9H_IqB@dfRHGAA8(Sbhp2!(AlY*>;oAJIii*y zWN6uUXfcE7!%Kz}F7WTt+PU~E-_x{PA>GeZm>93VTj~;?u<FcNuY0ar5;_)!ERWhX z`@Emex+c^4TG8&?&qyEo^s(AbDL8tn#oE74&*cKIf9slR)^{kNMNi4*Xa6gSs9XCI ztho+u>0iTe@~LpdW!`6^mvy)DEbvIX`^7=#NXEX@@GspbpP2+DTlB9uDaWwtvk3RW zt3OWZo<D8!H!X<K*-*ECiBoKV+3kbI5~bT8MT!10sBCL<_quedWMVj9F~?80wXcsb zI@jvOwZ&XD+VJa+&*DlG?Y^ZOG(vypulR9u>dW8Lk{9tgKAfpo+{?`LbW^%dG2=EH zRRuPth4DKMrDz|L$Yp)BTQ$>3S?jsVvA+g~<94=QPKZ9$uxi1JeF{b*2?pz=9x+~& z<S&>$v0dv~fa^^5j3n&<y>3m>nUfY?57?#0b;WPuNu9$vy5351{C8T66qj?hI(OF` z@#eX{@%<GKGnTMu*GV^bH?SVd+L!w1%%K-&PwR1BsC9m@XQHU8!`AtC7(Hj1)Tz$1 zHd+5r+Cw|!qUO0(20v$B`4Bem>8GgO83%MG&eTh3iCOp8@#6*7sizEk|16ext0-6Y zWbu_HtKwQuU0L_y$MHXl4oL2-D{hItt9Zs|)0G~v>~n#i+<xZGDyt8=_1To`;U}kn zouay*osTe1alY}H>u8{B;LV`P2SP;uocXqk+4pYM5x0XOJmG;&TLS91A75eJr@Fjd z<;29ykT@;gM4pMhg@MK^q~6xgKT^V+u+Vq8&jQh?o3-~A7iLXv{cv!T_Wfq2s?Hn- zGxyEzGfPslr`FF%V&L?ad~o+5Uz)^*%Yg+>nbQS%b?iO1OnJQCXlcduE9VQgZ5DjZ zn|A8ylpRLuv)fkg^s|{YvvU)BoP;1xx6Rp>hSX(+kBuIw`qk`F?Fm1<N}uaM8`Fy2 zAD^^dITccE$Xz6M^}^?Wi<dPyFK_>-qcd}Z>FYb%S9s$mOcQPBl5JZR_wX0z^E1o$ zE$9CHEU4^)1@rZ3vaWkhz4)r%r`PkRP)s%}am$7SJ-XXxtTuZP{IvF1`)3{7%~Q?W zbBunNX_p;5AnZ8#PL@M$h@9%9&8%hnw7+Yd%ayaP?>IQ|dGsyUeYN_EVrg5fUp;y# zDLT#bfZXx<f>UE(?9Mp&O0_1bsri1vl~q;$A`&)tOnbb7$vVC4<;>LLXy)Htj5lT5 zOw>#bc&hiammiZ4KC|V}HT`+%AH|Ef*t0wS*|~l^e#Sz2_3e&lqD2-}RjE@I?qwX= zdga5^gvcGMihg(V-?$x<$FPH?cAk>Rx2`ih24B~2H)KfAtmhGWa4%kCv*XQd(JzNL z)OcN-HX*pyY0>f|6N|rxLZgBs*T@@eICSxj-?dXci&eQaUd9~u%eHBKe`HVZN|%!i zx<#k7SQWT5`XBG$P+#zL#aVIXgz~mXk*m$VVYX-1oO6C_dQdfFp3vLK8&6lLiimri zV$(1)@}8p^R``s+gInTVO5<h=>pK}wPj8VlcGcZJVanmKjLXl@lyBBvJ7I0;!#!0! zsx8H*&v&d?opGAiIZ!`$^&`cKi_@aE&XlteG`Ql+@-WEkM%n~Rh2ja}mp)uCoUm@Y z?(uZ7m2q1+SEu=|KEw6ES!K@Z9U0LtW9(9!ByX&JxuRUSmv^tLSeHv;_D)x+Bn4@H z&8JrwW^9U1)pAJP&r>R%DL!4_>Pp6zMYqmJJX27b%4jFKtBr%3F}&%>+XolZ;{zF( z7B}D0=u{T|W8XP%M#-JBkeeH#i+&zG8`&{SyR1|rwVO@z&na=HSu6h@XKC$t9nP|H z-U7x~R!JKcPGK_lnr*tW&}-ImIb*3ZnbQ%=Kg8^g5n6raP9sOC%;h_hf=An~2KL{n zVF+7!JLrI`6U&P})Ax(!ILJ?9+<86VDTk5nzJ-70uB%ky5VSUX@#D0Zkr|u!W0?>s zfzaG3kM<nmka=+XBByJZX?hMLn`io|1()O*t<DHaFlMprR$6c<p7%}Pm9@V(D_6W> zQes+ncz09Ct(EWnKA$xHK9T!a-p;;jxvRMZ85geEbH+i?aa9N7k!9RHNAzZ8eB_Qf zZ@h9g!!nK1ul(X0Ikts9?yL^n_Wqlzk8i{+Vadj1+50mXV}d*5H<|jFe0^lLBCNIZ zWVBm{QwR4M9(hK`lCNBQq)!}m>ef~GSS}FSbWHfnwkwO~?Dg(iv2oYyD-L?x+mbb| z`aYLDvvN%UOX8NWwq>SQ8!yM4T3LSR%_$YLOKVF%wc463oN%Rd*P(0AWn3ppq&iRZ zNsC<(75_@LG4=GM934xCiYA@4FI|O0czU*Khs^p|aB<7tpN=a<v@eS&p2>~x7uJ}z z;&A<)Sk@Eiyk|n2`er>6@1FT6zIaB%on5o;s2!hgu<Fl#{&1O6Hoh5a%$Rc?u{0&R zUE6b7^Jad&ip?z^K8|Bz#f3W`FL{}8LMSLhaCJxF(XVDp1dRKZPEpOg_=qu0x!0go z?BeD79i0x>FSR*c_H3(h?_x>p-@==qS$2KuXV(6O;*GCoPK{?+ku9ig-<9}#hyKH< z(-pVf_^eUEP#EAU>zHROapT~O=oJ$L9WO8G3H!-f_HU8wt*rPs<)fl;HQ(iwkM3Q# zx~em#L9^+GYuD8sqLHmnrldtnuN2AsnY1X9>CKC2m-I88N~*e^9_Oz;Hp}pu_{1wR z%7I5;DaHkM=WhL~eX_yy)4ilJF1Lb@h29L&6W7+Bve_aucV-uh0dIt{Pl(A@=Ew63 z?4~iSN?PCPsC8sRwq);vMe_Q^Eg8G2XI=ejye^TK<3YpGXWF4U8u4qLk_zO%J#{~_ z=4tnL7Cys!4^QxkzuwVhWB5)gK<ISH+N*W98)~^CU5mL=yI7--XuFj0&fChGuqbwG zA!8a>oY#(aO^e9PD|@4+{AZAK&QF{yml|_y)e#Pt2##3uHX)5rr<K(!T%8UasE|vI zTw&a!<}qb)?2V`$0e_|j-?9+@TCnf2o}JWOmlv}qX|~M_ep&jhA(<~OVe7uys%f!8 zyYn6}IjvE&mMf_F*;)VTNcdw<Gv5oGvp)3uX-s3?yXjbPE<?rkz+<A}qJ46y!2y?J zex9G*cTvi3hO}Jj?gwE}ou_=JdA<^CS*5qf#*op^%O)f>)Ie(AO_yzvB{qLut*h=_ zt2bUTJKIiy!CYq5iLSUK>+eXlo}VGT<o5J{DNHw(Owc>Db=fmv$;3_ef?1;L)4Ts1 zyOnfI^4U_33sS->=P0@z?>K0B@cG1Yqr@Ex1!TmN*$o;mNKZY`aa!e>cwpOs1w4!I z=)TR7;6LiZU9>r&y8p;RY5i;=(XP47>mG`UUhGrYwm7Y2nvAP<`GqrzmBL)jmCAcI zl>B)V(Q!+5(*g_K=7_LFtC!_Zk`?;G_iIK7PK&j5*<IAP_gL61Rkjb+^945sg|e<c zQeN7(LgR7bLH=tVS|?iH_O9Z-<z38|xod0Tv8Z09b?Tfk?^q<Q3mN>~^>a)v=d7-A zJt@V-A2cC4ch!*v%^BkQhFhCnsk>FJ%Bj}lu5w!E;Vc}}-ex*GusVFl#jR=Dr4mKn ztB#g4P0Lc(aW_d%F*D#6`p>Y_WmZ<D3;T()I@b~nyf;|H-B58Vp54M#TJ~>(rOx%E zr=Rq0*dhNa?ug6E)L-q+UpG|i?<~DgcIi|3v!H#!;ze`&gLcQ8N$+`NSo&%0lgcUL z)#16zXSMyDVELcHCB)3LP*TNjllQwFGZ!u~J1((vQp?c-xgVWp6kosl*>IxBUwu(b zedO6Sx+!9<eA(}k&DX|MJvUa3kdB^n>S1c&TMniJsozCHm7V9u7cAfHQ?&4z!BPgU zYFn3Nezxdyzq=a`@Gj5f5;$=uz5hr?B*UrRBUi%C?(gv3Y!>{fvOOZkTkmejo*XtY z?cK`e+3Od6_*`_9DebNIv(V)shG|O9te>8I=X96UEjP`cF;Qx#m)uFO4RfBZiu>}& zJWZ{w=D;<rLwd6xb}8HvPpX(I`O{RuGceM{_Ph9&z`{9Yz8Xc(9)A$KrOJQz;M7B1 zIr~mD=4{tllX7!q#$IE;q{igyUyX13-;g(#2%a_V>m#`!-8T+$Y|EMXu4=Bm%z5QY z%=H;b+6K|(PnwoyF+S(n{^N49OG@YI2{v}A0y;@E&;3=+blYx_uA<Dib!)F1hiGEd z`C`eltvWmWxi??6Idvg3;I7-F=%5Lwn!Y*st(@<aaz$8Y`=f{kag8~r7I`I2vU+-j zRs0Gs>#N3v-}M%}&6^*nyYO(U^@?k6^44-3T4FeLp6Br&dKHm6R*OYcUnLb@F=<iL zmp*>wgwoq!Z+1ql!p(~ct>zt{F?r|aMa;Wzch-2RFPvp3E~s=ldV_Nm*V=R6WdeMA zmpJVU`nYZ7T7#OyR;ToMRVQ2$JfeEtz`NsjmmAY`H`(H6Qu@(1R$bq5e|@4XPqkLh z)u*p)c}4j0?-U$bVNriY#4AdpJ4kCwWTa|b<mw-%ZQd+f8S#<tDTgTUnH$D@YkxG} zy})ozNvvzD&R6Y*k~^vq>|CF9{<4N0m~^u6+1$&#fl-&e%>$orS#oJd0(%#q{Vj{s z^^Fg|>czA>ek+vjRDC%4opn^oDe=BX2iEy$tnaMk*(PAxZ^*z=q<O|;;ex2}D@!Yv z&6uwjkvwCjzqXMRH`CX2^Pg9;#0}(sbSHe5%kL@`+tReK>X4wA;)D8kPaB+ezMFsL zjC;WD_$!`Yzh5jk{AyS9vOKlv!A}~h#TfRB9$6n!a!G(GVp@5V%(3RHh87LFkCz<X zC9>(x_GcY2CeiaYi?(Xq{W0}(YU8P|Ok7Rf^QW9%zEAn!qu>*~{al3tT_LyAr$`&^ zxcg(r!cELuZa<5Q^qBkWtJKk^7dC&+Dq0m5|2dlCb;8I!JgMk~Rhv~m18-tNT1lOp z;?a$+S}C`*BGVGhW!5dNa9q9UOT<TwYncJeO_A*tYTTXM+iGmT^RF}Oxh!y}beWCw z*>AQ+NA4exSaFeMlkS(#TFz@-w_g3I*I+65S?j@4)viXF7$f%c#nCEl;`0_fJwJ1g z!=snmxMEMgTXp;7l?6;EPJMqS8YZo~h-pWl{|DET#)c6ZcV_-sz!W)oeT(ao8pgBU zOB4nE$iBWU@j6_MpG`k&Urx2)8m`Ay`%))Fi3Bd_3Tn@Yi4ImM<dwb}9#QGhvufHp z=Ofn-b1OdMtxxN+StN1OHMAq`-2Ccpjm3pORz@rLpSXWzlhWLu=8V2cZ!a2ZhOE0` zaa^+7pn?17=EXY%yrxVJVBy>h)PA*?nfU>$##yOXIb|ii6h9bgx|FbwNXO_tV5; z>C_3W+rpX-CFt#yb=-CEj%D}0uc!XHls6uV=gX6G?P@z`r@ZLZ-4EA|y;$5m>sC$L z{pIvJ-mdT?_M)paW;}Vez$2=$`Om=+CVuzh#tfNJPkw#YV+j=Pse5P=+`2oz=hu{% zPcKa}Td<n(<zcN3v9s+d>-yLyKZ@d8vG%@>+YXDVmzH)ckTqwK4r;Y{_mM+1d*k7w zPAq(f`*)b%;Xcgtwqj<hM?q4K+v!h&iJ?pU-ru<%RA9#@5-9lb%ev&EhfI^d7n{2L zb3U?my5@G<jmn$Z4mcN-JMsr+T}%vqF6*@{bk28%GZovT&z|A_p><wtvw7aN$yJ5Y zYc!|FI96U=%9Nh-Q9z+*;lYC|vpicC{P=K~_bYFm$FD=8bE>D#nz64eP24bbYVskj ztI0dt;&)8gbHDf5!u@QIcDS8!kodG9owtzn_8pGKKQRX;ZE$&bMuc^qtP{8B-d8-H zmaBhG(|UDTB>&2~RU8gJWlVwJToPt?-n)M0sNSLbOWM>I@b)d;!kBZ-<y0=Sh^b`D ziU5VWN1`hZ=4u~P)?A=j=;xO3$>1MP`XYWMjTDdUjRDFku^Ds!9G2G8eYuQLH|Vx> z>pSDw`)eE*v6?1**3d|p#Kd^&+LbaJ*Nq1r9slFHAZ*13)4uQ8TB~l~*n4LC0ruqS zh8_pbKA+#w^Z4??OWxB(YPa+KX^ncS#K4;R{!H+mUCUdNHhk4_?iaM5&ZqG}?lBX) zSm3EO3pbVh6=gRLQ+6uvNX&bq7h-3eo%l-ny6oI_wx`;Kc4@Dez!CVM>1cxZ*`#FW zrj?UIKbD>PWX{OXVSF^UkULdmwd5SJ$C<AduyWoIt4cg*J-uTUQ}nDGVXv05uCn%s znw7gje38%r0rO(j=MsBz{ZvKuZ0`SilwG)R%{M`3?+s#s8ftz1hATK8Ub4zGU;1o+ z(C-<%8*II=cV4VhGSd#6@iAYkF2HLm-@U(1FQT^d?A`I6`_2so3Endqii>}@=&F~> z^@c^ySCVL0`Q$%C(9)C_N0yv-IQd=bf#TY~2lp;>yxt+6E?p?J`}{=t-7|dG&zx<# zVg5HI#dMRZ-Ot2LO>(D1MP`TfxIKxQ{cEbkLZ`|14c$d%JiT&$S8GH1&)(;1eUtAT zNK*F@6MD0IdJXHGB}(EvUsJu~7j3IJBQ8;7p8rg^wkPKDqUcL&nVL6oEf#+`ktHG{ zQ+L*@xC%B`oy#oK9_#QqMXV2*Epg-E)G4d$oit?q<E;90I~T^OnuZkn{B}HZ=RmXZ zRj1?KQ|C=R6}EGQ?&p;CxyN>V<B5JH!%(pHwGXE&XS3)%1*vmNr@x-rHzEJ<s>(i@ z2}T!Q9sG7?sdlxztefS+IWsg)WNXB3a5!_xX1-3Dk92c`%LSLU?B{o!DEis=V1@3M z$PXU{eLjS2OKX@PXxR|Uvsio56<^Mm%O9vtkV$So-Z{zrN%9TX8@IJCt}v-o+Q1M$ z$=y|>M7OEXrz3aPJ<&<?9^T+-c~Z2I=kUYZ{$j_}W_m>QP2yXv5q~6kX_oZ6M?rr6 zOLb>$jn_At;dD;&GtctXyFXshi)@L0W6_r(D%H+$-IgIRPiboJi9^+W<r*heZu{$e z{Z6*su34_C4B~s;Ra`$@DDYWUwqE4>9pAai%{<2<BKa4zN561m`@DkT#_o*u^4|sb zB#JV0t!TaLBPx`5p-lHnr&DR#>NA@zG?mvaJ!7XBR{tnysbN>|MUG^)ZEM!3=v}e6 zUH@(A$ExOOnR05idZJ0O#<B|6lMXUSZ4!L#&iGSH$5F>`N6VL@n8uyecf0mDp4zf> zw_YIAw$j+VPzSy3>#rCI?melQ&w5+=RggCWo41Rq6O(qHPnxdm>yX1THk&7TTJD`L ztEiZ)A=%C>+TIb-Ir~}0)JECohM|miUOeKlYu))mIYsmDl&eOUUaT+7xS0A}*4C{= zaj{ZBY1HdiL7@dQA#BT~{H!~tFdn$$&b|7;*<+{HUwEYZcKRv3Id#glr_D^Af+}r} z7X`h3WLb7<*BuVQZx^3bB-V3O>O@GlUz*vqgmu=PP$g++hOctFf|{Q$m?q{teVVRt zrC_s3u8r+cPUktlot}HPiCIi2&|6!|Gm&@Go=IH=%<eMfdJ&FpR?a4jmHZ(ed0)nP z&$t-ccg!?kXVGE<ZxsejJ_&Kz!Y|XAck|v4=oP)0x}r%xLvp>{;;_^O*SmVNSL<zj z@L6YB+~J;^N6$_OH&mP@`g1{b)5=T7TNf)7iyV;Q?e7;}8>{l;o!V>99p7wRQ?l0R zUl!bwA<ce9bY-ucM!m2}{JI|!uSM$)**suO`6%Z2L~qa8Sqj@;G*9W3t4`|4U1Tp| zpRBmFT=2!I&}@TFjn#&As*?&tS4~sgZP32+%o>U5+drMzx3PErJ3;L&d`#>q^(`w7 zP7N2(P+pPopW*%y#h6zW<sAZyT@SXdp3d8ze#Z7n&h|SD+4UD2a~ZbA$k{zy;5@gH zGmF81eTB1Dz-5->?-&y<ZkeHwp?LDBR7b+L58vhW*Un`r_E2>FA@rwdRgQQ-&moOs z9yi8|eS2IUzu}Ci`YJJfqkFpGdj_Q!<<EsCr|$E9d_-uqxc}0R?>G~4FH}^XDQem+ zofMt!W@bBq*TBy&<d0M7wB_27wqEajf)4CbU8Qu{^=RJLxJ~R2?t~VL{E3N8eallL zc6v?F#*-0wi9X^o##8%zw@uvm@MqhSgJIWN-#wgoE;iGIzo^jXBg<{J{O198H~rnD z&0grF#jDv>#LXu(>mGNBtk8>vJEn%Z^WOii!QavPHzw0-qmu3AJKRjUf!n7sI<vJ- ze<$p*C+xm${R#sY)^+QBR&VUv^;qaZN5X?g>IRx7v4<7xWtJ@ySA1^cu<=%N9CzDs z$<*x!1-QI9!#`@B;VDXBT@WXzX~~dMHN9`arH!)lwy}3CnxeIBe_#ez_mPNcsgv&9 zJP}>pClGVQA%fGdFI6n&&E*+S7w##2rx+1_;H!R;$eiD;6RxnXFL<D$TeHh<Y3FtE zoX-}orzJ~HuT1sKey6kaq(+7C&LE+c*%$l$4YXc9m{A*})N|l%O7|V}T)qBh2LBlt z4h9HTX<vE8yQ)>~pWmX?WqEFYkM@V`I^J~Vv~<BYx2@ZGH~spkC9x~kW$7{L)wco~ zHnlQ8J+gGGi`Mxw8z<f1-{i7IT#`@X=$eWC%qu3`T6(*+|JqfVYyE-IEt&lDJhZNt z#qKI)37u|~94;Sqgg@f>oejsP*u4MUaMkra%cVnVs!mrfOUx4SRk2$b+WJ6$#yN(| zH{26aInQrNW6>zQ*>&1m>F?ZQBA+%tW<Am%wP=U(0#RwHJ1p-S^bL$w6l}k;LG`86 z)|n2PE2cJCBnE~bJ-GajsK|xwpS5Z~d$Vi|oA7gk%A@eZS3C=D7{trE)=y3~Wd4;> zmCB&NSvlkEx?jZ|jgE@5+zqtK8rH}q^K729{J>FD$@)oNQ*_;S6?42$5U<%V^~9sg z4);@dUvV7zR-IUNiD5l&nfupNi(SVai8b=coPBVsr$0c_cy*4SPPbajrsng7DO>(1 z-FVdMb?X(U&a^K~cYn{`kkB5y?6KHWmYnN4JGWQv480yWsb#MD!zrtKSO09WVgB@0 z>@Dk}-73yOQ)5a!9rjKQsQ7ejYYNZ2R~*L{arqa>@Px&Qf7KLo6ZL<lq+qt;i_Ovc zdkF!|8*FXnB`d$r{3sds<KDtI2e$>Dt#0rR2<JCyNh@N`&&dkSP<<-tyjV@7luxg_ zioL@usLN3N9ozNHjGI%J@B7tnlXjaueWsVOtDCs}j9ERWO7F3s;i=5aR+l}HHeD)w zW|*+Sz2BdO1#_97Fm2N-JmvT+`pk;02anndIGmm={o3&8#b)#L+GDB_cJ9BXW$?%? z@{-=X@Uui#5L0y3F?RPW!rD*U!_Ndgn!Nb(k6F*Ur(QSJ=xuOx)-IjDjCE?CQ=c2l zsa%=W*HUF-xkP@gST(QX@{Sc7BG&zpTd1k>QM^#Rt?T!SEh5Pc&EbNHi7V0sR?o|d zSz}>)YGaP;u8O8pQj+yd4%M!W0gKF<o2}yy8D{Y|tSDqYdr|4%f*fICW%24Y7KSt1 zg+pwDHRrTi{d>x|?ZCy@>ek)fnI*s1J#OQC@_XtJ1_iy<d%d)MXKr5EH-WQA{pF1J zyo^bSn;*rx9x(eT)joYr+{r2(tq;5*QD&2+U)DJEF3{n(x-7KWwrStgZ5ltfal2pS zxS_!9Y}%3d{7N{-o_p<4Pre%nG^O?n&P-)r-8k2#X`aZ^pRFm=bvV0hrb<ilDzK+; z2rpXy*2tw|Z5Bg>Zshc{&Ia7+(>*mqj)?XLJzc$_cFkh1fO|@bU!o7oHJ*};o||;z zxJFV(RFv|u4IQyRB3DjpQ*T+)c0&JI`28DuB96CRJM!TBnY|n?Zhsu6-sZ@$YU%Wr zkTQQ4^{PSA@IS+**;xhpJL^2f7skXm>9A(l)E?f$*|e|BSF5XZohaM%iT@`3XV8%? zmpH=C%<mr<BXavwQ}&GfPp@K_14}qpy|b0N#LvC6$-i0Tv#yudsr~KmWUsHD_&{>1 zYj;M;p@zJbn)?g?X)MhZ>R5B!Tr!m}G{-%A@~t1|1#c`*lT-Y?)H}PgEPCr~_KIi1 zy$)MG2IvMoh~CxJ6@83h-a3wAzRHi6<Bb=u*&2Orkpzp}rQ180&raUlVZ(RxO`=5L zX}R_pU)<g9Z(5M<b2t0Ux+yZVm>*f}68h!c*?CIu?*Z<eO)o8y%jR+ZOk<y#WtnkC zOQn~^PJD%wS%KJ}Jmy_FujEV*`$l~?QkmmZ<Na#3($%(o7d5A78}b{9KkQGC-q7Bs zczNzE=6Q*FR{~n}k3C&|)N5KPYrr#cFO3z<oUL=pJCtuN>a9NG`((|IcpfWWPA7fE z`XdGho<{mD4mH<)zO#i(?A82t)?8OpG98Z^{W*0sM&88tGk+luhshSxyJ<7`u$Dc3 zJcI4br4RF-a$aiM9_!-K^y0>;k3lE9viPKHl<t@sNUq_nRSnl(vf%DP!&+mG$i;W! z=Gp|$ymjV%^1lZ`lLQnySiS{qm6<OpD$(H^d?vXlyCv?x8ySf^L5u|!Rxw-K@0Hm+ zGqPB;==GzBU9+F<f0Y^3*#0h(@pw_P<IgGKky7l>ibBL*{g@qUo)ET7%a-?(<GQmM zTgoN)y&Lp;yd<?fzNDF0Y)^Eb*nDxr!}%}uUsZmY`_nbz4C_&0x6Lz}7P4wTJomsa z)KAJw`g!HlrpOJ`ekQCEcGzN`Vs-XB)1#T~K8uXPraIkmS!fjSeVRt;NADGHJC?kX z&<I(Y@Hyznp)GlPj;~VLF3PfK1rq}k<BxBjMJIcF)=S^Ej#tCz>HVpUyLu1liRvHl z&fFrqTj!k}b6@3@9RgvO1YE*DRZp9cb#QjFigQ``8D)-uDc05QVjY)fzKv@7@FZ~J zgN~^T?aI%OxK7iMdCm9KJC0*X(M1mKNk%1t{o0q)f6XjCyuZOKyfaC&GCMFJ*6Gt@ z4zt3@`JsQF8TK#Rz<=2&s_&a#R<zhQt52?a%VyiD7MrzhYpyp~)c?#XKk(GMD_fq$ z^m>>i+dhjpH7#!A_G3#U{if`aJ)X7NZsWEE+0k1WKfX%7b#adP5rr8>=ckrxD1~0G zw|^DU<QQ{b#*JywjgHc_4oXMc#5q6h_*lBt(cvp&QmQEXHokyh-ME_L+cxcSJaKSl ziB?dWl;ztsR~Eh5EB5E~=a^=`r2NF|1qOkoxA*J3$_w7|rh|{+*4)!v7RA94|B_i< z*Dn4&mG@xg5<i8V(=>Otu)WZFeaP}Si|%^42T3gvckZiSSvfIkm+;ETcQUyz9yD^j z?RMY4<A$?9X#180M%&nKKbe}rZc%*DNMOsRB#F&a=ky1Q88D@+mo;QmT3Z%!t%QBW zOO8*%zh<i?EO4G&qAQmgX?^u$T-xM6@lz}k*&H)&d}UeL^W>`@hqS)jh3)Ij{_Im@ zQPe5CbL)ZAG`l4ABxWZ;N1q*bdI~dJzbOQ5>(}gVO5P~_;4{;jPfF>fCJ*MGVPFX8 zzM?5w{)BJmnG_Q)=jt@IX(pl7?aXl;+y({?#XCMNELbY{bot4}s~(y3I=9WalXNC% zr{Xl{1CKu%hi};UtCTUUC%0aGX8$J^8;L1u`NE%#RPHjXdbxzHT=<`%qcpZ_@9zFg zZOxhe{9cM0R*H+hKU1(v@_aqR?zY}<S<#|L-0{kxzZ&0X@ColYD;nD*u#4@W`|prl zuk_+A7A3YEbd}@mYL$4P!0CFq%iQ`-$kCI{<tG|K`S>;Udgi!@WV5b~alE)fa?1Xt z-b=k*(?q_tB`_HoM9T+oDWqi2xYlwo?9q%eiP@VU8BB^gyLXQZXNLV2?*}()+;5(| zaEXQQabu3(#i?`V=tdv9v$kJK<mav#6C5(DQXj;u+4WV#L3FF$I#!2@#Q1{E2@+F3 zGx@xHAv*W7He-UgK*?EKheO*}mW4YcAAF<wpF!`I^YIk!8&+FZ-xjzj{+WHJtC;n{ zndOZq%YIaD<63_qW%VJSE1M7ePBwZR_*vsrNQXA#v(6RkwKY%tIeNO_Me2%_e%GKm z>94ppvPm4)h+41m@~hO7sKwtk1h(-WS7B4uFnsfCdbDEB<!N!NW0eXLcQ|}4cv#VI zqUo&b_4oLvHQMU4JDiri>1hcQKk=tflqY<hoSkY$QsAVgFD8fW_}%j^d;9*G6N^ta zX}fe~w$JFAd+pZo!VGohHo3DC3ZF&4dwclmnSkiRebZD_qzZcPA9cKVLvz)u5RT(B ztXBM5)v)DW@FPBB-&so=HYCRMPcvT``&RkLB9)!){4+ik8AhE`I&->}Gsm)0TV@IC z>bR`8EoT+0XF7)Jd$%#%US#^!xVtDu_?%Mj#+VCfIZ^?ti?#P&_+)z|JLu5MH`7GL zPyK4k%~A`AJn_l!oiuYzXZ_^32i8*4do{!QdBhnOW?f#sL)SH@>_5XJ?rAbT230-{ zXLoj#EMR;qV$&5D6n%1)($xpkOm_R|AATeyHpA<OjQffuCeE)r6V#P|%br=NY0dXc zNg(8*<_5{j>;{P|f@S2g)LKRMceIFYkTJTkAi&b=Zp3N_r>D+~Y%>n$-211nW!bzY zCfy4=N(&G6?sm!*NaqYLyI=Z<Y3ue`b@_%Xm<%F6>K_mfe%hVmeS+VxQO#d}XS?`c zrbL%e6Y(7ew<5zHzlvF5pm$fNE>qx8$%L0R4UtcEJZ@~feB{Vgt-cdM@Bb~*n!q|~ z;%SYy9~`fiESBgpIbbZ2QFdm9vmU?D#xI(uBtC=}$S*vu6w~tHeaC?d{9g?w23VB` zec`$skkYE|w|I(S?&C-NJhR01Jykd|^~;_R<C>dKLgZG+O!e?$)pK1I{jp-R!PKC; zjwkPnbKfpqxBd5#<>$4VUrsOHm%ZfB1f#d_v{W?@lp3r!6cc(hZt0IteY<x(VtMEg z%J*+k!V#k%(>;^jO$y@{2)vX1_PXP{j=WZB+%iobKUbM!og0-7pOv}e`a#<;=6Ybk zfujZH3qR{+P0iV+`60y3A?m#zXI+<fLgoymww;?EdISipSr#)<D2pqx#^s4cS!KhV z(=+)E!yI&)X8&h6=^<_I=a(0Fyet2*Ud+MXrgdVuUV*a<CanB?<fN7I)*RIhuA9C0 z>-=n+_Vq&t)76A5$^E81{6}0enHQ+G3tnU2al+u@jpHqD&Eor>UhUAS(R`&MxUDB9 z^W5~OGW{(g&XazL1)lq<crb5Eyg^rTiJ7gV%FOvc?&Kvuc{5XC#f`4>EjKK88>T&7 z<F#hhXCYt79o8PYvD~+Qbk2Q|HOF;%foOi=nYc9x%QdwgN@w@4SaM)m{I>-5%xw=V z63QN3J;N|FVYk-iv))Hm?b-iK@a#Q3qxd`b7!O`}rrS`qZ9|S~-?iv`ZPkZGJ0707 zbh6miXsO!`Oa2}9SCs|-JrH3!?YtxI#p#^(M!t%5g+ih`WUZTLhyPMI{9<!~pR2Y` z?7^jyo~(S2vtGAWG%q{r)o_UU#&@<`4`n8ubFAjx7x(mxhC<ToCeDpX1_mKPi+28O zR`*?Y)@u5jobpE&FQx`q)}C2ewsg;rq;IRXruO{`Z&<VDXF6+KMEQnxeHS$k3z^^D zUI$j5*{yWxnjP=)8#auEW-K=6kK8Cuo!8#!QXuA%bnowxpie@4ITDRhl@I-AEIlM@ z*>k4toXvzQO)OH!3mO%&t&^BC+OH*uxdz<~dNl3c9=CSi>>YW6QVw6gTuYd><lyy{ z9@Y#W&m=iURZWXo{wK9rPV}(ub**+oal`H|>0;>+CjCgQ00tfNEedD+P9(i&%lgl7 zN7L_#!PBQ*%ic5|mhJW1(ffAd-sP&9_Jz}2ZJW=2X5F6^CiD4GiQJlr@5HwFJX-tM z=IoAjqGcav&KA9`rjVlIncl>B|LI>fRfPvhJU^!Hh|*VZ4`f*TBgLS~y~JiZXI$=` z(s%lMyr#GJA8|Iz44&&)(`i&D<s3NgVqj>E=(j(oG8T%i_sEHM%{ufk=yJH2+-9Tn z*bj0G!dS1xr<Ut8-V!Yj>Q!{znzb%0yfO0Ka;6hUJ6_1_t2xM#?_hCW&?@Izto)s# zbGN&A-Tw6j@=adrT`r}s`?cuVtmuN+Q<G&T8{WNUkg9swevM)8b=LNd{LjoGbB<5A z?YH7hOL$WHk9>p2>cad=haAqZDl@E|ZM7?P^%K_sLw3v4FCVWrSapzRo^wEoZ6n(} z>kjcP@rSIwO8J&;h(0LRF|W#Y;>txAOs?xB2rqhEFK{-t?cjrUMjlc585fj7y{eB3 zPEB1GFSKS&O8Ay-uM=ecGu%HT78>zppL4<MwqB*;@2vkq1g2}8E|0etTs*lX!KyiY zk+8nt!Zee$AI#Z<bdB|Qt}mRax0U^l&<?xQ4#ADicPes1i**h7T&Fhm3&%Chn{{X7 zF3tNhR;d1r{p0vFcLUc9jpmS}-<&5ZPG4`B#;%<vl$kWY#p^=e+kJ}qXBeL3*Dcnu zXH9B*a8p#jYtbQ#oR%{yE16llKO5I*&!}~KTDJ1AzQKuY34fom+`RSe9j}0il;5)c zN9}H^vN~ttXZT8gdp~m;!_(lm4L{?*b7ucIbo_aT>SUvD6^*ME!q$|??@;62Y7*a3 zpuo60-gu6B?#kCk65p=<X7{U`v88r5x4+H(xU^iyx?PQLj4#S|?|d25&wqf&x^&_8 zD=*W1_!hNu_?#--<Hpc<J*Z#N>6OtHpMZZ4MBUc9&0BaWV$=B@Yzzwy*u<Dt3tvA| zE_0)XwX)w|wP5xRh6h|y$Bh~p8y9T)>@<5?k6cl7kF<pDm6a#OjtcN?v-|i})Xh1{ z&5t=lxm(TBG+4#t*4y_MUpaH8t$15e)uYRM+Sk4(kHfl6`IUz3g9rPR?HnU_uUlk) zr1kwK7QP1+`Yk5swbw4IOPs^Nq+$O2=gb}j_Ldhvd-P&mW_lmcU0qn{k#m`ILeEK# zT`U)Sy^>1T#J4H)N}Z_YNn^Y$_HFSdyYi*3xr!${c(!WKZ~FABf7i*6q2&^DqrZG` z=Hy*9Ny$3(nH)#g$ME?plL8o5Rf(QU4L--_S8ny5VL!(^fg_fD!S`FP>?tk|`Eo?y z;m2=kkA5guwLfF!FqBNb^JMMD^qtSvS>|QWdUg1-zJ^#(=R3~A8?1Ionc5+-t_x48 zy3E~v@a}Qv4crHO)_eY$r^aDaDZT27k)^`(Ce7HeKCe4$=6mB(d#9M4n}5V$VROT? zXVzI3DL<!sluF6f9{0Iz@JmtaLgiGpHZ$($e@`8Bb`N|eu_jQdzf|y;WBO;ktMy7L zQ{Qy)^9XF*Wf?8IUZ$zKZN(0rjW=aDo{763zOvldYn`9Xk@YuzPra16GI8zRqqX4? z6@T3gSLkhi(9_h*xHl)wP2<9)U7dcfrcXT_!6J9Ru;*ZycFMgd#`#B-t~!LZ{c#b9 zOMQMN=aq@!D?zIso0znRE3^8)w0Mg=S=Vu3>(!N>3){0Vg?IXj>{eWK^>*9OUoAoh zr*>{lGKvkn`ABG6v@A<_@Tqqb%oy)|4h(prk@D#~n?Q2Y>t8K*%ntr+-O49jZ2Tem z#aH32QzdPyx}3IFRyBT}dS;(FSN?em8&QU)U2o$Se@O3KH8Y7<U*A9^<UIH6;!Qm2 zEB#ijknNvgcif<7<JIkfTc(IHM)zENApDs#AR$oXoW9<5m+a@dxlL@mN|);#Uqz@+ z_q)C+<LI8<9;yekDk`RP_qE?rKdPTwq4e1!<-`$7x4vrCU$>N2-<}bX)OK^P_w0iu zW{)OXE@6**(0=Lw$G5#srk_G2EE5!GOl`<qKI4c|onG}6@hNi_AGK;rt6o^8{Ch>= z&v)9M3%HG^FdulIctypDUp2R`nBnr<)kho{HJd+l6`fdHT9-V{wP$lpxJ#*J#Wb!h zQA=09iZYQj{?Ys1!aJ<uxS+-DBQ-PDRY}KRarTi5I?QMKC}m>fh0l@(1rEoXw2uWo zO_T9{wsq^(A9rGY7;f2|;<q`y`>nn&_qUJS+_h6%3fX=}mhH<7cA2mB;)5F}cQuc7 zy2MJqy41}+2JGv<>%7RhY4D$6tNw#&b0Ugd7>*rTt*Ub*!jyN4*q=ix>WL3hziyA@ zYWxyy*ni*f;F-WbZW|fWrhhp4!a`%|$AqPwAGKM`X3g8<vuQ7f`k5^+64PS8%3bfc zE_*72>-*vT1))!7F|Xgz#$?X(xJ^}9>O=L8l8&FhnxE+E9!rYi^yf=;nYi(4Wrt4a zbUQiWe=Efmr&z@bdM&zcxu!k*Y@+M$-i!Cy<~`lGg0G|b%H8mCRsj*lLp!HA^1kKP z`H|F}dU(tGyh~f2G!$D4Et;Bk<Ls8K^y_aMoG*styyI0V;QA?Z<WclCtvG$R#V$_T zomHlR9T^6k8`tZJDBQgDV141WWnuDaV&O}l$t5tYI+gosDdR@h@D#3`hAH<~oMO7R z_>ha{*?9Ar-H*1(DLME|E0`Ix`+@hPKBe<B7N$LVt^dodz-;;~w`;Oi{~2!Ztk`yI zRg-F6-gD)J-|Y4m%~AVi%%7dOqnv97o0C*%a#W>TWAD<8saj2!kL#RNSYiH<^|13v zz8PlWf09KHd^)FL^~rG7x~r2SxKGw8<}KBUc5r*WL%Fawbm6PrGvrvGml`bfT6rc% zfOWgA!>^v+#^-0eRxH@JEL6vIL+|s#t37s!%J*gZ3pU&83rq~zurjGR?$dk0u7*{& z@^@bM;IK=4?%?&pRBvUlA?uOFg`oxZhWE|hL`b*ao$F<BeP>3)Hf`R{Gm)YiTkYeo zWbQUk*mF!){m-!;HCbE7=NH9T149>-$Q~DauPASO`pOgWKfn4C`EtF_D91|7UeB}D z;eO(@A4<GdM?^V%mz9^zId-Fy**B1pYr=<(v5qG#)#j!cyMGtSi@KVAS+{~av_hT5 zDWHO<-J<<L=Z$A4IM}W&y=N>XVDRYT?ML_T+*-(Sc0zilSD89fm`Lc>N6NZ$W@v7| zbM5mY&F5FL6jndF>n`=~luv5&+Rk;y!=FW1Mfg8x6poV3+0B-%zqXJwS)^CL`@u97 z$+UTTk=l|MY8<W{OnjD_d!@2$;)U{8uOyjSAFT@Sx|gZY==7ZNl-5z(>9w=$p55GZ zTKqbTShRvj{EUVAt1kAYg_U(%Y5tz_QapvXq9bEX+r7nQGiPqqwz(xOpJVoQX+n{~ z8m8sRj}#U>Fc7lk;>@_BbSfdT{He0mM%_o>JMv9hza8aCSrhxCq4bSO%_*r#PG*i8 zy!VyM3j?^fJp5X7cvI<C|KHQ5H@GgoU#JjTa{20Ku9ZIyJ)Yq!H_b3m?{*tU%qQs; zt{cp@9m^M6d}M)iaEVdZ4Nk`uKi?gy*w1qAisR`s&WqZ^rLB&g`&abRfQ5JJZ3lN1 z$%$zlzeOkBU&0g7DzkD)hvhSihuNpOAL+H|CMJJmvM@4|V^i^XyZ7?Wrb*X-v=*C% zYl)-;t=9~eVAVb?a5ZF4^D?W(KyJ&mpDlXwCNulHu*5Fo;(r(CW1TEnx-fFe<kiZW zkGK>YZtj?M_~ey63*sC8Gj!%L&VDcdTRY}SZI;TLA}0lIBRS5AVF|%2r$w$PkKGuN zlk~{;qhu<_wiexPrkjlOzp`$1==1TOX_EH$p#H(4GpXK^y!r(aEPob>zt(7)!n0NO z=n4r#ovrQny6>!<&bvLYZ$Y(Z)%v8Tik-<F-vhTOu}1n<HN06-w#&n?QFpc8Dz&Sp z7Ea#y@1a+s@b+&_tM)w>Hdz^ZD(~=$Q+uBGSSfRfhVQECyFK-o?z4BHnqo7>ihlP^ z`Mjp%t>o^)@FR{>Tg}>|{jN@{7brU_a4Fd0!|{n+xBdwfY;-XC)zRfD`+n7f>4_St zAHqAm8Ff<&L*MjC+~;5jWRhd_Jo=tzE6+pzMb{q%J#E=u{ZZce$mIu1&qgmeuk&Y- zv0_r=EnDZqF6w9H#P=~CzL2PVOKbnHR>uR$b*j&{a7C5IcZ4LI&G%tg;xy;mYPPS3 zmHreOGHmW>X_&Nb+eaRS+51jT$*homvm&FfL2REE%iXy2u8yGcD%JCX%jOt;+b#I) z??SCrUn*=S?%>;cD)-T%Xg3YU+KB<zTFO4^nXumf&~@P0l}9pLI(=tsKC>$CU`$D^ zlPLdm$8&YbYeX-m&uqIPbZJfbmdsR}J>EB0{P=0z7$;N^x9GU^;kAM9tl6%Xuej&A z>(;ZiE{U;)Jc?)Lv#70Hv@u$XH6%&r$lRrF^><CZCmAd}qr__<seiwaIgKN0gUkWp z&J#uzQ&XljCq+DXaW=nb!;!N)FL^~XuCmzQ86cP4-ag4D?V6(3_cH+{+gE=SymjHd z%!Gm+CQ-#2jPqTeSa<r|QYhOHA+_S&F;54#B^NIXxEF|6e%5SG(7mjo9>6JLoON7d z?u^9KcM{j9b<Hx<`oVAbR(X<hg!k);zQ)|E+XcAi$T9LQKT)WEV9LHX4hB_amtq}a z7tb*Jp=-+cL{+IPUb9f~n;=(j*7S}8OIAH9TJ&2&IY~gjU{&U;rw_XVN`+?asLxsB zt@X2AE$-f9ql-Isl}XutIKY{EyXb>}$(hBo-cB()nx@(7AuZAxm~&|7lnG%rr#UW& zxV15vd^)y)*Zh-1`rEbB>Wj_K=>^XHc7*j;gWsxMQ#3?YpNkI+2^ZS>km1yR-k(#i za4W_MFAKE_-d$7^ep%XxW6{g!f~5>s`sW<gEDN^KQ(AoM_v#ZxUNd~uChb;`Vfxwe z=)n)uggs7oHcfqCb7xm8cTYd_y+m7Gz3qRG#!NLnYWPlLH)q0+E3APl!+)z;GP~?Q zBpdTm>%5@CtHoZwKb#9WRiu}|`(Rg))8UR;=TqXAJgkZp^jMv*aQKgN?9wXsy!D2` zN{_TcuJ>g>P+nii&(IdR>e#Z(>v?Ru);*dTA%FYvl?_V-PaoUeTfAtM|2GGPxzWF` zX|W4y&6Z7K&@(ez*z4>$v2O8+si(u1?7X_*qrb{wllP|oDq5Vym`<edJwCH)y~x!) z8%50**Do^Q{g|_^gF*Ni-_z5&4^&;FEiTWWIiWQ{?D|)}8xI!=|Cm~K;!A1l8CNUq zTZONL9PFG89<LCQE;z4JvE##6PW}x}*{-F^&(E9;xb#)oYU8Snd?z{d{ao+Qnvy@Y zKu_nhm=LSYzNg~L70y=ly*YPjQLLE8!)m|OzLfhGy#Bf&l^%wXrQ8<vGd@jsh?Ng? zjDHrg)OAzIv5lg)kNkdA=MsJ9^18r=E)VaAGpaN)7?%6n8@0}LGAQLtocY(&wMRf} z{Uo**A2wV+FL*H8sD)p4(}IuLqU(}YHdZ*)CD>1QdHCA+<fi>s7HPF5h38y$SoHEM zyFIhv6=9C>6=~+2sijt1(iyKX8&6*FHHACjlkO?4Hj(L*uLPZ4e=@2;FkSR~=juJ? z_l?d@*d@bLbSB3tnd!jV@-sXIYh%6FOj~F*J>+D|ZH5)n-zrj<i12<mcUS2vBf~1i zXVO)=lA?mEH$1<yx~jTdWPz4?P=Cw8mFf2dwf5#D@p$ko^@=K&t2rVZcHUf$X@=DD z%Nn5~>Dw}@jqXj{6n6VEPk^aal2yL}SN;*kn9M)k6P9jS&nPh=_@?FR&L>`SljFL( z!YhO&-kCD#EPV1&NO+0IpHm&eN~^z0Dwf7IIK@2K?t5M6WVG9Rxzt4m*;dc$T4W;M zr|)EC+T&RBSa7B<tH!P1yezSo6ZTIr{<(5XRj=qLu1|8ohQB1Ny)(|8^mv=)@~R<f zOMd1VPam^If4!xwnEks8^=7Wts8!=gxR`kKI*)Y1zIpd6`=(9Pyi?KWQ5<P__7ppB zpx$J?#Rd6V6}#Is56ADfJ)roNJI>}{j4O+9&5zcEz6xQ9)-&rSKlm=%bEnt+@r<^R z4FPgXmw0zBc*oqhG|eu6`Cy3kenZJz=dxoAXL`Fou892FaH`#Fm)YhMk5rPHr|va8 zE_CzXg7Xev+!GT{<qMXwueg0Cu<7Oo>m#8vrP$^R?l^m{<fBzGC-Z-X%&9`h1+opN z_<HxN91}QXB)Q>_tAH45!=r>{7dKsh#rNRIhQ}T4X|chtxUN0mvUOh6EcI71P)IQ7 z@BS-AJg2!19u#Vp_HdhQ`gBjN%hJOMw?i2_r>RATDwj=vr@8fpMcED?mPOO^zH`Og ztUmhcw~|7$$%&eZzNW)rSB;*COXWSzN$t1iEDNw+XYo%}_Q;|0rxXu}ojP^@k)Tp{ zU(>_y8UaPScpSnL#M*QwSrk7%Qc&8{w<k%Q)nR1<OQe&oynx?R?=2FK)Z%|O#9L2g z*>v9guWz{c=2JnOvm3v(CIp7fePmFo)pxG=-9uSr##KK*bNc^fu=Sa7=wuVGhSr7C zJYIMDcF#Oz`QdcX!EJ^od5_-tS@Gx8S}(b$riXJkdQDH0Q(dslc2if>!Gi~NMM9@f z(_~n(@l|Yp%av1?Tc7&-sQT}d4}3F0{jmO~HGEo&1q|OsKAamDP<pL9d`4(vH`keh zEvE_tA6>ChIx1VTea3=GX3Z^%QD@^$JnH<?C$-|78*8xYuG3TQth=*T>Z^F`tQSry z6BZnw;IOGiK_vXnrj~$>(@Xy|7&9jFcAe(@u_Nh(Cfm#PUDNbg-^j_Yj5j$QQS0^4 zyGVXZ;UBZCFP}AM-CAnVbipGdOxE8)EJpo|t8<8vg750SmwVT^^FG_wCsn8)&am|J z#Yd5g4gWN9sTP@?yb>IjdHGD%mG{C)zdi~tGT};|_ptdbbHU!47gEa7*Hc*k>Q1jc z8<|?ULN#}$R7K)^Z>HIQz1gN!GTeMSvpx31GL~;gZ!e8fT^q7lB+SdqPI_iNvrKFB zp3{O7%zaNYu7;f{X?js|`l)2W=SP3fRV&W;`H}P3xqjhdJ)UVg+D8Kp3TmDE?cBUz zxBs-1kP9C^vo9!G_t*IU5e8*J24)6kMi2l|3=9m6Ow0^|Lc%NpA_}Yq0SONOZ!vH% zGBGkTF}z;;e(isTMfE=zn<aO#b8s&|8WPUI{!c%)EPmat*VXs_GyG8UWcbHp5%12r zn@9RT!v>vbhp#_R1}*=b(zNnF!;S0|0TG^;A?q20;&S-^scrqwQ1+kU+xJaBH_ujF z`Nm*g18cqc-v0~_vZJnBUEBZS+Sc`dnw$S!@SbkDXsP23RxifA`RBYmEZ6_3&Hgtx zJL*5fary6t2dr5)h9n-ID<*lNIAzz)1N9%x|81RhZR@|U{~6w`b-z&88K2Jo;Ou{f ztIPhV>{$OmojaL<Q90(%lL_|6zVH9OM}_zGAK{<tKkxm|aCwd7+O)0z{IcW!O-nLa z-6%Ml{lVeiYqS5n-7mXkv6;Pz`-20^`P`*HSk&$MqW?;MbHH1N1CuW*c7*e;D~Yc9 z&tP?J|I2&%wPNqr?Rvd-^4|CLUu5n_-*;_pf4^><#HNQwb*FGu_tu*?e@`}X|DhN0 zT<Y~w{U8319;$5YRGsmU$&cZ(pb;0lOvZnPrUN{$_s(HXy#68aKf}lDsOvwjTkf6y ze#5c$7v}bkzuB+<l@+r%9`mZPP}hG^$QRKs>}wfr8fjlljL-XPr6S~()mrbEBN-OD zxJxrVNMwbGr?%2^o`!-hMv2fVqQ%W-#wiaJ=6|r~h*4c7mAh8v`p@gnw*IK+WxVhD z+x*}9q8|@5Cfd!re<ADUq35Z$dP2TkbvLVCereqfr^EwCdTL@Uc3wzuuFJpZspFj} zzj|uu+^K?h#m&6etBSL+UE7?vIZE>xqdFVUwTxE#2a^-?!!$x(@Ao^X^6Wo@S@i9T zEB|u)ZWda*%{Ez!?SNZp@}<QKf>!hh6m7`-!9V}-&-qWDrlrl-4D4?HkoYHu$0^<F z(t|@1MF$LW8IGIWXj-l8vwF7j3uSeUH6c?&g4bMY%jbV~^6(FPGf%DGhubwKTPzT= z<|$6>t}<Tze$i18DKjSdy$|?X86J9C@Ch%S>^Wh%3R?{C`U7SDcKPO;5}4V47OXmG zP?wP&JMFqmw)ytFuSQQrr#`Byx8TjtWOd@X5Ob}MhxyC=gR?Fk{_(KT@B8*+%xugr z=a%`Wwy|pLD0pzLw1t70<ygXT#*5N9dKrzI*G=iMZw%+t{F4**qAl;#lnb#k_dZOB z7u+xMW}D`{KAzj+zqBhZ#^s$_(025|jw_aHE=sZgk&)au>$v3__UgkeNfVB|U6qyj zVydc}9?yg1tGSnY=O6HY@#og#I)NR0na$IW9J5>_ab^L7z4<IHjwG)4AJXppZj*Sx zHC4-#=l!L9f35$#*3j7K66)M6EuqJg^KfHve2;U9{lR04Ycs!=@a40~pWEVEV34{o z$;~s<)OCXEBE#4Vn}w#%<xKzb<^HdvoeTd-t`KF=QZt<H!V@Du>(4zi{f8`dCC7QD zUYTI@qnVreaKeE*Ef(i8a^k0i2F_-^z2Ir*{ko>PV!9XV6XWCKo$EE{huQ6&#WibI z*RQS3CGW3qua1(c>aI>QSYV#m{7Gd_Icr4yqEPo|-?#I3FesaDl3>`uc{XiBqJ%^f zn<$rC*U!gS^Rw4qsyh`|nzY2OOnMnpuA-d77qj>kf8#Gn+`bcYZ+_6<<QHc4&b8cM zq^p*4mtR!d_w3or+3FYHZ2xNZ_1o7Z{=}(2Q$r;eH{1GO$cUVfWWJ!bxZ}vz*%CMA z&px-=!Dv~Cn%K=_QX=Bt>^*n<^1oI8MEw2oOWXb}{5pS2ZT*e=8Ncqoj$gU*g~8dR zNe}!d?VER~Y3XmC_t&@YzJ2@Z3;COK=1px(lD;`-!=DRDr{~>!*7#e*n_K9>a+SIa zEuXW;y_|pj;^vl-T-<DBY4hC2#MmLTEkCun{mtdezihe7>e_xCzxJQOxpwu}#HAZ$ zE^ZK<JB|JN<;xf5wN*|HVOVf*&IE}|ykF#t9v$jB^RMx=OzM-9iBBK?`IqXlr{)~P z$#Xlk*I6D_%Qka8#BqbQbP>bz$P4vOZfpnm*ly0Zd9iMH{(`^zZ~xtYWqwet{ulYR z|1N*4{?8D;>1I||L~DL=?wpvH&S{_5PKq!*%IcSu^_iWIp@6}7VXGPEA;%x#Z$l@$ zpURk=@;F(Vd8-xsx?9g$cPH`vdhh<h;3Vr$yY=%IJnd$_A<bSZbKzh!pUgcO_67Hj z%}rdm{VV^%eanCO`mtIrSn~e*#SY2y=RXHO(R~qP)}d{h!nHX?d++-Xe3cT>9P>i5 zom@@i9U0!{dNE1fncr-;`Q<x3Ev>A~7hBWMSu*V4()c&`i^SAF4CkHF;<fVM9-G&4 z=FFb2vn8KDW1sNzOlXDnHf9dVMHbpGZ%Ql2H%zKG-KNY|BtCz#_7s^<qQd7oTh{66 z#n$ZkdT52CZGoE7=EJ>)sxu~^Ia8OhJz94!<A>)r{Djs>OekF|#$z0LLeJ|p;|*JF zDQR&Lk)IOJZzXN{d9L8hjv0p+J3QRl#VaXVnfg@te9qm{YX{TLzL|fvcx{0|V!hvV zJF|5G?XMZ5408fjr0jGO&+TY=b~1>wINsr5ch!Fehn>5_7u}g8AM@7#)PIJ6d&ep} zrzrGJlVJQK{IIFHSyPv(AR*^*)X#dm3sb&Yuy;<-ZLJXS+%mD$aqF?eCbqMGTPjCB z3qCzzj_9TJD(NY2l6?#7?bH_R65%{=!&x|cro|7ZWS&s{3tDIHiW~|(y#Jx{hsL>L zL2It$Tsi9)!1OKqWkc6=7QyaTua?hR(kbofdYU)$LTWnP?;Ke3lhJ$g6pICu=PunV zH8*j6%4<o7Yxx&8<bFOkvz1fbF@S$wy|wnykoj}x+x0x{+L=_vzS%!G@6_rqXD=r9 zEHth#oRXe(blc8NcaxeH?%DGv$Tg}i$4TUX<rBSYty8|XbcJ@PXhxo0a7lvGUw=|g z-7@|c8T_j+FSY&tLi1$D`i1Jkmh$GGC2R`PW;A#`);#<}wEY1`$HJ@g`V-bD6u;p( zp!2essZwH7+SRjsLeeojFA{CV)U%c;Iv&maB$}cYvwfk`zR9OfpIownk(En?dvnLJ zcaJ6aJU41#(ca{!y>*d|U+oRAjfZ|5F;r?gw3{#HrsLUj3BDc{M^D(bY@WuWy;-?o z!+mX){P=kP7vTjgUe9lIvIb0<;F^|}s6Ju7%+HPwI|5Fsh_s)pRA2C*xv~4x@@;WG zS3SaNnj?xBIgXx?^pP;=F*VCya@F|C)s2N3eg~emTYhY+o0|HW_x0%sbEbYa)-n+I ztINQlu9I`s_yuEEMq>-(R@;`3#^Grt*BUNqYZwd5M;tM+@KF5zX4$GGSGFfJz6svg zvrx<}XL7f;`|<gzGgW7_>3B7_G=H4GTBP~eCFW+MLoIJE?00fyx#le}t5Q><a886+ z{Es&|OLZCU7HvATC@nEI)MXc6=7j~7Mu`V<H1)V;l&8+@a1gB#W6Eonol?Lw*~=nT zAb-QJUpz@m9t2s=+*YJ^$>XO*jaJ7duA{RrY}!_3+`Q$$8HS6DHkFxY?OcByIm~OA z{)D$cb+OUDRIy|CUL12Op1nNhl}*d{PufhZ@7Bt8UwT<s#&cxVmP(<BEnKf87WCGd zi?ba_-?%@u=FhXGhc_oKV|{(GU9U3y=k0&ajKPa-^kic@lJ1sBU$2Osuv`4ww=^E< zO%IPs^Xv|P?V?@2S0{bSCN2-<)qS%XXVsR!IKm_Nub9EM@s`+n|7L654-;e~G+Cd0 zOnH>G>S>yLR;9+lNyRPgkJGQjtG(MZgX6~($y>$-Nz2k=Haw4ZOLIFvw{A)5Q#a9v z6Ixgj4z{{nt5d9ESgpV+l&i?p>h$^Zv9r%!2v=Uu?qar$YMgif!qoB`aVF}Eil>Il z?R<7QMr76omTf<npR>%)Nfz*^m?HV|)fKN<i8>EBrE2!KY}mxn(d_<a(%T<fm}?sR zPFMYsDvK0(U~sBOFhX+Xj~`nsj6VrR?9zC#?bHfZrMhC>fK?Am7d>CTP^Cfj*@Pvg z`);+f90~LO_@99b)TV8J*?C~`=dA@k*YcLdEUfg)5#^HL6q&I&XJ^uDhf{IUSu)(q z7__D=6Ow*laWm<O8EZt7h}n^!Nd+4U{21HWif8L|X?x{ZZE9G^)pN6`DrWI4zcqI% z>#bcGf_t7Yq<j<z-Z$T5aaMKK?l#4MnkPGcE>T}|{X!FqwVnx=*4b<YkIux~ma^0I zIP(6@>e|%&%%Se6$$>?ue;)Yyh5yp!^Z#rO`)?G~@t86sooOpw96Do;PZFcAmeGm} zcJuCjb&?BbUGZH{W1E+u#FL8!4+<N495TL(dsi_&O4x7gd{R9jlvg8Tm1_LFdZROK zKf|B@ylzs^wBATY%uGc5-_i{>yTx>#r**om3UmE*W?5_Y>n$_<pG`mgXUorzFZ^VJ zxHjg`kUzhlP1`qEgPTe1^nSZt3HEGyW*S;&Zb)eBYfN!H7gELKap+*J=*>QX;)@zP z4r~@W$nz{jO~ztc)vwu-4Ta}^&A!e(*@n|XFTc9}kR+GRT_3qD)61(aT;Nw0`*}+1 zTtLIm^=!^_ew=?i{m6W)<^J`XR=RaI^vxFaYU#LF>%*k1aH=(S^Bn$boLk!T#4cMY z9yZns^aw2xIlDPGMWp8NvkLQbsZU%^>3^13l(w^e{u!m^vla`x1{<+?Yg+nk5?Fsm zz*kj%{sCR1kb|=<i>7{6k!{Pg;jt{-aC!CBjoI(z7ldDodea;HS><tCw@azJe6;o2 zNxxO+c9{ga8U8Ygv<enob#SGkEK`8KLZ<VI`PI#@XHQv>uw}xzAf=3E6V3w}i<qDO zGyc42L8i%`nq!5}R3?6k6shD4i_6wbPB>&5c}&i0)^WZ`^LQ+7<~*Dt)XvI&^{?83 zbwRq!I_wNDIo5x5oUJ!s&+@jw(+jM>k87Lt>?;)i>2jnlvU!`zGOY+bgUHK_dg}_+ z(htsX;x^+t&h=vX=O0?)i#j(SI}svMBC+NuGh-izTaZ(iI%D7tEw=e=8O!Huw~Ko9 zBy_L8{^$C`Qw+}z{48{-{J0?OWPfj%T~?=R)1Ug|f4o2FM1{;hHfM9v!xWX;U?b0o zg2!jNPd}@>VJG8;)UGy}n<frUYKy<$?N<2Nes02_$BVu#4hb}HtSdd5qxwOxi%-a) zfx%*F*J`bGpKAja*L^bRm9eltdHewTkJXy<Pp#hErvG{WDV59iMyBi&9NvcRiZlN% zUcdPFe};{3KX0#^p~0w?op-G#<UfPM?vT)ef3-RBJEtA&ZCtU|a9#q>I!$)QPe+Rr zznJdbzo1s<N=N*RO(zUu^a_kcY<ZSx-s1@>PMC8;Wg2V8*(QHyJ{kFD)3s?^+yB%m zKT2DWYj~5-<y88VXF)GipNUWG^-uWI64Ib~KiiPiYi}WU>Z+`1|N1L;vHkg-;j_{4 zk44s01qbExCsr?46+HQQ(w^|=nUYfsjk@;)K6@bgWZ8Ae33I|02Ddh{S1fqeEq*_8 zv!lO5ne^o~^3A6I_<t;T;&V$r(%RzmX??HTB{BOS$!^SAt-93TIe+S&8m7&+MQ z?Y#K&u4r4$K}Vjv1KN{qa$a6aNI0-2k|ogO)#gMq&RMA%Cj?Hi%lqsLyZt<N+WWN) zqEna~R#+I<w)6a0vMtw}!E|durG!Bp^X7l1dn9Arl-4i&(iY%&wwA>v+;z%DkzyCd z5bwTVyU^Pg<(4PbwO48FE3xa*nDU>YKS0`Umbe7BnW#d;5qE3LrD^{9^5UM8UilS; zPHS^npwne?+}-Tw8dh(CD&8AKl^Sdtn3fc*IDKAEKxyKS{fqz1u`qaA7<gE7mZ$Lg z7{13-dO1Qwdc{kVJ}=)K*mJ~#V>3I)^Vda-r8zugB<%8k{McFeby|?quj9Pdi>4$h ztzB~=@mKf+gB~5Zg%bNT6R$s(cguY=@rU7t#G`+1T3wVr<g8bEe`USvhV_mP{~4k! z3KCD5a<NM~>#*`)o*<UG=t^j7%$=*J6uWA)|1(I&ch6Xq$`EV1{y&52U&p2`_jnBi zbk5c6IM)8pb)wHUm1D)OX~zz%5I1cN{l&9vQM$t<2Ui}`*)Qhp&f%&z|GBZ{&4aU( z_uLb{pU}9s$T5sdVC9XoZ)EE}8E#t8p6FiOb?@W$l}WKITh@NLsO{CoGS6>W-`h#4 zddFX_y*qP-U1E<&LHd*<@@9t0|D3vA_UA<Sw(eTorfXHj#&tyh;UR__hh*B>)7b=0 z33kM?DzyG*kiM5+;U~&HOLARXj$YHg%mNMDs<POEhYW3h6xPaa+;B5K-%xV3)y)?< zTT~}HDF)_;)EAxDT(<A-y+xZhY8`53NKHDn{JG)b9$jXBky)#iS{LeZt$OX@YMd<1 z$<C;daHwZCYvG2;b2hN&gz)ItAM4{kR2CsSftkVHT95NwNX|yfi$@RqPP6DKm|kVg z*i_1<wc5?v>*dFKmLn_egKQiEL=6iruiC1y=FQU3;QfnMf3c10`_EvkDCuswtkd)P zOgpuuznsk$awKjtJYn19wXIEiVy3P&|E!lAL))gzNsUpExhYXlmy@>Pv4K_k(~jkf z<~9`0jgXt#u>Mkp&xW}-Zks(yT|PU=`y@l?taipopN3Ga)#opz&(*op^lFA($xlJ4 zr4Anq;`@Kt)lcl&e?KyERnZQut<O)czqLu!iuJ{r9TB2BW`)eHdaLeSbI?l6`<!5w zIbC$KyNLWbHvxgf!~JDkaXb1#3uIX=AAK^8lr+$ZOj}y;;JE1_VGD`RPp?}t7Im#E z2%7$H^W@5FO&wp%CeDrO@HrLyB7SAv<S#YfEJPaHC4QHG<($d7yOwckEBl2Ln^VQ2 zb!YXk`t}NTMl*QLn>qEH?8Ofj%RcWFW6)Z?;@rWrY1>bp+xF(%$^~6*o(fD$ZVPPU zv0S#)ZptsK(xweQIk&}wm^2+jv_mhX&G!s;ZuJw|p%io~)GqAj7gdWQ)_|sUESJSL z|GL%{ceP-#W|M+3=dltm|K<RvAgRE&pRc>}%*t5i6Rft*kIl>Ymw`I_1D=qiiBs0* z=tXP_&vkS?v}Z-pkpzZGh6R%p!;SS5lih!1f05FhbZNh$qH}WUic35aq6@PU4*5)- z`#5ajOeYc1819fC|M;K%O4<0U$Zy)eHXTu>K#v5&Sgp6WR)!w?BYbk{w8{1zykV_e zDi>$J^j|6OEXk!&{w94UySU_sM3t5G=bC>-^ThKq#(X!MJ8ji+KGD+188atbabs$Y z^qAbcThHbyla%3)=?QZdF0)Omc1v~DTDmN<IZ%Ts>RbcMtfR}#`v3IW-HMnL<*Tmy zWv$e|dtJw^IzzQ3w`CqT>00a-;mf_+F?d>Fm(QFpK5wnpPFnaf>aSYwmwKmdyH$8) zcqBWPN?+8PnQ)nF`5Ct&fmx;+&tJqZzn9;e_Dg8rO2@DDLAOE{7+%_H==3x){>kAV zMQ47jPG!+-+EM@f>C~qW?yK5m>iS$QylTi=)ReQM@A!hqDDT;lMuKTCriSxd_avMs zxX8rZ=lCh@@ivR21=<>u7S23*sV6u7Ks);-jh@iR6*<?Uf3MJ95*T#F?dLR37RRW7 z*njQ6xTP4@Wi72s{Inu6ijnEqT-94E!$YE#&lUZg(kuAo(VvGdD?e3q-d1U_bc&f$ ze&Diea64N@(!;JMn_1~<2Lo0-4LQOV9{WTptMJwg34woIE1pZbWjydnVa>Vm<Ex0s z(`C%s$~w!Kwr{!DvhByu#VR!~=VmlHzKYl#bH$eBUi`<eKmIdx?5-7d?$SHyd3WEW z*NMR{C7NAV-6k0YKQC<NGx}NLc~0WW0qb3!oEEW#DLx)1ht5=mvK(u2TH3Ty<oMAe zMvJC}xpd4GDv2_<y|ZpsZee7tv_xQtYzPm7fOeNiT7yQ2DdT#5&uzDv)``v3ZP{A& zRiuP-sle=m$u^6x{%7c1s5Wb%>EV_ox16~a$lF|9VN{$y&uCJD%D&>;le<zhbu}M0 ztgKOU)xY^mWNM*lnnYt~*sK#>tC!DK^IKaPDxPzGcK>6~sp>H~8p4ZOdqpR6Z+|S{ zT)Cw{sKhxj>Ba+f=g)CIjT&xZf))%Nd^};MnSalwY>l=q6*AFv5LqzOU#VxK$XU_P z%x6Oj{^hiBT~WxKm9ttk;l1S^pF>S+!c0XhL{~X#m7RaV&T6^j)mk>0KWDZr{m-z> zOUrAooXD4Sp4ACgVsh?Ba0hnj^9XiZa60bmPU7R#v^42-$}ICK<q|n_MqASGn6ivy zE8i8<s9y^iUDX&Aek~SG?GBa}?OK)e;B4Y4%`%Q14BSkdrbb#uEi=0~O-0=k=Q{ru zzio8+lHb{!oJspQx0S5-@ySwCjJ#zdcF^JBn>9xd`&iBTrjwO><8NBJgvZS3TwZLV zq9x%ML)^LDxTB2r8tl6+&B^E*vdZVrA!E0MqdPJMTPJ)sy0PO+jNY*ddrpfpHwq)T z7`!h`pEDz@!+d4C!&1qLd4&#r*%v3BQR>o&W7=%vld(WpMO$rV&ugorDKDHgHwMqy zto+Na=*1e2<q3M?E0`+cw=UlldUIw{K;L!I?c2{yy&)zXqp)GQm$%LZA)Z4g&Mw;| zw7_UhP!v;^_oAKgCZ!ey-K;EgEM47>g-;S)eqq&SK0%X!=L-Xk7%Ei4*b>?$*ewd3 z*`iLI=}7mvZ^qSaG-ny>!pe0;0$K|XEHzvvP_y`nu;%m2LQ!20`#fhpsY*+eU|PN4 z_<7SwD+6_lk~V0$d%QPPG+5M||59|*#pN+i7dgz=cH3lm;xJ>9cjBtG61%3&TB#SC zEH<gR=U&r#*YHU~&jlNO7OMVhU9jq=hF`<i>gwO+T4ri4D~rA`o%|AL&^r0zsiYIn zzV8XSs8h!5ac23XKmS<6)?9G&fByNSkxOdiCf2m?|JoMs7O5{=v*wzK#5#}lu||_* z7F6!gZMk@I%Bu+-bD9M>a%v);sx3$g*{7>Ei*xxAo3jxNZ+zqOSliD<%WOHP;X2p( zx8|z7ao?=3O8HxJYyW5PUmUp9LZs>3?X<bfbu4@u*XEjuN2_cyu#MQJr6ra=A>FL^ z?%{Ur;2WvuP2Fpo);dov)my^6=}o4ZU#OX6)~U3nqp{Kp3?5I4x^Fx6SdNnXw*L$t zzr+-r5j|IL$)6XMROgm;CZgUy@x|(%O=X8C@6|rob!7Q$ubHL~BSh62AN*OZ#JQyB zny2JqpH&NgUVoMvX(X_}<LH{S?afc_&d+p+(pX~_vzxWiB(!eE7fElQvuWN!fi6e> zaBv*Hx^Moho>PHMHf2Q#Mvs#pr#D8JMn+#e?WYy_QmiUq)v>KP{!9KkRU9#1A=({a zzbZ*Isn4fLt8>Dt@cGXpMfqQGPL`Oy<@Kqw)su7{^`<T;TP1W@Gtha?s?}O|gQjw6 zOfFh7y}C+j^_Ngr&jrVf<Mm?N+=HGZ%$St)=gq=C{d1o}B3oltH`TSypD-gJVxOSf zmsuMZpIv1w`FeA|Rubpx^v^Rl)qGlhuE2A})_0qy+*4ifT<~a_q@nXh!6^3SH9KN> z-fa1zlzFEyD?NmvNIdcCbX$oQ3CRsfw%n^3*0jY;*3!D<({bk6#HF%RBU?UtPjFer zmc7MT)&JVL&!HkAtCftr(j1+C>k6J@DEv61sY9pD$GQ2*@#jT-0m4QP&-2eWeOZ1q z%spH&M$q}`PMeL(mQIU|326Hn!(gpY$|CvUDBEF8-MLz?D;|5D37vVhX=fPAyj?=8 zmId1Uxf&Yja!K^(A<0hjGb`p>oqT4zB}I?t*<X!Ro|{Z!&M#(|x-QtdX2+_2BaVbv zNt62~({}JWrJs|XJFSRs$Bb2h=S`1>^!&3@-?%*6?TAiL-^<?C+iKos8YLwU<`%nN zNOUWnyH%*I<yF?J8+;5$qgtkFc?*epGg(d5x!~^9lqtDdf1)dcnfQw>YqYLJTvH9U z{t{HMd3CF?iD&RjqgAQS35B-7c1dg-Z+4yxOF64pYH94cNlQE`Xi~Dv-h%LS#h|O( zFD!n!SkdC<0e^-yM|aQDRN0lx<zJe^b@S9_*4S<AX_H^-e2KX{(|EVdjcHo1&OGWk z=k?2wW67DCzluHzTV*cJVGDPaV7tsA>A7Z>?JA|vE3KKPr%&y$+jmte+i0!+ya?_a zfzKSLcrGtH#j$$YVyTu>6MTbuK9~A)h53KEdU4U_(vW};E|=EEU;LD{tZ(bj`+3LB zeq7dxpQd%bU(LmVS!*lzMpbFeo;BfIJ(8B2S~waWZJrsp>P(k$iJsG@&0ntQ$pk#e zn>l4?)CJv;#vs{MX(}sD?YHS_J6x9WNbJy)o#Mxg7j3>c^J?M5kll}K882(CiF_LQ z*X!KsmTr{~t*266HcMP!xcI@-<eH}Ziv1TNMFpCevR?>KpKPw<-0ogeR%~!eWF6<4 zxssyh2WK+QX_72>{AhEi&XIpIH`A247EQSx<#cvScxY|Lv5m7P9(0dfkk~7={7lHk z1tAwDf;3pKFg9lR`OD5TiJw=Zt2*05%Tke}lrLjh$Zm!$H4_(})ST!#f0pW$HA|Ok ztyX2Xk;@R~ENH!$-XgSPN5DMBuj*XBAw7&A3~jruizXX-?2&)^aj_voqbZ|gYl&#U za}TFRA1=YJX>M@^vf6V}g?%gx)_Qm@W8NMbXk^zQ=)C;W#HN*VBSepN9M-qeShDe% zXwoOIoHfmpIA>p0Zxx8C<akwiCvHlp`|6kcvYr~NBBvOwW4*z1OEE@kn#`unxhwB! zF|OJ-ZPlZ*NqgRCX<OS(m=+YjF4RM>^`kd~uf&2SZh|VwtsX}Y_jWhz<P8nVm{GL# zr16D?!3uAlI&)=QkN7-e>Z{L(jkMNB?3g-pwbsVjXAGX-*v{{v(!A*Gw2~)NWweAY z7c4QF8r-_<@aGAhy0?sFDnA)^3CXfCE#_)EuxPu_iN&IBq7E|}PX(-yU8#G1(Ge~t z2j(crXQx*EI5oL!)((xUOP2mnOFMM-(^liD6Qj~sR{rI>>CkrWD&NxClQuIsP19M? zC$4g++pBFsw33n4rV9_cc~V_J8$a9Zs-e=_exc*UDT!=JCl<|TKNcO~e0E=w<-P>h z%GYjbndUB9tG1o6OgO>wZJnB%jNpyjN&(J;4UZp*xlZL<vbxW!+cj{;)Dn&#PnNsh zjmrM~=33rWof(rqeiSM=d?LNu^U`J~jWv?4GlGBBUYf$`@apK#j3r$eo9(7bn9P>T z6mR$TowjIk=+arrN!bPqb_AT$c)wTUi8+I|OhIc#p~{6>4Mz>bOHMvec@S%P^Wdzr zb0ja;P7QdJ)YG%dQ8?^ufN{f-)F!i6%Zi<x&lTrhSXuKh_4HIT5rG7?7jJ{hQ)TA7 zNQ$uFZM?2#d1+pttc2F<Qm2lC^9~)_x}>QsjPbg-TuNJ+<ukPq;kf0|JT8%e9&^52 zY0Lb`9=BwjKy!j|&Z9)ubD5{w?CNqt=XPo-8BdZhRBW4a$z)dR@sjjV2M1M0g@xxb zZu2;^IZZLh4e{6|GW}|n)q~}kF(EbS5;3cm&FR{y*Ve+oxKHD=Lqp>Er4fE@Z3k~2 zQ%c>CuG3Pq;F12qIIi=Stc~1msmHXKd!9O{ZQq&}IM*U6#OUf2rghy@Gw<A#y_K*t zOlopS08gl4<&i0$CF~l58=qw+z3h9Hb~Wr2pP$Vm%`d0EYD{L04CG|?@d%RiX1cTI z%-zTdZ5F&-Z6~KhF?`Y5t@p#=xn_@_&;q}rhf_4$F6@?O=kZwA)e@80tRuPSvhkK^ z9|x7jhR77lnwRTe8NaZ%U9J<dXycL4((<stwkqb!vu8e>u<@v)fxPWymGgbeO4vA! zGDAapmm8>U&RM4U{|JMgAOjN<6ElclVq{@r2CoGXR5TP2a#RXrRuDEaNOW=tN+?tg zXxw-Zx+;X(p5Z^k;fX%}svlDeorM20yt>c-pMlGt$^F9VR1P1{gv>6dZsGq7XJ%jc ztNmr8jl|*?6TfL#yO&OMkN?^ACH|xI{nroY328e;+qIqk&u~Wan`?%TldXPR_d)T^ z>-vr+3iqry`k&z|_kV_6$A7NqzA4XgJXP5yYSWLp5ARv6td+cl{xh7|_%EgVI%mSh zjSG!7>~wRRaAobn<rzH_X6*ksotG~{D6C#FwXpy5HE$8`i>bx)41#ovqYVEuI68g) z68}S4T10lEx~p~Pw|I&F47O9uejc~f*m^8uZO398ldz*N<u|F+2<%+mbn2ne&iuA* zk!f54-P+%i|1$^)?1<m=pJ8Fl!hjY<?v@`x2c{j_5-r^E=w#%#=uH>hD%a(IUC4dV zQ1s|Di{8{}JHG6UOmFsA+88Cu;o|Yb?&$PGLU!GDU4ON^HInU)+;ru>ylEq6C)fU0 zualC51jTAaRFqocI#2sdzH$7e$_6i&2`4M;cFLq!9r!DC;n?X%H{Nw633UIJOk;o1 zEhL%rS10hmh7-rk^iQ3-IfrXUVN$BKt@Mf0QW9tCt{#pFXgw?bEB#AJp!R_$UHgAo z9jsZsP|)e4P|8d-pE=u9w^_WLpHiz>C4Ax7Ntekdm0ae{H0hi_Q7B_prF_SqS@!CS zvb!F&9g919wqU=PpkPJ7exKr7VbQ|9vPK@0rd2Gq6e{ccVYSLlBg1v(-`|C<yuI(g zt-sdN?Z$SuceQjXcgv6Ni%tSN)^@n2oS4xXp|fz~q8l@%FUl{PCaBh_nv>hBBb2YY z$fNG#w;)yb8s35<7gbw~#r*Up$=0-e=sbE`H1PWO#Yz%Ck|oY><jhE2^XZbrF|+o~ zZ+;26ajTjoY){s<N!i=U?Ic;PaWF}L_J0P}y7gV5hbnC}qhzN=T-GU+=~Qx-iFkU* zX|3$c7&XOkv4k|;?iWsL_@^paE1h@|rlP+2NLawV(~r7@CH4wi?RJ^8D5&zW{a)+G z@_Rqb*zf;ErPI9e>&c%c6+aFvZ48#W=xvj5Ui_5ym-9dJzi#ZU{+-VJy{+Y&(vD3t zGcw+Un=bkm*Y(%PXq)Mxn~nX`H(u1(C2_6ODBJnVKAnRTC;ioYk~-sH-i(=ZL^jxI ze|375a?p)SKSsYk&C^Qd+R3|<CfVq#76$3=Hg@Gc|BE~RVNKG}8ug~0Ncm0Xn~wDz z+Vo>v%Eo|cEPHiDB3l3Pd^$Gc=ZAnBOOEZ>r?LK{^``E}_KRbJl;-k2t(z~b#%(oy zVQ+`W#*GW_xgD)hTd~yDSgqb?rk%6&-+(Q80y`#sDEu(z!$j2wPdDv|(F=a4+PK7I zO;Kg)k@AVWZ|Zo(!nw}-@M)b+y4m!f!6p9ZB<Hs|zMtbCo&RC{%kWp)xmDfehYXK# zSt}}5nACQDjFP&Ulg&D9zt5DThxX|#J*3~F$SEkS)G;xm>!4&x`{NMT#~qtgTwFSZ zbUOJxDqJfZjWj3J2`HUd#M98WBSbA~QOmb5o`QKtX8J6N|C!%arls9}$gcg6@u8<; zDy|=0`=>r=(RdN!_G0fu7vY75*Enr^<&%?LI*l%-S!A=OEYx>VDOYt5|D+r(Fl(Wb zep1S`{!JYlYp1^#pKX8h-?6Y`$2=w+{}ynq?Z?8NlqH@y8B=;fW^9|OI4MRg;G&A> zld_;KW+vT{qJlXmy}SMv|EfO6U6YW!W=h#9$<&mdGKWqU_mqH%@*aEY|L9~)l3%QH zQpso5$)B8idsC*~csg-!N7sp&?l&gv(b#{nCzW$mO2Et)H~y$PC;yheabj=x!DXHa zQ`$ZpiC!lqEoCEhv0D0~k+bWE+w%JtOPu8DlK3kn@yK(o&kV^)GiIs0*(apzv{`l0 zj&<VPJvsjwl9VQ_@l9B0yh^m_@uFb4Hy<{yJ~3~{c2}O{D3w5aPSZ&)?TT-<`UHw> zXw&76QK_(aQ9qIY<MhTKhWj+?_}V-s{76|bS>o}g(>Ge$y4{KtIXwJX3!PP!*ZuGa z379Xo!Q}YwKrQ*Dot&SYk{-)!n&wh^QORSnykJVufeD@aJ?Bq+baJxV)yXP1j>`&r zr##&!Ea)|1+lg&@hA~?gZVEFqonpSJTeerr?nm5w=Om9`QZj9A9?6o^A~OzL>#o%B zS$_15r=W|=m)Z~0-0pUMRP&kW{9(#AJDm@&7w=g);q@Z>-sF}UEqXd}-3LG1Yd<t; z@ydMli;8{6og*YJ+~;nW6X=dmxtZi7(0a6BzWAXjxt(qoHFimUG2ggXc$bv$%@{M2 zuv0q8k3IwzZt8w?>e-QtQK~XMlP~<$cIt15yD(4a;oqJKzh`J1<rSK&vRCce@t3aC z+Kz8JWup^#V~@mN_h0rG=1q9bGU3KeulD3y#*;R*Ts2(YSQXEIaFNIKC41~uww-xC zTi-o&lHEiNr-zd^PCx9@cKSU3*N{jjCxMB{aUyFrKdN!Pc~i(vKE>se%DKf8Cv7=* zs6yZ8^^1vB(zirAyje1WF0{&X{N?-+*Dmx;#muw9&)PaC+qqim!i@_zm5%;tRr+MO zcE0P!6xT-@Z%nqC8CIS8^7gRZk)Qt=lIo@|?EU32=}TVLk6o#qPYMq_ow#tn4`+_^ z!@b6D`#yN46diW|ZM$)k_O$7yhXi(P?5Q#ANq(r?X{aj}zs#S%WA`R|m-sn>(Mfgl z-{iZzS6yOZbfaVK#Ay><Y6MzNY@O)tESUUo;o1%-{Um9*W34ZiF7lW*WAP@gGEJu= z9h-Fa7RJ<X{@XdNe$!r=jj4&7OuP@S?a94twfZ54hfAc8l3jN9Dj801l_efIQ{p;Z zGbVq?P2|70m&^W!xB7+S551r0OZ-v$RB~A8WQup$&g{18L*h5~{q#=B=)bY&*$2-G z{e^Km&WiQVe*Cv5^-YLNp~}g~$x2^bBDSU^&lc#Iu(2ZUw2;u3_#~%{jy(@Q>=hCe ze<=D;OntUcrP9(y`{T`)O560=g_Z02uLZ`5Km6D8QGC%vd(J8|i;1h#lT=ub1kCGp zuBo}`v8?=}N;vNxNyCj9-YLS{+z;9b$-S5o*Y`8STfJlUaUP%K?_W}8T%5RP;o6T^ zHZD4%(swu~@Ww1{XQk=Cg{JX$OgVC6@q-nf)2G<Vx~5<B*tqe+L?I=8*PeXk3m49B z<P?cJq9@<1ojOxWH!!)6@3>pXj-2o&jlJ?oeIC<W^j#lntLzbd%K0N;#h&g<hLs}! z8CEvV-Qk~-ofM_fE&OF^o2m6aW!bJTVJuZ)Y?dNsCUzoQJozkAqE6~_>URE!)97|u z#QCH>TEWdF@W+YcDIA-;UG_>G`xe&zGD%l9;*ZKnXP0F=7C(uSFI4p8G*oxq<*X}m zN;V-``cb#e!I+3Ho#f=?NgIzReQ$T3CaCZFV&;!WCln*UcttvQY8r2UteUb{D$LB{ z%_d#JxJe&oslFEpysdIE_056HCxvvpon1R7Us9J{{HD7^?Z@0zx+*6Q2CIB(n`@X` z=qjRUX!yh4qspza<KafnC*2nwsY^fVZ<uV?QRRNnJISMtSEnl{BfHI3D5bAkX`|5= zPub3h7eB>C$}Wnma|t>q^0xETg-HiaE(&*<CEuJ{aMM-HY|Yf(hg~XyY%Weh28!m5 z-mZM!EZ2TS8K*9q(8GV}9(OC>X?>QwR@sRa_ChDcHUvruDY<8OxUTA$C)vYiEu56( zB(ufnNV~3(&zea^ZyzS-UCi0r$CSRLr1fP=AeZuk3m1;H8G0xAvu~^6ek@X|cKpTl zmo9M<kN>)=`lk3Nui>-S=J9uS)>*i5nei&&3WKV4SLJP8$yF-zIkGu?Qwl4DB1Kv} zdorf>OicbTWt+vG-kzec;Fa8mx?G}^MH@NArvz5W27D{~X;_#sX~KIo@43B7;S+6p z>jSSEA9FuAMN6Ocsn9N$MP=ek6gPkL=sG1DIL+&Wy{9)v`NVB$ZClbhOW(Bn8uqzN z^qbiul*$*8yhp6mWx~CP_J^vC+hQhujCoL;9y?KIwpyn*sD6k@ioY`X%j7SwHwm4# zm%1>$rS1GC&xf4rCrn<<p6XM0;i=$J3F!#w$cNjH_U^Mgt*4YEvf+f1M*D?%J)K=j zRR+3}OU|uU3EtMRb>V4_V_uQ^HqqKiN{`*!bgGP8*G%kL5uPbK&!ykXIVa^u^9Pqw zr<+m==XMF{WE6kNP4TGfvcFOoq4KTeo0`QQ!M>wm-C=g$lk;Y>z0~c^m=f{GEJ#@Q zriX9mi^*j(btQfZq=dD!#7tVWs9WRJie;K>I&Jvh^k0~#;eXKR%W=`<WS?BlMV>c~ z>-2Ue&Ueq9d2^P|>o#>M_X8!$yADgG^1fO0b7N23!i@Zj{~1osTofmy(pgojxOd@N z-c8dYos#-o{s@1VqIi>QL)X7UlMehyRo>?R&8%K{n_EWEw4;K7;w>h2H>9MK<JC?d zQeC(v;ORqurIg4osvFgtrW)Nl9&J3yZsBQHUEY*J=h@rrc1k--)#$q_y6Xg8mZ{aZ zskpH8p~g!gmv-GLrY|RNJF+C<xZozG4@KcF^QQ#ncPuiDkeS9VykU!L=Zl5^8IJs! zCzR|Y8ZCU$>!zfUW<pTMq>DLgc|Y_#@JyI2`=R^MNyEKeN*A+^98Ge4D%)`|@aFBL zC<Xn67129IcKvYGw&v5iaO0B1P3;5IzIkM4_#fKTX=4;<T`0atKPgInjgM!rw#)pc z+amKX{>j^Bv1{?Jlkz;WWv&xaq)$vfFuy5ZC&cBo;Kf-=CzNzNTCTaw<Ct5}&ZM7G z|LAz7($R>CsxSYY^a(gKW1hh8C!c%F$|hEe#GP_0D3iKy<5<weN{M|(Ut7I+yUlcw zck3&qKgv<ULLp8^BZMN8Qlf5(zWid?llfp#yz@ftH{KU(`>fQR^V;Se4^RD7c46PC zFRvG?Ea}^k65cdTaMCos8;h>;J}7m*S*`TVHDjTOmdrfPsyL6+k4_~|m@N1wpE>1^ z%7+V=rJVOHT$vHnyRa(grs<S7e|q+qs4odSa_`44r`@_iPF`JIR!6oc{gzZQGrDS+ z%W0jW`jEX#$#Ftf$4kRsb!PTI9!xr%R-l=3a?*b3w45Y8OVN#cg{np3Ty+bDUnFnr zb9R38C1To<yNY!tmf9Zm&P@k3*9vv2c^?Y#sHxwm^uv9N{-VuJlTRsqP+8OR?c92v zHNA;K8uhLlU&M6;p6!2;k-UZ{XGz>qp;Jzi1e0zli~Ag7xiK+jS;T(^xeN0$e2Px` zym2#JrkSStC$gernxw>wP7$ZbO;$dW!a7Z-cpsYQBhvEm@UDk0zMb4}y2V>l-Y;CF zozt5rlu_=|^5Mv*zHPxeD+=eSYE0^0xX7RVrpPgU*V1Edfyp(c`W=UpXK&R1E9l~J zQS6iI!lg~VPkf^^s^nYRE0ta1MO3;^Y9CZ@oECL5S|fc;&{=_rY~Ng8yj>?{P<7%Z z|G{6S*1Vhic}klC{~b-p<|zJY<WW#5FOuN<q`#-9R_rzNe}*oVsV4d^d*oZ+{Hfa* zdnDUsrt^d^Dz(!WE}x{YpPnn9lA@wwyy3((clD1_Hw85w3UyzsP<}XvZ{txTUQQcP z>1TeEq{O;Hj?I|;=w!~?z6foNuA5>nJRf9iT>K_^({!<l_Kp3QqGcm)J=C4rXvlRW z>Ed;sH^(cCKZ#6ZU%X0Zo5hO>FS64Ul~*m)>FoEIVx;v`Tt}oVq|>I)TJ@3Ihl{EY z-b~L{zV=sUvCD+*lj<kCEc#^Hf9b+x(J1LOj+H6h7cQzC+opIn;DN=H=CJd}bt4vS zD7&fD^7YVdfoc7Z!p^;@6Png7dtuUvi4y(J-LEXYI@T=Ok~U$|G8N5~eCEy%;m6pX zI!~Ns#dYSxq=heeQ>O*Y-eh!2rpWw|(`~s4(<0RyPh_XsY51pyX7~zj)aA)%ndi3Q zOu;q5p5BaU=T6PMoL(5{<ndczma^hM^QNoaZSAtWYx<HrmQSqk>|M02Rw%hk<wO6; zmzsw4Cz?*_K6s_Be|1UiMBxk5zbS4qx-jdh%RkrrgF2jDI>8m1ok~Y}Cr<MhxOrVY z{pQ3qvhz>$w<HC<F?&0yJU#tJn7UQE&ygaTGPlZ(X(?)six-JMndsfayW3Sg{ZyBc zwZc8tEyt@hQ{vt8T{fs}uy;Lv@lERz+qoN#iYMKed`P;acJ3ChmThGfs^U5CTIO{* zRclW<a%`rLcT)F-SxV;xF2-19_B(gRL}@<hj?#AaI_+xxl-tK6$jQmorl9ARbdukH zhPWf0i!z0>Zfgp4FEKGId+5!2nq|@Pu;W5kdpl(}m^N+kwQ{dH(Hdm+)Nt#hz>EJG z4%bbU5_a-xvp98BbJH|`w`-i5QP%Z^>tFfqk}f%MEM(`>qug7&&OF#YQN>hovg%HO zNr#leX8b$9Xj_Zv-~NT$T_RfQEOP}TyR35pg-edyoV;rBv8ryt)WV$OW?gO;Yvy+8 zygvH8>#^!Ooi#HJkNHfAjDK9msh(2fJZ-|QZCxLHoPGO_Z0lIVY3)`mILZ3K8s1&b zmvt{JITaH4V$q5(TT0E6T23r9Jnft*yG(86%!3j~`dh6e<pZ<XKfc+grMhY2&1q-& z4;pnzi!bW>F@2i*L6Nnb4<~*UoObg+L$*}PB9FZt-fr%qjVmK=TQA((DQghVv8g-F zV$o^Mj~R=8y4KA!Jo|6Qe+Jh6uZ2EyZinb@GJI%g&(UiZeBsHLs<yetTe6f^xh#5j z=1EUcYxohd6BQ@+L@er9KFRoyQ-9N>U9uN$%O{qWxoNe{KQPtqaL{R)d&gyji$r3# zIqWUCnc>|sVOrnmp02J7^SBL6ULDt&y3stWv|h+Rr*xX@OVKXnmlq%83i~I^cT9|S ziB`IHe2dj8nJAYz1*RM0ImKrSAN1LluqCjmyZrp=ulpiztiLZ3E`GMYS!KD{#ju&8 zjfPz67hlUxsLbf^Sn4!;OVH1R@G{TDl-eToZNUewxrVh%+~v(Ej#T<%^<vNFHU3k# zx#_=|-ZAG|q=;)u$SrHL+cqvir)3j+-*#VK*X=ypPP;42?4?k)^Owb&4?egh_oDcg zsNgi82SpJ=PJ8-3m^U6)PnvPh)6F@JE2g&VO=gtLhf`sFo0hda-lX(-%7m5~J3Pg# z43F`M|GJp`S6sWNWB;coTP|9}3cXsQ;daY@>T{+f-3K8i2}^EEPdzF-)o9}7<m^XY z#}XE9iMYpmpBL2JRiEhM$*HJP5fklG-@9EgQz_`?ZI;Q~^tQDwbK4fZB)M-z(1aDs zL!vZ=f;L{=yfsj6Z^W8kvR&5FCvLsbcTsaK*rI!39?SF>lTN0TOt>ehs_mSuBqh)P z;y;5^wUbE8jx_GnsZBe#o^o23lPq!JX0rC5E2-T%U5AuKZ_37UWh}mEbXi2<W_{nK zlV<l5r)<*9@w_Rz(N^ThT|uuS*Z6iw-B=PLF!{tqO|Sl`+&;cfUjF#t<*jmim+VE2 z-7+7-&IcAPx*20}oO!ZPW%5SVNmmzLxMel%=(f20ZovqB=VyJZR^)8z_ts}_xRcwp zzVEn?-1Ku5`CpH7cuo|qcs5<TMX@K@b+L@~e+D!65{*5R^8X6vD|K0&y0N0*z&(vg zkut77&4N9-Gp3|^%5HNrTD<ANqL-aId{Jr}td^O)*mUE!@`J#MD<yT>ZY!#KEDB7X zvgTm7c2eQV+Zr$Ij%w?fSnP6kUU#i5Bw5LKF>|5HCQU`vrXSgDGiz=Or9}F(_U5;2 z)67`v^Rc*6TYk~Tfc=MB9~?8E*psZ0{BYr(Ko!r5up>wQGn`tl)V*+vpX7vDhE5rN zmPvW%7k{!0(hTWa&$>0qpJ}qv7L85r>65%dqBr_;%x`~EX|Gb`X}3P*&5B@AExC5t zi7h#=Ue^DT*;Za5EG!b*=dx(UoBcN)&Yb?&Wx<M*xk{QVHkL_M8aj1tn#QgfF-bC~ z>)?NejQ6d_^xKcOFYTxk-zU<x;YUo6fwp$H?mW?dF~zCMsvnikFFMtkb1;6@-`xJG zI(-{FZKn8d<2%iAO<;vD=Pn^(_Y-@TmEH_GDZQ=Ee3EpR;!o9(I+G69o02Il39d&s zX@#A>cvCP$Ri%B=Re8mY$GcqDOqs2;%}JjnYT<F$V>jL$-So8aEnobNZI)Wji#)f* z34T*)`KG$?rnh=-p;z}qPD4-5>}j4t{;mtRpA}!YeA0)~lec@O{)^UdEp&5F{j}fT zOZ!`L{Gw{18<UlFCQRc${^O%h`--Lu_k>mXeV+7~PcrI1GPO@5_sQO_E#BK$UtZQ& zbj@$)#(zF$CS@nD_ODgkJGZDjtajceW3iUVZ>nON9)Xo|kGz6T2D)y3bnf$}4W-GO z!jG!CZ@4XeQ1O?SmAd_#(gPD~A}-$U`RMd`)8h57F5KtkU3j(Ut+eKhzmXAtqe{<y zIDTVUxWuC$i)FSS?d3albD~PTg_6Z;pL~_5ZLK<-t5p`K><-y+jBi!j(~O*@3)Lsu zcAa_f>c!TKH=EAwaNX1+=n=cZv-80Vvo#*Me_Tx7PVmSx72IL5(Q%pcr;4=Bdc|f{ zo$30WkM*3p7dd+~Z<{eK@Jri`A0FGA>|Nr&${46`+ERAmk6nvOnO)oVL-jYZH8P(p zO<nE!=9k^MTasT7cP+Y^&E9Mrb9-NE<wM1Nn%6m^b-dYh4kr6`27WVN7QU2s^`pMi zNzo#)Tv1w5@*-&yc5_bIr?Iv#(mmAY=ti&Peal@ld{b6TTl?|mlaHc}S10cIa8FQf z%QrWjtX*8|e43+$r{2^sx}K)#I%DC<xg4uimp1uEs_b)F_D*HXNh80IlXaF))^Lif z<TAOiUuQ#UiOHKqkDIqe+&VB#BlE-jMFJg5H*T>ynNg<NxIAg$eR=20>J`!<r$bIG zZF=n7Ex*TlS=U+dV=hM@9Qk@E@^4}4K7G}~$fQfE>KPe-=J7u5_o>#LC}o`zSW<Sj zXVxLLlMxp#ifc_{|I;<&p8U(4y!0(*pOmzevQCGTOkKF=#+{;o_Uo+fN*ncEAIw^4 zzR@`;=)|1ey7F%_YkSwqw(@p4ZwgZ6-4yU|hRXF5-YL;3kw2a`8C=+Q`jT*1+tiIF zN>?|Y-BK^Lam|S!*FL?jkYgJZZ96jpr}CYdRHgRGYgK1l_l3RM8u62P&hc;Bv}5_C zQzw%$UM~7nJ1tO5b)C+EznTwTPqgjqd{Ofwy-Vqoo=MudTe5FH>=pUv%5~)KM)i$> zk|}Eoqea{{*`GLfZnDs6*Hfp?bGIga$@wK5qM1+_A$2hC$kj!<p;OjmYZOOX>n%Oa zQ&w6jbXs`AQ)&0+-ddrQ{|ssq{xgWIN^Y6USGdXOc%u8G<QkPtT3h1!7q7nYSi4I2 z#<QS>j+ZKB7Ma*C^bNRN(slF3!o7<Z?f1LrTNv$<w&B>!y!)ar7PZ<gvUjOfI%c(a z^(JqZC7*&8DsE2?QB$$BcCKH#{!-g1kuv8uZEL*Dg{oDTMLe?1NS1xGOeMT|^1+Le zYBQB3rAs`GkGXbz(>TqP*Rgz>%28c8qYZ8IlO?UyP9N9X;PmQ~uluGl{}<CQs?HJ# zb2V*Kab2_d-ywhHt9>Suq^AZ3FD!lI7Puwp{F5l9r7qV57E34px#2vuEX7_XQ()3c z!Hp}f6j<!u{4^)1q{X~h#O{iQ%IPwVMYB>?bIhADd0V|&+qS?@Co?ZRdO7Wb-4)%1 zCVm?_U$q$(R>)j6T%+W?r~6~C>^zqXGiD}vvl_2+`Qfc<Xkzi8B)#jg%|$Vl&N^SA z?w#BjnL?9fj83I?%5E`pvR3%is=VRxq8BSU`48^>_{HK)v1)qY)Q$d3jgnn@T?dwK zUc>V_Fsb-tg-_<?i&4TM+cXpV^d{Us$=>K#<MyHSr2WF>x$=5v{2%o{cCVEcKl0{n z|JJUEoImwl<|!d7d=vh;y2rm#Z&NqYls~Q`X)BacR=#<gMxgbH+*0RV6PBEc(C+C{ zn&viF@$THRvXl)I{%R}f6efF}*gEO6Sn0vr&TVdslP5Y&SQ99GSVnfOk!{7BfR@`j z>x6EKFJ{_g+IZx>miXfvOBYR*O))&1kQuD+n&Zi3q3`U~w_0^kkg9mf<P%T452buN zw$x|4PqWBWC6C!B{z|2%HZF=?+okiB^YE7+UG9-7hhAyaCvLx`lld(*CFr2vkrllO zK`C20H)^ExL`p8v_|Fi?pPKSBUgSKN@IjfIUo2(sN*a2+-7Kk@(s$vqU8ghCzcU48 z-RYU)&CFkX13&5B7GHkxM&6t4&VI)_&F4v7)a{D@E#r4u*?+ZF#=A`xR>EPnLi5-j zyDr+`X5pSYahky5i8&rl3m2YEn6k;<OQ@`6o3`~TXO9qzC(Cm@FRVDq?bLMe<~Ql7 zN}dm<gjKxRR915S@hM%QD$Q?B^8%*0ONvhlGbx)M#L+BV*7L;a^)GWSmnmx}eV8)w zw$A#l<X7sA6?&^T{+PVXQOmGd^ySr*;7a9%%3C-2UeZh{Iq50XckZ{<i=`8fCcK@v zX5rfD+9DG#vwFN&;#4{DR?w>@olSH4!dOE!r3p_LuI<lA-M40SM)oIbRn<b#gu1Rz znhAlr7bAtvxXktNjS>#4$=Et^nfkQ2z{i>w-TaSz>ygalv$l@5Ypb2szfncy$b{F- z*-8^dH(7~J*=F%zc13diZRKp1-KEKYX3kdl&mgNhsh~Wg;LDV`Tx<KTa`kOIaPP!Y zr(LOL7u7d!lkD<|HFAr#I{(PhW}?de)#|dF;-*Wb#A`mB7$oG^!~4efl9fB_gZ{_o zmn>iS&wcXZldCk&8Y|tLCDu1HBk01U#Y=K|p9F>VeAQMx&K{Z*|53N5Wg1sfko=8B zYr4bALR57+7b{h2gl7~w=j^!ARq8S=Q0+}#nD>W6lVvu2EA8buI(?c-Ygwmf&szEP zi#J~Ac14R#oYTFXGv}<_BHw_^8}Ev@m6pVLhsB+`@nqex4<{CFQuEB1r1Z@)O=EJT zUCH@lcLkHY*-xGF<TA{e|2)@W%G_;U{LGV9@^!lQncvyoBzWm$#loeZgu*P(&Dbxq zq0=+SWtzKW#FYZSlv_WIU-qU>oqy5XsbOB*`OV7HjwZKkh!QFC+?`yZDpnSDbB^ez z2}{*8x~DGOF?~w($*jrRzqzzIwx`Z3?2-R2@{)h++-Yu)T@%jnKX#sSdGn@4Z@NOt zF3jUpUA$4XTWIP{kxgz<$}%p~pB&V8m+j4&@n}`I>nf2leRks&_qq;VzgQP|^umHo zIst3CQ!_toF>eVz@#I6;k$F5b#V^du=svJ;SuO9=ji)*LtkVOH^pzr<e7bYHx6VIs zWl`B-g(uD~+B$y%!lkUM440?-%1-Uwv?=_gQqk18i#MHEq!A|=tu&4A+=NG;&n6sf zmWfuo=PGR0ze&@qrcQbP#OyY+RY$(L{xDs*e3FYyNl2Z}`kvNX6J{-Ree+9~%VM3K zlh^4}?n(F9HY*v6|8ZSn+cRg2mqe;;9Q(uUEjMPrYTM%XcC&d(y3Qs;=Xj-mPSZRq zqP)DFyH1Ntm{|2_k5KAU&UKn|OUlZQ{8f}#XtPdjUc`;}?n|F|UaZu8D!Rn|MYvNR z_rDdPQ&cKKx}D`0f0+9uZc5wL-v11VVVp{ycX?N*UsO41c*;^c^+#Bk+lQcK$F3ip z^l!P3k-pR7zZY(-=zS<Y`OP_=DQQ2eT@yQBOqo~c<Z-t9P3_u=5u3KOd@!Fesej4d zls}S!_XPb~Z!`OyI}`4@+C6ky*)$%t9f6f%EfcGBuT1<?f91z5-P>lRdFOw7x)go* z)LJQgVD^gnId2yRJo?Zc>HIo9JTxgPX-(%-p4yz$DQkIif`n=#qhyTE{e0-*d`RkM zl}_rSi5~B#1TE_hb-pZiT4us+=`f=W7iUW!xYm8MN7n6Pwt8se9@#J#(?u6rK51+; ziEr=8KJ-a#oBi=c{yIe=7EgkDH+hA9vDEL_a#TFTY|Z}8%gnnC0%KIv!rEUfSvfb@ zsY+9JQ!?x6%|h{FX>0awR6SIoRHw1-NcxndcF~FE6J6hgxLHWvzPvB`qV_g5Hz|>+ zi#MI@(wwiAx;iyu>XRjAWrBV)?}hZOI(JKx_f-3j53WzPXM|tn?Q#kfl2mW{7Fg*V zZM|;I>yK6sf+MWn_)aVBSmWU<-l*>6H2J_hfu|GKPK;8SDp;Ky;oN;n>C=%f79PK4 z_OG-x@ro8Y=o9A3xzIg5y>XM)u`Q7*H(%c7*rQZ<<K2y?i+lrrCQMbTt#gm}^c8AY zchd7NztfHTC%b|S&#`?8JMtwmO8TJukykD$Yy3H;Bux^3+<vD2Nxk6u6XrtmTzRHX zF>ljYvvK_^?Ld)f$19vShPm8bcyeyh>8Z=Kl=|MYH+?vnb?#>Jg~ig=+Aiz54ou3O zxLf$bqc?s^7v{LkV^!3D<F@Na{6F_)LDq+kwU;GqHj6$m?Zp09YHc$$GTv@f&)DwX z?2#**oV>|5VM_gmKO*z|w!6ORcE9<>?9`1`_oS{1w<T5lFP>5lxh<)9@QG)nW~xx3 zYffjBOpTGHQBfbK>upgL&73&7Eu}J3XP$icr_g!ULG{L!kyneGj>>Q@{&C~kS_zSh zUNa@EtW)BrnbdPxpWbX`=o$HEhe$z7$JWW)I$duIDLZAIjuZ{_n;0l!bZln!#_P)S zIx{~^aqBobcP?*Dq^M4pn^by?q{ue)M%QIQE@>M|g+f}UCvH#GJMrd4W{BH2+mEhY z$8N4$s>pxXQut!fBiAFj98*lfj+#1ot3Fseai7%1taInOF6_0Jx+%I)SInzui{~ca zgjuqI_MB@wA56W*>3dP*K~CUdv5VEpFS!p~w(~pc)$yO<gkOYkr0TsH4;Sx0(Uml5 z;lYH-H?K}h?s~j=TiS#rYr1;ny7by@Iki*Qh}C3%oTU*duy~^<mrj4sJ-!u1eO}IM zcy}dx1Rs=qP*Ce$QZF&<#Jq@Es;Z6Z$v#t;nO%1FRGK<-lR?;#ry1K_wmBaE+vm@+ z<mF815LLOwXM0a|y!oXXX_&g&Kz*9Ui!BxlPflI*&2;gb^5l$TuGg9N%sB9BiOB~q zzw2#9!3Y0LdV4rZHdyoK)%cr9$?i=T9-S^z=_-l58nJX^E?1<}S+2K}BBM05#1~Z= z$EZ(S+PI`+$0CE|*^A~H8C{rmv_fdA(nK{?E#3In?N@@rVmov4e@(1RHHz=OB>&`3 zrAiOK$8VvV@*HmhN=_Y;nY!`f7xhguHFi1AJ8|4lRfpG5|L>IDMsfUWCta3ynY_fy zP-e!nlWLl&6LYdcPV1J+6m&Z4Y_WJS>12MV(Wj$J(vBV5W)i%}X>#TiYpH{`Q`{eB zBx`v1ij-Zv{pj3Elb|g%k+Wpn#naPNjx9;)>K5u_cRD(AQ%{u8jX7(@PMSM+Ez(Wt zzHqH`dGniGzP9}v=C!n!-QzA5%6t=@)Ymd~;-8CUu8EwAD^r4!y0^J~=(;#N%|7I| zNb)r`k%)H_7PslMKfL*;RWeYdbDQ_Jh~HN`-|Q9YdAZSFHC4#3<5HK%CW{k2-(0P9 zqofa93%nRD^Qrr=*wLRRZb7e(%gkNZS^AS#QYkRfI%T`-ZrSOZ*LADi<r6v?v_wOv zD<UaM=%Ma>r@R}B)*YFhQJ?0Oy6BtgqG(yMPwI;<ENY3idfEHPE&rfO^p2^Wvh(<M zN{3n22S0XM^vUe#P1&V6-JwDoj_WAR^IuXn&9z$Si)X?I5ATfjpo_Ovww3)@l62F2 zk>NDIPfOBux^@Ybsy4dm9`JnHw<dR4S9tOykM6Ljn=z_qCpIaXz1XJG@<r>!<%7`* z|2*DovP@D6@^VR@lGdr(RQt|3Vv(M5(4xReliWW!ope{au&v~%gvyP3r)&MzvrN+{ zIB{o9QQt{7U%qUejG&a7q&~h=XF|L9Zb~ey6`Qf>Q__W#dp25fX+P0iBXaJBd+5aN zi!ZCEdaU7D6rZvtbTjkCG%ta!8rL<8CFG;he``C*-4yAUoFi0!<@iaCUn<*zw$v+~ zxP0)N*_w>Ju=B1)bEn;wneE1N$#s>`Ve!YcljUZq%oAg|pOpD+p^ezP^T%(^n6!Ay zN}-69cb%>ReG-dX!WU0I*drFCoql1dRC=VAfu)vvh$o-7(&X39@h|EG{q<Tk@7|17 zE<5(Lm-9?_l3&Zx9Dny1^Csbt{u#3lR>;^$pAuPI?-c30TPQ4Q%gM53=hpNr|KyT% zWA=XrS8M0I8+-KB-F>ch?s8Ssk)6A7eV6lF-`=D*FW%0*loQ|kRraRF?u92MR3mLw zKJ=tGDQ&YpaN(4&#>PPB%_}R7%+8&8?L1lbqrBIJYbUmRaQou8cVbn_q=P?g4_rE_ zz2)Rpp@qGQs*Nw_#)`dD?|3bDSmoGNk8`a*uAh|s7p1Q4(^aYO668B^iOO!5DPiva z8I-bk{~3R-i>#T-8`{0qNSouN>)cjG?oTO8CVIS`*w?W<zos;4`l%ykFGaPI@+Rz# z>=vE)RWQmW>rK%`v3)`3|8>^srcBS}%9>?$TIs{2>A#ew8gIR+`k!H;dB(O@nIpMR zR@_WUUZ(lt)9I<pqHZp`v7xm}DlM0HcXD6Ee+KOnmzR{)&X}Uh^<rs=xsKuHgG!&; zoj01PeK@yIKB>Yv%37%{T5!&^eag<SqW&`^Pgzk~V)nv$&)hP#O~DyHfkOX|8eKat z8P~hV$TL{>sq9CW)EC!WK9pQo|HNwf!fzoP?5;mpa(<cBVi8ww9^Y8mSk6P|E}ksh zrx-0W*Htk3u+{3Dl2>!)e|jFH)OGP@N}W(}=8L_uw|xRiPApz!ZRO-CJB@9c|6`Zg zZ_IVMUSD3l>9J4K>6E4a85VBS*gMfvzAtc#<GK}@cjp$q)U2?0I4SEzuH0Vn7L(|M z8V`H*Cp=|dBQfv7qSh-t*N^-XalJ8V8r$Qz`AK=LFJ><Z-gGhORrIC_)A~0((b$!q z+VtUw$y+}68@q14RyyhWU{cwUPp7A`ChgL8)fQ`&<@39#u}V5Zs?Y!NzvHPn3q5a2 zSP7T4Y*Sw}&E<%j*3H@0H9N}uTDG;C7s|{v3OKQvqbO2DcANRao5?+ER$O>@@wSlC zKczqUYbVay61{l!LG2TJg)au3j43@Rsg)#rNT^KX*iG@j-jO;7Unco=CUq}4vLWU} zX<4~St7>wQ_hAd|C+B9#T%9YcyrtT(KE>?KNtJpvjq)pj2P1?;LN7|Lns{CC%dtoa z#ghq{!A5R|+gw+tho_`WUKqxy(|0`NI8UF}67^-#(kHbJ+>3Zq?y)>4PH4C4#vit# zn=Lff%I?TIo;>+Yt!&FQkE1umKZ!0pnXtC+sP2q~D#6x<%RSz1URbzLF{0Hen^h!A z=*E(ou8^bpQ~XYK)hpTx`EyLno0)0i8FBI+d)axGO*L!$*%!?^usg`8RAg?S-bGC< zDFZ*R6+NN9YC5(=JX*<{I`QTzTd6-&G*^qXaz1$7xYXlC&&8W&Zh<Ge+;4m-%jMJQ zcCGP$d`k1SR9V|q<8|#}mZnLQ<6rzTc$4q?_)?aun})wj>W`Bpc0Zz}&&syyh@AN9 zD>!NKssk@Pxfdl>3(9TLn_=rR<FCe6_Z!!`&Wi*cRJPDed9$L*syAcPH@6Kc`;`3u z_Br`0<sC89ofa)SZ@RQ-WDoyE(^M{hCY>JHiL(w_*~m`iJ9V=8jlYvmU*9fGq14^t z-bo$ner%L8;!N;O*y3d=`ebF4bfvPYyT=pXl%*fF^;_mAEezDO5-;BLM(usyOm$tM zNf`xUNf$nx(&Sq!JO4yjx$A?{lqGNHYw4Aoc-i-#;i5;rlfQaql*(L@PnL-<0z)iM zvl&HinwWFWZ-;K6$fmRl7e$+{@@AAeEez$_5LqQua%_`Zm#Ud9@3D)8CuWMYTyvM@ zTRW}PE+jHzQi<9peU7u8I<f&1o-XV=ed0@L`h{!kx}UDBc)ii$wz6)QKJ#SNvePFY zifoAUbP0-7mXc126h7#laoK7OZ_dHntn$u_*PSwKjB{5FR9PCNur$NR^FgnXUr4fY z;S%$WsxB&Tjw)(A$qOrU{!`&pxOtn9x=2)*=CO0P^d4DnnmV=3?R3W@wd1#r^_^;6 z7%<Oek>}=3!fot=%X5lm|I$o3*ez15ynB~$SnGcV#rr8oZ9F+ooj#?VbYbR$cU_Ws zH!GYMzgR1KV_~B$rwwO%%hXMG75kib+gL3MobY5#U`Uwv#0s6jlM@Y%1dmEC(b{PI z#<!FA$&{OqtrX95v+NEwcJIh}QGQ8f+vyv(eb#tvZJI9@u)1ej&lA@dKLfpH+zZrj zyEr?k()EdND6h6ihi713YskdNiC_A^Sn3!B{<x{}D|(x!mHQG^rZ3(f6FEZ{uYWpK zDSpx?(`~9cd`1VY4yvu}Pt}oqJc%<{<W!07JUtoJxndhUtv6*q`fI1O%i4zjO-B3I zjMEG4`F4tIa_POw;gRh;S@e1GWGkCahn|^_t#-MUSUm1q93{VWmG0N{(8fM%k)oE* zF3Ucs%JNwzP57(%X3b*OT@RHuwX3Pl<lG|?Q&jSkuPDbe*jBd2b9<1`DQO!a(TvR7 z7Z$xzS@zpdaq~8=k|15#67!9moZSZvm(S(0zY_e@=tEbuZ0VxM$==La6aI?Lwr`mn zyU5b?#<KE|oAFl`uX9z;`4iMTUu&V^HOcEvO+UqF^j`LOubr{Hhj&w0)MgPcqc>V2 z_xL&1pIFlqeq`xQPPZHD`X@Vuya-;`rrW#PxhG>%a^KM}H5q4n&D>x3SqOAo|E>Pe z?9Co7E8W{NC7L!feoSmq)tPoV`R&5eZ2`|09#8F4eKPgKvz1CyJ-Uu^X2f4RY2(o% z8tCsl>0m_CB%!2?Fx7>zy-!}f$c=dNNpDK2>n3m3PCiw^-6_gbR65W8XISVq<26&) zPNCTc7OeT+{@{4By!ax{Xz4>zhb8AsZz&DCcsJngO^pXR`4>;KRc&$pc<iG5iOHK^ zc4<x6*Qz@=Hegz$gtv<}o8C#kkk-pelPYB<t?AU^Thq&{t!Eo{;%NQG?LL7Mi?+CG zCl~GL3zYww{K2R1xJE+Z8MiN<$7bA?p1Q~{<oInTyOwun-kkrX?X-5vn`08Qw8G4F z1-*F+K1}&6<Y#GjZe_r&#g8YRb6q3ra$ILxAZL`$E6qKNIM#bjeNb@Og-g3m&3 zPrf62g_DHN^1DZ-1f89>!Sqv#s&w*)*%z*V(@$FE9Oe3UO0=fzJlBYWHE})RqQAC% zOUV7$tbS^bvSgyz2J0mzwO#t`r;gp;qVg@NV~tMtm9z`bAKa7FK5(bVRPgJTPE%hl zZS}|PU*#^z2U@&1Iw?QI)4Ednl1$N2)n<{4Jwm=W#q}ply6`(8zB8uNH>AWOAvB|? zLY3Wj+PdS_DpO_Kwgs$KFLjfhshQC;&F7Ml^09RFu(0-xs<)ipZrscLF<18Ld@bPv zk2VBtv*iAGT6wq2?T!D;CwglHb!~p`YPhdzeo}>VpWh7|=Z;x7Ba`-b&QiXvvUuTE zpJQ(KSf=rvw+UW&a_Yuw>}f6m_g_x>@nLOuPsGG|R*Qcsl~#%-WX_O$sI_B}ziyyp zozKMCOUkCYc5&-$Q@OinP0L^Fgi_D$U;R79TuR%@B4sb>bG%sRGEd2*Rdph0`Bi^L zzK9o3W>=ulDVe(`x<dt5E-4MWC~;~gXUdO1MXv7FqJdZT&TaoGf8?L}wNIsAvQ<|J zg{7T3nRm2O?2)C;jFW{6xBCQq$oH7^;jNIK$+`8;)7(B-Tv+N8tI5YTW7df|yB1yZ zpXOC|+-C7QiB}gj9|YdaW?9v#vnXF_p2VV8K2c6W)7Yl=dH6o*QhWN*aPsOCvkv+z zMTyG0ReafgEMxH|&5sW!KeF05Pkd6hovN0U=94`OH?HaPyJfY^^3<uR6aQpgEK*jV zwDnM7h0xULfBkmOWP59P^p=%PSA_1Qd4l?f+svmWwM^{k(s;L4&d_tJc+y<s^^Xrc zIeFUYkJe4mPtoc>qu*=@`P8bSF=_sjtqX6=I<Y9?p?>GxC)><Ab%iD`^OAH~)|0Ze zF=&(K#478I%qP9k%3<Bo(gz>DlDqg=Zo;L_+m1}kNzOZW=uf8XG|r4AmQ#;q6zcM> zcJ5mAL1WQXPDNW@Gn19V|IWLvc3zd#$MPj4yWjh-LENb%1NF0;w#1!E`r;8{@@7x> zM{E1(9EC~3X$55&E3FMQ{AMisP<CUF>VsFuCYC1`FY$abIn}0f-N|0NMVEDxUBX;- zJKZiyCQj>E@#HJ-s${Q;SA&Jav_y=~AO0Du=$a6G^6C{&i$6!VlxaDCsGI-)2!oO! zBj^}gMn*<34cfxQz$7Rnz^ow5V&D+KngHIn#0)yk_RN_x2kaT@BA0HrJpb4H_?gei z9FZI99~YjNDLiiT+~!$bvE}){rT2}?6Vk1h|7Tcu_dmmed3wi$CuLpz&+tXptNqXF zU2ejYqL^M<p8pej_wL>MKfj;7`=4Ro?)@L%*J`}+Tyy!>%4hHY@x6O@_U_%gcjLCN z+a6wC|NecC;(rD?)5pw;Qp?vUyx91k;lka|_AK=u&&&UqZ?60_TKlD;LFtG83>WVI z{9ga+Md2aWh|246`7gdt+i_;*vmeKD>>uCIId8f*cmEgvWA9$Q16kV7f9yZQ1;)Uw zOXns^{JieE<&VJ!iKAct2)3M=akS+;^PJ8zceFd^mR@(={crB~`?b^mGqejE8&BF( zc;4po%sEr}FPqdz>@DTowd?R%rla<AUz%)McQ&p&zngQl<uSQre#_Q1nuhC5SBK3J z)e7%PD>ikUBa(Ssvo*l->5|C(y?^`OeZ6)z_qyw@+ws53@8_Oh{^effQ`e>?TU66! zK1)Py)JgB0^XV$*-uyG!?>6XiPM*2AagO7(mYW;gKO8bpe()yQsCU+dpC)_mzFyaU z{OsMkuh)v+T)Xy5?o30IF2(w(c49w@XU?2hur8H1>5Q1*tRFY30uv>ImfXD|Hf37N zonvW?oS8HBrE4wiF1;FY_~>85t_V$C^VRH+-Pg?)Si=A0&rhytEB%-b2c*`hKDXI# z6|`SEWYwLMGarT6l`nN%6Q=)AzF6&@=<>5mdjn_buDT`gG1R?eTH4v?Wf$8Ye6G1; zlRbgyzS7i1E1CnItpEI2*z(ZHhWTd~2%XJYC9}0FdhN^YNA6yAKNhBPS3m6dnI8WG zYn~g<JpB3D`rNDE!w=;My-9o5Y1-fNa>MPf^Ct;J{HTnK$`)AtJ~rFnk3dM3&Y2Bi zSG1<iI+D$3V3%>FC*pTx!pu3wto<`*_9(HNF?{^9P|(AmN7>l(&*8HY$Ji?Vv2C`g zIs7rjjk7lF>a?hL5BaBmtnr!Cy6l>6wAV2~%Ohz4TZ8u7KaZaov08G*A-+WJXJ<}@ z-4~nX7O-V=*u#j;%;$oO=d{!w3wXD7TF#B5FGAAZthw8xY<^lxG`eqMMCA6%PxEK_ z&$+Pu+?N&MKkco>rhfUXlht?X=a-+?pVv=tR8oG-FVDfDbaVFJ()dN2!zSHJHec~i za*g88g!KNYt3PL-jH`ThRr{2vo!L*3!<XzEmAQ_ey1FIz+Rtx4w>*CmC9Zx+l<Ty2 z*oV1tS9brD+P>-9nY(MZPW#yYWP8BpwX!)|cPB>O+;g)dR6X{aTh7(G`8R)EfBm<A zd2H{#_8Y(U`@j6_zxvDj^;})s;=bkk{(isjKf}UOr(02)d9%fT{S`Y~H@E*w{`Jz` zNwpcLe2#_u(tq%w=a%`0&&yw4`+7Z=>&NX){~0dtjocg(QvGlKwf*TY|HiMZn^yC0 z`u^JOFXt>d(0pl`TFSj$Z+3pITYqU=?*7Za%2)4i3OQZ9d+)S=*LF(T3qKS0&Un%L zJ~Qgo%Q9n|yRTMrZ_kU}AL#m_yz2F`+t+Kkw!Pf;CEijp>c;hhYj@|FRi5#^ka^zb z^SO$dGk=^*o5+0U%%At(EoZ)+dtdu@eRlc%uXgt@{3=b^Ui&S6V`#11?9lt>>vp}| zp1ph1Mtl9)SI*qES+a3v`|J&08+?xCy>F>cJ|$<&UcO&)gPP!`XFL~Qr%kNV`K$ls zh2)}L(YvGfZCjInKb9v!?aHI8v!ajQy|?St_U&)iTmMQ`-E;Nw*%#Yq_FTv|J}dEa zW{2QswVyN158w9v?73sHytUrmoEq7*ckg~r=}D3cKYb{2X+VD1p5i&8*)z|}G+UnG zD~>;w_GN2G@78T!s&3Sz8>W5TTvEC{wlqw?TcS>&@nl@CvGIY^J}ot(HS(ORckh!k znrwDH*72>&ET^b5%Is<DUaWg_?f8Y=xoN+5_pC|Hxv^=(?A`q4<uylIx1aH|c(zga zj>DM)hZ1!6CjXE&Ha4C)^Jz^ozx+`)RhJW0US}A4BF@;P`KVhm3o;)+d&9S9#f)%! z{g#Bvna`a<*QBMlsNE8_k9_u@!SAd8wRA<vHFp!%eZBUpy5(l%mlm&Mdk)I|XIPxI z$|+;9iCS99#hSabB==0sK5jg1t=E~S>)4o$GLE$G5HMCaCR}s(zT~b3%~^9ExNNb# zx6L@hrE!Mu45PC_wF#4F`|UYb!E<uMNAG(7m)E1B>lNo*o0)kv=k~e|W5)F|X+2l( z7ti_ZCTyN)bZxbvu+7~APZU#U+1)ZQmd<;luJC*I^;%BJC2M}MYMEyL+3~Pd*mzF% z<fy3*Uybkd*hnU8C3zj-`MB-ap3kT9V>7;33P`xlJYl$Qa#i;gWi9o{(=i^-$0BN; z7uZM6zH-iMD$4<7lTGhaZ@*9cq8@$iW!Yb!d)rHA8qevmxBa?xTGkua7qfTo`f*0^ zT;)e)>AdT=gK~mIAJ0ph;9j0E&n{iZ<qt#n^FQ-v`&F(y=X82^#AcgwMNz>oD-NwK zp67Akn6O&<EGs$T0O3Pn3JH<NKhB&v=b2M}T-2c>Je)n}f)&0l-D)G*lEvP0@#l2& zkU64H)|GDKy0Nx6+<0D=Y3r_wGXHW7s&p?(sKf?#scx@TvU~4(<@>(wTyHo1*wPEz zns)t++`UylV0+75_2|b!?9+ra{+Y=|ocXyj#dy+&Xfxf5xt}W^_uO5xQGDH+gRi$< zO1b;F_Q;d<iXCV3EwfL$b(+k1uJf;T<MPk{Qj0k+C*C)iGj+`#oAcVHCEH^&%&zKQ zkBiDXYrB1U_h0G0RMkBXem+PO^?ko?+O|#SqC~T%N_L+03s@Jnw$g^jX@}d!X)Y_= zSe({YX7L2nRk(`2*&mmduF-OJ5hyTfx7gfV`K);6kGpGXHt#aCe6U=x;qalOGk0IE zaN9Vw>d5-jKkD_L{P}q%E0inEEv-nVEj4xRj0->8-uWE4dnqaTnNt*ln?cKIL(Umz z#P0IM_S`vgNLX0-?A+3=Hc3VcZXfJPIMC~zA6q(M?Y;=c9>%q;Ti5K4=ioZqIJ39d zerC`%gAZx1vu-bpIXRpClV9a?#b+yg6m@vcd8P?%x+ff#TeH2}*qCvx=F_VyqyC&< zTiqJD`*PjvpKA_fq$RwX$DQlvlpp5r;&JGALF>!~SA=ukF0@n($l|!%GwrkB)Xzd{ zu0ePCjwuM8dzW|SO!wLPqxt_**Sp=D?6@+ZfBxy`pPoOrdyu=#DNTVX%-DEBR`{fq zCyWg>bz}SujBV~Zl`g8a);XAK%slt-LD{=Okzc2>*YKQnQOYd(TYAOE!K+a>>(9RU zC(D1@?brU#u>Ae^AiH;8w|?#XnEfTFwlOJD!r=(F9E0eyw{^YGisdDPg(YXo8-6xa zjLD7HHZ;oNJl}IEf1AtKsr@geTb|k2a!sJ>hJ-+!y#41t`%j1Mx1WCb<$s0?zaq}A zIg_C3ud5X%Z}Q`GxLDpb;pBjg54Fv%r(1-j>*zk{*(iR=?)mbWGvjZX3tIkFZ*RGo zA)#{p=;L{oJkR?oza8b;ul(oQuU7lZAOADBKIZxy^&~B9mACH_?fsS&V#|u7Ojn#u zl)Un2^PC>lX@@U_t(f7Y{LqN|Sy~dyd5z`EA4Ir+asMFSGv`2!a$cL>`{3}kxu5LY z&%du<YxlNpzWukGjO+SiHTt~$%Af1iyv~>S^B`w~o8UBtlKsBjrP*w6!}yZqj1|<3 z<s+9IIO*}@Kf{H1xAQK63GW_9Zd3P-Sfsm0=Ewf}z4a&mya)OBKf{;&0;i}mSJxak zeA;o%$}cM)XGK>&?u+bS>-C6Tr}ogwMOI7Hem4Br&GB>hglTIccVGO^pu5ma=*;T< zJ<8S5<&oQFX<M!BkT?C$@bd5e`}s@lME^7J*44k*nrs@Hopku2&|;%W7iTFyU31$y z=gx*FoSTIwWr-e2w~+a{IHluY&F-yPpLkUN`nj*EtuOl{bfHI~a<`y1$B(0jid?47 zobsc_{`A+inbA@I8D2yiCx-QU#^+r6z2v2KUcu%sJlbbh{Q2=@YPNiYo4^e97Mb?P zs{6&-d%PCi*mB!-@uhjjiSH^78T8mBHHBTQVKdtFP0w3+PNGQj{wI3TFTd!2-Tv#} z{MVb;FmPslcAPrjWp>oGpWF7v%~nl!(wwIIC`7jQ#1B{7)ZE=^tL63i*^VZqrMd|h z>M=`h-8N7DLzMh9VP$@k9w)Vmy_({i4j2Eq?{xl`-Tu<qmLE5SZeVZm`VqPGp_X2b z+SNI?I%h6^@v2FXeRX8RA&vg&E%n^Xr^>S#J!YOAlpBBPi&@KgM)94y!?Gop#CFd4 z{Do;r)Zgr{8Ey=s$ImEAc>OrdyLElNcj($n=Uz-&p4uw-;X_ZtgxMR{c&$kk&U%wz z$1NGJ{VHwK#ShbFYO{NnUORG3pmT0{#<k_)8p4i?<07_hOn6<eZncJ;!YzZqg?|3_ zr|mC?bZy$2sCE0PXJY>hr=yeI^EpD5C0bwosF*pi$wlprL`$0Qse>K*(-KaH81%$` zXh}Pi%&rrb947D~)H^CKHUHWNql1j08MUh1Dq*)xytQ>X=avZW6wfuVeERd6-InL~ zrss$)I{e{BYfz?;Y8Y$3!H1-Y%}Gby_B?x?l$$&CWBbdRLklmpB#G`{;V?JVcYXg{ zuCTC0tzKK6E@i!KIyKjb`*HapmbjK=>uW+MjV=pKy0p1`?TPA>W(KpboM=f54Kmt# zE^1=%wEnY8?efp<w>rDMy?-ThS=82Oxk&vr_cpD0vNh+_F~P;2*RK7&S|gdcEn8Qc zV{>BN{E}bueKX^&*u<`%@tHYA_{`aaHFCuQ%>42uIWMD*z9_HHz8<<;_i0Vq*|Srp zvums@V^Wg~YpmDO4HFFgpslN&|MJGhTwU#K6V42`uxl#~XB|GJ+a4ac=6+G}i8J5T zR94;Cnfh|;x|q$mEtjG~wy@>B*mC{sHDlHfEj7uX58m2dW}K^O6?!d9T=nT&?@3GF zM%?ra<oc^{Ni{3%v>-FbsYzFr{kEUEC4c!>_^U<M@7^3TP-a#*!)=<=%(!OD%5y2| zv89)$UHochXS7CZ_c^zSrLDPXS9Q(Zg|<zd_Hm_#vaUAMORd{S*D945yGHOlQJs^> zbT*gkaZtL8*SXo{tG8v>>O`^JT)XS#FY&tGlPj(*D*AIEa<}B}j6<3nhwf@;$45Bo z?4R<)VA|4EHv57iGA=FFba|1rboFX&v*o(l(UneHx12V$yf3*r;*@2=y3W+unrV0Q zzC>>Kj!a&4Z@bRzWp}sd?%?%uoM~Rg?POf~u`%mFmYcz*)0HP<x9}gGy5Q`qZND6z zYWT)4?O!l`>#S?}-Y1Pay!KqW-ru`Ls(sh7%v6cUX&?SBh!R$Qn7wCS$&G!t?`kcb z-O(St`B&5v3D<jDQkN!eUaGyf)<!ukSLWM+X}NQl%(kBNte(Cn>Z)f~bXM53%9qnD zFTGxU?b^52>1BGyjD^?g95N7F?2vuZZUWcm<m}kDD?aXxjOV<Zl=j|td1y}9wzUDt z6}Pt8NZek1ZC#g9>&&QIQzWW0u55gE@mJ*R)67<zLz^G@Pq?)v)jO;w>FWaD3(w~~ zZQ0(Kv}OC*6^|G#r*93q%TXYi^(k=a3dNNY^A<;FPLL4mS@KG3Yg4+iL1Jctfokdn z-8t{KMSW5_wXIUSmusWZV#!@BcW#?Tmqr{v-K?>|H%*)EfXmvMMRIblg*NAe<vZ_Q zJHzKi2hXw6h#s2=>#d(ddONSZd~i!Fkf-M2+We@_U9+E_n#Mm}p*7fWy+N>eyhNB; ztoSLz-hI6_vaeQczjI7)o@(l>xh1#O<V3Gqohp7XCo;*mb!+jm0#_~mmSmQXACk=# z)<#F)?crUU@mKfMf(<RvroRM&&gx9`7c1sy%;54laf~&K<CsC~0)vn&@95d#b9GKT zE;SaIx^;!*oXP3Nb6W1RwyYIgqAOvwZ=qpt|1oWiDI2c*5#8#tHYe)ntgD-TxW!HV z`F`5Uyw3cYTK5j=)*R7kIApSwq4HXBvO<x5&#hx0w|lRh;VrMvxaHoqwRaEgyjFVg z$BBl>Xm*tZ1s~D#7EcvplsUW|YZcbA6)&CPmi~MZf9_7E``%usS=};jpY}SNnr(K} zaRbw~X;rUEuXQJ`Of;YEboWZM*UDoCT^q7~&1qQ?c6sHYG+#EMOB?5=l^inU`n;hh z>Soh{w0R*Lx77t*Q?p-n?O3t3p0{Lhj%HfO-JZ?S-TbCG8#b3l%<noDbbX`X&dfOz z%EecvEspWrT3*h~;XUV)(HYfQH{wlto|hYX28-xcM=3-mtV{J-s_!>*a^dIlvg=D< zZR}-#oj*C^T+!uKq0z2uva`PE=vD_^-yWHg;I?vRWOvB6hg!9&HCK2X9!&cXdF*q0 z<L$a_8FyFDS*YV=Fk^-=$AO$<d!8xAWc{)Y`o8(;tgvL}+glfFOKdb+o0}~c`*YIO ztf|Ybwnd%3k@Z(_wLW{Y#Fh0TQgU3Oy4hiGyQ9LAS@*4t-5lC;=#<Wx*wo~pHA|<2 zboVAR87=h8&RAXdYpP|<g|usT^PTQ(fA8%iT35c`eR|eSv9KrCBBxICx*>8XHCO7! znk@>GpWEG+4qEthS>T$OM5~1@H=9FCdkY$lXm_3CygDf-H8w5BCPD4%w&<X1Q#XFu zx-0EqjnaPx&kWfRpEFNaa@Tt;G}(UnZP~o2Ya4TWr%k(dXzQ=sbxvP5++%cGnCU-t z&w<rf-`!%45NDot=+xc*b64hExi_u<OPbM%_t6nIJ(HhDSI>*XAhWs`f11Vt3E# z=SCNLv*j79w$9g%n#bDh6rg@F-KdK-F>IT;(xtUr>n7*CbiKrOVNblaK6}{4UaiQr z)oaf$e8`+s7<AGkf=9OI#lAN=(TnWfCQCN%YTms|^K{J2HHi;(?TRjYOjL{vZJf3_ zcWGzV_2*wc=oAOeja|qwb)(e%=U#%jdHqZ7ZJnAcF?DLrN~v?Z?xn5{(VLb%Y4S_9 zZ%Ugso%`{xJZ$3{JwM5*{R@woC5K-;lpDX)Ww9B9*{f+So7Wz&WHa2EeQ~YV&8_)g zbhYxX&G(G_s+=`vn(nr(5k~_$oVID|Z7k7Q(SPyK?u*&?rfvPKAKAK6*GcDogi}Pq zJb^iHvcm&rOPo<tluRh*HdDKHt@q~SMMYurZSt2y-8yS?`__r={8}+DS11O*y17>@ zV_DCZwbPa^G>cpksQPHr(pBCecH4Gmhn?NBIcR%x)Jh4bM{9B=D&w`ICC~R3uT4x` zJ8jc7-G{GuHnuk%vJ+gHVv{{}ZEBD9>G&ttpPMbeRwUszby+Rf5#^^ZLzkb?2>sdm zR4V#st=GX+-R!qFmuM%k`Y%~9)ox*2uE^A7y6Klfmrq;o;eO`3TiEw(or;Z?$}c6n z=6v#wb)8yl&mfnlCc4Szl7VYuR>QT3N7v5J(K#Kh?K55D?d!DlXK(*yiwJt-_p&-{ z)20uKTDL;d&&94xnsj!R<QZLUMq|OLvsY<zoY|tF`OMJd<A-TYw>Ct7iDdb<N?CGA zkipW|p(`aqdz1vGwO@Ch<uZM3YTUG^aczfl*FLxK@|Ia##9gzut~fV$!7<)cmtP{e zAuF@4&0e#CY3n+J{KTlAr@Vfin3o>V<s<F4T}jNZ%-FG@JiXSiwQOt8+O^MJ(*84e zcHG*k+Hhg(u4t#dL5Axyoi5Muj6C`ApZmF|Yb*|FKEL#z!AoH89xr+8T6L43n_p^d zey*=?>2c=1yybHy6_<{d#IWTpX{oEYB*e^>&VDvNCa1bIJvJ<LlIfu{bxA&&7j7;& zyE)sWcd53n(e))SL$$o3_B+4MzP0#Igw!noom*QMWt{R}BXlim+t2B<mn8MbWFIU1 zvwucZ(YXk3(N&i^S4J1NBr~kHaWV*ZN_hR?teD_h)!sF0ZkwiUTBvJwlp)Y@%PZ3* z8^TT|_^b_F9dInHHh2Gp<QT6jvo@{@St-%;^XA&@^FGId;*YU*PTd|F{q1H$$CVjZ zeol?OdilUcR?(K^r%rp8Tq~)Qw_G5;)$Quu2`y2lqjyGjN9gWLefy_tZO-C^1!;;g zEiZbues|A$Y$X<|8*Q9%?@Z=N?w5MsBcpn!Kf96>cC_*5)|JtboY`WVBezYRmi&xo z{j`QCyVqQ)H9JKToR6RDI5hjwA$G;gD1+7+*5Z@o-L|fITGy+eztnD8)|WN6wgs*B zNe#^Wb7kv-py(G7-bJTfcYEks?(JW;X&%p-psBw)-nySN))mj#ygF*LcEI*&+J39E zt*^$syS{4XDbr`mj5eJ(n!{U@-J-TxS~qB$>xb0WpBE&jzxvDZGit)p#l}`MPk*s_ zw&Iq^v$YH3xT2!MUtSJaSsD0CKDuYAPGXcS>+=6c7_<c$m>HNDSs7sz0|TR=fT9AE zkb$9NAhVJ~LSlfhkyF9KLg?H9_{_7m^UD7j=I;ObS54En{z>?sT}RG83s(Qr9hahK z(%<v2{`2eq4D9Qzr4D_3|DR#O`#+g`jFOV$AKh>J&oFh(`5z{F9dT0s8A=~qIJa=F zd*Bu06|WB0ZMbmENF+P?NsA(f)2EG3ANC|md^rAW$DE)eXCH3f;h7{QxT*5J^y?|7 zt=f*69_&qgRG8WOL!iq}{BKE<nEJwf0y}d49yukjF_NXO;Ks*_`~$~I#qWzAODl46 z67Maz->bB#vsx%Mru=zR(h-Gw5hq(VM=V${Nm;&CzU9G3i*?*uN&QpBO!wsMdFWfT zrsYGn^v8`8IXqK)Dr=-=ByKL^$rfo<+wi&A%`9V0eETui^+L0)_X>FIjENK6qo%Xw z%}WpONfFms9OdVjpA(h-Y{XOH?)}5`MNX!V*^wAU&Nm)Te*`*P@?Bi@)U{_G6LE@b z{XTD_A&1`5O@{aRHh#I6S;%2xX2;{3R&Zm+p6P$C#2x8=ut%Nq%^&-see-85k(ReU zB;TrJemLd9Oc|vW?~=Ta#^o=veN<8RIQ7}-<1rCC-=B5;^2bhO#x*HLFE_ijeSvp2 zt~uwkVov<RC2HR^*9A}eywFfQZK1`rZ08vBLz|LBVoX%BPxN12KIhS={|pv!Im`N+ zJj!|IeH2T}Tw$D&{$ge!Z$-rC&C6Fi#kGF9*ZFKm+t2+=Ys}AmOqM>k$9MWkH!Bmv z4|^ueXwhG^CEj2<-y@x+9r3A0G#71t$UT>Tj@zk?i@(p7xbWd4mz_6HMvkkv|3>4A zfW?a?4L01o709i9*~&%HkaMnv_l3S`ph!;=-<Y`OjNvo>W+`cDsl!LkD%|TbT)c8& zFYkwUQHP@so$Hl;ZqTCs+F-^$GsAwqpK=m6uY9^#V)A2K?eTLuJ`pt$$7k7vcYjip zww}>)#KbW<vg4k%JV!j2lk4Le;hwMU$77_`IgfJq%(mW{;S>MF^|N2LcB`3UYQM-I zO*X^6p4`BL7t`!GJDd)mmiQw)>F5!OpJxnvk{`2tQ!GgS;PfbU<A<CYJ-yA`T|d`F z%S!8uxBk#S*x&4WSmLASp|t1EOrI|Kw6P~S^18U&55xYm7VDXhe%#pKdTx)wikmEo zi5x8&9X0lE>UYejUv_ksilWko9rL0#eRk2wZ#y~jY{iV@=bjbcnDw}Z|G0lks;Iz* zi<@R?N!3hf`LwxcqoKu~J$6!u7KzD~=wGbstUb5WKiy+L`$yj2k1Y-VGxT=+5ueE6 zBrbL0<KmjF9r2$uTOT;Np4<3KvB*iB{iuDq<K<sYJvG~>KiS7yDX^#DV&P`DUfw-U zN#e6a6^<G1<Ei7ySyx!Hy6=ZQ*K^Bkju>^xsk3b2IAZklCly_1=W1)S6Pd^MVROOh zM=8}pPuGMW>}k<6J=rs7J$HwSB2V&}qo)NXwA3E^&v4M_c>C<rJJPmy)gD%EJ}mLm z#*ZVyDJC!8Rv=tpvGbwBk`{YHTl}O>OD_B^Wi{jao}g6uR_m}+Hfz=e_U3DA_dKkr zJ}ecvrd3(#$;2Oqk5ZF9Iz5>rr&pG9<H8S}d;I1Xjvwu}dT`;xu^(H$n7>Jui*KAY zk9&$@;hc98r{_N3c{x~Mr}x7jr97!mj<?yF%uGJ_aT7;m#bVb}V)pD^j;=>deDb>< zd}uj-&h}HR*X+Yb?cY?m9DUZ>W|Q6iSIXXX-aU?(_Zx-h9Da1|^wAnkIlHGiulwJd zDE$`Kez31???cW<MRlB)>?>YLfA9aT=wbYQuEH@B!#-(&9~-CNXwl2>R@ZRe-6|wj zx-m^)>4R%+_Ie*H&xy32`KD;d5$ycIus6edaZ=re4>vw;nl7y4Ge=m=wCzOwjmwXY zPd%xhbm-A_uK1M46-&R%w+gFsw*LrGtVk1!_-MH2%<?yXKAz`(t7ba&BuBE8S<I3y zlT#b_@~`F>o@+k4%O@tNw?_K=Aps{%Td7B<^jQU3+bmoBOxiE5XE|ffX7sdwmg%9S zxu>M(Z0~GSiMcdkvAkM)=lL&xOixWnmN>U?ea(c{&*I`b&GOdA#LZj&GcY^L39C2O zYFs+KV~P7Vzhy^`e<*JIbmLf?ji1!9kN(X^zQot*P88?xc$xmt;M~IfX`78snRn$k zC8^Jx&{NQFKJQ0Nl|Wlt>6TemyR78n15Uqr>21u};S#wfC;P_44}FOqe#NsTj<+as z>VI&Z<;QRJLFdhN>&G#(P6_F29$qCIf9jHZeMr)B7yl)pC5qp^mVB)eR;-DVUGb_~ zKg68##Uhcjbt%15_Pn&&(wr~cYI^R+E&b_r?8hEGPycBD@czbn`REM))vH&$UGw_o zt9Lp7%&+?O?SCA*>}&h62{GF3`HM^1PJR3=@GB@WsnA8@exLZk^?JQO%>U_%%=|gO z`TMgwQl7kOWnYbV|62S!@K61*uW#lG_P?yWRPe*4Tz=6m+3Vb$FaBD&9_ycW^3a4o zXY_xX<p23RX@>K$v%(y4+Sexh3VN0P@ym*H_twhRzWlPR-u%<9JNCV%{~1<anfa%- z{`!xLD?S>WeR@yY+&4`t+vTXssfrjuWA|S+PHX&`KRT_s7rXR7gZr79bDN7L=1G2; zGfP_Y_O+RR=AXW_tI8_!`nBzge^l9j|Em0BfBUi${r?R9PhQtwoqzJrx?80syI<t= zTwHS}-`dQ~iGTHlOKlVRo=bidzqx1OhvcKCMxX9;Kf2!aX=cZc>+?VSwP%0OqIc{^ ztkhA(RX*XZ_f}rMXjN6^|MXS;)&C5?N=t1wew~~X%l+%i^tH<uyPbZt#LRM0wXD=j zf%cNR`OOl4J2{`)9DZ^0mvY6-C3=CL53X~>Rh@NFEVS8W@0)F<FW#|fLQ8i?P=<@1 zbV1I`-mkKn-@bG&UYPOjrBp%w+HH9vbJQiea&9jCYRe~Dw&(Cp-c&`SwBq}+X-Pj` zZjR&b$~OPAWk$?HNiWq0DboM^onk$*mc%W&dHLp>w_i$2|484A=j`$m`D5=JXv*1N zxnhn$@6UA2LlxzRCO+iu3ArZqpTX#PB+JpGJswVGIklV{?dE;cYrFBEVd9Hd=`U{F z>ztdBq-nh3NXMyfstfgIbp+~Hwx0X2(qKdHqt7#D^sGM0<rZWlE;8pUe_Mz3!XN5Q zkHmTEPPLo}O4P4W(hQjB-qyLz)c?t=%U|MCUP;zY4BlP2Gh)ScUfDCQ0XfY-lyu(f zEPq*%-;*@w-T9WYiZ#-vz0&vF>sX&;i!AmRzqp>oEcnH-BZ^9IR@^&(=927rw}mlJ z|K$E>NM5}3KSNM<>#>a`$F{YX8NJr)<%#!St@-Ft!Qv>p>C)#9iJK-B^z1RoxEa>@ zzU@y=>*42~t!>+C_0IC~3nZr~7Mgbi<@^=4=apV$&*n7YuG_l2@Qr3M8B0uJRQi^` z@xOUR(T>A8Mw4^u!6`A}7i;9yGLE-pOFuYjrsF44k=8jaMzJDDE=DR^e4$#r%lBR> z6V2`y7bOGbwB#?IoZ0fx?IM5ck#F(N{(=*hZQMJ*?U<TTa*RCpp;@N{HeJ?wT<~Z5 z6m^x8vkyLWQWEdm=@Q~rYZh}xd5L%1NA5%Y!crG5x_p?)-BGJoeke6{@k1{o-KYCq zo_+jPC%@$EX?ZczM-e&s*Mz<qP2`_<^t1f;?$^Dij%Y3p$xZ5&);8Z47__7Bs-)kY ztBb!>?AyrokV8j(lg_4UjlUiD!k76z6c)L0^dSGkqSL1;qwHOd=oRd6e<rSdl*3<t zQbpZ`>n0n`Lh_p;g1DDnEX{eFobGd@^TiVRMY?nKd9BR8*jO2^PtoVi$iAn1WBx+5 z?23wO=7nFJ1ZLU<OMkL)nmkuwhx(Mj#4evVO=mQAY+sfy-&}DmPDXJbZ*Rs;zbk4- zTCaTbRqRwWPD=8YS`xD4uw;dnzxzR@-YV(RPwns2x;r224A?Pen!rAhrVLjpX>&ss z<%fI^6}g4&cl?z)^R@MjPxEe}XyKaa7i*3P3oEWTa^fgkd~&{vi>B+PE%|~MOLb?f zFY1Z+?fk8MP1@N{)UDd-+bR8K*L#wCa(eb1QFN@<{N4HVTAAz2hdbvyxcN&<BVX8B zPtjLk$+51ICF-xW9QO+Mgyf_g(K>pQx5Hz-dzz-ivJz)kw+*NFn0A%DSU07u{g(62 zOZp<$O1n=biL^f6{A-qZi{YcfnR^6!WA66rraem%>3MfV*j2e(S2(>~s%1l0POEi{ zq;E&Rd!bvq`>`pr)Q)@(<ZnHmxoGh-^)=b8COOy4r<wWW%+fRqpLg9x!2QyTjCqzP z6|1c~a+YUS#Ds6I64PI()P32iFmO>{aY3xL{+jo_-yCh9rKd*RxVg4dmv?qgTbFa% z*`&uV>2>XwLi|D>f7o}Vt<A8X^G&m2q4&w|mzVa+^DjQ6FKT(&?evS3mrK7X$==-I zvE$+%)wgrcJ4fCW=X<=hu)X4!WL&~MF-=MSGk$uHSBl@*RVSXR*2=%^>@2mCFh`@J z9Y36=9@2Tm-D=9&zaytc;)l`GM@ikr#=6yd_8dWpCOH>QWONB%(_}l&78ba$Zmx>y zacA+ciDD(z2Yc!ZJ!d&PZ+qDL`@xBhIBUCp1E1VSMj{v8OH5wunszkJ^mvT^G?C<H zpQQ@-e@GhKU({KB{5hM=UuEHBi3j(kwy7<Y6&B=jdh}Fe=3jg6H$S_4oPH_ndni2h z$Wb$uoShwQA8uUUqo%dwY~+r6>LwcTi_BCXUEI%g_)Ghjm|Zikw9lQ=)-qvVVQpMn z=X)z5&5~LrVJG)OzIU3{`rI#OsY%}wx@hrUxJBw_<R+bLu7@UW@fFJtzjW`LylmFR zHU5!vz6D8{x83LN($TXoF1{6$-PT@_^Y)wiMscZ+??u`k%4i)<dAyci<Dy4+F;|Gw z>?2QoC-`1dbDGNK^W8Ww`I%{FtM4omCC*1rrwh2sswGw!PT0|+wKQ$v8k3KFZ#N0I ze(^J?^^;vCk}dUN<(iz1R-ushB|kdf_zSnSl+0G#^r2@x?=ST|mwt%5-PpCQ?V|0o z%@uE5kKQ^Sxao1_MYbdM5sSpkLR)qOaf%D<oVg_OCd)<HbZ>h@&;D~f7dI{5e({&u z39}RCo4-%bU%dO~Mv)}vA0hs!>I?s>$p@{7wMwc;KUig5V%pN>Xx@M5;a-89l!t{Y z>^(ANk9#awFzaIB&yJ1UEqa`tzvMTk9#*VP+~fRmk4a2MWzRK<j~nH0{5j-$NU%0( zvdc~PcHizTJN_O0Quj#b%n|c#bp-{<Id3ioa?dhd9Fp@^JZQ1cjoFKGa`_Ifca1hP zTI{sgJ%7=Ml8&p=lDs_0J8pFOm`~Zb@sUkn;4HI@2+xNqI`u&lE_Ba2kx_A-?X2J| z>B{)lA5J~LViRqA>;#-d#Pm5A8b|b0+|@hE_bB6{-=*Fi8)i)ExVS3gS1iX8^Ij>l zdhxuAmu9_@_ucXDkUjgGRoqL01(K`G>XU!xycE;x><G)qSR{UEGEb^?Z8v9+zx<*v z`ZHF{+jQJ3OKQfx_De12S7cl)*vHRRkUgpHXz9U=6FgkM9;!B7^h~r@WY+Nq*JO^0 zFHGD!yW_`4u`Wl)PVtgE634QVck;@6nOHb~NOJPo*V6w+J7B5#!jgr*)y~GO&$%&6 zP3nu`Q`3#h7yTBKFWeK9xNze-V`=k_j6Y9}#Y|5<Pus{5+TJ-UqhyDZp2GZ%g{?v& z!UY{+3w1kXb>-V%2Aq4J{PL2l{GB&9j@0oa|303cC7lx5B^&GSerRv!i+J}BJ<E=A zwznLgrnzadId6XRx3<3@E^bVYNX}?|>S5NZC@x}^Eqyd1m|Gy{T1kx4n|+;cV%1-6 zbaubQJ7q_}jr$vy)k;U1ZYx_Wl6j`I%K6)gZ{>;G9A{lq*tpPe?;?KQjvp#zzqFUU zlsLCUt!?IB>6<C~8-=Hx{gm&1NaXEB7oY6*GiAR8ix){ty9k!l@yffl)pc^p2iDGS zYnyj|sh*~si7)5NPMuf67g~<=2F-4DTO_`y$~s{F!uc-h3q4d?u8CZ@chvvjrWZZC z?b*xJIyOyHG$~u*9O4_4x=FtI)lE4$z1}x{Q-v>_J|;T*N$;hFN^c^U=+*TsiZKZi zOqwXa{NaZ^0h3dmUS8x<Q54wOv0HxQrU@4o%C+)#WxUlp@z8Vg?t789R$e;#GSNiu zX8%QfS0VRHIs4AtP3(X0?@@2kY!%HFu7@VvQ8IP=%lV(-ubh;**OBbWIc5DXf8|Hc z=t^4n>(HTyjGfuWR!T?o<is!PnAjL@shgM)@A_GH<J##rSx#joJN+<yvEuKMRE<m4 zd;2fRTDxm0S?!uBBNXD96Ed%_ecj?k+{;)0`gQcsm$OF#=eI4i<$crYl%2H1sqXBH zHOsyQ=_d8GKaACDo1)b7?|8<p+UKcH4cV{6r+n@B!^=Bi=^1h92RB-;E-aan{!T>G zR{Ta=aH?B}RmKu??v7=OcRKR5_&R$vN_neA5500t@^(&JaDS7)iu6sg_d1VFSmWdo zv`Bo#A}{$xvL=DT>38yZe_QXJ_0c7#Rq@L`Mc<F}PIn&va&yi5DVm-eH}>|4%sair zxuQEMuhZVii}UG2X_0%fl0RH>*0f4Yy0NS6CYPDfgn8!|`MlFQ?EK5*TX6J)Q!2G4 z*1qCP=5=pM>gV_)Z6|Ng(ej~1IpUsLmZDpbv~>C*ar?qMKIKKNrX4Xgir(9tKO}4N zua~|l@m7=Xt#HH=$$(!0zg^oLORM!J-inpFG4bvqfry{|zpbV(^nar_NBwQVjh40> z^PST3!ql|o!&Y9r{I>I#!fxLrF{y8c&qQM!Z4^0T%)5M?CIonPc1^zcD|o9okIUCb zbJWZ-(%M})H}&jjFIE&ZE9YLaqPebb`I}@{`!z?7D%wto)#`t6OSxHE;^o5H!$0g6 zugb|i=;h<oQ?PhKK8Mr8^-2F3p47?uzPV#+aJrq{z3t@Umo6p`f0%!mcW(Z2|3l)< zuj1PLld>*KYu-}dTz7i$mL07^M~-M5pAlnM{Gz?KXTJLt=Tsr>qbbK;dTf+fFiWqa z<z8aphqzv88TE~c>r+#X-wK(?xBk+ECFe6;y4wo_e$|N^2kdp4vgl>NwG&4_tjL_d z<5#$sNlV}*9#>5+AH&|gb5|AS^ovfMlJA~xJ+ni<W^227_nW3)CT*uq*a@tY(&Q-T zSyHXnzpSNuR!%@qLGmxt7xhIQIjgxJ{xa|EFn@9H=nUuG7Z<PWt(LNm%6S(OtA2UM zqVHYj-pv(s{H1W=#*C-(o^Bg%TI_N$f01#YBlw}@cTU-xa}-?<Zsec(O}{<3N`3PZ zpMEK`e5vDioEE2N^3IZ$zx>c6ymRAz=eXl;$LyC#pAvR|xU;ows<x(i$A)WX^Ev14 zI}*D{#8dX9W62k;i>2K^u1)wAaes^1hihjq8g<I*WM8!H-QCvrcuTFzQ)BPL71xwa zkG&U<+$DAR*v=q<q?)wSj;@f}XE*(uoLpq3(=%?IZ#(hBd56=>8^5-g82(l^ZObUH jxOhpwDMe$}(WMtzOkZT*yz|b~<E)gB#)L`s|8D{SZ1Qs_ literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/about/gallery-energetique.jpg b/packages/ui/src/public/img/about/gallery-energetique.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c91a7dae3ccf27ac6ac9d06782b04de47e0f2728 GIT binary patch literal 119909 zcmex=<NpH&0WUXCHwH#VMg|WC4+e(+w;5U(*jQNESXtQESlQUw**LfaxVShuxkUK* zc?85oBqYQ|#KfdzRpq6mm1V@l6m%4n)zme$G$rMA4RkdOR5dg;7}?p`xj49lxwwQi zq{O5&NCy88F$i)nHLx%+GYT>=2{JMZGX6ipAj81G#LNhCDgz9#FfuW-vaxggzs118 z$OsbsHB)toju?|u4ucS5W+wwv0w)6l!xo>30kZ{77#J8j8yFavR2UdIRxq$|PGUW& zmNJ2JgAjvQ=L7~$ju{g`CV()<3<d^m<H)s(E{ZWItY8puYH96M*{G=Cb5eoPNQi-f zfu#YYjDdk6ERBJQp-ERj$Yo-Z0*8_lr;iG^r(z~2(<KiE)<vEmRVpBYfq{cT$w`Yr zYy|@YgQJS*tfnIkzMX0*Dx5Pp8JH5bc&d0XFbFXUF)|3TFfa%(h=MdVa4>Xg32IFe z@;Tv|$>fygpu(Wil(M$T0pt^q0uF^44Ganl3>-5U6cm^ky*)g97kTO`ctlJ9d7CMv z6GSmEFf=GJFo4uCaZP4m5D?H-IU#IpXsj~H!_$a?QGtPh<!F-*0|TRg&$Ww;3=H6a z6ck_(G+<<LdZ^musphG&!GmS80?6BphK8z()YLpWn^a~f%mACpbwf#kfr)`hi(5#X zVZxRZ!bTnpo<`t6V$4ubQ2@D=2}E$LU|?`yO<>H}APx#3-$f1+7}O3haD}cu0g`55 zU=TE5Il#ccz?!yzfssKVq%$mq`=pVF5bH7(CI^Pu3^Mm;sDI7d0g3@oBrphrw6TIb z$h1K~J7Ll_&Y3D3SQ=Ow7>y%0gf~95Yq<c4DHb0F1_nl!gNniq3{0F299jaJnJT&} zt;-xZXEJayFgYE2S+U>wCc}(L3=<d>CV*YrHEpGWuLB1IgF=S_tFEHTnImVLJedx7 zFe)$z>#Th;|2-rPfZgCIzyOLh78U^kfi-6)2^)E4GECr{<iM2V*%Wj7l<6IiL%~U} zVM3GARR+!mh9(sbCMFJ!kS#4OHzuV_nB{V2+9U@i&xTxii|bXO7zSxkTBrbKx=dhT z6l7sonB?TSrR9cBn3Bp&-2{dSjQjFuzbwlUVqjqLU|?ZjIVh;Wz~ad=!KH;!D9l5F zqeDzBg>yE`WMNY^1+}ysVFi}v%9_cSe?3rPI>6$=;L`#M76C>f1_wt50RaZqBt}nN zMa4``h6V<vv<JQo6RPWbs^X&<7+4N42pfv6IdTvjnT*0L!VC<qP99BKTUu_Y%w`aB z5N(((oXxsS&96QCY?Xd<ReuNr0}G>Kl1GPbv?v3E0w~idIc;DNG!$Y92}{uvV$5XX z)MgMiHk*`|biDrZpUqcl!Y}<=$-vOi$*}?Cbw&mTK{2KcECLKd0zM%MF%vd;Du_*J zQc#$%XWC4r)ceMd|1JOI@BQjMOCyV*u&`<a0~5mxH3g0a1_pzZGkTtT-C$r?yNIzU zg>!=tYv&pk2I0)vo(fTRUhgl~1-`cJeZruyg6Yhe6T(6c3=A#;3=9Gi`a2tS*BxMC z5C{>UIbl+olfxt?hNj#kZ%;+`Q&n~MpWQou@ysNa5GKn%wzWJjmo%jNE@|@MI>R8q zz-lS8?wpnGh0Jm$1`cf@?#V_%J}oC092tbOU7IemO#NB%H~#6~{9I#WVL=Ab4|iU^ zF8I4V-?pTuW_jPQ@{lI421b?xjBK2hckgYpjn=)wz@eo5{QZqnpL|Yu2t`cb&=8wB zQ-@`;Vf-xrOEoUlxr<U1PS3ukWW(S5cFq3yH0ymw^W>W!mHa!oQAJRZfyGn6jq~~Q z@7E_z-_&+frGra#`Sg#~<v;7aw@ixQWXfS_3G<vVbHW5Q{<#~!#!rmD`Nc!!T;Ruj z?=vjwHN)=Sleb;Jq}<|89MiR5)5{CiTbJc|u%<C_Jg>Bycc=8n-uTorU*@#SbMV<u zKYS)}+mF9pmpoM)CQQ2E;p5UW*@#i0=Kj5{AI<INUzyRdW6lrxg)uh$=WJeoPt99j zX!7Woyu16H=ZhXBo_hPs@64Gioef&;TorZw=PKtXp7^ET|8-yR^|xzUYubB#jl#pf zur8UPcEE$>M(2cv30oRi=G%Rft)KGz%d&>9;&k~L)^B$Gl~??HU-ibp<?ps8vP;cR zJ?1>^cD442@Aj@K3|&8e@7O-s*ZLQ~`GGfIYNP7v*?-lZyEElOoUHGpc7eZa5tAHd zvo!de@MLMZm7sLNzxnN7?T3=JniGUS#icKPzT@4?Yro37KCdd;y!XvMqqF9#BNtqG zdTqZ}-NZMNTjG>^Ki|p?d2IXp4omE*bHy5$b-(Y<_`0w3)RVNH?d$J8*>Zw0$#c!s zjQoHZoa!(BIrk^+PCK5-Q>%Zrrhd`=?Mo`|&wqXEvsUW4+pndH_oOr4n`-7b*)CY? z%jE6e)6>3glhs>a+wooU^Tww?wpM<hQ^jk3{%Wa(@4Ihb5Bt>qx|iR~QMDxS_fExx znS0foJkR~|@DTF9w1;cz#-&#CZmGsMt`4tlt~o!gxaRow(`P<gm2dao`n0g@wzf~c z%&B;nd)GSeuUtFx+S-!3_WiAwZ&dcr|FGug?aMK%O&?sZJ8rfoEdIOP`ePqIt@C>P zeW%JsmDdwuI_4~o+!E2L@+-Z`Y1yo&7rveTndg7@wduFJ@}i%XPJ92`%r5%s`FY2^ z=URz~6>96ApL65xTzT(>tus&U`1-r{p1<*$?GvBb9FErPUcEB=!@QT3bDz8YUBB&V zMQYW_g-8ENW~%5!>pC5f;PEu}_LVyPa=zi?9;07z&dbk!jC(I{IKBGz4}HzUQL?{Q z&9}Dr+V3`3$70Rrz}+0-ag#57%Qn6gZKb@}w%jsi+qd}U7gd6%dQF$l>s!SCx#mBE zyIa+~#cQ_D=-&7&^IJ}JPQtUzLA%ae%N5#VX>7|@7anc*{$ic~Q>(pv@l&pC|Mi{w zMA7thZ%b<ADoS>qFOPVvdGy`>Gwb9gJj*>CC_d@+i-XsWnp*eiEemVC`}MBA{gV&t z7vIuqo3lrK!hZ&LyG5d_et#_!-lDrKtJd45Dl_%^8--bUo0|5!dY}0I^UnRPRd&+< z^soQ<edu?+<-zBlgO;tS{m(G{!JhNC_GvFycHO-C4@Y$9o%f%2zB0YB->&ORj`lQ} z^s1aEvw6LCevNyoyLhe6?XoX*>4(1MUy16zsjC0{_g^--DU~zJep#-cY+0<CSAKc> z%DwM3@7Co<h2G~;-+20)?9`oh`74jCkL1zYT5@gIZMn7@)1Yk@Meo;WUVa|G_e5q~ zUvII*WnHn;bI;sgdFIvYwb6zC`m6u)Iqhql_5S?n4F$VzxL$j_y0KT|eB!anJ+G^h zPA)ljGI5*TtF)_o&MrE-?6Z|?ZdO?Svf{`YlV&~3<ovXA`tyrduRgb*@<rqR+DFgk z8m}!sY*(usoqKxuB7d=6Li3I1Uw%~(`ffwBNc_^(x{Hb~PqZruU-Im(_3~5s3$53z z*ym@oeydVag0`Z{<VYj4JyE$C`sUn1g+K1xx~=nTUioFUl;5|XuiCRaa9-W#IOiFA zOD$~GLl)mXv$H$rKZB|2uk)Y3_(qk^STuX}vKzsZP0la9RjaC-w@I*Ls?itA&vgg0 z4us5DGudgTLc3wL?WViwIUbBgV*c}%>Oa$ZU#vQBx6!W2=b}#Bm))(YopU!{_2tF# zGlnm-o2ov)U9P|B)9fOl_3>Jg!dFf_Rl0ZPdsfpAS<mE#S-rB=*<WV|2Q8a=?lPnC zxsQL|RWD1PS<QD;E6B^`#+)4-=5tcF2lGySxnkG1)6-K0ZrV*>;Hwv`pSRvi)G=n) z?8l2%uP?EdZ83SQS(WK~*ER3PqLNEhbC(u}PdTo=d%Cp^bNKh)A!oUds%_m8bga&~ zajJx2U)jFy`%#%mDIKf+*sR)Sa(TJTvY?j_=DXV!{r()eYwb57f2}Wa&-0dQG{?@V znEEpHB+sg6H$SVK_m$l8P2};K+%4Ztf@4gavmc*#GCjTg+OMsr&-k3Vl&~iK!G*x3 zZ;#%(SyrpR>Jmq{C)Wq<NgKN6-rLU1Zh1F#XYJ0<cUPzE)82P9_)u)3)|6+jZ@f_0 z&%ZY=JTNBo@S;T#N4C0u4_>)kP}k}%m-RfS*YEp%_43RY*-ffjELhQf<lbacz4_Cg zt@c)rm3tm{KkVLS1K-E}$M<P|-W0v_&QtaKkH1#FwwzYpny5PGGWTWAIbm;$_WZjy z->1d&;!FQodqtN#ijKW6v1#`MUd0!tfl(_hzFj+J96s~z@~dk_XCGbVx<t3X^SQ{e z9Zfy<Uu#!aJw1H+!kqoa^G)W3*>x|P+wtnN_)T4@i(KllB3I`%ohU7SR{Aq8%PQ7% z{?TLGBK3@_-cGa3_CEL5TRm>>;~0y(CydYMrHA(Hw0^kN((Jcs;pbc5cA3oBy5M<< z@`;b(zPTBDPnX%AFFSbh)9zojJN~3xGJdUh>X**ZsuelAEe}q$td)LwK6&B6*Jg9W zo_;F6zW-t{-?z$(F@LVa?`$_;fBL$4RkYG|Pb;sR8)J8d7f-%cKUZek#>;x)H+Ohk zbln@D8fyO1YnA(g&;O!lx)rXPt8&Fk-u-29k^AiP=^3&2^tBhy`g`R{{@m&>W+!)R zT3=ivwp;Ha@9Td1ymYH+<@=AHzpmes(?55)|Jvo|F2--ZO>wnbI{nzrjn_iXW`|d= z&&$ipX;*(6ncqC;+M_e7mmaB_e(BWOFeUwPdY-G5tjwnRO9el#-s=7q8Z7eirG?F_ zC#R#9_U`J``z>?!_W9}kes{iY+82CgYkBotePPMec|B#<o^L-Zdv{)rb=JeCi&uM7 zZSr%bPrZF<!}ePXUaVR-E$W$;(!RfOy<7HGyKbITEW2r@&3>bEfu-wr{g7ICZjHfv z^XWRpKYcr&ealbZRP*&!RP@=Zh+DiXb&4M^elhjDTwd7=^YgJY4&7OOR%UhA>S?=^ zXB+Pozy8+Hb=JO{*JD=h)ww!V@9Lu;E4R*CYc*$9ui(1M9lO>axxQdg^ptgbD)(is zKbx{_)83T_E>C-EA$w%!_PJY=)r604KOXe!Yt$CqcBi7tRxjquTfM*i+<3dv&bUpV zWN$rMf8+JM-PdKyR_)A8d$-p7=$5;!=0|6S^<4}vTcf{Pbie6|wdr|%BFC*ColRR* zopeUwai;c_p5nkYhBDh`9(uh{pl9>NY?b(BJEV1cqJ$344cqo7RBihHq}1E%Z|@Y_ zZriTA#b(Od^~uu~ue#W^(Y559mh07yd&SEWqd9#IJngnGY0Fsan|aEA)9*WTZm08Z zJT`HQ)?sP&TJvL}>B_0wjZYrAJv)Dn_BQL6PNCOTKc6aknY=32rEpfu#cyR%?>LjL zU308>ncMd}W7Um|#_KJ@c3zLt+8tW#z4A(wdR%>>>y538=kMEjw`JSX7pphVi+UO( zeb}wFt#HfQD^KoDl<T^wmvib|ZjR~IdwxHI%(ituJ1@5`wdQ?{RnG#``S#l{M6y@? zdGSj3tno$h9q%vOyUvQ)Te_p&D?ERG<f-e=vadc(`olffra0Zg@8_Y9)%V4o<!|vx zZxh?Q$?UZ2_wp%M1Wx&c?Z{5e-jbhKBX{rAhuwGn&AG0%GfzGIO!+V4=I8P+>cpF0 z)HObseyw1i!J{*8Pru0Sv&{Lm#$e;Tov*vAy(QOQIL)+k|Cv@>e*3ApSL$|q$#Oit zUwdWFuU_SvDw(?<MbmYE$$Y(A$R{54r^;7$i<52b<j-EdGw+wihr56NQm_4u+dKUJ z%gvwogRgx&_wvx;+Q@^^8z#?{)^GDM*p|O-zh0(p?3wH<v8hta<8N<|SFd;fd@8#7 zSgY*Gh*kThFMQq_>lxSM*1Mve_uM<T>r=lq#(du<c9;8$Q2epG(|St7m1DpBGCyD| zx6^d?{-xp{WB)T~KipZJzS<&a!<opsZ7*|Y{mt__vo&X@#N{Q?C04H$KEJD7zHnMR z>&Jcn86MZxr#%->H-Gs{{LSiVANQmM#TeZ^t37$g<K}6ZK5_AC)}^0M`{ZVB@(b_J zE8D*Aqj;@u-RuwduKjpD-TMn~UFI9R`X_r%uQOa-D_8aAbFN?4y3Jkhs^mo%UU9wW z_jNT(uK9ia<-cR6@3%ftY2RS^>aVfz*<bP(i|(x3{;^)`^V~n-uRdE<8BAASn612f z=Be9HZ-0;TzGeNnPTqE3&Sj4&vr<<td2SxIi$nF@KhIa<0_jV?U;QWl^}hUP*7e($ zc;|?`)!e%EIP06+J-_BpwtK8;TH*Fi`P$8z&#!9F%}QSu6R-I5_T^u8tNvWCyMDXt z?OfxB73b%D@y(lfBP=wxYtAplWq+^Qe&;^$d%feQ_tBrvR(ao-?c=Vr?NYPI&udS= zSo8S8gS$e>Z+HH&f4!%^@pk&|+rhCCOI6qID9F4~fA5d&a^rIw);zqPzWnr-*I(u@ z)ZKLJa__+(`d9Zf@BI0nVSAO|w8E@{9s4bxSIO}^ZmrzAcJivKN6#v~+H2>PU$Z$Z z8*ln?-CDWVAKrc4_VK4yX>akx>g<<ue)b2mn^*fU{jyK<>X-QvyWUspT;H>CR+N79 zxgTHef7`FL_hGF>*t6Z2=JM^odh3hKv7I;fANqMee&!R)ch&hzSKqj|Q~T-spZ7a| ziFZ|N-z<rEVK{{=)9dvW(_i)Kmy{pw^X>P%n)7c?-Trw;Po3J<W?Y&dc>P1)=h^yK zzQ*!1+xoYye`)ajR?^#uhfA+sp1)P;FWbJ&AFT@SzJ49CFXCaW*;l#Gm%i_b-D-6& z|MUGjmH!#6{9o^zBouw4a-RR(&-+^6GrqErO_}EA@giDA>(bfOsg=HU4X0aQ+Q^>} z&t9`V*fHGF^mMA`qPy;MpZ?1D6uU22t8~McYoBHBxu1K!Qo{5_{3glUIS=Q^nr*-Q zFRdqG+v%NCU+*<OyMEi%_Z{DMYk&X!pJ964hwJA)e!pv0!=AtK@{jpybN3fM{&sVo zQpMILsl2Pjj%Od&d`^D7`_J~*^VNSgpD#Um*+TVSXh3$Ie_-GG>2Gzm{o3wv&o;l` z`%*>k55eiXF79*s#S=gKV)@czroZaX{)jX`oq0z1W#+kP-<iMLkJat{`Td0*)4%Co z;tzg&|I<GB%RciH8~P((*Rc0x$1f=qcvZN;T|2JlQberS$D6uE<u7FaGfb(i{yd-S zUjMRJyMs#;?}^98&UtQh`CjRb!;5b`(`=8`d#`9$zvy{k@`5vdzfF%hL@&Npn_GF` z@8@07-nEOKtLw(4&5e)z<iGPz<(qxeKjmMv*ZwTG`A})?`8kjEn|D{ApJRIUYhC<V z^Jl+3zFJi%80u|XTlsOe=JQLxwx3z~nO}APh287UMXR2uH$81Wd57hE(`%bwY(M$@ zt63sn&4u2~3sG+`ZHe1{I%fW<(|@a<YEIr_c|Pgp;i|x_$M61CuCrfQ$NqJ_?(^z@ z;o5Jv8=Wnld5Pco)xX%VZwHU$&0JRgGBid%Y{TaLP9N>^XFs*7yH@5K^2=<K)a%V$ zS^cghzsi%NS1h*j74*;BFMD+9=J3oj*-`g0CDr#|-Ivm?znV9xd6jCt!`q*8&P~6x z&ug`P-VgR0HSSY>g`cyE*m<E=CgAFwk}t9U8D<!}hu@p4BCN}kwa@Z%+^N0xUbFs{ zpR{}{b~R($u9SU0zUs_LdarX<ZfRundSA<cPt9S+m(4B8_F6E_w)X3JuT|$S{416? zt@mk5W3H~>s++r7lFqOA_@5!^$8!A_`?X)`v@b|1?EW>S@XNl{&vX*aoZhY2w@QCS zzT32`=~jG+H$K(aExMEYHS1m6mh8o6TOLjck9<>lt30*jm(-JMC$zV2S$n%@lk=j* z!fDs%7eC4kop|@x<2@Ro|7td-e#_1J`uUvJ<cOEa+V{7fU0!~*W_HXi*STxwPQO3b z=i17u9bQszFTAK&x87>+lNsI%vs{-;Bt<<>TkiWbbaTwJ?FZxLMHb)NZ@p~uo5Y;U z+k7wQa#h)tafiy-DmCQ?_LVPq^meI!ute47bLBF|+SlV&SLx-=sx>}Tsrr5Tq~-P% z7u_>fPk-@QzIF4(r4iRE{dV>3x%N@JE`Ij65BFx=xBYzU_3fFJ$8*>1-QGN3Yyako zw;88$d*2+BJQ7}hH8nc(e09l|!#*pHDBq7-tG4w^x?hv(`lH$Y(eZ}6Di23$x7EsQ zSrfF(O1nmW>B?1^Usmp$>2JBq^s#m9k=w;Rhu+-fyRZ4Lc58gFZ&|R{`jok6FZsyC zPrrEH_BW^A+?#u=Ru}Jz+|_n*nr%oA+v}x2`itl3?z)-ruH^nD(`TBkTMl*l{aW`` zA~3cznU^P(x#nZO>Eu&ZCk@YhzMuPZz2}T*ZPVF2kLTNOSmv`X>)y#zzaAZZtaX~* z?(;m^X%<z*Z!ZV_m3j7U<+MnXy;ff9cWzp{e%h>vnVSS&m0msXdMHpf<*Mw5OuiQT zv*%3w^8GeF+x2Aa#=ME^)up2@KL6{d`MpwBb?L5S66q&j*e|R25@K2`R~|mUXWM$e z)w)ubSLc;UF28y7w6UAO(OX-(SACg&T=#W*q|I~N(9(6);ZYOUyHDM3_i62lOQze_ zy|kJBCDuJ??)Bis(|UC7yl+=LQk*^W!mE!_w`Q%DT{``C$PeQeOS9LVn7`oAm9^Ji zD$YCg?9TIjd)o4SueNPFIo14p<ng>{>EOkO^VaKJS)TUoP{hs9C5~qzu9nD!zRC4o zy-&hoU$o8>ac8rrV?9AL*Vbm%#r;*)U3|jzFTZ6PU)6o9U+V5+lZtj)FEa~Xz?JD( zoAc<*WxZnK*|OZpIl7Ct#!tI<v3bvSb=wuIJHE_0ZT7+4rzm>yv=uwKH?yo=$Fs7o z>zjM_>#|L!nNGemIn7$-y=Bp@;@@law_C3{FByLQT1D+y)1Zi}dJX%2TwQWISH>uL z+1|vy*e&<xuFgFbcD}eq<hoqzhjVB2Q}3PDJ8pL6?UJVL*)uQ3?R<FgJp0G9Va5Ao zWv`y~Tl8zse#3ReZ;PJo+<x@c$GI;a9)F{B=h=1j4aFsQt8<UNE3Dmr-frXkj^%zk zt>+jl_vg9fzwEpG=E%^0)!ENVp4ymCol$7@y7YF)UAyV#*;~)&mRg%Qb8Rg#S{LQn z?$&2A&02rGbL;Atfzzfv-?Q1UH^0X6`?h0q>K#wM+<4~DU%QaoX68<(O|O2Kvwl(7 zUhU<%rAJ$OHg5J^^t$lOwW-C{@iVVZx^r&ZAG>KU=IUurKAV^AZLwG;-ly{FE{m^~ zS>ME64z4v#%wF~A;?2+RH?&=??|W(-yl|b^q5lm3k1$Aq=AJ+pG&&8zOpMGdtZd-f zCnnGgz!!)x%Zf7$c?}F{c`Yj#XD~2mKtvgY7=l7)1f+pv7?_PV%R+@26<AdxTiMcH zFt8;ss7CfdrWF`?&fa9WJC#v^mBDKg0|OUS@v*#TAki5N*BWPfGBAMVK0q>_yF8>9 zFr?*8TEM`-Fcl=iz`!7palnLuE$wA50|Nt322_xNfdOO{0|SF8)FQtZ3=9luAP(ai zh$5yC2n{9Kj;qIBU|=|-!5}$%0fTx8R9IS$=a=*X2F4iy494aT3}*ru7#M^=_MiM* zy03vjNZYtX<u0RA&jFAa!x<2H@^jg)3k*Ve&+>W>m#}mhGl6Uc8OP?&H&=w=%w1Kt z1O^5XP!O@DvVon<C}S0y%`0ItRkDGBA>-I<1_p@>r$Aa5EI+<1-Py_+;MD_~GRix_ zz`)eNAlb^mz^-STH$&>MvsA*Byxut%B$#F;Fx-(cbYS2)T*AO`E-v5q8Uq7EvUyQ? z;q2aH5185-4DK){FfcIA+^vvp`Qd8@0|W2DS%(YGrafym$zb3yonZwIwKt6$&(G&y zxPXBH<Uocz1_qw9m)u=eFfa%)@H{>AqZ$;DAg5(EFtDmRFfdGD$SJJ&`_};yx(tVT zK_*`+y2SQUfkF7;m+uUWGb=#qCC^*AnQi;Pz`$#`hS`mQ;l$@ED-(v~`Qo{2nYB$A z7}zTJ%-i<mZUnRRERb>r^M1Lx+72vxYVs_r{svd~*~RDHU|=x#T(LLxtG<Kqqn9uG z4uGPc!Fc-o{XQ=w(!!oq)Laaf>-hS+cz$o)Y2L#Q%*xX$Yh(7+)<&&9d*Q@+{@LsE z&2KR<Ft}Y{P(FS7a`hFJe)CO}pMUUk`=!2r@!36Qe}6}J%$vQ7!MMGD{qmE?YWM#5 z{`A%s%Swy$-1p=cF&LZs<fXlAc97UVdvEpAw(R-sFILsei|z})6g>HKt$gswV}ETH zPp=QJHZV80*=IL5j_Z51<%fH6`=;EvFW)^o@9~=k;i+q8-8^-1auma~pI)zhvipiY z{aU_$@zLjB+&SCcl{~hswNu<KyZu$EQK?+czIr?Jt8ac@zrXMNJgbt|FV~!(|8!mH zrOmIKLT8+n+&wc|*+i>cZM)#J*K=3)eE$47_4B-c@Ab83o{Nl4)6xo`yyx!s{mVDp z{q*POxoXqvcOUfZ+dNyY<LkHl=Dz1ym3BW=BYT+5%hQ=-wl7Za&*_>c`|Ww=;j^O8 z!{h$iTz&fDu~yrczCW3=YQ=f7*~@nx`g6}Nw%97Q@Lb)zbDH^!<M!30_t)L2`Oi?` z5O$97*so^{_srcsyp=Jv{gsw?epYtHm%>$#1tTra-MRbSeEU58H9x-<g<rnAFXrpd z<jXR0b~EnmPuF;QxoY+0%l%TX_u0u;oa9Plt_Tmy<F)v5$>!d<n8o@RpML&TTP)}G zGCWRSzux(9@a~zH#AD-nK7Tm*`n*|T<*Pp5b8{;`JQcr{we_}T)lawl<(Hp-{<<&5 z{Pn5=bB280m#gNU@%?!B&gVa?*6sdMQ&(~O+n(zezW8_9ir#*<>+#fI#*z0npFQ8N zH}}V<wd-cA={|e!pS^9U=$oR{Upqgai>?0r*mQEe*Nz|gFMUr(E{>~yIc4UOPj63m z&$qk#xP1QX-rUX0VpGHQw0_C#%a7d`9J~DD_5OIJxZE%Ir%(6meYw^8+Ro$cT>Ey% z^~HSey>h2`?!L%t`L(hYf7br?S!oyVU%Kn_=U;`Nl;8SSKfHeb{%6sc->L8GXB!rm z#{62BZ!`7wc740DaG86TZ*QykdB4tZ@Ah_n*A(B+_x;W<u8FH%H}m?ksy}xG&o7Vq z?05C&=8JxFbZa`|{HN`e4f*_i`uSSZ_<8Hs&*t$ho;SO4ul47npLcz#Qm;6)+$?{6 z+-~V-eUlH?z5IMW`&040xV}B=*N<7|e&2ih)$?cbWPkfl4!zu0dbM)ak!@+KoXw(l z>*l3B6AijIb*@!$>C4k;+5Pj^m7G;tz4VT2*?IoBIXlni{oPUdx3;Ecx9fWg*W-CJ zV|T@T?D*_oxAA=Vp4ZE5?prKl$TrA%$8co!)a%Q0=N5dc)YhMqvVC>(a;^LR(hs-4 z{rq|N<ELeN`sVJcwER-`a$d!{iGg#qFPiSzv&ZV*al74@HRF8WewLnchpjdAo?Ei& zS_Sj9TD7s31!r5HhJ1T1Tb$hPwdZl{_lkmFmY=hBANQJfuP)SX-OWSUp>v9B&1W7z zId^^jbiH|VU+SwCeQ3xk(cT_6Q~L7clZw?^XVP6m)y%9uuD*HR=l&wAj~~BPEuK^I zS?@2uO<Z`?xjQ!7V}GZaRbKbEu8uiB|McbRvUB_5=1xoJ_~~OJx$yS&jM?`tKl;?1 zx+d`Du6fqi@~4)3I=}4meyP`|Tff}?bUgER>3P{-&)efZS3RC<ExGx;@%g%WQw8O6 zmdC|@*52-x&u@M%f!Cy3f4TMfu(Y3h=J4|5p8ECW?IG)MxjWkXr`hg{S-tw{)C*5f zZ$0;IzPjA^*B`I1KOJkev*dN8waw2jpU-dJ@^hzU-qU+I@n!M(Jb&IEkjUJ(`o+2J zGSyH1?8!)rJ9~d|b>+`5>tuIa{rT2bf7z9%X6jZYpG&{_H)UHND=K|kU9~OcgJ0ZC zS)1ZZub17Q?e+S_$LD7l828P)zI(U#ym%Ga;(77D@8<jd+!<`9Z~042dF{6wFOAQA zKOZ;WeDU=do4*zzMSXK^Yj<w@KHuZ`-0<gq*XwOkv$xCK+qrY^eZjqIDc4MAzkGjr z*}LuL=Rg0*teg4yc=p?SF}sRhPMvw|bFkNXf1ZAKxw`Y})@#33Y1zy%Up{Huy1!>W z@A~+5>gm&SpP#+B^-@vQdwutLR{1{bYHj7Y*L_?2sqp1ytF!0s^}Bt3_4?2+i<*0} zq4$;<FZurE=dSqvy~jg7+<EdcVAe~)qc5hF-Mf49_{o?1XO_h8`?E)V_qv}oSFdl^ zi#3~kcv<MtbNTjhpXTjb-*)TitwQrtn}fqI%T|>?tbN{d-e2*ywsGsXd!L`bzZ-md zzVA9&{V8P~_r4ygb``z$+~(h$hdWj;*BAFYcTVQ<c0a@IB@d34%(^x2k81dbpbI(Q zUiaCQmm4ivlk+t1>6f0<$F7yGT5)pS*3<hJ&%0WDV#m7gGwzwks!C7XJy)hCR=ZZ@ z>EZ2h#g+HXD|VLc?zz=FbH|^5FT2iMx$^X#YtH4MHC-!&?ntikOS|{wWO&?c<F1w8 z(sTO5`!C)$R@0ta^68gVO2LfX>k6x9%kEYCu`A{Kt((O!kI%h-c#X91wpp!{_Eo#Q zdlGik)OhO#P0@{EXMApbw))()a?QOxua}%V8*cSlR@=B=`_5U(@SS0gJ-?Qoo%1Oy zC0vaAq-3Gbop}>yX*00<Mf1kSetvK@%z54CvnTJWaNXcB=RNl3nz`fxws(m+X;0Jg z%!4<tO?mg`S=JVwWYd+`^bOmdY24I~Y?fTh_AF`E*||BHI~SzAoRPP@*g1>qN*?dm zFV7FpdBAh)SgJuDZ|3fE8;<n^Hj7L<7uRf9JnQV)D_PH-*;d^-8}|9!)Z6W1b7QOh zSJj1>d)~QVTyFH(bf<2%W>462&xyS}Y0bsOW}6GlB_nrS=DnFaL45Z8<%^%)w_N-6 z-P>B(Pc<=yQ>}Y-HP)WoX1H+I%WI40l)QZM^h$znXj&TYS>vU9zV0xLIGj7VGUwE( zWZCNb=kDIDm7RIN_WqI2zM`{@b(5DbZ<k$jZL|6k-|1iTr`uJZzW?B3?y>y5xr-vj z<+8LQm%Tgoz_;|J%%cqlZ*A5qTvqla{M?-@e?>l5SCxGHGr6pInX&J=`R<30E#<lE zAD3e{ebbNk9P`up+2>{b`n|YZztX*aF3;IByN)sQ9lm<{+!<rBJ1-@t+G=n2`doDS zVcc~;@z=W_eiFVesT&mh;+LJh&bF-VP}9k!UsfmW_<7&??32&uuCKnyJ@dXub<MuA zID@X8m(9z!*U5Z-^>fdjqUC-!jW1Q@$BCZ5KKtR-H^1)Ie1H4=^8Ay}Lq+DC+Ii>P zefQJPPp0OEYnIMjAAa%qp6~6P-~YV37yB~SwrItt<DOqC{@jjkd#|0!oPGD%)A`wU z_5FHMU!E;8FDc*odAX&n_<jBBvg%KsK6&<d*^{TA*DpML{&bN@Z?;w0`!6<Ik0+mv zw%y@--#$L_@p0pebv~cpN>7@5`p%iW(l76)?OXQYXL-zZvop8n-pOCS-oklWc+A`D zTfUudyEA9uvc>E7w{z`dxpFPf@9XQYcI7g=AHMi#{qt9B(fP$s9?xC9=4Z^5v!c7D z4R>DFULLRa*Z2ISSx0_d3h_IdzIeTy)SXjrkK0Z6`BGf@r{>o4P1iopyZ27c^x5Jy zC1-EGygYqV#q@deCtqJKcY9yu*Q%QE!kf>}TQAGnY`9nW`lQMG*0XQE^Yr1fYcp+4 zJ?5_4J*Rl?rr$sF?^LPnvx)g~XGh8_?YlCSp_aQot~%3w?yptF>kIqU=U=s{HJ<Z% zf9!M1mz8t2_MDkJJ0~vf-1FV%zhv#G_-tmhIeYFi!_eZ5(xJB6r>|c=yxptjy65DJ zIz2aDzI}Q~bi<sNEcg9>%9y{bH1D^&{d~=t>wfpr{oUhL)1^+{-Epr(yE3Nq#QS&e z=lRb)dns#UXj@vi$J`UwWA668ZrhRe=+SeD>G9?I=5{^HJ@)kW&5S;!|Dv*ZzTRZ> z)7#FJKdpHE>O;!rqSfj};n9;TOK)Ee-zTq_Q}}Z7np0=@JiC4B?AmiXg^i<o`aa64 z#_an1@>Rtym)yKhU)-gh-_BoF^!nwB=XLr1B4?hJ-s$*K`uWI{F!g02k27mZ-rnBs zx5qAT_UyRqvuE~bt*R`0ynE{I*^}<PjI=zp>%Hy7OSR>X?>?Vv`7SHJz0T{#y}5ex z?O*=fy{IT(d2adZ<6YZ!yqDX!>eQMUd#{Jb{i(6OInmhK<g{z-;$?oHV%0WT`8-X~ zp4xeR_0`XMRVnxU?%O=R7Z^Of_vDLvIWJD$p8c)z&(F%sT6y}(OMR9Voei&xyncSS z@Oj<6KV9BlS@f>5^vvy+@6R{Qxv6jLd9AAE=kCHaz5C|;R-GNV(ehGux}mN9oap=K z&zlQ}PBnYJmu=B6BmL<<g_o7ZFJFG#d3#pJt-LR%dd!USmlmXb+Oy`;V!t`B@{Nqw z<)!)EE#5QL+Aro!N!Pww{hEt;JJc(qjRGq}&o6oNecCnmc(dK#*6XX=T`rux<Mnyb z8BedJSG|e({JeVV<+(XK-=2<Hz24~Ot9-3;-j}D>yiQvjy*K~-bjx)crQ)9LjAOZS zB|G!-*=x4*`b8^$zTMJ$>!s0|Ssi=A^7785S{2_tHTU%%^SSPRJ}=vHa^D$eX^Tql zI5&Ozq3=^=i%N_GBYn?q%C$bde*Sv1D%<(`%TkZJ+<RSp-mbXv+$XD?l3UMfwr2}# z?=Dyus<ZZ3TDaWo-K;S=*TOz8P1~HUbS~`f?6aNkW}VnQ<J@BX&UKs5?Tk&5-m|OZ z%jZweE{mRC=6m*N(&u^i(mmG&UMrsOv+~-xn7rI`zD75v&UCkWX+Gzd<+YqmtJ975 zg&fxVYN@p^Yt44Ki4(8SJveo5-Taet(k{<4dY+%Y%<{^zZOe^~s?I(Mi*?ziot$m- z&f?m&XRhC#1_qmJE0;YKzZ5b1<e8V7R^PmPZ{qc7{&sV|2XEc`=Xc5*mu0=DcCPc$ zSQGQqHD%K~nX@bB?VMRtrJS#xy~KB$G+)Qsd)DD9>0W22`c6N$^S$53$${rrnXD_l zwCmG*>*E&p?W*>6oqBzKo>7+8u8^~-c|MvJ3%gF<K6&G%^d&2EbLFa{yJo?%n@uJ6 zb)-Emyl6e$H(bYD>HE}o-}@KJ`32m38nGr!xu~ehY|~~dzb9|5rCd99HssB;(@$Pr zuh{h_?R9d>$?bNNR-Alm88&xTJ@&yCMke@R3o~f2<$$mP17qpT)!mB?7*~P&#S9E0 z3_N$vo|M|zz##50a~BUo)>F{10|NuY0tTKtt5i2JaJ61gS#WBp=xnI?3K50|p9Y58 ztQR;Z#QMCN*$owEbP!@X)4*`qG)GK@byL<PU8NQsF)<AW21YIhZUgaP1qRlOGxAax zvKov{UCv%hdX@It7&2<Inc=bm123b<gv*Lq(PFF$8^yd`88~$r1RWR-FfcF|tF23V zm2&j}+ss`vuL_$x&fpDTP|IszOIyKUz`($;A}~-lhILcOu9=I2&4Z$+s$6A|6iwOU znG*n(X2?sqY9O_<=~arkap}y}(>mt{FwWRzZ0d4u1p^a<P^JO{V?bnGyS!b}fe7A3 zhmI;bu!VZ8+0yf>fq_AC*3PB_Vhr3b|Jwdp&zZnrveMImfh~&R=oRBt3`_wG%ph+u zhrjsn>EY@byVM*@jZ0^O!j<LZDh7rIE+!S$6%D*`Gm0~nE(&!`I|&LXA+ZJq1IATM zDU78v7_PoPm&RaPY#MCt0ErD|1J*0769mJag)GtA^?7CkchHry7a&p$XBbOo=rx>) zm7KL>*G#=#pC>CYhxpuuNCq$~>l&9bIyB9kwJ{)jz0CoJfG!3_kfE%K9)_jHB_O{n zka~SysDXj0LFooV1cTFo1xy?(HbpToinMmGn-c^XSBhX*z`(>HIcos}19S8qkO2$~ zECF0oxj<{785r2Tm(PPJWMDdU&}jjfExqgIVTdyrIK8=9ITnFA;+KyLFtCD6*fr_p z45tPTu<&+}<IIx{MIsm&7_R%xF-a1103}TZ29vivDGb8fdW()ujGD=y!yvlfoj0|K zf!DJLqH&wyJ_p?sFL%v8Ei+4qL5D$a*6Y*NdyHo@gl$#Z0dj~K>%N}HR?nQ)`xRWf z?(^)?!I>+>1Qtl&o*!*|e!J{v=Bmj)Up|8ra&ygF^Vm|*x9s8MWs}2|POF)&S-bO) zt3Y;D`m)c*`Q3FtpRme~P<_O}5D~%6)b#z>##4=Jv&D_eOp8P&2blI2HTZ2@H*3bZ z%X9DUJo>~c+sfk!149JElAxm{w{5s$za-uHeCJYtYp+L^WV+(@WmC?neVM86Cu{NG z&8cHMCU7%^o@!j(xXm=Y;<-nD>da$X=c=kYY&iBRTJo&vEobZ5ojva^&r2&ek$U8G z=+L4sGZ>;LW!HSqJTI%KwA}0L+K)FFr}{EFOWirUqa@2Lo!hTcZB=^sEN*UY?n}iB zre#M?j=nFuH7)JEh|{@UX;}=CX?JxNEn6J5XW`N=&)F#_&TUCw+@--Ny8Dc_)wP^w zdu`{cw_kpK_w;g|G~VZH(rt|{NHY5-yLv87UZ=X{=xw2A_Y$T%R-X4?Jim9Y(~)Uk z_Ds!|eto`u^6BONejC2uR=I5R;JWwBd6P7g98A)qT10zK?p0CLxpGExq3HVX&GV1G zNXvimxXpNe{N<l@)%R_d6<?OqpY_)C)vq6Oel1H(w}`y7uDpxq6tmB|M-1z#Z_ZYk zb|q!Y5?h_Kev_xi6uiGIbzb-PzN*rv$7`1T{QUg-GQCOPZY2gAsg|`|Jv7-gFEn*W z)=6jEl(ScRjHZ`L>YAMRZOXM#DAea(k@-oL=`mG4k>@q%Dt1QQk9j=Xt2M3cnA$FH ziF0RO_`G_xm{W1>!bul3ekbUqGDRM|H^pVs(#H?Z>6NFveOeOgm$WcY^-6YT*U43r zbkkyaPL#Gq@yxP&z|=V3p3i3a;^3RNW-`>gOSie#R~#z2*@Pjr)VMrPTWzbFcjVy} zXRd8tlDgPv+2ywjxWp>|*nBKn_wPSL&=XhV=Rb?S9NXf#=V`>zEuI;irhDGAnXXMr zVR|L>HZpZ~5wG1NE=J?eHm{3%%YXgane|Na`KL;&d{fQB+!;qN7=tv#&AGX70{05< z#JrSk4wv5vZDq)wf8tTA?)Tp-CKUbLQ@r=+&X|&kGfO+8&Mh?MoW1CI^vuSIi*@x_ zmjoD@{LXomt2E*1XG?~@`|%-3nU8;d-I4V)ZKGgBcUsF8mC&8L93{IwcBP43P2uGF z{p(=Sg^<S|Kd*Uq+3$YP&B7-yU+%GsnYHG9Ue&psPgh5@#4@C8G4V8=vz2iNV*<14 z@6FRE*Zw}Mwyd)B{HZ6KCI?@9`^EY6!?&+1EsD>rnY+tS<y?4Z&)JiuDIrZat{P3+ z>=<U!BEqa)x4eH^?)SK;>tPjp_wjSC+mSyn-+%eOx_Wi(9jAo8T+=xt{c=vCiD^O# z^McN)XQg<yFfg3<5AuDOGyD0>>d#NPXI>Y~kBL67>+{-j+MR68v`LdarKEN=bS;XW z+MBw>L4+kjyFA?D%B&-9rx)y;Qj&OG=KId3(`l+!pPz7g?m4xAfpw?Xxuss54yr7h zmrh=29C533=Ju+|nmO0j%Y5@qmo3_A<yW=mm!H{l%e<&#pH<VX&+Iz3>{-rzvx#ey z*vgJg$ky7<H*@Ff<b|BZt9JOBxbB!MIae)jV$sg*Wje=m)(Kl(iTQHgZktcG;q7^| zo_DS-nj4nBTI0D|&efz}hTSPw*E*RN&bwHZlw5VJ+@PfAX_wKprEi<(uKE1_x^=2y z@x19ZpLbjNMCaSSIJ>hgXV=Sf@29<+aV;`;@^a1M-ZIPg)4cVzUCZ}8yEa{NZRT3P zn9s8B&34A7o153FRi$gsyLs;B#hGi1*JQ4oo6WOzwOZcO<9=1yvc_{_v#mESdvd5` zUA5(HRns-^{9?`Lyf_>^NnLK&k|)<bp5F6(5A&4QGcU!J@0ql5Im_Kyt4lmPcdo0N z9QJ-<-jBDlmmJ*WH$CR|^NXw{=PFCCZLGG~@%inVb!zXH>+PC(Y}@QJna1lTTPZz@ zt2%OL#@uzm!E;|$=Eco0Kd<}L^iuJ?Ipu~byDnufx7SO(c6rI!FZXOVTEE(U``l;8 zt7)eDY)x05pYONld2Vu7e$<uOlb+prd3m``TGr-;mg`>5{hXPzW7gGKGktx|I^D^R z`1w65Tjy;4^**_(EANY6Jo}tha&_j>m#gQ-obKECeBE4&qUY6C$+AB`-mfj5b$_wc z({*C6rHpr1mCdpFS#oTbo7Ll>*fV*l*Cq89ntgh9>ACdgoAcyqPtOmkvfR@Xz5B9o z#E$ocJCE<4uleG*pKestH9fV@*UP8<@O>}4F=*%am*@L!zR#XDrz*00_qmtz%k#}; zeD0`~Jl!7M-M#B;(Zl08d&RyVv)QgUXZxPK(8=b-Tb`a??iV%lxc9tiOO7que0l5V zZ=b&&E5Cns_4&}3*JX?i-p-!;p1J4R*L}av)!dkt9`oHYFYB@7uJis&=kwe>XL`SC zPtAADm3zJ%yd78be7oPw<JPAmi(XdmD&Dcz;=R>etJl(>AKFGdUUEHe&8LUee$jV! z%(a~LIX<YgZ}!jPW#8xIFWZ;5j634hui)dyrQht`I&WW`^eL<2%<k^l%a>k0f9PiF zd0(G%`{q7Bd4GOn^_?#tpS@qUqxiaS$?WHs56wPjxZZiDHotRhy4~-epEdV<iC43F z&h2;eS6rRNxsChwT0NexS8KR7G`-($^W?(I%NL*QxwkD_uQGf4rStOY%iarbPqVAD zy){?P?ytV|KHEJ(&)Z6^gCZ}PKHu*i9R2g>)8f@@-uImovnsu3yXVi(<CW`btzS=< z$(D*MJ#BU8>|W)%etVnOw#I8e#yqRCjoq`aM`+i1e*0z5*UhPnv!1sv*5<Ee(bL;) zSxc_&nt6TyI;-@<GrP_$-rcw3SMl+6zdpTRQ@Qz8ocY!Lraj(zKYe^-zP!9F^vh<B z+QzC^8+)=|zufVDdFwUX;={F8pDSbk%Gul3*7DUX+jApy(Wg6EX}@dtls|d&)MUrz zi+!=`b;eP5-WET<S1j=*dGf`>%j0Uc?mi!5`Kt8gp0}6#=Q(e;-r2MD_KP38E3GPj zTbI5(e)RI?!|mp=C7-^{`}t^J-JN;!ip{>>)3>X-m$&!t&WfM+{O<ld7qctvebnRo z^S!6LoISeZVQ=)#HIHMX=j<qcy?pVs=ZpKNuUCEDvvj>X-;J+-Uaohych9r6E7@GL zweb49_uK2_s_yU{US3m}z1;ZjJe|kO%?fwj%gsOk>hWdkYZuqs{q*^Kyzb7sov)|; zicO!Ux6x$ZKDolZpVF-Im+QQ~{_xyi8C&VkwfwWs+<jVHuD*MHciZ>b^JX5g%C0Ql z^ZEMSxu4JL?YZ+&@B8Jsv$N+OuZ(%`S^WHVf6nvudDc(&%6z`8mh|gK<@e*;&Lq9u z?>^l;X7laKPriJf@BHlNvt3T_*U8PB=NEZ<-a6yRwa<>&+8V!n{Orh{ulj!5s}n7A z&O6<<{P^O<5#Q1|d7FDm&#jsC+v0P&@wOe_v#mc}IdkvxyuCHQo}bGs)%W}J@x^P< zm{3^I=PO=p^ZNGXMa`ah?)U2@FZW5FU)-+q?doyg507tK?@L=BUD&lpZFywRyI+Nd zmHu&iZoXc9`sz`OZKrcTzJGq++qB(p&+@uIHj$T?r4?$OUhBFp*X{eE@1Ga%`+U7_ zy}0drozJ(*=NPVecP4VZyY!hIJ9l4syyn}}>r&^wPSek``dYdDaO8cz^2nE+#{TZp zei^sdr%yk*FE@Kircun=HQ7P$Wwz$@&0T)s>E)BBqmP_@c{*zIG~>eiv+nJA7A|#e z=lAF5W8Uo*?tMKu{QQd-_xauXO0T>;9UJ}G=Y8L<qHB|vFWzP|*D^VH&bjZsX?N1s zZ8Tn+UR&{bxozCKzdx%iD%biNU#|ImuIAaFA74D5zc$&q`}v%zJ)djV{jJM6_v>+Q z{`AE)f92x##9C%=i+Epndfkr9^RdPHzGa`DC71VGm-qd+`*_cz^r*|x=ZbH~=>4?z zzAdx;c=?uN&kC)p*Y_WtxBJts(#`9;eG6Y+pB|H3`SO_Q{m$$CaeJyxo;#emr~Jr0 z<Ggggs&nh}tUi})`g~14d(GF+U!Har?*00FU(}_z8ISkX?)rEy-Maeo?DKlPzyHkH zv8(XTz3Vnl@9S>V+j;j<depg}-=6QAwA|+G`Z&K?&#gXRxi7hI&+5LawD*yobED_p z-1BMY>(g74URyuE_Wb<L+tcgjyq~)+_v<mMq<ecl_RZPtn;bYh^|)t6c1+d#zN$HY zb>1D1^ON5Ba$jww)u-pzt@mtSR%kfyhu@vgb7McI7q9oLdNw^OIp$YV*}2fm;Wa_U z&#$jDG@TotKI3WM&h+)Vv5)mO&yQSJ8S{Fbap}!oiJ0uRUni&S`uTF%#!DZL{rK|! zq}u20*1gG*U(e*vOOM@rvhVVIk9#{xt}i?@FK^E7kLS$I*WH^Jx30K-x|^)d@w}RQ zz3JV{b*n7$va7Gl=J!P(eYV$VbIg~k=kwJUp0<9x_xaqHi~F-nj~?IeZ};~3{nn@V zC3c-XRJEhzec{b{kx$R>*OdL49`C;P)7R&Z@4HWr+LS+MTj}#{hI_so`6~JHbmXhg z?<HTIk37H5vSe3J$?L=OW6Gb+`F`%p!<YAEo_%`#>SI;Wo~Gh2aX#7qk1$vZFfcK) zFflPQGcj>7GP5!=GBPnUum}nXE3zsXiYObgISLqvDySHnI5-6aCIpE&C#sqz6*dGH zfY)y@GB9#5{tNi$@Sh>u{>#Px43Y9DOzbDrPoMvc|JRQH48`*Q87%w%Gc>jT4c_yg z;Xi}hgcE5VkAx=jJ(W&j`Ok3E{b#+B*Nro$`m1^(qVMV$75P8BIs53X&Hov$xPNN@ zdGW8`e}?S)(pd}dUH{77wY|$@LEH8CW!?V2Cj4hemp^tVt>Uv7^CX+4C*%@aD^^<O zT;2aF`KR;Wrt5!PN**uq+V3>aW%5I3ZdRfC`?_v<!W@S}d*x4wh%Y($NV?i~|Lf$R z?SHne|IxCbQAG4phyN6Z8Z*{u?0+-rH%2|5Td-L%H1$)E$30hzJ%Ma@KmKR%IR8`e zpSS%J-TM7rt`pohRK~6gtE~6)N!eCn|D-r_&9!XP`QJAG&8eRv|HkaZotef_CT5p% zduQF)-yk9UpJAH(*|X_C(l-BrDt$QXY})3?HUAkV+CO#w`P;g%;0?#ejn}&qF5mb1 zzG=y{OUYRuTGC?b_dfrT*7={IQvUdn`bzZ=p`4Fwp4xPLQ)hm($NZ`0e+Jdx{~0#) zzn-`Mh1qpBCXdhYtJOYk=ah~3$#3|a^^|+Q%!i8Op24XuLO<$fX4LPow0&I0(XD79 zVyA6)Ab6WmrvLjtcK*Nbzn1@a;rh#&K63h}PHiw>m-@*ybw}s*0~-^I?mww?H<$nI zGGEre&8zNl);R`+janWv8+x`nIXbx3znA~^@X!5g_K()C{*rO)-p?q9m!)fZ+Gm8e z*)94me}3m2hc$2Vw(oq>{+i{xlg3X5W^Dz%tI}(_r~KQz!*QCY=sx?iQaYhCRi0ZW z<f;j~`rL4sBLBg4zG|3CXOPGN-dX)JpXPtxe@*%Qt?MtB_WZc7qBdiVomHjO_o+(T zo_rJ+@+~%Fm47ztvpL_1WCP!p5PwmA+1nob+zQsjChyhr$Yv{b;fc^V={d2Fq4akA zqw_B!Dz)El?|AgdDEeG~;61m?+5a+MJ^pZOgIJ{YQA4vw>#Jv9JA38N{{IYRK@7}H zmVOh(&6t1N{bx9nyyE1JPmJ~w`qSK*wo9CR7Et)_`mZCkr=8=MOiXS1XSToS+xPCc ztkB4{M=Rvk#YReqCD>1RzdY^Oo7mj-A5EWsJz4Uk&LQZWr)b~y;3uJba%P(}m47?B zf5KFMnPWxCJoAiRzY|UT7`!v|P?V2F%6c__4Nki<kH<n=v>63GHu0?gne6u?=F+*I z(oAOk!aH9JR^{CJyzA<f^`ciICq3_bthkQfNMw8Rsx{M>eB_uUuuE(CCr;+4d4cnz zW|g#m-uG#t(TdOFx-)K0^KIOnzx3O$wwas%rOTf`|M73Mvdgtrd#7!i?w&e!v&Bd! zu2kZuXZCU9rB60VyWg{I|2li2SCMh}l7jEqhW%PA@7G_M$MM)*TZ?tan>$<dn<t#! zYqD_d6vZ9apS>zv)cWzWh=iS<+oZg8HBGJ>UVA?|&d@QR<gVc<_Ab1-&D5e&B}n<E z+w(&v>qRD=R9P)&#u8TFY!E+fC)1+YsVvhN{xfKs&VO}6%Iu!?w2YKHM-?A_-F@Vn z5OYCYzvrV*=3JNEUI@NR)s$VV9DifcL*^WFqsmzAZwIpHr#WW)?2tN}{%fC8N}qmp zvG|Govphqi=6ct~?PcJ4d-u#uSxJ$V$A5>v_FK5c^jFmV7i-cUep0HQoqaf5P&C_p zwRHWz<to89Zyy)1s%QQiRB><J-h~M|4F4vlPES1%b^ha??1g$0<2`5kT{=CvUHO96 zvCqnyLc2~%r%8m?DK{3xE#4VjxazcK`q^UH-&3dbU065e-QK3dDG{&EW#sOuau1(; z%s=oaXQ;>Oe5F%G_b&ysvYdRPHe;UTy1wS}U8SepQ=e4c4o<Z8SQ7B#U!ujzr^lG~ z-t-B*e6WyhJ@19KJflyY3Ykfn$r(IF=N^XyXUl|r`0Kd2wf$9e!*v$cvlYkgJ$&bL z`GuCO`fk-@46lq#<ga~RcWU+Ov%9WLk}VZHRWB*=LbLAv#+=16ofhXy>~Gaa^4y9J z@7uHU;m2ujf<kueihQT=t2;9<`}mJ%-m9GwU!1UC{rmEcP@UwxH@+7Zb+N@g4KvWH zyrtPParu<&b!PD|d84enPsB5N9(uN?<=;*3D}DuH6(@Gw=zk|}z{%3LZta#?mo`YS zZacxP{EhL6b?}MOb?HwnJ-Ne9M;FLWy7bC^!L_&=?cmeDTV`+eEL6)(H=J<h^4nE2 zIVS4`)ux`U_!+zSOxS;hyL$EOjx#O(l$D-R-F;Z(K*#!|$r8JE_oQk)3rjm&Wc@^( zZ9%~qsl_4QL02s+olIlpze>E@sdQx8yR*-h?pUu`X4lh^=&3xZ;{24|*UBDkEn1wk z{pf6N-pg)1$4-6l*tM^|^VOa$n}npgHhuS0$PZTA8F1#dVW@LY$fcDE!4JD0|8)MT z{PWg?g8CJ1eEc8(#<jkAd)4)D|CLX-T%Io7K4r_t#T^gY?$wEgZ|Pq1pCRnw8IP3J z_q7ka%DNS_-EZSv|AUj%=Q&9<tyQqt9LyJRvg}R4J+r5}chhF<_RZZ=K5a7N^wjVP zta~QPZVNAoNxI=_vV>Xq_Vk;^KPCA$WR;zZknBGplxOI{+;?c5bf}e^@s4YYZm5aQ zST%R%`J)augC5Rb<XC$pNoU5c+lwS8It!gHxVTdJ=+D$ihMQxKt>V>YJH~mG`LDmC zl}g;1x@TdPPXjlrto@WS!zSHP<)8znS;w(y&(|2WW{Qj5Nr`d0IM=*0FF9qIOrzKC z6YCtS_evRhKVjLF^L^4{-;G^m!c46jKF#|0T}i=M_0*CV$?Yc+53ZhhQ?f9#PO@q1 zp_$^V&$*-voiG;a(p|}r=V4(eT6=+6c~-`j*qNcBM)fDsHoI=nxKk5u>vnrx{nX!~ zYqGyw4E^#<Uf2D{{I2Q05C749{A`A*yjZEyx<5>JX6G*aYqjxbcK0WpskuF&PyeWH zox9&E)}80lYFGIQR}vR}()xT{R+&BE@Q=#tS08bzo|!PM&%5$bcI%m2-eST#Lodv% zn=94(z;NSAb*o=LeqMhSayq%1i|to+_mN#(+($){XWry{C-u{grB2J8H7a`XsUr<+ zdj&Qr2Fpm59latoHOz5R;;ZHfN3#o?H{ATqJz?fb8R2)0UdwuJz7U+0apnZq6(3no z);T>PZ#Ok4w{}hXC?~jT_PS81iqrp$D)nrdWnQP2)fZHWYIj^tn!a&f&$W%Q{rT!5 z-V&VZ$M5i+<5+Ms;^kM~OB-w_c*xw_Xm+-%ck8Z`r5C@4cO~4L;Bh<koXY*mwR7)l zL`N2F^gmUy;!)|8-6<O^W5rZ80?+47pYO+I^;7Ke;pn>`&#jqu{dk*F-X(LrhYxMs z3@*z2)@q*cuE*bTQQs-^g?gK9g*!eJMyv_b7VSEkw0ljU8}l9z`%0L7cb%v2?|^^I zKh4(g?uqzp|M%$r)%xGte^i|RnEj_n>-8U<t0wQS@UO4+xFve)8FQ|o+t&XKyy74B zm-pS-6?c#KY}~FmeVe4Tn8cdSjK%9Lo`p{0em03yGG%-48y~ZS`!$oBS@?1bn$9J8 znAR)VueCN$nt1-Ou@-+sj9K<lk*?q0&Sg55o;W6~rdAgBE}HjFrAEa5+a9+x^lr{* zF8Vp;>h4r-9lf=ej33Sx+L&@y{a2~0&a4$>?kPe(2l*7vEj&3@IX`^9-66}peaTZd ztd6s)^Ki(1GsADXlJ5!swG&n~EmU>ot^3f)Q(ADRI!WPB+L1GNc5|fNe5F}hJflO| zWY(MF(<|OKmZYuda%(-c>uu1f(--!3WNy0Y6)@55L8n{F>=0Jp%X1nwna%D@G3x3` zXIon}leyxw<DQA;E81L~gpA*sbiI4FaJ#XL^tFgwrf&b8IhhMQQm)KoJXb%}^vb7Q zi~lny{%25G{#yRbmj4XAqLu6aJ;?sHwlyW_w+!c}>8yO&$G2^t`1sZ=xA)@zg0Atc zi~btklW=H#-lH9Rb+c3rpX|E($uwnEj$&WQ+_Ll#Y4bVzW-337-P`L?qSO1Y_w~`3 ztxcBo%+~j;SNwIcxZw7Rqq9{ZHemB2F+R08``O+TmgsD<-z>%OtXVtPr;gX->{SDm zpv~EBMS^{0VWBJKO?NmM+`D&f|IQWN)&g-3>y}D9Wmk(*f2_@3_cC{-ew1Qtn8!S` zqzx04`EE=qx-{coLF=3c)_Omc+3e4zT;1LD)LB>a_r|1W&m-=rlxqv7@oP;#uzk12 zy~(G~?DhOEG3#NTb9;x!!_b85u~YPwIU}$7X}KTx8o9TCWoJy#;=&D;Dgs{ww#+*e z@$0lk$$T9peN(Tl1d+#WfhRVLYg~P$a`JSkW7lTUjXM&LAAQ``u;SCkxe|Lmv`BY! zZ`rrGY+{=Fqdt$`(_&mQ1~>jQ=>KOZ_|KsFpTXjl|CfM&t2cz6|EMGW$#B=A&1@_a zbkFH3nf_|L{L6i(TARi}rFU1`W3IiqHzCGJb>+L<f2+b*-#+cQssE*5uA!0rt0E<? zq)$S3>K1O>8n2kIdwud`JE;hp`rZfT(*u0-w&-;WPftB~`{){*V(!)19nV4^{q-#1 z`Dnvi^{Fo0>eu9rH7h&q6_TwzZddf{=C~A`{MGm1#Ka@Z?sRf4E1PK4tFrU3=>f+p z+k?Dqs=W%@nWefC8n>=_u{=?^PCcPP<7Tf%N1(6!_Jq^s``v0L1qSS6NM8KfLAI}B z{g$jKmC~41?mLyk_(YN~Z?EkS+8BH#?uFC@SE;HsT|LIit9LFqC9vpJZJELRZKBH` zhum7L$Fh2>$yp_1PVej{J^3QvJvW_Pf?uoeJ<To=8{<8-k(*V4)kNA=;ryGw>JA|V z>rYPneQmq4#lGJ~Tw7<JnX$S($#J<(kLKTptm|S5F0-A>T=clpBWA-%-J91g3atD3 zINfZ?`}As_^4#$6ZqL*;l?%>=mT_JxHs*RF=oXqM^QU3n+_SP@XW2}Su5>uVaxu<T zd)I<_HWSWPGNdrhVKTC|;C=lwt(p1b{Hn9*KXN0_f0g<BqSgDe{8!V}7N<R&?z=1h z=$<y=&Wzjc#^=_AwS2N>o#y?!NrYRjGS4O8XZN*_{}c-!vu=HT=j0Q&3fWnoJARlH zCJT2ktH0t*;ue|Us&m=GLv_cjyIbaYFAtoyb?)+=Z5ogMnyQFzjG3>Zw0XvYT|1Ue z)+#EzY16`{u};NdZGNSSdDqEj>*{vYy7XQv_+gYCn`hRSrhU}!$ca-MjF$C!oBVTf zK66r_CufqL*Tu=wQk|B1McczZ9X9*CS+mE~{Cl%r>6^vIrC~<LCBtStU{rp!{vB)F z_AAOKrX84f_FUOfx8vWRrl>49eO*Y!yCW#{w2_ce^o^=33QBW4HDrxtJJ00Y4c&OP z>*BYQ%R}$Y*Lh-e?9|z|18<Wjo{2WvSL>tj>DQ0V^2{pzX%RB@u6NGub}wdju2$Wf z|FW6q++Cey&b6AX8ruxL4G!{LVs3Qj4HueftFrT4>eP!8>V{?SE(jgDdgMMAOJ$E# z!%N{XXJIGPgUfpRwpcAa7}yY@krmFm%Cm1doBN4lOOIu={mgAoTQvPPYsbO0U)9#> z&8q2?KE6sXGk0!aYh>KowVPM&*<mi+nLO{&qlgRPJ)b5=#&-Ho`Mm7!;!FN2Vh=X# z`SknDF_!%^4V-?arS)jvl~4Hgee(us*Jmxkr?#7Yzo#?5Ui-<KX?JGxzsxMWvb{b{ z-7{b1%C4hNRdn;xK3r7hbXk+!%9lU)x#1e^imqp7{a^e0PwC7vK6$%Rw|Dt`9h=!# zuUzc3is$Thv_6|FRV+H`ky(pJ>&+E+IGm+6?-n|8;-1@^T6><dd#-YZvkhvFPiZ@4 zFZ@vW$n9N6Y+|QRYka!<uXA#8&SYo)mJipTWm_Np8(5Oqqhxyc$z+~6{ga-|)Jp#L ziEmX$R^~=MrkI9<D(;b%lAgCMuQX27k}VEAxzTi6&)I;v7j&HtCY(B35OSquDyz&B zscpxsWasZxPrl`oQ+U%s^Kr%rh0PYyPg34I6|B4cmGO)a@7C2TovSWJ*=J5M@s$XU zY24_qH>p+lq?Vn=Bhdq`&yF?U+2{AkGS~8CxBKR68B1=tU1eA@S#gzn@{gm|AGamv zJlY^9b75xS){;;mskY|<rroE!rYo?1>J?irKc(WS{|a%QAh)A)=R8u~(f-OgX2uCF z<(sG8Hp{#@+2gT%N)o$5-uAO^Bo@3@`sSM)x?Eztti{1Fqh(81U8tGqap%!im(@)| zR*{E!*rwlK@lbcA-NI5KbBEyX@r?(C))~Ye%WSx>Tsv#Y4NZj|5~uX6*Uo6(wr_?^ zY=G;3hF}%fUxEjnd)e1qTzi<cvL<zks~5L)T~SikEtAQGI%l=EtMIPTn4+6d8M)%d zL1n3Fr))C9k002({gSd;$I4Yxr!Hd9THg10yO>5v{8e%LSChZ;?0)m9veNhBj+H`^ z23d#xJv*hzy5!#5Et8J!$x6vrE?0397xq~7YK^GBW1Dfjzs&i@g90xKUH0}FRB^sw zTjXAM?zkl5hT}FZrM{M_wKo}mes%QwQII{=e{JsDW~G@{!ouPqlX9Bo<nLTEIdG}5 zOnBwjnf)&6$xLUP6}r~_XV763o2V(c&XJdW!$QTs_rkO%r25P{cSb{hn{&c7_sAK& zAGixwuDvNSC3nhiSD8s0L-$t7X@rG_pI_o}d)volGPBCmpLParRniEpdUDqw)utw2 z=J;*4YY!7wt~=eh?v#?(#BZ|7sZCQ983GkK<up}pWW^^{Ra!V}9r`5@8M8fGfoDnR z-IbZ56U!r9Lbe@@@lu!kGr?{7%E*AE`PWs0+}N+V>D7K>c(Lv5tP5h6TrV<Zzc9Xy zvN*qIdenp${5r8dOV4Td89dpn_o6WWHP^If{~3;d;@#52Aabd6R^#X9Akj326OK|B zy7i}?W?TO+!=t{=*(q#YkoJV@n(Km{l4FkT?B(n&-j?B0UsoLSZ0GCw-{pfm4hmoP zk^Usy_#yrLd8PEdi*+Z@cp>ppQb1rw$CI#)*<Fvjc04jUDLn7T<D*J$JrW!X|NdC4 zzGHDOpFdCK>mD)5khp__3a7>2zAEl-ncElDw}dHtTh?Q3yR(fq*C)3MDQ&T+2#W0r zJ+zKf?*QYfDO{#npAIkxZc3bW?GSrymUhO1=~Gj-3*RpiYfUaa(k-1B?rX2P^}M5p zW5dj|3LFM1MU2a=8H4RhR_`zg`PlPt<5~%acis=KeHT2Xr|0b~C2h%`?Y!e<x$253 zmv?eZx5;I8S+V+^@O>5iEeqp6R!nt^JIOR5%gH6@@Xd%>L18}KWszl*I$ci&9anAo z<$n2$YQIivwa%n04G%wGSA|FKZf?0dFT3eD>ysD3UJ+jv>~1<ZJzMhCU2(zJSWksV zvnFn+>hrB$A!p|x`S!TN#Q^^8?wo&b)>h{yRlP6b$T`9gE83V|vwgMT`YhSmS<kM{ zT9jffRv*69D2LZh^i#c2<PMo|?!eC1ZYF`Ndsn-y^-Z|Om(8{@_Sx12yrQP}KfK#~ zHErfcZw1@1qWU)9wEbBu*RpM|`F}WHy76dQ=bCH2Dc6oL2klc~obh?R#Pp1$1HV?c z2Kt`hdz5muQtRHsc@FCw`F6$l+}SOmSNZ7XGYjjm%1w)d&#HJW?^9}VIWNJW&Yy7S zd*Io(!KVs5o*vG1m}%#oP&SFbQTLq6x851wgQ^okx)<nOnsf4&!Nm|yA#Xh{EsfA+ zs+)X1{bzV?%=<Ud@F?GF>5a`>Go>7s1@~s%^5NA|vvQH0Gw0P~-Nw0vQ%Y|HDkugj zZ)0kYc_li1)s~RZG<D{uzf|~ltdtHt^lJBx)T5kLtHbPBJodNRJjv;~w17*)b8B&y zRhUqDP>VuHR%CZrgcxs6!ZmGq(~VKv4*%N1`2DDd$GiUI<ezB`Z=@#07%+)C_{J<u zZtaoNJK~m_=(5Y%v!t}(+VXcHYd62yV8O6?PsiCSt6uLj&}RO2B|M(_!NvEh4qaQ+ z)TOnx!L@Lmc1O5S@;;TtLeF}fb{zF7Sw5Q~;Z8M=bkp-CHF{Z+e^;*CZL+;5T1}F9 zok!Hsq^)b}0|JhJke5Fo6Z%Bu#5xl#d2K1q@G0x{&+HWZs&>hPl|wpRlzT2icEw_b z&9hTxY-GAR|7w$t;G@pp4VPWpZWN_CY_$@ev@V2oQN_PJ>A#}v)j82Dv!-r69CUKx zq+2KFxZgOeRp@d%cFr-QBt4NUEvaQaot#hNd)p$rnK_KS4*u(1ayyu1!VAsC1}AtX zO%W(9STkR2dC{I#4;vm=wpBA|&ziWkCdh!DCq~_8UHij*+{_aWtyMXhJGXOfNzs}3 zlCL`_r!oAI`y3$SmO1-x_J*{ZoiSA>40}#rW36?I2+3G0CuX;oWu3gJ=Gxt+@*9sz zYzuN-HG$WG-EG-xt1=B)|Df-a)`g@@-E)go)UJfZ(`?#ePKBhSH%~}N{(WU>rPwkz zY4IeDhf50L7k+T9S<Ba29<g{%J>SRpe;W$j|7nKpTDRG)l}TIS&pjVO$CY^n8FpM< zm9`(f8-l}<S1y~-(HUKIT=iaR$ciOtiecwsKdC%gEXSMOb!lUSX>->x`-cAvkN-2w zf2=Zp<J5hQy3@FvpKKP%+3LBHrMt-O%Er~RN))y3tQNZRX68|=BB3p&Z8x-LN__X# z2z}XYT)RTLXS?#Y=ca095-;pDpT_w}icf#Y(aDkf_{rJmqwTCw4ockqt6e+QiUM2N zZ+2=NX%74Fw5%j7wy{en<e_M?*QvG}Cmw!^Tx=~G$#_nlfzdIb;i^V(({85y#hn~M zYVs0+Ynt=ltA3d}v(D`N8KWf?YSIlKcL-~gF>RH4HA$;{`+tV@w-x!Mx_g55|5^R~ zd5FTsiH*lX1QnPR4l-|fcX(It6!+Gdr^_Qw<s>rn1fH5Jb#dQ=+W`%UHyhWMuZ(c+ z5&xz(Nza3mE7J3jv4^mcw(`T2pr{!M0(IKY8W&s@*|pU0iGO^~HTx>9jP>t478z*N z%k4hqS{k|dKf^K41->3nxb{wHQ|hY}xpu^mSL#i~gi_J{D@|4A=Q^ZEd_6OX=`q(i zmGIS(bJJe`HL?DwEMhoILUf|zi;0n<T~~r%Empm2Vo_NfoVZI{;?S(y7pJu>Omq5t zrY(5stdxyQefgpyPw`yI|Gp{hYnhrQS4z-(EuK>`4Lr@ko>!8~lDCCLvJ}1YYMpFi z6#F`?;Mu~)5T-p^sc&v2ZVp>srmc3mVOfr$iIF(hs@1*ELw&mZt~2fp%?eXCG1I*G zJ|R|;ec8OZyZc15+JqIQ-MJonO`RGYXnEDDD`5q*$BP@>g}obtr}BU6yz%A2ru0ma z3<-B-jhE@SFDzN|+^UU#$E(JFEYBuCHnGbxDqG%PX|`w;cP>xDGOdi*O%DC<Waqlw zTeu?k(<aMO$?fMARA);)^LZ>PdHBJU7n51E1V8O{eQor2b9Y*8X^dgcZZ}T0r7>;F zPp&Q7dQ^VaHo3c7W@WMYzulVaxNGg}nhRC>S91)bul;BExbf%O)yj|h7#AFx(f9hq z%J5Sjd~7b!Czj5aS}UI>G3CYH-P7wnq{PfvtSfxscJh=j4qDuso(8q1KNfM#%HTSh z{6lIsSJ9=-mPu?}zti<^Z7$lVvnumZ(3&d;Y!0S0SuD67y;8I}ICbts)y6;(5v}Ba zg|#z}Zt1%yyJW`u3u(8xo_uVQ+_Cm@NStT4fzz1?r6t*G4PRt#V3C^qpW&o@CNFQ& zf!O8;A&<2@(zWJYFbiL%5ie9E9~ii4o9Aqekn2~bov7I4D!6`wutC{9$;PjWn}w!6 z`N@4<bL9f}07i#R4T-J^68jh|et9PEN?FnxkTyqeNze)vT|4#=HVKWJEImzSCxbT0 zl>T-9+Q_P(v>+(fSDbU(?S!klh3`ySt)a7tP4eW=CBFTE@1{JmxW1)3$=fWph$poz z^Sac75<|x++cf(3Z(hytZ>4%lptI7O$!li44tmqFGJwNklB|GK>X#D=Y17{<$qbU6 zIBRqN!>*r;9qNOXcCBk%)Aizdya~tZo>gzQ7wPP{{DEbIJ)_FEu+Vll2j=#f8;WI8 zSE&a|X?AX9n{IoV>C%&<%Aa`?au(PhR@-#NIJWD&+csIQqotq2*RL;q{pnDG<3fcy z(}bRR?M%Cot<xI9<@x*2&5ZP3xypYZqHd`4_D+5B?MsAH@Jihab9hu^bAl67r44V+ zQ&fwb|DU1bQBPj#ucGReg&PB>32JR9nv}L&TQO`!k4(eG!cz;&D(+9@+56;<_WX|E z$Y68TO|0%x>!cPxxwo#i&Z+I^v1vb+skptGB*d$DQ1Y2fmU5Zp0lsH$Cr-`?y--}< zrQ>3Er>mVw(^C9COLI`dvt?4-oOYB4<cS=+JOAEP&*lGQFU>lcKcT=tcTvIb&F%NK z)$Fq0eym*=&L@!IEp}$2Uc-#*k=++6Ie1iZzP+}0nNj-S(DTqmWwO&5OFP|G`Fb6d z$T{ki8lA~$cuZF5N_)UrciCqO{-tIdDm%|8uFiWU&j04R(IZ>7E57L>@!yzt9b8lH zQqN@Hr!Cq)OI}p}fyZ>#lbL*ltsQT>PD(xX472!q>atGY1Q){;q05hbl-@-MY})1< z<$ls?(F(2wVTJL3`fu&aPHdh%^TUs5v$EU{ru~287wxHBnqZ`PM{dQN^IcA6hy4yO zICoxIRxmOm?V?IpTC$RU<|c#kjN=(^OVy5>X2ovvVpt@)(n=?#&q;FYQ(fs4z4Na^ zyA}z4Zu(KQ<x-K?YDbrJedR~4j0=6gNxQ7Q+?MFNZ-$0I-kI}yPQOFmTwLe1*{1QD z#8)@f3r2#0uB~Uqa{1zyNEA<dpS68*&m^HD=^J~xmae*E<-+T8)9^Y|Z|F1$!CL2% zf@qb?nQyWlPu*Rbw1&fZ+wGRHSA8dLUFN_4gX1)FPg28whB*^Iq}-ey+QF*YBiWO_ z<J>}#-LnKmI?_WdxTpMBVlPq3J8fCeXEB3cY{w4l-<hNDdW<tIp?X=sM+PPh1>=<( zJu4M*x=N%3R!tJTt<wIqA?@{rxv7u4Z*WdnEU+=-`2PFLCdbcAJ#;zNXrKGlZElJ? z!kF#13cGxDxK`gDQm6fjColBsCe4Pt-X}3R4vbr@{2u()E0zv>bBfjT!fRgj;}uGc z2bWp=xLrS6y0!Dd*8LOiwz8c~xp2-(ebu~NPtk(o*6KYwU2=BE9}?fPyR$*Nxa#<- z%J7Xbvr{hLO<whyTh-GrK+;@4r}fcJ_ga=qFGQVd!b)N|mfk8l=B_o{wD<bmlk-Y% zU%z_n$caf+t39QX7V~b+Id$co=(K4Lx1Jg8X;`yMAX9L8?aC)cr;-Jaa-7<;U85sP zGvv<H#JoNAQ_oeI7QB(>&z|lxZQ=?$&Zz4=<uiBjq)netR{Te7&67J*S6&vH5_FEi zdDCaTkUvHz3cC`&z219;Gdbm(vFp}-=UswoE}mN@vFdfx>2?K|he@f)pPPO7vLucR zs@6_kmMXDKD}G0usom}z(`5`3G#5EWN_;(DDde`BXHDt`jRk3zsmx0!{}UDXrfm@u zvix7@*6kq?Y*ULTYfe(!biC>5#g}>Z&&=4Iu5?7J&YAk6@5#}k#G<@sY(A3m*BN@7 zXIbjLJgt+Lb?&nTFUx9`8GJ`$U#4FuQ$M++;NAiAby=RZwk}6xywo2Rteg`*;k!>~ zjGoB$yXjYzZc9$P?Gd_4qTF+Zwfj_`FNQhMLBY(ov(85QT=ZD8p;F^%F3)zsW48O3 z1kRkQw&(8Fz6ZMmHhE4vwooudQmZ)7jFlz3?_`T$$K!VYbFX;)PApd8>YXO@zOdxd zQy0O_7DwK8g$r4VMC@O5e3i0B+Ucs}8j(hp(^Y3(WflwXQ(k$=VzG`-Z|U--=}yi* zC+{gvnWA;OC2^yswV7zL;2fn_GAhTlza2D=W}B$mA|I$U<=e!=As5z}o4pA1NYA<U z!Yt@`{jtaIgtA1!`8U4#!sc5Ox@DRAP0zG~XOWVHGnO8?xp>ur<uj7AjK0pgv%%VA zW2;1Eh+F9F%@Oa`T)wT|vqM*1CNV2w>J*lamfq$~&66EUjCqpt?s^@5y-u0QP4=r= zrIrcTj<vG$mcDq9^Wfo?_iC%;``n_ovo60ib6X8t_YG4+rk;e0f&b<j-)S?|oz$@G zw3GkNHyoMPbB<k<759}lIJ#>alh#Hx`^3A)M62u@mv0C;CVt#ag(vl6&AfB_EJQ8Z z4p~>6JDoMj{C+e?a&F^h!<f}7aW-3iX70&izVI>q6?4a$OOi(N9-A0S{{Ab{?wqkA zQe?}z)2geDp6u=5VAb#S*j>K$^vd3~%TkYeW_?&4-oK&ZeL{M)Wmt|_m)i^1q_dCS z&6v&U#2oK#9vLrhwCl<@q3sjqdnWAic@ph$Z0*Ib2{wzwcWhrh<HtUcbY8!Oj#*o4 z_mp1Lp5D#i;=SmSn{wBtPaC2p-3$v$Ghho>f9bY!#X<|VNg}^8mkKHM7;4z7dU&#J zQNFRLC`U+RgYB&wJ1=cf{*bfG>5=Qzo+6tC(<V;m-E{WD)*WSEp9yA(nb~wjE_a!` z;@(QRNimweFD9-|O-abo{LfHqa&nz$<UfH^k3Sl1S}oS}ygN4P>Gu;)->;t>FQUDE z)}-edftfQlzRk=_2@u=K&G-4W%QjY<mWw%kpZ_yxIKEnZyFPGDrmqF#)?>%j{kj7s z*UWh~DbFC&V?M{Go}*1F*DY_ES+n|iibteOoYQE{a7Fd;&*v{^%{}eL>aOYR^dNiU z`4z8g51gJWGWAyjqsZq}h8544CeBXoRJpZD^uQ!f=XI-=i}JK7UpG6vuV{6{`F#ef zEUWb%b*H*3nXR3~zwFK9e;hj5@i(UC8b%vE+nMrSvN&jE-paS<7?y9Y`FhB4#oOfy zGafzjKd;}AoyP4LZ<*A{rs7?iJoUP4ur+^cnsmtgj%zxb%k@?|e%Kk3`^&2SU_bNL zi?e2yvhxexDdLW}r93gIuXgFCj*VXZN0#$U?D$h+VCQ`McIWB9jVDgp*&Z&-5j+v* z&HAmczwJwI@<&HA_LnF6T>M}32SijXubFhuDt7~a@8pl%salpII<t3e{kZl>d9|JJ zWEF2Urw_}&XPLROrf;8+s&U|V(xS%3w+qylX3VJC*n5C&8bfLFm;QUan{`}*qZz~& zZ@-Y@n|F9u#>cLAU2`r3M@{^r5a67b#PZAFKSLL@iJNAyhOejslWR)(wAkG%g4bMU zuh22@b^n>Nf+2ykVAc||Jrm{zS$ys?6iX6wIsC9h`;(Q#>V$Bc#27=~f?bxUj(L9d zS@y%&Fjh&+IW^)}`Ca~5sju3673@tFRT{&VUs>%hzu%9;^sf3p*Y?Qe3qRjpao)F= zP1j6+l^;X0gUplczSsFNVez)*z6New=Sy~;Re9OPv*tjj-x<x2Cli*u;hYrLt8M7$ zynfQHNf`+bt|(h7US_{~ogvvskC!dYgxT`VVvUzcli4Pjg(<n^e$bpb{o3NWj|x|o z=btm>@A1^^7nK&fa7pYAv);usM|`J#bJ6ig)1JCu?fM`-Bgu#52?vbrkLJ8{d%5}9 zvKt!@>cu1+oBxvY;>j6_(-yh1Yh7}>tM!muG~`9o45^$K5xqNp99$}tz1DQol#A`% zks>?#j>hgd`SD|eshPl0J;6N@iLZ5=kJJVqIo-3mViSM*(LFt;lg?fZ(7u^wdUMUv zgddY``SLA06zkl%W{Jl~|D@jwln$P56}oX|ouj|FMQ+x!8;c$u606}zN}6?L!b#}~ zXRH^BAC>6(?#qAshAZFKLI!pw2}hkZx{novRa}_8Ok+Zl4SDk(C)`{Txboyz%Oz>| zO<M1~4!m8u)^z`EMwaZ0kqdOJ1m;?`$%-%S<|!3BbIEXNgT|rmqJT#l6Tbz0tbc5G zbEWw01@le2BF=?eI#w5YS?6p3TM%o^GS5qn6PthXM#o6m_p(YZ=@CCTO_qHfZ^eqK zd7}3o@ozuvEhRB!yKsusEHhsB3FSVA|7J^7HLue9VZ|fX7s|p=QFimOOX}B*4I$d* z{~2CN@?K4rx9d4<xNFs~EsfK;ce@#Td7Gt7a$;cgdJ>TSr#Z%G$C90?e)nEE**Z^W z*l>Vpl39|s2h+ojiS=5uY8NvtE<Nt#rqp}U!7;P%bjQ2N%r@Ph-QKBcX=OgDZ<{#H zhC?N$>{8t;Q-)32iCK{@aaT5#WPg%95ip6Ti1Eko$zGdFGy^9_Ep=98>et$MGE(B( zF^79=b((BfS<gJ<C^FMxW=Ha}46#twYc*1LQk#n&?~43pu`-{>f0fGa1xL?hU6{Jg zUFyQrjnmATC6`ULedVrtm}j*Mr_1@$b$5j`Wi~Mu|CQyOoFXPG7V#${bMMj**KP~O zU%b{W=(YXhwK);S71iM?$MYX6_A4#>C~)Go{EHb1?7WYs8EO8hQI*=iDA;74Z6}xX zk!7=XRm_b^`B7@m`)CnsVdmq<@twI7jJl?svfb#PHF4Q#*%b#>a~9{VxT*eRzn4gg zw8F848$!OVTyuQK`o&kxxF3HDc=?4jLdwoa{db$UitC~EeJrA$HI`la&KW-r<jc=_ zv(I(|W4_!{e(8!#Pt(7`dTjNJW8@ZpG|HWxFB0Yx5~sQ|<EHi;@sF#oDQt=^`zppd z-Bh$svB0&v=)D)8k)Ux?WM|HVf6F=M-95#e&egi)Wm3%FLlc=_P3ztl`$$qEL@2B) zI_RU;cXwY8w>G&=6P0>cI|`mH?Jrs#@4e>87Uu<8FWFulbk#|0^=J&aQnp*bdqvn; z4tw>I=F|kc`5`=q*BvacNpOET>1nbB>zSqw`)w`X4oRGUx=NWh&T-PiB{S5QWLl;f z8I-job}D-cJIrKLUYE^czGX7Ufvfte3LN)7J=kn(^0^~>UhGlF>cUo@O=5=)=7yVG zUcc66*LNSO5Y6b*JhILzleTa9$hSDxv76gwT_2<8&ABTba@e9XZpE&0l{m!F|7$Ks ze8eK52JYJoZBw243q^wJ%7ru%gw(IR>A7@X?VL)<<gHV$7A$f%dbD)<-LMwVN$1UF ztQe&;X1JxRq&}@lP@MSb>yh;WXR>Y-IwVFl{dwwH^WgTTbv{|{kFB0o3I0l(X2xNb z*5z{4B*I6GM`}lS>x^o~w`nUrK3O4Y^>PBUe8%o+3>$e?^XUXBSwHYtv1(N*ubhCB z`%{tnpMMucXuEaawaNOiIJ@Vu&-!}*MQ?+h);X?Un&x)+@SbL)V<J_DUlj)Sx#<Qw zzP~fU>fnTpPns?q-lM;rySzE){?uCaV{u}CTmm-oNO^QURuW#-I_bVbii<_7@{W?A zSEWhEm{*wQtc%uHVrc2O9Gz8huFA-2S7YAWB|S;s3MVbDnLOv&j@xpl8vDdws&%AI zWNP00{)ELnOZiU+5*I3I9McNem7}}%+|#Ag_`h(zUE&bJxTKnO;*Ai)X)f1Z-JG0Y zA+zG9!l7SJcNEA7|8U*BBFZ(bck|+e)NcNON{QdE{EzjDmvU-;h{zIYad20<?Qq7I zQ@PVkc9N&9M_A33tl4E}^Ubpyp1glkYd7VYnq7y$&ZJqzWv>P6Lp=^jrG?jfUN%lC z+}XF~NMfd<W|w-Plezsw_a|A8lYe}ec2p%%B4wwv#_Q57W40s>4*{bssimhq4$hf! zDET(C+T`HZJ`sG&dR-DaLLT2;#u)9=b7ITIDa)L%g>tXop`ggIwB+z{tDMrgY|lfk zPEY-9q^H4AP&UbfjWab)KR9mzk8{>*4bz*vYo0t`uz%;x=67ezUnaKhKI7na+jvKs zira|=f@@OV2J004(#aO%2vhc3obbXRHqbCK_V3cK1sMtxcV{S{Fi{RL=s2X7J1ZoC zRs5PvKrdIS{e_3lvQhgMe9F2s_kNY~nx;@T=2fR|P83<PYU9}xlLVtDu1S>2l>Jip zW76}~YcmTDEoRx4rL<gaaq1OYllgUvgH9cq?D0>c$YZOv!C?`t7sij*R?J;qZ&`L) zr@%!g{dtJ}#bo)E+un?7X;W-^G`19}nq=M8Db&)x8?>xOXN_d-k_+h`krtbS@4l2< zbj!W`_nby2UE!dQGj4}&722r$a>Kp-{wr9|6mGb-Z=Ug0+XYV<OccFVK8O>#lAPGE zDS8f%NB@pRYuhxBdG)@1doE(jv@><ClN+==Vr#>jVt5Xx9JQWyg<XN8_^vzS36WqP zhFNNg8B6YV^-tKU(&wh-|DQoo>-pB$g*xktRT8*<wWpr=wLI$Aw8YmZwe9yDz2y`Y z!u-r`j?}~(8&2GRuv_3q+??Oq40BbUFgD!P&~8*%bl`-yptNd^$g4fAft^n!MHMZN z3MDJdnQ6O{&rY`U(5kBDU8gsts8wtgGU;G*J+qw2xUgu^!Wj)_zs?rNhosibUmg0h zJ3M%9NQrVT|H`S7UE5agU*#cLs$6(MXxE=6OY`NkoEUraOeM;9{AZZIGH=Blvm)O+ zdj&2}msqHj!L*Cld|8RhiAYPamWARMQ)P=({+w;B;6CQ$EV7_$Qi_P=_LELMo=Oo{ zzb#anyfM#F!SMF6SDVC`*-e%xiDgcFHqXXyJxkripUk2c+ZNpKH1erA+I{Bi1Vtfb z&Bfa6p^^U?1hgLgTzf=Gp1tJzwM~0%Z}?v|iV6MC@JjojMRh&<(>(oW<<qRcmU8Mo z>E+%T@w8v`Yhm5xIG0mdl1T~^b)?NsDwV!qS*3Ye<f~2B>Iu<Wm;7EuGsi`8dVKSB zyx6`wmNQ}*<72DK`+e80Ik8++FZElD@4baf_zK09(<k2V=ndI6Gxullwj&A*eouc- z@|2P?k2o~<YSRkO*<s7-e>yjCo1EV25^^GQj+xl(#a$<bq#}hn`y4MF+S~Ndlxy>X z8dkwIg|n)QZfNH}%2WNhb8Ci5#_X5JJk->4xWr~PZ#v@1w8LxSba#m>(PD?gxim$R z-z#ZM3p;h1f1g%_{1jd8;MQd^f^)-M6>9l3TtbU(O**u&g{kaULh~gT?S@W{Z>Mfg zVOnyC%f8-0>gML_mv_9JCF7QvbUrjcXSeZ|3u{_3^YaS*1rIEgl#CLTRLNPxYV4*O z@#);`+{K@o3|aV($t{U24dvOCyV5evGGSJtWa_IXj~nOMPhQzp@SmX|gLem?ggY0< zx$gXLLCZLfhZzZIF0p?lBw!?X=Nt2eAI~gL>a-*%2Ybv=TDoWIOc$^Ek5^|hMu<7v zB-*qt*)ZviobVIngiGvf4J(fEJLOut?yxy^%q^*GWsU0Qmcj?RzAfbwx3>39`u<wV z@K^d<qtlPyByZWm)ju!U-!QsS>#j}s#z)SAuA)bO2KpIJKL1Kf^WoojOCvXk&s_W` z?B$(am1)6~-R!(NOzIXcsYzNi$tl9*<;q+0;#<>VPcpY0?^QBZFgdH{Sy!gMb;dLX z9wo!_qM}!y4c4!k%r0|&(-d(bGe&X78&}HZ&TxBpSY-YU)reX3ht1Ds{)*5@sc9eH zw$DDf?*Mbb<*(k0%(Rb1Z9VhLmB016P4{CZ{>i32QNPY5wbcplzof6TPya;pPv+V6 z#!nV^pUqY`u)IG*t4F!0Ra7G2xWR^`ve%QBr~Y9(t#E0hWX~gkRcmJ|vi1oYlrHQ2 zyGmMJrAbFGQp8=pFJY(7D`}QH4zq(|j(mRA_V{0(PpZ|n`PM}$D~)AKB_~f56-ZHO zGM6;hcy+*|?2X^iaKpo;1s6}KY@dA7BT_uDb2<0NTz#|CK~_gUimWtAS-l|fPKLmo zmYz9nF-@Ae7flyRu@%PzPQI|U`_ZI(CbH+6m4l@=w=8BjctQP_(5*|pe((8~FFR<p zU+CS@NXa%90igpP7q=Z}Qhl_jV}Z6wiiXLxPZ@^CPVGHzoaB3RwxZL*bft}ZeA=!B zOh0ga_O|E3XOzqGb<Tx(98~EPj$K)}RauQ=rMI=Hz~OHaSF(6CXDa$<{nZiqaokj? zPbkZI-IY^!o@Oo&RL@n(;Zxly5xQhYr$CU6-|WzHvlx6lo^qJISj?dCcTtnF&zd!v zSDmUj=Jaf9?-1HEJFxD@E7{ws^PD#Z${q;6w&rxK_fgq5+1UkRsr_XWCzmvQKatw< zWcjy(t$ivr9V$9n5nY#7Ub$$YsO4fitMiop?r9a<{P#{<S1K@NWjJeg-p7D-9xFa? zFI;W2Qlw05WoFJs_bx8$WqtdDBF?M6wu(7ulc0P4MPlc>s6AhgOs-q9>*(Fz>nHX_ z_3Un~l7E$~II}ZhPZzsN@ElpeQ*Binw(i<-^FjNeqWX^b%NtgA%|3K%zw<BA!0PV9 z$B%EdU44MFE#F4rgu%ZByV~By)oa&s%;N6o+37rEeq(pD+L0nQr`N%azg;`FW`*<J zUG%V{F5>Q)%u{BfyBOZaoL*@XAsA5Ta$KEpJLhrb#G7v)#Awf*61r!R+47>~+(5s3 zmu$M{CU#Yx;LsI+xPP&p#kRg@)*Z8jIVCg>PCRi`XPsSCQh}FGwW-XLlauo1x~iQ0 z{kiaUd}x2i*PiOz`%;-^$}X{b+BItjL+c9BO$+DFooWzLon|7DkknYOcIYvK`tB85 z`i!5LPWo}w*i-8E205pPULQ?%tej*hHDQnP$C=8?S#37!YkY;ITHA#JbKb`<Q%U{x zx_IN`M8Bi!o`mh$@%!1#&*qN%vTpkHWH@d-Yo)hq?FLUJrKzF;A+NYsE4wbz5ZrfR zPU5Y=Jrjj*Ig31y*|Jng(o;Uh==9u@$3;sdUAmka_A-52tA6dURHa2q`>{Cds8c*f z!4l^Wl%<_8uHC?Ve0NAe=2ia};ex9rc5gjwms%*96l$t`-6FRqYu(l_kMFFMw5S!F zvfJB8A!y#p!im4CE?<AOM1HD#*WcH&f!q5hC;wV@G;gih`U|Uy>$HA6|H^w>a^GvO z*N@`-Uwm<Mnci<={K1<~W{YsX9eex7kLSOu^ci%oauf`ku(|Hgj`sJ*woGwzt+W^9 zIiB_TpMLA)zQ57`8GO!4-#C)8sqt3C$%9M#jk5ighDY3b7<$&p>2c}=wv?6o4fn16 z&#<K}&WFc1cW3L2q#j)XrU^W64u)>rW2MvE$z}M?+;PI5SNmJS`BfHNj+t>H@loRB zlb#J9j;3;6KM;4YzP8}e?URl+$268}1U6T4i$*toSvbioN91|#&Fends|}T!jr7+1 z7JFf>W}r5?X0zPxi9MUDZ@a7rTs_IW{7_U|ZR?R_jb%nkJ71aq_E&XRN_Zz5ZsD11 zKWEdC&Mk)1PIKly=6{ls_$00GhNn(gPt&_cQN5xmCuW$OUMn3dD6@6TZOav#_?XWb zoJ#z*wYA~p6E^P6iN6+Jyd}To#*X%`g6z}A+|xpXmZ=`vpKNxSQB`GT!(QvviBXoy z9p5f<2CsO0_`9+iW1^MTwy=tS3ucuCJz(LwXt=uLqm<x@U9YY^(OILZUYDCGpSwA4 z)ul<-4%RPOaQ(E!{G<0=Cg!a9ZGFZ6+pZ_9Y;UCu?`RviM@c@8F`3228oBGZP6oq@ zC1H^w!WTlfyPml9?_usaEl#0|pGS@|y$PLqRpi#Kna_K}Y_uM@s+~L3)3h@<H{--A zYn`o6Bs_Co+50WnI`57243&R#=iWa0V`o>)o_Sgd+um$7ezhZFw`yGK<Djfl=VukL zPI0pM%4N0K`S}m2n6zb6gVwEEbhdJvr&7D{(X+pb{$*|K&(`SmXffilmU(5wruER( zO~%N=<Mxy*JD)0wYioq*9=Bh?^K+#*JDa&sqx7prJ{8t~K2i#|GN#6w8TNh*jAEaV z;xgg*F;kDoo9}dQ+T?_N__uwUcf9bo{oXfx6c4Fxy2Zcg?Tj0upMq4M6mf6e{>iMj zkpEy+Yxe{JmvgVKBp*(jF*R(-+m#oleG`}##b8$2uitg*SkdX47xQ!9dGF7?s2_8w zCF14Hr}+_&=PsU{)_b?Cr1!U`%=sy2cSO{*%Y1J55Sw-@##h&|Xt}O(jMBuF)02G7 zo|&r$xv#j|xt_WBtDTkBG@tmX>#qvzndh@7j{U^n`tHu9e;w5YPVAj<y1+Bu<GRee zS6X-aS4gYunQNR8G0}W++lrggmVF9M^K|CUI4rCv`sKyqj7x@XD@-H)=6SvPcxA%z z6(-4{rH9x$zX=*d@}1@SWTxvjJ&^f{fzHyi3vW-0n)>g4*sd0vNo)FU2W>OTo@4w< zt!VX%rw1jyx27NRc=1WGI@~STch$a&j~Q3Ju$g36Q<J74>2s4^RdJrj;pH!1o4X17 z{|>6TC~|MPNrZ5hy=nQ1-c^^`-tV`}R;rX-(tYfBKbNFUb@JS$^0K=<k`HucrYEg@ zTvO2|$|I7Zz<o9A{=T(a&3^rw`!T%Om%}LJx{)9EmCJ`sc6cwJ5P4{#dye8?@niRF zCT8%uPk+^&wR3s@#MgJz6(@EoT-mhhX_h#j`N}AVc*c}-*|P&gH!D9m&Y9YK_g3MD zz?*Xn%Gssw@xC)y@pxg_66*=dr(=u*-KGUZIj9_1f8DTCM_2pMO`~Yub-I@qha0hM zpTKD~qdDJN^J{PD&c<yn{jsx3JGZSqDVA}Z$$Z6=SeDAPxly_dR}@Sh9uo9WiD5`G zdM77c)@^Y)?)DV@kn`8JDoI=r=Kj0v%Gb|g7N>*i5-v_n{hZscSSS@`?K9cXC}Z}N zoY&@V6Rf?xma}J^GUhQ(Z1BG<RP8A^&tZGfw7(8#zv_JbrSvua^c{!$tK|D!IZYpP zH*LAzksOq}to1p=mXAvxU29U!O6w9>YcknUxw`Pk(raxkD|ml4yM<aZ+s;i++SFqn z#Kf}ZN#4h~Y!i=aJq|t<egEa$-;4EEc(plA7kFD<HOaA1)?N6x$$`Rcb64-UomR9V z#nDimrRSev5A*Dv^&Y*ij8b~J9;v7~yE9f?Oqp4<#j@h>+P6I`JeqEtpD^v(#-mbQ z+a^{zHEG7MX?Z7$+N`nXF5^3}`sz&!Q`V3F8Lo(J-1>J*F6*D%N9(RsypwpRl(r+q zqxsmsk0)<4|H?l4y6Ae)?$-E-Cx>%_N^AoYd#>GBHd*xaUEe1c*GXBdS(mi8D}Q-) zs%PSyx+VQD-@R4#x84%R?X|7^SH)Rp#emHDtX^vt7#^9tnsIW`evaGoP8qM1oK{*} zv|YoL;nW(d-hUTEjQW>pdgn<<GO=(iFv;8+Q|7rOV8)ShC%aqPTTdJQnj*AT>)+$A zMxQF?_U?>d9v0oI>KnIyqiDr}m^p4gt6G~q4xBi+Us+!Nx#*_G6&`zwy?T;rmI$#f z?Y(*E%1kFs{@N|In=Q^=c{^|A68U|%t*%^WuZ@$ud?iTs<Emq^qCU@)Vt({K-BX@# zZ8t6dbXtgebI0OsSz42(vPmS|W>oB1%+;kN!<BP<!u;h=|J@a{xy-)5&iZt)$#jA1 zFXzjB__ttd;jd}#lTXB|#-3m~<FD*7OSeTPbK~6oTi(X(xqGPgs+i~7<jUrY+a%ZN z=O@2v+f<av(yX@VE4ShtWzVjZq~me2Qvz6%Coqci%Q<%W1oWm(jI3y`<cNvwIj$PF zX5zhA)}50)7Pef!c24Cecc)y;)h)L-+<J81)2V-H|KB3lS6mV@jO{@wsp6bUGFr2H zf88tiefhN6@=4s&gE+VDj97T$uWjMEO|uM+sqq=d1%>p5OcZ;Yvi+bq_cgiL4)xl} zrWH>NSLWTQ{9V3YKj(71(}#-e(7u2Fr1npJ_-S+Yj3<-T<mGcj!<Ou9VtE`9`Yd){ z@L~f2*6Mj4k1L*bU;Fj`MaL7nI5EZSvz6>^k`@d1q%>J1{55{ENG|`ys^`j+%s%z> zd^~ABZHK2#O16$_kVdPDeRin};}ny13vcjNo#mKq!OC8(Y0toxz9jhHPE)5t4PJq9 zuQ)oRTvX;IA6q&ru<Lf>tK%-QJ(nas;&Ka5O4oMWsO0#$$M;nDOYY63j~0jRo_uF% z+`c7SW6Zwm9agq=JK~|4YSrv`=j1HCqpXUh4w~j^D!#^jExr@qmP|5R8*ux@PopJm zPH%)<I$v%(#&qm%xJ=V?-ZL&+vlq_OxvkVGFXXgz!urb(w%uRW5cxdo)A_U6YTGW# zDXuvl?-e}buE?}6D_m}E6m<G{R%)^RKItznduw_sKW|I5Y2NBJ$-z?lcqMawk(#;q z`oiMEg6q?TreE4q(&nfe8`F_|sI4#dmGtV;*-X+C4G)A!_5{0Ca4?xi7iAU93|*nr zo;ZK|2V0+{X)-6Y3|Cq{uo4gVG-0uATBEEhEOBnzi;Hf{miU=>Gh2CYees{+)pafP zD^E6*b{U<?V?W^Ol-M#oHRJD%GrbvpQOzfgdChcNG?R~6Q2T59H0O=n##3|F9GUE0 zbUaYKt06jSmFnMz+kEezjN7_&vq$*J_5T)lPmjJ)c{5?!>pqXb{Yw|N@~gkxuauwD zG3{mGf~;MecG|hlRo!{!+Oh7BbqjOr0}g$NpDem{v!@ED`qa(8CQYt*&-jnW=U@7% z!^!-6_PI|q_-FJ>xp?RP&jz<5IiG%-_VH&v%c+)Qiq|a9^l;72T(4FvB4>a6_~ZPA zyVvWK?b+9<zjo`!b{V&Np=0Y83f{Mu-rO-i=$y4t!p<Tl)&t?kigi@?_A^gAYh>57 z?^lhnm&eix>&#~rb+Oh4^R3jo?dV<M|73ch$5Y2?ral^_uV$<`cF~o&YtxkN{oQtU zLH7f+za0HzCRdj2Sg5Ew{qyyVoqQWow=eD9wb5boo5)1n4cr{TflF%B9eU32-D;3C z3d|JTf9<Y})>i>jW0_f<{5Ms!Q^co=8-|<+^Zc~!apKA4QY)Qb796?zh)vXFz3RdB z!YWObhd6lVxGpwwEpB?{?cpO(sBv6c?S#v1iG#gg$}i51at=IuB(dT@LqJTYUQVoj zv9_@1#?H?=7i&!ze!iFe^3N@#Pa`z<y1yc`ti%DXD{-3_vvm4+&vX)T((~xuuv+A3 z#MR@PIl5aW3lyHItoBsuX-msEY1Mj~mGgqcG|nXr5@&Qiy7Bc)^4OX;xk%u8w%SHx z&xUjE)21eUGCv!5dJE4HKj~GIT{~T6BN-#V=&?p07Fn_Ch1(hyvw4?H#he+=?LNRU zXUELaVx>tk)_GSh^BO2mn3H|-C`)FX*Wcy)CwX^16aOd0nf)?l=VvzQdaI6Y9c!}_ z%yml(^E>Yx|E2V}{p7Z4$@N#v7G3+$SgjeHb?97h>90vo=Vf=Q?4CLMfa_N|$Ix3A zkL~t(RjhfFHuY9z>S4Q28b?j~cO`$h5xHlf_r$Vk_rmOD?1OIYZGF9@_{76@+5Kj_ z!`@t8<yy#c`k7j1P4mVL$#ItbR!To_91%a*<+DT}C3!Pj>h}{BGdHd&G+XC0Z&Olt z;{^$>C1+ZCmUx|AwPo9LwtaJbQeRGCJK0+)qU+Hq+`wqfV|3zekfYWSiGt}rqsu(S z<CzV^t1HFdc1o?k`1r4P_LqNN4+}mVeX1vMTFLXP@~&SiX1PRd;z+Wp723_<+BE4$ z(|KW5qg$doxK`)YMLxWtTadWP>CG=*&q>ZM_R3vbPMy$f|8xF^mYk2IuhvG(j0;nG z`+7~zeEb>ywB$_HqRo3Jf826zlA0cqguz>#E1M?kG$tAquIV?s<iRk_B$GoyU%l*_ zTM0k!p^ek`t2E~5teiVng!4h&q&B~GXI@r646|H#{PLAo&wM5;>EB)vx@hX1neh!L z{VwGM#`&zC8eVoFN88$CMX;{lsmO0TO5GhcOx&29W8@sZaGO`~YJ=!GYiGK)Fy@^) zci?5X@YJ*J={Yym9{B#%E)<wl&XX7r7`{?WB|uh)&mk)&rM1l_M|ACz(4)rL%nKe^ zf9pLa61tD)$mL_V^p>W$sd&ENw39im`^8gz;><j6PoB1Gj|^pZFX;YqM=|&Aq6yxt zPmf&x&Z&FARp|J9>jzgf=bgJ~aplpm_pfx6%Kkc}&imo^UE{pT)Q8L*>rz!WpU6H^ z>Az^=mwa1cOQv6c-zN)NoZ6QaX}ckMyT!-NzK`GiY`uCoCT{QHpSMr@D?bjKr`x#V zaUg@}gQHvOT+?>U%Xs(aO!2{LNq=6et<zP)FL>Nv@yz@gTf~AZGOstyO^R&abW&yM zb?r~)lN=&W*sWpv`s>V!rE?`xIw!2iiWE5#*UmF>P05MwtuD!r-$e#nE-iRFD=+A2 z#+rVybw(Ul?*-kBiuD$s+<N=0_ra{b?M9pIuJV4aH9fQZbac$En8iLlXLcG?Z|d4M zOXA|=W$EWm^SmoOt@F!krDtXTDbKLL3s>Wlb&ub%J~)xzR5IE%Q0$YR^Xe0MZkwLS zgtZE#EqEg@sx(LT$^6RiX16)-3#C}5?dX_x>UQe$s43RB8^mmrQ&&gaV2b+ikIOQ0 z#zbwcQ%<L%ZaSaLFS<N6<H<fAOWr?CF@<j~uH%`Uz01Vt??!>vWu86xUkz7T9q*9j z>17d|5I5<{D)F48h#*&;a1*vO0*2SBZXBCAV}rxQ%kC$oUgauJdU~}>gfHt%(p#~u zs?HOhcy?v>UkTmKuv^kondSC3vnJJy<f?ti^3$gWi=|B1Zohg<Wv2Wc&r4Io@92f4 z@cjCmYnE|_MT;p$+2hcXNvb|mEAIT-F5oj$R8GWHh4sRUu8TLe@y?m(kQCaf*zNG2 zq5R9S6rn`Z&>ycCNyu}T<nK{B_4MF5dmn@8$GARUdjD(*!-nj&Spp{?txs8~xA97m zP-wT89oP0>J(t8LD)V!s+e~uhoLZWHBrV+8;OY{`k0u*`J#t#rx%L3Zj(DyoPqt5r zP>U3Fm>@98h<Tk0<BT+mO>qlb{yK(rUO06-_onLMGb_3euMT!&4+-^Uy`HutwUljf zc&OU?*slS*b0)5uaan59k%?0dG=^@=RFZMb3=6v0<r%-=&T^)8?*wbYCc9?yzVGdF zE|w|lR^4;taAAHv%d$fvX;B+Lu84noE3($^OvPz2u9d1W&T8R-d9Q!kF6pUF?(CP) z<&o6!W1V?8uW4<vinro+hF8lh<~~2DxP)u9gtpOS>%`bIs^!jJ&(f!D(>WKFyQD>P zTgJcDQAWmdXHHZKc#|%?Uc{;3O;h&-?hxKZhUP4L5@tMMmNft6eyea#%vyo4cHW9r zYQ>(pGMf^Pbm-2^l8zPWia5uR^e1dhR{H!aA?pI?O>=USd=h$^<9g{$t7|UVZQ)Zz zLppw3t!&N{Rlb=b%49H=SK{`|+Pt+}Q<nLrom#|K%05%}lNql9n>pv>h3BWRR8BP! z`FQ56vcc~J-c;*_mljR4cS!r%?`Ft5YYyYFRmYtSOD&C!R9Bz)v?T35f5E9|21Tcf zH}EPQd1R>EEV9Wg>yqZI2TJ!BMg5z5w8$&>%%tPi?I$fbzuSAe)PMQ-_>+v;W{K%v zoO2&Ouh?_->Ynn;KG(Jv_!diD+|ymD8|S&;*+pkpzE>a5vYfxJ!gcEkPm`<RU8B=n zyZUTGx_Y+iE~$*_x>_VSP2j@=@2vC2R)4McxLogQy(C&PmF3#R(+aVRg>(<v`wLx3 z-CL~lX5*@rbKdz%1}a)hDkplKmPvd$mH$kPr^CWGJn0L>ufCMrz-#$_dq=wILBpw^ zHdeh4^7t8*KA|;D&y6)lc}Bx#o`=zL{)Y|fFSD2~Ik+y_UtN8|#GIPq7}t_lp+4u> zI|KAIXHGI&TwwP2`DEG8{|>+E`*NLyZ_(75#xX~>YO>j~%Q<8vw`7Q#sX82Hid-_4 zWyuxG;?3Ugr!DTd*Ugyo+E4P~REM6~HEW8FZOqveW3)rmFr7Qd%cYt3wH#C8Jy*e9 z8dp9Q9=^Nx-r~@TBP~jLe;6GLL^tZRK2lnHW7($F!g8X@VU<!{`=p)Uta4E<FG~pN zjZ6w{bycY_WZju^r6`qKCPu@fVD$}#?YC2pD4dkJb*$p1Nco4C-$j`X(xyc<KCynU z_ef;LnReB+7w;XD<e#ejS4+<Qk-+bB+crM0caXT^@ysk!O5A12LA}pMdJ13O`Ok1K zX|ej;h?7!vCzn)K?a+L|t~g1O*Hi7HL{<c|-j)S=BA&1FIHpy1PT)*$`FK=nO~i}S z9I2PuXJy#r?%lfdL#AHL_RfqoHbU-kURO?++Z;YtaVDOVUq|p<#CdV`X*ctfipsh3 zUKfh0&Nehn&pi}*?V5FCb`g(}pS?w1+61=LSr3#qN1rq~(H|x_!S-34O@naa*2uyw z!klX!J#KbX2rf5R<8u1GP~VxtywHhnHdIeK=i0n{bGeA<nN*gA->xkRo_521`&!<q zE>mTWTU|RBlNH&YaPIuX=$$%Q;;AfRQ)V=T&e(alewnk++@1r;NuqyJuLKmOe|hbm z&wA>LO22N#;zJv@&w3>G*-pRz#7xEQ?V(ltY75wA?+Mwi;@xHZdqw<?w^!Q#l^ttq ze%*8XVSBCJYVU>l33oD^Qh9#wJ$g)4#kKLYvc>yg<?WF(=ROS#<mJvS)V5l6W#UWu zus5r2`R1A)Dc6>|d(8Hgr)bVXrkj3Ej#6wpq|b<@JNviQH0&>wS}-xC!DN^AQ86Jq zw{QCI*V@JRM@A}2XxmGz+o&zVHmPQg!o<ZLrcNn!T~#YoJQsc3Vp)>DGQj(D$Mw>H z-!W6xO(|TJe_wb-|J#P+Q+u6vtxPa7Q(U5!ex!KPvpu;F3=d0H{;dDCcGryQ?;69O z2`VXEFyrN|ymBSyPfY2SO^#9*PZ<_|^6BmP8n%8}`X9S_Ih#YGO%Ckd@Ka&4>#W;b zRlgp*QeU*Jr;+iIzOvlo8aK^N9LHCA__`b1*4Z@SmCwAhGTu{JU1N=UG<!w8g(qJ$ zSiWX=$F*G%v8&F`o_u9p`a9b)Mdut(fp44KHtth4EqS;sE#v7ot$p^fPqOCwFMB4t z<`S2YK(kQHG^xpk5tp6y-}@HShArAXWlrGE8ngclfr3AIb6$L1y78Dwm$<T9e~^aT znYF7Ojdrhg&$Qy57Cf`y&Md<Pzm-y##%>IFvT)I@6D{s@JJsbkyfhQC^zL(Mt4;Tm zJ{dQA#_sI0oUW~nk99i*KXGioJ3nf^bhzSA-hYx&Q~#NrNz>HU;<yy3Fz2O;gZHKE zdx8^IPkthq@MGKQ+n;sLtZ_ChNsZZYN$>8h(B7<&I*#wBKMGwq!ndOC(m8KmA*;Q$ zhCBktnVsdPvLxzy8udPreEj&<+WEg7(p-=3Shk~bnrX0Qn``UjOtq=pCw|6B=82`8 zzI|lLku_XrMJDtqZTr}IUayE}(zE6)C6>o}UKSp)fzGTG8+>He2&xnnd#=AZbJhJi zS4ZKF_biiD>Tf>L<=Nzs^0@5JDtq?>;e5}#kFDI)lUr|fvaCPslyd9lg2pa}zpaAD z|Gv7^bg9AX#K%L8$LfV9dS@IoyIS#5CgaFSW0BTokEF1)=$*3tx|2UOq~5w+%DA}6 zCE>f_?M=rtqc{%SZ4r|DnA>vcc?V;w$G<F#$DZC(B-$CdIEB3Clqy8;j+9JR+?m)O zWoWni^6e8RLLYbE5P0x$QsVEZge`5BCwY>ju3gF~YrJ!()$si6%-C7JGmJgDln&iG zcfo75Qp==E_l%#u5#v1ADHIyxQU2t@$$bZdUp`6PXyq!?cq8k_;#S$e9><tpcZMh& zxHUb^mNo3)66T2x^TdLlxT&*Wf8W{0d}sBk1HKxM?`KxpKAkPNQ1JYO46knGlZqEM zhXgEM!EYn@NuW2w`})Px#~PN-dGO>k?;*w1h;@wX<tFVtuj(T?UHg#3%EZ$e%NxD9 z1Xpx^U|$yWc<Qq|=0TG_x+NaFK5?2)=aEUSty{l*yy%vEN~!%VSK1r#+OAC-F6#EH z?#N7^ptj27phR!6qR5YcRXff!Ejn&lE?L>6anjlGNq_l@RQnDdpC_G<8N<3(TXB4| zsk_s1C~!&VEc=xHm)&7ZXLzHxwYJJn&<awS;2GfCJ&UE&*){(~|F$Dr+SXn;wRZm3 zgxgsH({GAc_MD2G(w65TY&X$`RWv1x$!t<cvfrO#gT6?o-ArpPd9U@{T`g8LkvAyJ zxFMjcQ*^$m=9wcw0;#H7BJvI!v`%spx#5%)QJpiL@6u9^5T|VG*2Bkyj9j{&1!-Ol zy}Lr-W!L-^NkNCR1)@*tJYBNFrP5MwZT<J+%3epcjq11V+*vNIpm(tG@;igWE(LRS z-kv%!=}c&*WNf9%^d66ka}{lE3J;xIw4~SVY)tx##UX+*yNxa%S3I`S>EO+%Lys7R zoYiN?x%966y2DkfMU^qL@uKOJGZRDB+|MuHuDdZgZI5N8LN5cuu^AKZMk=dUms@RB zQIJpFrWA7Vp|0ANj}P3!>egA^`OmN{T-8Bvwbh$jpZIqCXL#%*JXuoqx)&oax7o2S zwV7*LCx|7TeJ#^<$3xUoSd?WGdjadwbGAX>QVTNQ&pCB$)|)TOUyD9^T-q`<ckKy1 z(ZyPQUgz!dm=^zxIdy8<w1Z2HIs;DUg{X8MmNZ|z_t2H;mYoyVhPbTJ@cwpdneUm% zZCaM5QhKM|Z#-M}wRcuiLv7OJE=d)mj)zQbjYj2<CwNFU`5m*3tkjlIVGTN~FF8%| z#IDqE2D^tomofyHJ<9mDd~E9vpQkGDbww%bRG0dm6Nl~z&52L3Xpdlv*qC%xXK9k7 zvz94~uuP$J^UAAbw?9dq-*A8GjGpxC;ngi_H%lgd<yjc9E&Od$L{ZPm+osAAzXT0b zc1N2j-JE;)&*>d`UQfQ|xc7;l2^4k6a$wr+QGaN$+tbk4%(|Ozj@d4mrrfIfHZd&S z=;&*mQpw+^P8Uv8ESY8G7CvRC&UDE~ni3rxQ=`5fUK6UbbB?a?hOd9FHZ^Rp-t4J3 z%`Gb|H!ZmM+pU{34~8bKm-IZ;o~u0Nx=lapN~VBQ-kc6TCM|_((>^<jKAQEJXHVI~ zQyM-x?OaSJ_i5Ngyo*`3b+dWM(SXFBgYxTFCQZ>Z;yYce+5630Z-2wi;>oIe_I;cs zEbbAte5ZZDf!Q6WA3mvQV_w<and#zXTd_q&qvf4%fz`jLNwYTSE&ZOj<L2IEEfpP+ z2EI}j-X&=X#*<q*znW@XUo~-tkm%GKY+V{lv_#*A?DANa$x+KBqj9|{^2~yY`|^Kx za869v_HoUb?=|0d^tg6B=9Rq9@35b9!5Ve#V1bnvLnbZ`l;Q}iIC-Qhys!6?&)!!# zueLBeo-`{c;H?C|{hdUK&K-x_m{XII%iSk*OpVx-7q<8Al>H`?#N1CRPV1SUWp%P_ zBHxW9k>zSFFVwqyT~3}BTW%A4hNa0w$SalaW?hA}qAgFC_GF>FWT!V%*ka2LNV~gw zXz!l8$f&JGaGp6IN9b!^N!~J1g$bK-6>6VoZ8j{_4%)xzcK6{W9T}V7-rIR3$#&*C z&I#|+RM#J?jp8WaOR{E7mTuO(`eAvNMryxq$s)%^+246RRx4SD2t8Ff<K32|EOlCW z+rsHllS2<Kz5Ri6n`d@|$jT+W$Ae!@%8W2v$#zYCtMSQ0G7l77*$q2p9_)M2zJ1FC zpMxpdp4uz#t*c$=Dy+wJX`6?x#$lOg#vS3?Y^t|b+P^icwhWY(F<O6Q(u${CLh(QN zH&>suSZ0{vVVTDA(S31xAFIOjYw8)NUf*1z<SA#EDQ)v}O>IY5kL!&`9;Qig8I`F= z3t3V{?N5dD>=s*c%g|C&WyUMZn_a2TCzhxE>UTc%USzvO_S9`%uisAnax}>&Tk=`N z=_}!zjy!z4cVgwo;H(s-smXcAFCS9YQ!Eghp)=#Of%DdqS39@nC${D9c(a<THp#xv zNNnrX)T4V6v!_0FK3@1KB|S9NH#kIplTBh(X8p(3881GaF?iHt;Up{aVRi7Eu1mTb zCs^K4`(7bl{Ly8Z2Dj;cm6bv#b#hfMZeSL4=w2PN?nqAG?Kr)ezt5c8*Sx$~Y-fi^ z@fKxa&lL$PP6rttNb!igoweObT`%|i;;lxzEhfHgV4k;mjsKcJ)*R_c;@y#6dv=9* zp5D{<sp^y%Lm<o4Os=D9$83vEO#J0JRif?Yw#HPqrz?}oU61b43+agG_g4s+5%is< z@PfjQ^J<q)OqH3d5}LOo>Ge;o>&hAlC5NUfEBW>w=vi=;UnceTf;9)d)^0Y8d-7&O zL~-;~cC#BEVN3FNJu<b<l_=P^%gehoSk7YG;wES5!rg1qr<UI}{M)7z`{FX6&&TE< z_la_8>DE^=ZX9WiOnqx#rl5D#WO2{2^=g}Vnolgaye-Y7`^Bnwm93sHnAV&>Dk0de z<`gnf=?R01+@)#evQrr5_65bbtvT_2-D#P?74K{_zeRG*cK#W>L#A<lq|ugDy<KyZ z*x7>@3rli$l^zTZe&+p`p{s1ip|i$qMckH-kx#FNSi4K7zv6ORBHcNc`Gkb$RqKP2 z43@3a7GCr9%IXp5V7wF5@1&8$6Xf%!Q>GwWcF%-Mi;f6fm|#)tQn(_qQenoyc{*N6 zkpju0GcJ~|4zmbVopIpUvY@4>w<S-`I>i#E_+*0U1dY@A#Ufg-I*pt&C7x}$a)amH z(PXu!U5-nY|1+dZI29dnoo1+0rG3hA!e*b}CNoNlt=*SQzM?seS0`%k>I)@3daIn* z%-HVp#^>B3S)b(r8XkA7I&T!REt@+#WQp~jk|P2h?IB4Tt=@Zm&jsj&bS2+5Jg!l^ zcHgqsN)H2{uQuGE*!|+@oa{YoMXK5)r!q!7;^NnSqBh&e{qMD9I@)$-hbFiMI?wF$ z^J{;3*8Fxq-}AQ*yM$ZBx{{iOkL}Mg2xku1?EIf$%7P{C(WQz@vO4t6PMMMw@wPcI zVP`sHy}9A`Cl{;Ey$$T&c1i5jJ*PCDPv3+Sl|^cwwai{yx8k+BqvnQLTMZMugZ~+s zy1jAp@lY#R^33y0p{p1l;}l~9d4*XI%XW3%3qN*S^vWAH(`z~!HDcX&8!s~R9J$jY z+0t_Ajq*&3B`a0#g$nr<YjCHXy1ZIt)g7}dO|BEUR(3|%<V#NV4p3(hbLh$Pjk8e~ zyKK1N0ke#D-Z{s0N)u=G-m*?o{(Wi6)xG{}bYlG?n4CE++V{$;<%qE;98~F9Fj*@? z+1P8HUQomp<5k@i7hR0BV|EAIt?N|Q>L}CI4A@y?GFLCi-DTJB8DSbMaUb1x7<NzX zl2GnjXYo_yy8q8!<=)bHP7^oxPE9@?%VM}%^+ToFnQ5=WE+%R1c_YTi?D1xG(Z)5Y zVj?%2!&*a+nC<B~vq))9*AcVJ`;5eH?mV1v#m{qj{hlA4@v$?G`OHarqOZBo=D~*L z4IO*kK1tl%;&v-)mND04sr5IXPAry8R-3zU^;DbLmyYjdS$U_E$!%stB!kY!th0(u z92e7)U-fWu++<m``?A^RrDl$mQZ|JR2aimW^gW@lImCe>D$e=uQ+LIQvn$V)hib3k z)Y+}ma4f0k#g1Pc8+OikrBu4Tr)T%KBU00Eez?=G+wr)gSx;N5qil<#>8Svp4PM<h zpZ7ipPh9;h;+=}eqi;zKzoX7<NeM~H5R?fx9_E~V<Ixg_gT66LCV>J+f|L!8Fza4f zq<E*?>WbW5%kaK<w}O<1+*2oOtq}`xnH3;!;;)dan5Z85wm-!2D`RSy?kVS!9|8;( zIBO?{u&Um>KPh#^gG+XQN)lsFot|fUwP=#&@;8ZI2~+z+BTZQiCk2_lkd$HCy3Ew* zw6Rt;kAk(n%G<VpokuhqmRnuPIk+pg;k|0Z(koL|*ZecuY{X|ap*wfdlB>CH*Vg}? z=NKOLLLu|<e}=nJI}5)`aXK9nF`X8~7Ma%OtRc4Ntb}0qiPJ~(!zK8eANQq3ym+vs z=goSaqU0oHkyTM%$(u_z79CpbVstsexv(f=^@=b-=hr-4E9KsHEbI6*cN$xzxaXDC z1*TmqioUYsNLd_yvh9k8*y|lqen<Bus#x3(*t9L&>E@%Q6AzqZ)|?f%bxqfKA%R^x z-gF#(`owEn?t(U}w6NZJmKP^qT5=-gNzk2FU$YnID$gnY`%dlFh7`q_Oh-az$t>Ed z^f-&pbmjRa(kEJ6Dh;P9Sg5D2jrVooJGiw_F@54Hne}TuR~?qpDO_gv^voI|RhjAs znr`M@+RFW9x-V{MtUEp9m~zb~oj|>fD?MgNhosaj`_FL8Y#Bq*o8n^*TXim9dDl7T z*t2KmmtNU+9rrXhX%;)9y06W3`^(tg^LaBaHeI=2_^7u)EZmewlIvZ2#j^6IvMDoe zIezaBHadEF-R=Z;mc+(_y+&7bHl9?gY_1b%t)9B#Y2w+a9U|+JyO{*mlxq3iwVF1i zO-t5on!-Vmu1~_PJWH}3#AvH@1(q7VyLmD+NP2dtYkTt6V;c|gm~CFIki|buqOoJS z)Uh+Sw7*E0ZasO^At5$Zb<WdT=2v@C+Z2nr7n^*1RFTq`c5=a<!lXsMTU+&`+_qft z)XY4V_AB9ip@(2<Pg~^4ODzv{HfXO9lG-uhqubM%2?y8CZad{U>yf+IM26V=%jNCf zl(vgX#z!?L9Za@xIck5#DCEVRbUCZXuRJ?%zFpY3Q|iOaCi{MYqmNm(w&d*Dw4O6J z=jqW?R|+?Bc3<B4)$YX_;rIz}!g4N~ZER^cVpMwKVw@R6(Jq@sf+xC-I#tfNznlBq zcWz*A=sfx5YiBI+S#VPGhLZ7&qb_rI8tcpM3w5&Wl<oMH$s2uoZh&90fJ;GJtXPn- zl$O!nj}c3+8?LpP(;;iw61XE=_3ET)%B$S{<+dxS`@7jpTcEsLZ5MwA`<?V@Ax^hu zwB<btcq7`8tXX(<O^)<-#cruf7B?MtBy6`bm@#c?%5gb`-ct9IlVV;696r^yK;D14 z@D4@C_J~JDrkAssPRedlDdc4BU+w3@vQpv91Fth1QZIhnepmF_68$AT7dDnmul{*e zh`VIwH4Wu}+sE84DSPYjxVYTURdu@}KD)eTP4tOZ_c_i4h)%h5`^_t^B_5K8t=M>^ zKY3kD=Fprnd+O>+kDEP}#uLMX*h@qOICzbd1hk%fTp4j#-o=O^Rzz!eb?E6gtkPk( zCq}<L&b>O}bVJIiR})TdZd;v{cI@0TwNvM~JQ%-Bln!dw$j~s_vGi&?huEuzM`sMe zCuPj?nR$GIeZp%KZ=s^etLxMHBvX5S7fHP1NxCQ6XTGbV`V?nM#M6-6od-l~!nyM! zk`=RBO?XdidULAvaLTG^(OyX&$=Gk6OAm+^&Ff!#WcKZ<AN%B7MV};PDyi*h?@3Mi z_D$%HP@wLT(smw$OH!R&K5~m481E@;GB$SQDLk{{vV}N<bjFOS=0>#>1QjQTecLWE zFX_GVi!9Dceqm32rHxCq*j}A0>I}?Vp|X1WHKRqU0Re$29juXl8+J|CJ+x@a3`q%X zvvf@lruML~h<8Po7)_6zNQ!iRS2asEzh6bNBIQTGuMI{06Qx(V7A_JLVOf}Yc2BhT z);eE_)yrZ-w0s38H1br+?eFq>mHbmBOO-34B~^64$TG{>zE9F8`s_(@t5kUvbV@>X z8&68de%>s}+b*fX!b;P`vgGgHIj!k3o#oipoSxkKcGe5a4n~$lDp%U6*z9`|b}yvW z;z`fnpNt8~U5ep?MRA=k#WGWFt<${~KJ}gt4_C#x_J~lg4IYmqEheN@T+Op*?YMdD za$WFLmZbQ%yiGGA4(~m7$*XAz%f72y`cf5*1tMN)N_U(v5Kz9lZB4wcgr=HIx<g_l z+od@ZPx1Hs`}{7eZstzqL(%Lj8zPdH<vTYp^sjh(>f?z^zjDINbQ^>Ew=s6~c3oC0 zQ~rO1!C8QTk(rs9iG`Vsg@u)ck(Ggwfk{wE(U93OP$^NssIXCZ;zAY$r=X1ol?{?E z8V4jibZ{<enj{kZ;o~A!6_erx|8FsHFfuZ5+B5!V_%ki#<e{Cy8BUzy@~<yBuiTQF zZFwMyZ@tl0bswJIr>nB8lI>sLS*yVuyY{Nw@!xADcvW`s{ZZsy;_&GH>pNcSWLX{= z1@j+C{%ouy(5S}vpCRtk8Y#EH4E}57t3HRk{Lc^{5O+yWM*Xh*&$b&|bnnz(KP&1n ziHY^Be)-E51@`%0-><s5a+?y*+O6|0-Z}K=`QMsnHHKx=ws5VP?|4<OlJSDUe#Xyk z>3^#eJ$LCSt}$RZWc=ae?bH+h8De*AW4UR2N_z3)l^^E#E9rIa&b_p>>_0>72OGwH z`xb9}G3Qd9#Qp8<`Co54&hz>$H*cx$s%-n4Hs+2S!)8Zt?)>6-weiPZf!9lfcFI4u zi3$<F<srcNdp75P2D|?ZxBgyso^zLN#*EnuuGzfwj;?Gubgj*V(cD*;^^sKlgJR)- z!9P6gLpx%$r>&mW-P-){_|N<QZvG9-VE5c!W^;1c!f(lw?{bTsPVWd5?dbo(oO<QL zor$f_zPgH}6o3EF_whf2<opA{%P#D_dfH(7&X)QPU#9wykVR(l&+8}NU!`L3f>T$h z=0uHu>r#((mwPWe`?6j<;G3O(_WnNxftR-nI<m{3p15+SN<B`{G^e{x{{4f%{e7nn zJeU`Hw8%Z>A^Yk73?d0Drbs<-_u4X>-}O1~*53=S?^%C*sa#vYSJgW1H8#`v=YP)I z?k4!3LHp0Tzf-<uGUoie(3Y7o*Zy~>&>}n5=l^;X`LgxIA8!9t(AakCKSSxIzegVW zuVP*DH}rh!OhK+?-~BdSd3Ea5l@Fhv@P%yoP#LS@@A1@L?Oc!ggQgd5^^Xj1I{Hn> zVbo%~sJ;A=Rdk+FUsT?nb5B#g+|XF3b9Jt>*C!K)e}Q3+5g)iV@UHZ@vRWhH+k?0N z!o^qHom^M!Y|n2RX}0RE@$9=M(_YTVd?dVJ&wR7jA7lPAs0iOQy()gg&+awLj(g=n zXB`T{gdY_MyELjaEcq4~7JD<@z=<cLb1M6!J%=7F^xOHFbE9vEwYuCy&WSr#b8Ir@ z>4>l|H(F~k|A%zP4#xx5$}OBM$4eNCD><CyoLAmZ=l&b4SNl-Pd)Di|>V<;$Qyxkw zKl9>fWP10IfB)RcCsf|ePfVI=f5nDpjqKBeH2YIO%U{fTChM$pv;W_<eT)72CRRK9 z#ERETZmQaRH_P@`F53)C-)5EcpK{?jJ<%Fx9yCsI`Fo;wDN||r*YJwl2ZT=U;E4FL zT4uRqc#VVM)Z{~UFV4MYP6_Q4Yk85dHQKAVXZGC5Pxt68NjY|kqhFuvT!$aul0?Bk zNxun~Sw8=Hq*`3^%I)H&&-L#_e#NOd-i?{|Wy*gB?e#g@uO>3II7>)=<WJ1eKm1F* zo;x^TcJ~LdinxHMiQDhnUD$J6<I3ez<!4>yi2m5-<dUCyHT-A9pY$(LN0$e`nY!~p z`KG*O3$0kJ!{$wDY-11flkR`Fs@LaowX(tE?>!8&xINo0)rT4y>{{kjtGei@Nyz1E zFHd#Ju$()2$?qPYgx`so?`A!GHG9jASj!u;_132r&0#2gC{nG_!fLI=WGub>DqEt! z+ao+8o~&MKOE_c}^S#;NbIST)%<6l~%@QlO|MOjN$auMYNW$XUu1RJ~Ia>=BMQ3?z z43!nX`KbPIdEUv5vaE4Uijm7Fx7@f~kYRkYG|PU8+bR2|gZ?EyS(ze_YwT_Q(6sc( z4aW^(SKQwvvlMJ-JaxXMX^r`=#Ksx+Pn`bLtE-2x@9<al_jWLvc!E)w@6xlRV`2Li zvxn?F#{45{*DdEqX4~4I)PD+Be>c&)SWWoOTUkHp{*pL}$L~3>Zdv?CcW>Z4!JKm; zLBb0+AL=aFRGsm-<R+s~$+Lq8tyiagn(^S@%R`Gdofm3xy(o7=yh?GZS=^=#;U0mW zdrvj=c75^N@MhTyUu7E|i=5dl3I0<w-*w%8Z?P@($$BM&!<&@cPS;FPbLu=^@<4J| z<&PY>fMU%{jGNjeIeSWOF@&|0PgOm^z<H?hnZT{us|Qc137A;C-=t>TJNed2ySzZd z1Af~sz0`VpL#sA`>EDVImX1d~6%I0*->E-j9Q>a_bm{8<3|%Z${~2@_pAr!1*i!a; z5C7!@N8W99{jHmk*SFwGSFyDImg)N=W+tYt+p16+e>Ho5;K2i8&BEH=5B?=wp1RC` z*X06swSo;b4ptqr(q>rv)Go`Ia&BU`lgYLe*5~I$rt6nPJ$p1gF_edC!5ewkWtZ92 zQ)I7SV)k*el~Frh!rfl9XVtycf?OXriECbzQID+L_NK$eX}=<u$4&Q5X+;Y(zc^{$ zOurgwboit8sU{}Y1w6WkcE{Lx?6{o#uyw+ER<pMb!DiALZ7ZI}S}9ts__eS*u}W~G zPeWCR^_3NT+-KfvN~=#g);(24(RQ+u!R#A%P1?VQNjl6r_VTYy!Ja+J!Sb08R%Tc{ zSQ{AlM>*x;n`Mi?I83x`iMig)TT^SjLSI{c{auYkT^cK0Me6=D*q^a)(YwF=?t{Ad zCF@VryIf}|xsiXPLR#FxkM(fb%=qaC4=&tZ_@+_ETqvb!Wp-PX&!pCaQ=*Q$#`F7q zel^4UZjmyp>Dem}T6Bsv5Accm<jt$f;ke5!+!|1@EoW2f?-gIPxj5tEYIvNC+(M71 zuujhXrSr6Mn!W3#1Lo1c*Yuf(8<*<N-QmCUX~dR;HY+DAYZAX2y-A3_<oBoEi*gTR z-=4^bl@N=~>kH05;n!Z!^LzF7DNJ8?y<(SkI=%6xq?X&K-g6=@iHRpaq&;L5JbHOo zMWBC)d%nw~>Y^o6x%856TI~1sJvK?ij!lt4f8rE{KNETrI}f`4XApe$Ai;_6Kf`4M zx255{>ZKD493%ck&;D>rjXAG=>iN(18nOHRnFQqoJThi{*lEpjeiiSwstt2~p2^&{ znx*b4Urv2%%h@PqXU8jBmbDyn7udC>d6vw>ACCV2c*WECTo~_WI?GNf=VE-wbjd#C zz~>$Dso7iWR~yQx{n0dS?hn|q`nUDw+`l1Jr^Izn-sSi=X~{hYZl9C3stga<TfQtz zRa`1R?S-hKSd(ZM-ys!#re#Ym$UJ`L_R67mdpOgD*~}$3TZ{5K7p1f|w#r&KR#q?Y z4q?_1Ql76>X@0kIp59ZHH9TtbJLjFUIHkMsxJKlCmne(YrTH!wqy*->8m!u7z4$?1 z=rJ+jqf_51ed>*!e*JI@2cK-nwvgSG8rvGm#QlT}R4qbh7B)1`U&44^)$zuCEv<}= zZ~vULpZatEq~w$ve1{Y!PSpOi-2B7)o3@Lkzemlg|D*ZFuGMzNkrh{F75rxi^^Un6 zd&z&173(j*rEBLDrDkM^3o85x67HKf|5lWW>1ChpL)Wfs*&umCSL}7|0wKR;tBb^D zyR9%zWaM5b(7jLkhSaM<u1(i&ujtf#r)$=v$Dws={;Uv__tMMxR^Klb*>==|K|k<r zmc=VZkCNz%h6j9K3ECd|v><1VVB#$S5i<tC78OOIB~_Xlf;ScxE#6gpc#cYg!Q$nr zQcWt`TbR>}0{TnzEF3&`YUKp3Sg8Bt&63qDp6pF)EQ4S4pOl+gU@-Ty+h>E7eBy3z z4l!Fi<tcN#*mqPg+ex&~V9UeF8d60a89lli8Yk^pb<l#@-Xx6gwW?5AhUQs0$-ADt z3t1ArMaM?2n0Z7;{;=l8uulyvQI`JvEGaFyyDEE}GA8fZ=_Iyn_5tyb#uI*@o-A*h zpgwhlY?$@psl^9^Y{LYn9{;r8{BFi9-*czmJof#pljjrN@-}UMN72<QUsSV%?%dyW zT`woP<j||Lehq8axGHbDT3Ksw*?ekoh*w75Zavu(QTbNR`b?*e+*oEG_@80wqG0)D z@8oW1xYw-8u5NbU8K0MbH09v3YyLkr7O!C4D>|z{eA6cLr=G?IoxIY#7YeSiwKX0u z(Kis>m9@lZ<%R%9*F(S4Z<;N*C}gx%KH}eOZO@I-ig)zeF0ZU$=V;aPbmd!X{8agj zZ7A!`mrj-rnJ>5ej0ipXG|I+m+b+qVQocZ@!c&EXH*{A2{vokt!6R$d!cCtRd&-Ac znMIrnwrV)(;HK3ocsDq4QgGwsud%u_Cd|IXtJ1yP@8Csow^(6rRql5^3=7KLPTW{D zCx1If%(@lQ6)B1QAunYwPMv%4RY2>7*1W*}e8#CsmI1Y*Qx7<Jm1_TIxMC9fQ9&Xz zKKHlfckQ=Tx@^y6QkMBGG)|tn)VcBH^yHhCYjrIhckN2bH3+|XIEuw;@swjPU!0$o z((-I;`;=!{E@%IFu2s2lSDal&eS#&&B<W`E$i|H-dryb^?AmZ^f9R@1TcbQbm-z`@ zOnK-V8|ItcV|wRl(6wK>>6yMy_ryvTTwbU4gyn9Tc)rh}t7}Z+F3gL%DWs-S=5oAd z{g#cJPW5!_rdiI?*{ZIZ&2D>EEV<wFj)>>?DL=mZ?J%0F@^RCZcAloN6_@$UD}}jZ zcJ`Ut?A+^W9UdOozf5hG_|3z~e%p3r32m8kSH9youd~F|HIH7{t7JV3+@j3&>QBSk zy9NjLEN|Pf?dfr?d8skGE8M)cr06W~oa0nzux8OwkFr0CrB`KE^DeZ0*6J4UZlSP1 z<9@AYWxj#Nb+1nL2^lpAEGUolJMw8SLyOg&U1!!>_Eq}s+`_`4+`7g^M!n?dn^m?K ze=f-1b<+K}w)GC@4@WP$+|LV}Q<wIsJ<^yx<&k>grdOAz@TQk0YJc@@Wxcp*M_|df zUtU7uC*AY;^<310uFebGbJw*?<G_>E3yL*w`n~$Vl{}xrVMd@`=OO!-Q4{K4#Ag`q z|L~vTZtc>K{~5mazuUU?<$s0+y0P^WoWuV;T9uvlY7ysI*BZZh>$W?`%wC~zVpri? zMv084wnuNxbp4uNayF`1S98{X27_5YXMR>cpro*}R4r^q@f-&Afc2YSN<NvobfGl^ z*X871cApdnZD-GoKT}QDtckt7s8n`mp=!{JsPk3<(ta0uOdrYKHDP?X<kIsZv3XPX zFVNLh`>myNZ`$36Zvu0E{AXCP=*8DandQvcv7R=kY_m(h_^F<-zG`(awDw}h#$aB* z!Z4ea*?#XNBc4jnGxJpsNZ=DW_i0XczmB5q6^_8t9tB}vmFP{o-P`;`YA&y-QRS?5 zIk<J&R>wtA#$HByx@32RmpPr3Y*jqmqb-_bv`pm8(^8WT77ejO#$J`Y(VrIl()k|o zH1_n&i2IvLm&OHmNN-Vg$=TO^_Ln-d=FL;bUfiq=oDw==LXPO&ewS0To3)pPv^BI& zY2cmmxWx79)rks;QD)ZbChs~V_-gT0>GyvYb!q%K-g<Q*Lu~*TSB4Mg%KagCZn7G_ zTJ@jdr2kp}vqH<9gkN>KO!2Dp^K(roj|<9M6T%_1XG2SF>4rl)**StZR=ql$y<SQ9 z)t)tvQ<n$JW`!+2wqS493BkJ&u9rJswiq5b)t#Cu_mo@uu24t7uIk0_M1wmEVxv#Z z=2p7CV^fT6;2(jUMT>G3<tIe6+}k#5S=mFTyM_%dFL!Qb)>y>Ob-iinz0R#B&o}L7 z%%68EC)AYrskw$wMVO38%Ix*g>dJDfbT;v>TlrOEtBkhWKZ$qUE`P4<%Ku(?X!aCF zZs~7v$(v5G)V=bQ<WN7vcqf)4<H&lW``a5zHDYoW^|9SkWU*o5sQviezww`^t4N^x zArXzKrh*%t7%i<A?`l#mTef@klt-o(Z#tIm`Wrsm%qRV**orr;pABZGuo+9lr21<s zR;?2|^|;ks!hI9>lLbP8(`MiFVDza-&6&&1Cosq3i{C4mPd#PvcBlADR1`1WDGO8d zUeol@Nlkp$De+q`9B(WyRbsj;z<B@gsZHwy%;F9o)|j87m6WJ^JN47=hWRdb86xQi z?tFKv&|<XXoswi3;IL)wr@)u*T38;c%AGo^!OHPN^jGbHrYt#Ck(`dHyEg4QWyiZ| z!@rVs_fAW)mYO;+9Xi1`u|%hhEx>Sjx~|#PQ!nS0`8DZ?C2KZqGHS_L7QFkA-0Ol( z4MEBpiyYtVn!IL?o=(rg%g42sZ22qFp39uNcd}C{gIVZ-gAShNdEs-OZ#pNubfGop zf!1el=4Kpf=bg@Z?$q9=wPIf7Th!+Lo#J?Baj=u|uL_ozZx6MKpAxp<xYWhq&UwXi zLg3fvsLJ2%FJ>$HpY=L;H+hp7_bo2j2#v*8=5jvi=MS}8_1;Z*Q~m>0{++FIs?tTB z?uTsjI9y7VQ@2jo)U$ftiL*<&3p%9doxbryq{fM(_PKg(z`0L5wygcsAh_$*ri^F8 z$uokPl@DA}j89E{*Sff9U!#RrgV;Sm4_E%w=FQV5)UEOom;L78#LyRfx=fLKBFoxu z(F+SYC*PFJFWR&Gkh}J>n*j_zmxs=Dvc0f=qc2myu1!sWJD(ri@ldLop?6y7w2BX6 z;cr?j<|uH!Ti|!l!EgGRLq9cy8(RM;%@aNHX6;RZEr%zbn#q3n^seKjQ|Irp+UeV1 z!=<s<&iwcMMcf?G2WrDC9F$*dk5+uM{iYD7v|_?qRl(e=zZX8R+h_568^@ZW_6<Jm zF08h;7aLmpgger7r)V-K@3M50o@5#Ra#LC0677cVHwD$rgFicjg~nbK<~SmI@#`ig z55Jec7GBb6U{FlC$!f+K*CeRs5<ex?Da|sjOXW?Am6^-+5VwPodlr@!EU0_+A)sRq z>)yWt4QsWprXTP+;kUf+KSMcV&c@@dcQ@_iTyZn`$l=>x-S7I^UX)`xx!|0tM0X<h zDf_n%c>4ETippDWU+{zf2@8LVzB)&PleD%w#|fs_MQa2b?q2x0AaGw^&*~rN8{`BZ zm$-j(knm};^edR0_RZlbQ^Kv+OUiCq9`U)$!M;hzvgP0A%7>CYJ5!4GUe56gm~1}f zxY^n}4JuCr+AE?;GTYvTOy22k)4wY9{8RVU-~7L6Zul-c&Hc(E&bww8)_rCE9&+HJ zu*TH17Q=c@RmM{}zn9$;_K{&t;ws(V@_OOx)UAIfOg<SI_+pk)fVgE`*wee0m(<>5 znboz+?o>|a)5@}@`FVDatAd$C3Iuitwzh72@q2NJl^e_YRizhMD|hQ|nq88AXnQ_$ zoxssOJ{2N$4}bsGo4jkMYfk6XIwpqwo1P^`m|CxR@}bAf-0kk<fZsDd*cVG`G#zf3 zllf36)x-IY_S8UQ%}JMcnVfysSg59$xkdPHRM7^Js%34a+tsI<8*x~;9XjO2E4;sS zRmQfTE+-$#ol@qwp*G>Eka^h6%CrxA);U~bV-i|^(Tvg0XkSMDrrlnfzWZ+6;HS`P z*LjRRMM`JoSD#xcBAgae8#fs&P>+{z`#aJ0-^UN^n+#9=T$$Ntw5vyrZBNw7Q#*YR zm<3q`Dpu}Z$SS=s_e$T3LpwgCI83qgxbkSzo>kSX1~v*ill%8;Eb5xScSg8&>5S7; z(q5n3WDxxHl*6s^ph|}Ym$zOG@_%^9;`cGfL(H91!bJay-C1GKU$kW6q5ljo6r2lh zX5ODPm$${&%TtWQc}L()t{t3vowYR8P9?u+WJnTTW!>6&NZ?Y@E|+^bUj2rLcAo0E z%c1m&d3#ZpRLy~yWm|5o(75xDVNr!!@PaulkAoDCZ##MY@gdvP%01@3w+>oqhu=AO z`ogJ6oM$w*z2<u8S$8<Kp+DfD%c;_T&+ZqwaC{ASdvQhF`*Di@t~;q!I^_;Nr<B4L zs;0E=ViKR2@<W<ClG$M8n)eSC*9NT<&huhno%fH`>ZzCAiaY-q)Ht5msNb|apu{4r z?!6(^N^sMp_KPu!sah;bkNplDy3{uJDgTa~K!Z8buX>agac!DY(6U(7zvNY<Q1xOa z^9a}Ioo=V}5*PBW3=OGXp8Q#V>9lXB7<hNMi05s-D`axaFXYxECqv1YKT~RK&%OLQ zF@bl@vcj9p+5TGR)c)!2i8SR8dGn!h>9*f%zC<jq3pZMmu9|%Pke7hDmi{5J-!pTU zAKmo0bv{GuQ-?PjHY`eINtAN>EAm@y*A~rp0pI;jiTw?`UBMA%z0hv8?G&a;m-!`D zp%WF}tbf(PaW&<k^y1GE46#0}x>}y@8mD%+rWtH=ziEE<(4@<)6B>N&PA<A0Hvh;* z!`h4OrknN)C#+e<ExlvSxthwbLci$+V)tjA`ZMK{jLZGj)QOwg<zCxPUchrx!1GjX z$!)P<FN0m3zPw3a!<7woxz{W<D%ZSzr?uiK|4fIgd(?w&%q*&wt!S7d!*<rp$9RIs zr1BmGpN5XUWbHiB<zM~HUoJ_syu_|(`kz7gGFO|4yt!)00<HrVTu)ZKWk0xC%SYPL z_hpaf*2nK|E!_9wert2~!oox1j}J}VuKn_{;N84EdsfRn*N8vN?RU84*xng^w&5?D z7;+Z)UToOZ)2gw!ccR<x)y%D2oPObZr%%i2ZDUeg`((MIO_`HNQ0VT3wpWD0wtnAq zEm8A~=Aqe6r?>gG7Q9ikN_gnNviQ#Ol7iqPPDWiN&E5JMiky5Z9U3lgLX9l_rVF+* zu1(0gEYB0IVS4nD?xy7K^uionb0&UnugQBi&B|W6<;1DX{i(}de2L22`(euoQ6WXs z53|xWmzA|L)W3{OJf-NqO68kxyXl+#Yu27JJmIv`x9x`H4dvPfpVF4bLx02m=>IG* zoEdp%?leK>O&pvp+`AdJ$*VRbwC+2Vo)j=$P(YZcF(XW9U9)rVufU~CPE6&?v~N-T z@Ke>oBvf&sk*wG*Ri7z0<^?ZwKKEqB<W0HX-|ZC?m+ar=>nr)_#rc+Ku5*!3B{gb~ zS1)=#_i|cY$CTHLw)vT#QjwgJ@-6tqnzWaf9Ok>+*4}CMkmpCDNNS|iY|Y(2Sn4uF z3umic64=zCA-(uB$C)>aRGCr@L)^KT>sCzF(7#%@a;I<k*-&f6x_=A@K8QPo&Ap)Z z!Xeh%|7wJK#5X^uGUo#p3j&JRTqpCd)$nee9Ob%6*x`|IQDb{wMO4_cVA)8Gnf{wH z=ZE-y)Yy`jvz4{!)w=7q1Xmtb-o^XUE?^deui>PyIk6rJDO&3q1Me(0d&oH3VW&gP zJz+1_6;ljmB{KWHY`<u<oN<ck-N`QsPXwiJI(~=!@Tra8i)`#xWqvrt@=;Fd<$?xF zC)ppJL7DfbJZtM`=6d11-?em?&>G)`A(oTYy}j`2gMG=DHMx&l6qn1fA310(d(FLZ zSIcR&2?8o=*0&EH_^r$xxYUJD<j+LGhnj1DY6i<r`Moe`+VABaHp}HxKToaTx|Fwa z4pVagt9j}nCE=<{$D=JDI!m;Lt6P3%x^COx_FLWKt5a}c3zJa2i%#$5X)}66*uTZ9 zEIVIvll{dE^`c<*phnGOolddBs+k*1mK}IAho#(o^^|w}f}c!#x0RvnaLU8E(}R;f zZ@N7DcuLZ`*C%ZDUh5A#K4Hr_17Yvo%dD(h7d=umXfW?tCi&HgM|;ZkP>%TdG8$)e zmg^a<vT+jQTzTcqhOja@d6!GGDmVHU^o7mny{na=Z}O0PcEPIRZEm`|RL^NNa@{*o zz3}qGsZ$NSk{6ph3BG(IcG_s;Bh^H1dG_R1mGc}2&k4(z2fk@xk^K}Kz0ht&e1mYp zH}{)@wwM0~G~Q%qn&VV^sATeNbtl!ZVC5?d_1}a|P&E-M^Y!&xdZTrvdh6My<h2`o z>IDy7-t*M_)w&ir;o8YOk6uKwyipGJf9iPf?&VE$jqjTIJyCL5v8!~7d&-sjt1{Z7 zHF#D$<d7CE?GyXG?EbFJlk+Nl_>5+9uWq?4+r+x3X~~A43lvrEaT)KO+-cXj`Nb^P z2`@{6Z!F9YW%#wieADM;cg^%uRn$`Md1Z7y6OMZLy5+W7$-LJ-HJ4SqE{pp1tTkl% zB)ss*gO<AP&_&kjAzvQ)=Pds#8sRdlZiU1b$B)7q7F$go8t=;YJGoKAciP-<Q?8re zG`$|Br+4Tw`_v@{Tl_af`R#kMSYeSOSEuuW6qX-(CvK!H;5uI_IAf|VtBt$nwJ&bE zhdM1cSx#Lc^<7}@B|&+UcPsZ^RZ#16IIa=ml*ORP=)XzK{ad*1yVlDhO-oP2GHZGC zsO?-i)g~gAZ{5>Wvw*fn4UtP0y96^GT9^_h?h^7mwI`Y*(XH^olM6F;RZLwY9sWSv zef1_`&E=c6bFkX0*iP)5Cp=%6^Sbo9Z7t7D8XE-E_vp4xd(lv~FM##Nu69$7drsm{ zIp*ojew}ir%(qo6s_un&)ykaOV8^eA65eu7^u54bqE%jUFg)eZ%NsdcetG>d`{Jwj zeADGEk%c8rGq@b4US&G4eA@0!1>01EtXHrbpHiw`<-RM~sp<VB7VE23PlW@1>3TKZ z5?jE_%yB7^G56Y^g&{M7lg0e@op@Z5*C2RTP+jY(fQQ>D&Oog@i&OhfE}O@dx#FqW zj3?_?F@??9ebLNXv6Mlyc1?>@rse`gp&m;s{**_e&prtn38<R=UeuGf(#1>2bIN7T zX=MQ&TF*C4l=+c4TQpr%cxRx&TwM-kreKe)C!Lk2s#!!eSri<)()YOJ4XeJkM}NxU z@ULo{Eq!~}2&=SQJ99EDyD}~>(T0hsASS0#@Sv|+W!#C}(xqQ~MUEU%Yp!Npc55=f z*Vc&*4JNC3yG*BOa{k<Ual=hX8+ESlnvWQwCS5#LGGXqOCqBC;&0(r_PO#zJFh$kj znJ~*IuSVOe%T95ZJ9<cK6ly7YM70HXTAq7hb={FsX7Q$<O4p8E>N%wKJ61?)L$35n z&MQ4y9d3>m4(Dam?TwZ?L~Z)d5Na}aV&}sw%?ZM->QiKb6;?{0DlBdbFzOTtoFqOo zx#beqfm5YZoQ$}3S1)GXRNQsfjJe!jvFqcHsrNO~cYS&nzDYDMIHC3Y>4Sgmr)D|$ z&k*UjDQ_`n-MULHW&%^(xGqoFxGVp|ftPbHdvA?z5T7(}K}hJ&m|*Y3oQ+)Wi&Pe~ zPkDV)$mzR7=OKlcN2eWSEP0hXb<L~PZ2eVCcdt%fD&5Lzbkk2^{l5#jZ)UON^_T^y zz1We;k<XZzYI@g3blHD~S&7s059OJ2d)zNM@y&O3V&?5lvy(S%FD<@ba>KWYN$gD{ zUqCI>Ws|wrW^OMrtX8YvmC?J<=tZ!&Z_DYV0HJkTHMdW-S7pC6>!tQh<4dBAV*a-@ zc>|nSPNjaDl`J6Eb@_|W{zV2`^F)uGT%e%NebZpq%L%KpjDo%LubP_MsGXd0h3A_u z`xS+?Z|2r1TK(>DStPddk+4tM-Fn_7HP>uIVr{0ao}$x#*3yEdEG~WKsYAP$b6yv< ze<FP2^MO;BjaRO;JUZDi!<WI!yvXQM<stEC#o2eXFMYV7`L=9cLotKQySWaDTi2{f za#2>i7F8N2E2EjwBl6{?4GVAZA+>7tM()5x0aI?zdv$4Uif@ypwa%$RMq%q2QCE5| zpYDGa>B6wcdUdR4&wREUH#xg?zWMq19i4U}>Qca#3KpYTsSY+PVwOEvQx*}_>)vv4 znPriAmRcBJ;1+fFRho}#MZ8K@GNdSpCB~OBy}ThFZphIYt|9O)@KlEIq5UOh4i!5N z?OkeWbaKN1;o3t}r~YRMvJh^$_^S2l_8_OWc`up*e1&FT>HXGXEB4w)@YSBZ(?YDA zL_RIK+_a|BUuC(~$s_I>^HYO<uGp1WzDJkgb#colevX|Rzxwmp^FEtitt8L0s&V^r z?MHJRUNRgAt+oug`&jdt*`}I_8(o*rei(1aD%R|fdp^Zp*7?cos~_k7TEtSgOZ=eC zqAK5sJ2`l53)_#+z8V*L_vM2en+m_oyw^AF;%^FZRfgv%dH5R5SkNGH*X{<_Q7ccb zgRWZtP93z}u~Yl>ueFwjlY|XgHwdShYl!GIY;6)}%$(u7JVi^rPHbk|lQ&!II;NK$ zx|C&=9AwTNxHjR5`juxt*K{uHn8#moneFX6fmdPHKRB8;Zt#2Mq~JTzh2M3>L&YrL z?QTq0il<HCJ-ue$^(>wi@fi`Tr#&rcUCI76ILAvVdCCK~6OEb=)_mq}v1*-c<vdOH zuC%&(Q^3qH%@e20IBo@RJn63%dNRUqhFh(0OIk>bzLoOXDLI`j=?!yL<8K;>Em9ZM zXn1>h*?$HV$2ZNnM=!hdo#6Yhgm>}@g(nJ$vs|i9GTPp%=iGGY?r&uku63R7)*f2* z`uy#b2eyH)m{=5en=*DduYPQo@ZI&kiN^y4&QtkULzH)A_ioc#_h5~e8t>8R0bin; zZ4w0n@{Ja3_&7y#pQrCJrB`>BMR3m(+$hYkjp?8yxAiGu^PlRc`;t>UvtxZe&3g3k zOW1@x3l!sCv%Qv4c%WPI*f1qEuP;Erdi9=XX1*JRQn_^&spQPmFFaqm&0qZ;Q+~s0 zHr0hE<W>I$Zms7NEc}sR(7Vz>%);Y~^HMA44Hn_jhxl5>d{(#>?7Qgruqpgj>1hl9 ztL%A8*L{8m8c;O9qHF8)Vav=9vK9F=^#3#Tf7^KJ{i%0c;(vn~^aR#RaBd4e(Bh}e zdHK-fJ!*1kA_rW~a~(C~dwKY-4c`f#oR!(9O6J_m%WGs^<yj=a_1#9-J!IkC-f6SH z?4B?ucb8Gec2={{CP^`^z@U_Z7R7?~HtK>EEqcrRo~TQISesI_@~rJcyXQGdYOjtb zYI*+1-SBMbx3;a@*<|$EX5TveY`G$vOTi2dMUJoj%r`C9S-8qJSt~!is>giQb=p~X zv4{_kYGfJIL!vgBxk>M`4OW?=z%*AqVVi}Pg7&{xYff5(ml^eV_04@Kw)66#Qqf(U z`7-L}5jAc*Ob_v&HQ9L8Q`o%a^Su+>Cd@2aKEpkG3g-s(O^r+*(X!Jlre*{>PAP6p z@(Z8M6dcLOJ%#Zu-}1<YH<rH_cy(?0&*0ka^q=9r{VJg}on_Zp*{014oAH#f<yJy0 z|HHG5cNwG)83%69-^*N*^IQ2J|1B2fD^V)TyVCAn?hjAh_SE1?XU$)+ndcJozxpk4 z=LiXC+9dGR>4n&8j=N$LHk1dnZueDrYBbI4-4zRN=Hgui1(!a3_n%cR;bPgYTP8NM z*khLaL!TMi%d>So{rpNV)|7Fa{NgBFx}Rg(A(Kg|zRYqf`oH_NExvR$==+DJ<RwbC zPBe3LIbKc_d^Wv)({F3J3+W5$P6!4zT-f9?Q^I-a;ubBFyH<Kei?8x-zMFUPm;Onu zTUF<loV(O|XS=}SC$mm|@y+z%+@L1xS1YjWzNyZ+m*@H;gIi)}v{-G_uy~i8^81ip z?{8%#u?1{1n#2~^HD+<%6?FDlvBW~?<=d899?I5-E-SB)U*LHBrWwnk^oy}K-1Aq} zPLxsWh$`?rl)=)YHeKd9XY+Cn&wB!8DJ-vC3KlO>3@F?oqc(xHbwcTG&7aC8i55y+ zZB2~7*6KQ4Uh~F$S7vsUn_Iw+Lay7aMi1sQXNFH?>0P&H(czy`y+0T6?9smZ?cf)U z2LkIZR{D1M9&ma&-S>0MYKgm&3W^Hq$2XOn6N}!}r)Vls@<Ui?{w|{*{UOF_t(QDm zChqFm>VIf{h{nF~St~Vq^nccBFOQvWd+n6q+tf3$Z1)dHv~p!~lr#%9*euhVBr>U3 z`=qFd;a7((+gBTF9+7eI*Zt}s&L~>6bm_02`b35)A09+`HgDo>I~*NwAhN@^v61r} z=fmp<ePvudcUY^*P4qqcX4Z=zmB9vfi6yVi7e07a!x{5Kf~jEtp#z-P9vRHdQ;bmF z_e!^WP0!lzE;}!*-RPz+H22CJtvQn#g=a5N*saZ?bnR<%?)A{cE4-SXJ12KAR-U|T zz1r-q9b2HP<@PfRE?Fz)haB>Fw@=wt<jcK8v3sB9TQA~&<Tt^!Wm&tKSaZt<(YY+9 z`}f~xWW2h>rAm2)^hXZ`;nXW{<5m_PD%8tVU|RPmq0HZ~(!ugFgZ@X4*P7?#I*(ev zn470)!Jq0GRm67IJgTafamhjPs7>DW!hXTc=VqE`ect<@L7?~3CeMZ?4U4`p%1%%c z-W7UxldQ`j$qlOR;iY-6-g7QmcS=>zjjP1<RAolS5zUE*grzHT9_BMD|7Qrg>3*St z(^@Z8NbTg^)JSR5tWuM+-`!$4qKwwOh{!5V7xSNY@?2JF@5GZIm{x?%UaWBDW@zV> zmuzgpkCZjnuTz`xuVKsAS=<hj?*8;K5t3CYbEpi=s&PCKwXV4M)yie8r`ql&d}YbI z$S5o{+q<;t#yv&e%O*Z`Y5JQpedc&XNk6e!YtFa+eCuMt%sFb4kL1mZn)i}pU-fb; z_AkpV_kUZyWBUd_^_$rja}P#Mny2>it?%)#H!a$Fn^+uLvzuG)x_yYdw4ywON&aT$ z9Yx<Yy&v|w&YgN^Moc1;&a9WSy{>K)=Uif-9U>_HS8PRgWV!y9ZRsu91%h^#tkP=Y zzmy#Bt`l(YT{73=D@VQHIsRX2lOpp|{w+#rU3KZg8!ux$?US;$r_BBQggQQIwg>J? ziivVRDYxwASxYXh!tSa68O*|GZcyKKrLb_$Vxzsm9;;ik^X72gSo2wH;jY5WhZfR` z+XD8a`pj7#8ydMs`E!KzdMj!DNk>}3Ozxd^eiOLykk;p&9}F5){t9;ZtI9gD=PWd7 zadDk;!mn}9+BIDYa_ZV#4=ThpUv65J(jZ_cZd}4UM|@i1cE|N?R{1ri8J55DE;p6j zeL6d@Z>vS-#Ey80=~9jjt9bWkw|=zsI~{p+^U=#kg;U-t_=$>rcIUiSZ1&Xl++~Ar zW!8%>UC96B6uT_<KZDo2)vF!n^98TYNq81qoY|v%i*?F>h77-3A2%tT{rS*BGOFxN z<GYqg7fY9L#IoeHdR|Di6X<BjS@NGjfbECXrR&Ml)`(qmFFARi+ja5H47Q!uHm#_N zwY{tzzWk!)I)RR_4uWTvMHy_lHl^`UE|WrEAn$`Ci-RLxWm^`8mHe>((Nb!@;jZ+j z*5JDmB|i%Ke^ed#8@80?=6{AOf(K?VyLy##qRoN>7lr?NC#IRb2(n(U`N!kyX7N)k zR(`UZbmxiB==rdI#hbaOboGmQ{iJu~%s6rR+D6~x1Gak7vBFo%oCC~s)>tp+sujL< zxqJCmh9@^%A75BFXOgg#-V&jC52{;Nr<TnVP`bVF#TwE745>DXY43W@r~a5F<~P$V ze(8n!)WlOVYjoBuTegt9prdu~#r>rPkF}XT%+)JARWN<VH*T8+wqZK6qkX4ePn~^d zdE_~+M~i*dn@HD8J$hDQt>2s*iwsK+#d|K_bS7r4(!&t*{Uwb3*4uoSOwQJ3mrAr= zq-_4wZaOpjCdPNX=UxOH;&c72aGFtNgRZR*+kXZgU0LC9#oGBEL8q4Z{#*U#96!T< zhBHy~GcRvl!x434UhJ+)H8a=Gd$&ckWlm1{Y&-exnL}6h@h-Hp^q*j`U}n#X&zEH< zD&7#NTjBe@l#OS~Bc&I2>QnNfm(~9X<a-!*p>;we=S|H+idkF^$6g(Iw>8dI^oZ_p zj?S$MO{&$r4V;uFU;pgF-FsmI%i3`7*&j~J7epVry5;7&s9nA_!o^cpFaOvxt+8~4 z{F>`^(l;Iosc+)#@04_NC=q>f<?^!Xh4uocHkZmt`6Om}m#ldpGW{gW)LQq*S<Wh} zzHZ&*bLrSO&Ynw*8+;>ur(Ki2kZ!#=I_}nthx<7=|J>1a&+@yfaDUUr4VNBHem5`f zo7KYKYhTtcdR=~`bi(}hRmc8ZKFiC*^3dwK?=2>QY6Y*9T}EreQXSI-mF_H;pWl{R zRM7HUZCR78_{}*N_eZhcS@hmBs8M}mfP!1FV(b0co2uuS#zgxX^07}{;&er-CU4)( zMV=NrqHfhxPFpvV`PZ}sUsSV<R>WuKFdn)lELfxK=ASh0pt*Qdk74)Xv<}C0m3bCi z-yRCs$((=F?{S;!&zi>Y{Tu@2zAFyt2{@X3n3Ksjd)})US-X>mR_XJ`3&|W8ciymI z<D(7C!TS9UOP4+|zo32joFd=EI&sgPdaRx`nyh{6x!8{iy}Y3#Xn2Yz=aJ6JV!yrq zGTn++u3HW7w4Acaf7RGK?QP4g4vU^;TiA0C$$F`D`s-wx3JLcKWHJ{WUAWxiap@8V z<<GkA*NTI~Ry)^nUArv%Evkpbx;Q1pr&{5CdqY6MM5b%4fiJt&W6$ROUhbJ~a`VeB z0hQeCseF}x3^!%xPC5OaHB;gq->U`3W(ovWFjwrlvP96xai;&PtYY7vr&zWW%*vl~ z%VF2f$QeHu^JhCm^~$IIwwxhZ_^`5cOQWK}-d_m<Ouy~_GwhmpSv*VS8@uL~Z3@bM z^A`L_DJqNb6`5Y+P`#LsY4hh;-^)4Qj!ry$I&-$(vJGK*?F%@!Y~i%Ms`^e$@acyo z0v4yz<}I5&D>El=m&yGr7cMi%iEb%n_4#|5=jiWsGt1wss_x<Ly|&m<XQoowE~A4h zlox9;Tq#cR`<z<1;`VW^b>Ey{%)67YCS_Hl<MW#)EB*Qd`cLxcOg<#UpL^LyQN48; z%d)mxuLQy(l-ySx)Yy^v>Q%RlS9_L8X@S7y$}<96woL2u5t8Tjy>>pR_;%<|&UYPm z)MpgjT^$l@;}$%-uV9|oyD1NtTP@s7J|t_sU7_46#B{Rt&Q$Xq+$*@9va1fvYO`M8 z5;tL%_x%ee-yf=On;hYM!u5cJnVGfwrYl$SW_z%xZ~3RUV9P<dmF*9^pJq;6<|xEf z8}dXXGr2%v(W#eD9TXgPT~?d>pCLq+ag)xjtzQ`1-P}$YElXHFsa%<{@&M!Fz85D} zv8*-ZZTx#-P21%c!tMz(-my+NyMLF+2JS;FZ9S8x$a*^(YVFfo#d<04{-olS25;1l z=B(V)@>)jMV?kQcyaevU6GSc7s+>I;)$&q6Mr)74b(5m2-^$_z1Pc92WJ;EAdS0!N zV&>w+|H`;k>9OXa{|v4bg^ri|RIT*3Dp+n15nw;DDs!gTUF#oJQB$&ZRfLK)#jp71 z&&_-3sqLHkXLqxhqO&=se7h9;djWIu%K5ttKD?arP%mNf-OS6bf1Rew-#UH9Tm2H3 zaM;S=>gY{B7QC4|Sx<gb?yRc}QyvO1iAtE9`p+Qc-1x<BZW%-L>s<zYPZnJ>_6bp+ zT5EJdFEskA%d~c;xdo36=Dc3?`pK!n?^=(AR_?gHiNSn|uo~~X87;e?to@M`y#9vr zM1`YEEvnY$T1ar7(Yxg(ug)T~Dqoc4qm7H&m-hIJd^3e=1Cr<5-grDEHhjjRrH9{2 z)eEj;%L)9TC)KhzfknGYsZR2H%e7mVRwlS#G-+jNR1A4(oLA|`+FU29^V^zHq4;jK zXo26K54}rE9$XUM-XL7RqQ#~6)uceituFFMigq#k{8G3z$8L74<&y1cMb#R&mYTS8 zu`1=?v^c%?)vRBRH{Q+tu+=D?k?C%&we_c+Q4<*Rk}4dSEuRW*UsbDmQ{~STf1#N% zoH9?@JMwG;Ga55F55B8C|EAr${^xJa$;GEc-i34A-}+|B&c6w7cDc#sObs!6&^txU za%Y6`_7qmRh`7M))n6{vdD|%PEY@j#YLz5D_29aG*OiQSKlD!t65P;W=Y6)g<=V_W zhceihnS>rDmacdd^YZVs+4+C9eae`wIc(v68akmYYRV3Y-TrUpTyp&z?#=J9!}UJz zv6y4KOBcPh&puVS*mD{Cvyv4(f(OD~wtX{N^WoC*sus1F)KgY+5p$n1M5p}7d=a*V zKUJ=C!S|5v8;6==%6z-k_K3!OSU$t`!m8(-=M+BOy}V@ps)ZLAzi4=7sxf}|6Z|&K z<85l&Rw1)_g88dzwkhBB%-FxuS8*-Nq0&Q}Q{99czeHE$Z!cxL7GWNEy6s`)-9ycX z8r+y_RpzX9_K=+Ns>7FW?zIi;8hI4O*>_B9FpC%MJJ_iGR<BoX+H|7_`dj<|gzb)f zvr_%DTOjk6g(>&VUL3j4`RwjQHlJ9=WL8%{i#LmSJDgk($WB&TP!;~n_{F;Srr%Y$ zlP|{PMeo#bo6%{#n)ynF?}mpqnS1;6zaA2;G4tHiES;dh{o?knOPQB*#KjdNF5J}C zh}`jHVZdw_<~zS*B8`2HUAYxtAeHrQ>9JYA){2Kl+*v-|`r)mU=YFgeR7h@E#3OF; z{$|9C4M+F?c3$~TaiPh9X7!R7hnLxDCwCQG&=&yBbxdncc=WV7NUv`N&%<niV{>n7 zN6r^|yE~N4_+|iyk=_ixe|fL{KlIPKT$5<}aQVu+6DsC~uT;_ISoDh9ZOZdq<~zUp z$oMRq!|~PEOy2eK5B`<A%0ojQv)asi#mnow^4Q743odhbS_ZOD{UNLO_AcK9=FUeU zcQ@IFEp90Yzr~#rp!QMKO5Qg#FO=Ub=i=0*OV~ba*>X?rb===m{{*h;70f<%+C4gW z#q2DX?}rjE=T;Q1@+n%aKeIY|->GerK346&=|1IpNnF(B6T9?S+`0DMI8}Xoh3k{Y zr>7)Y@lGw4WV8<6J8g6O-_>trRiYxcs;@3s*|GJ)1dh4a=A8c3xOH+y*+etH$ttN9 zS0~MVB_J#mAS|!6c*W<I3)Ty)wblvuHWd}uUNxMcDyZ_%SnQOv@)egBpKUo#vhJl~ z8>d#UnW7|O9PAJnp0oOrBdbAgkk;kZ6{o~6B@|cB6HZ#N=*~(;Cb_v8hq9PkUN6#` zt=O<&TE{%W#xTxZg-SE*UT#Wr4AP#Ta(Q!|qseWSZbim-tJpcDc|Y1-_^0wlr&CDx zREBZUqs|}eOa03(HVBk0=3SohZ^G+)j80i6W8G#dZ!)@E{CBd$l3Fju<Jrs1AKr<1 zd{IJqm2B%Jnc4|E1WWl;?i}h`&?bME@%n!46RJ`^hm5;Lr0<<va-;vd%jp&o?)e7} z{AVb69`WE)=jO=^W=~!1zqPA4_J{u>gV?5W7mKrxTQ8|RPTHqfbL5-rRlWsGtKOO{ zdUd<_uASl?uWN-{9b2NpX0F*bYer7(<k-Zo+J8Le_}ahQ8r`+sZ}V}7#8--*h0MAK z{3IvmA8AhcS-mRiz00-6Ez8V`9&Nd6x5BYLrsdJCUxDIF;u{2aI~+eN`Q1s@IN#&n z%lAtc&6qnufiW;>cA6Q>-;k27SZ%)yfd#gQ7TtR))%+{D!|$Km+>;hlF6rtUmY4bV zn%hL0u`M*y;F93{rLE++@XE=9ZUxUAAOC0Ak~CR!`w@XH$9ULHGY?+A()n*v>#cOH zr5jz3UQ7(SVh|m;;?(5=(>FPx=}k`85(I4>TE1B>{<UdVoaY|d$ud=&IVLbTX*LKi zGiGJYa_MlBNl{3iqT*$J*Fs{B$b;JvljiuB<SZ(S%27LLP;)hRYT)H7InGVSx{Y}+ z&zf2=*LW2>u93gW{DFIk@b*-p)@8RBynOJfCr*s(rL-tVN<~!v%3#(L-rZ{~wO2H6 z5*19i`fN`$=et7Q<tv^{Rp?fzTK~ymQbmviW9C<l;H6zot9q2Ap7$JWdR239rNy?@ zkIuT4HZEcDSmo*0);(L<;omwz*}bCw8A>!Sn;UOmR1)@_<BNm2XY(neCl@Zu|L7Cg z?V^0C{LcyTkX+8)pSq)sUpevGL^>*NS{A&dd{?%{nVu=!T4$duwCeqHTRo&~%I*Ch z<qw|{72Kq-|4e!+)8$j@tLI*R(#}vT{3JBrA=p(u<kVR;28$@C4=;~vcpsdh7VMk$ zzQV#~TKcKp23;YsmHFRYmpz#o<vU;7<;|83<#x3_!aH_V6i6p#+8HXS&6sg4ICIz0 zlv?pek6Y(oP!`^vqANCc+Un-o;NF(yF>9UP=`1`lLn~ICL#n^j<mH`XPpzyRL(X_? zQkeK9q;Fo){um7whj146vj*Kh#ShzBl3Xt|dxSNtxw$j4L~L1Cw~xB?!SBJJ9T)IK zy6(=Iq2(*LU`mYb#o6y!Gb%T;iB^?ueVV;@`R=fNGZ-A$F5b2Gnfy0ci@TjQb7pTx zl%MfUc4l!Fg=mHYz7}Cyloh3at=__HukuJyV(;Y>H8;JtYo9iglW$$>si0|8?kj7n zbX)uEhAlU*TAoU1x!L{vi_3*1Hm=MG+)m|wm#28%XqXedl2@12Z0_khFMlc;uQV!e z`8PxLLHb25&)mS@O3zFWuRN^Y)^aOyx!S}ZVben_5B-=Ccysa8Vy2YX(wY4s-?s-n z$y>kN*YCELzkBHW8m(0Y%YLhKM@r2$dm6dHMWb|`(&PP$o}b^8U8icU=um9WDZl8n zd&onEZ<`LWL|-j6yp;Uu(6kd19DnJ}_3Ayed3MgtgOSI+-O$_p<fdg?ZVF4c98=dL ztBC@xr_8(6OTPyxcu&r{tn+Hyi8)tocLX~pJ#~0$62vC%X|ZMb)&)|_jat|?u@q|_ ze`IlHZqp8N+x>T$uI*0Vw81QRs_4AsIlE@1^qpF`c6qt~Bbk;%<s8WxyLda<OIQ6m zd*X)D^@D%5g&h5zm^p*tfrGa1uRMjs&x*EZbyHVrCEU<@FRp6)p;$3%;>l&f&%4!a zT#x$&?!IfzdDrLc<fEsoQkO6BUg#*5^h9!g$))Ta%U&%|@nYG&i=ip`qQ$nCHw?M? z4l#thz8T~!?{my4<v)XniQEanAO-QVQ=i0c{!!LF=ziw@M8{)%$y2PFnlrvSscWT8 z_Ix)tuu)Zbir4%@8)jvSYq%_C=kUFJI_;u%=))!F!ZyE6>zL_cbyL^pLUH|zD68V| z87#-xW<N;fwby@mdH<^|Gq0$fQ#3rZCg@}Stn0=<=bYqzn`<N8x^np$zrf4O?Fwd^ zMmRTJxMDb4SLoX2Rl>G8v(`vmobvs+qVR@YOy`7E!##UH-c0AX#4|r=SEk>J2b@7S zGXFE|WGIhS*cN)@+Ty@Y?bWNK_}}gFULxM@pD@ee&bi?Bzzyo0H;r<)mp)yRYQ^0e zARe-2vc`=FkDDgbnM1u<eg<xz#@H3yy;VYY|5=XWoRFR8U#>Fzd-WZs+#J2>f#S~s zRvuq^VFORBRadXe%8WbySB0Kk{;{DwEYZs4l9zgBm~!3;zQ)TpCGIJu3WupO>awMC ze&Ad#;d1BT8_QUiyU|&FmwLW5$e3#cOK?uM^}KNZ^i2<;1(`>t%TBxORahde*<j`r z!D`U&y@{Xm@FO3+1vggwJEfU&DBb(t%7bfG*Gzd3<=NJfo57tSeCQiz2UoJ@wVCsz z7G#<v@9N}`cow*9-QpT$o9`|jjE>0xvd<1O`spN!GZ?*$TEFCm`q%O-o#It@H#8_- zpAgbywpwBNzDWgcigq&9iMEqUx!c@Myx1<}{b9}}_mYR+vzrRKJyZ92$^Kkv6k4yX z_I$#Y$I9G3GYz@loHs72@F`la6_a#V>yX>gAjb_e-IH&q{VIzpw$RwUN`2EIu`R4g zT;Jnb<u(0|E{*kdf3a80jAO>#<w<R9A%Bc_y8OAgXW4=7MIQuIdY_t`D+LxjI8?oA zwaN0MYK!K4-2P>8z%gOfwK+3=*{bpc|1mes5kA7u>btjVHIw_B*)AUWB{AA}wBwjI zJ9fIBH{H5+s)&hD{mRnmvk(1=wVShS!WG^mr+uqie{lHBVPVb}yuC}Vu~hPQie_QS zE@72te=ippA7YcJOLdTHW2swtx01P`bzSJ3g5V#0e<pRV__)iwNz3VSoqvf8qrFLp z$;X=}4#HekXQ!Ag4t&SNuyygP03jtW1E){3gL+SHPZc{Qrf~A_l%2o%FZu?mCZ4r- z>TQs_x9YCKqN?7w(|pF9dz~IA7PAHO<%Mu;`R?X$WJUGSy&~ctcg@t>^Y+F3e8b`< zgP0UEqg^p+QsJRGdT+MNx-wd}US0P3m)e(2|Mo1r+|ep3wn(LS>dZq&9w_EazFE!U zyp$>Hc#7@B6*eq&$_v=$PALAfZuM2}4R<Cr^6JcAm7IU-vfWV&%fr?hbsy|qUd24F zF4}IKw8X#UQSe;biG`Urrv6&waj@l9#je87iGrn91leze+A60l+j6_)SZB$U17)W! zD?Iq>RhiM46}DI}N53R0&iBZ&s4_*4O-Y$&*R<Zsz00g&vt^r;xqPdM+Y=4mDbXwn zkMnfa&1Q5cdH-wmzBLO~lxv@w_~b2JHs@1k<FV8Jo_{3$UUsuSQ(L`ql>&>>MS)%w z`AG%ECx0q^u<le@9Q@!)eacI{KPNoc*jK3?``8~EcIZUVX|^p1deh#N`z<ryGw+4) zi9aVN$kchgFI;(o>vXzhXy^*#7tPs!SQ1@*BX1P#Iq1L=%ddNz<5E(!f>q8;#pWeN zsop&YG7goPq*b^c<JlH9_m6ul|05aJbSITvn%gg?NIPxboO|uB?$Z>e+5q#NZ{|2} z+RE<i)AwP|4!)-`E_aQ*6Bml_+?QS-802a$^UaA<KukI%;YC-Y^j)FU3l9&vY2DxT ziP3JU+;S#|hcPWLs@*-MMFZ?tZ4GSkUbSHg<1H?>m{Xz+5+B;`y?SQm^6cdj9(Cy% zfeMGRv;O!=uRosrV*TZer+gFaR-Kj9K2>Dlz@fTdX^mElQ^xY(btfjAwKeMqX0&H! zjXE-+Jd*!qV6YrZ(*hZFiPWXSK8uw%6*5NnbFgnoa!NVQ%I>`0XkEda6d9-bX&;<y z)4BhcHSt&LpNXAX&bRavmzvV+f3Yok#jp0f%3;_T)oL^0-jWBe*61`C-ZXqGf8n)$ zm;BL=s4FKYX@*Q)^islL4dcQ4n{t@>@)srYO3&bY!qKBX$$Ps-<<vP9!4huA3&PY4 zX1#UWy2N(vAIGdev1%Q!1>9E|Jv4e(t#5Ef_S6R71=c={e_h>IoLSDb;qietvtDhu z;Nzuawj_C~fmQ2!jaeO{UZ%ba)E)SaYt#!VEofA^v16^T=S=ek;np4oa|h|mzn2}p zYj<byg`13F&!rFeysoQc<X2Ltdu7S8a@Cad<?L5Y7(?zSExpL*WM=7bdXram;_fto zSM!ZZIKr1N`ZMK{Y=hg~3)@v5W{F$rRJcj*U$yGksg+Z7rKdQmSlNZUFDX@Uo}1A7 zRW|j?Z6<fFbF&tI3Fn>U^R9!fXqRL6r;X1HU(MoGw^8KLU7J7e^{ZJdyA@-P7X@~$ z5il3q^)fT>w}@|CYQ-+|;^xqn)XMJUOE21aZpQhatmEeVwf=}&B}e`<jgIVzyB9po zW}BqaTJTwO-H%d5mTU{f4kdw?VM`aZ+}I~L^H5XIi49LBdZ(^3<&3!}67yuC;h~Ku z=T3OY^C@h~d#%HpX6BvTxa)gl=^-QkM-SyDZ{M`H>&~6UmEqM3_lHEitl(VadVJBm z#hWL#hko{3devd-3Z+Rs?`CoH-U<IvKSRy+%E6t!O>;eNeGtC$`1e{f*+mUoZq9sk zvVZTImwv^rZam6a1)+;SvRqKST;lI&VClZ{?IAwaXUqp&+QUny#otfZb1X%ssr5Ol zzq8?{2O%%J0{=5CG4cHBJDvB=K8d&TyO_^!d-3(e&*jrK3<|d_7W>k2DIzy8YS&cz z4?A?D;(w%TUV6UILAu4oVA}0T;<K`v0;V%W)=v2{GcYmGc&EbzzT1nm`wF^!bMgv% zM3r2Bm&s1-E$3R<!f|zGU&u`JOs5sn3bNaZR(`cm4G!EV{!DLTgShveD~EDtz5MD| z+H+aVH&bQ3O>FK>c|G@{J}K8L=2NPo%ge%Z4UYYLapV0d0sB&uots}Y&d?3FoT9ue zYTFLg&`5cgbIa~ntk}3^g_@4IjG8#(xl3!eUWwKSw-D;=?q2@I(_Fm8Cp3Ij+tz3K zQ&prneGQIO9a+Q3$gyQ{_vKU4C%BFtS$&{EnDrnp_a8H{`4vu9E-k8y{(A1^yTbJ1 zXz;dAdv{OaT)pDl@fJPSrIjy_tNKh-kXdapM>%U@$%GxJL<Mx%UNhx1m^oc+UG8&d z?nMC~hS_&L=l%$+o?^3XlIXiV&5Ra|E3|eUPMM!DTUc+3>g5!rPt|2%B~N2Q)yf0X zKde8Tx?6LefG$IA$aDdNt#c0UF85UqJbv!=3_p_{ab+Qs%$FK?eDm49M!(bV;EHLx z%(6c7PkO0r!}2IsjKjpVcRTa`RWB>|1}e%w+PiGI|5PSPpN8OtPbay*o5g4#Q|YU^ z^jhol8n+L#JZI{aKF!*D@X*Q`Qwpm>CK`v-3jSw!>%H>jse`+6cBQ@GTV16#lU-<* z+k)Mm*2_=tUa8kvyjw%cSCr|A%j}cZ`eyI{ojlw*XIZCRa`?r{c_}O}i`Q6-@VW?= zdKM?I$bU6g@1*r9@s2_b=ZNr$chq^6%r%6ramb$6T<~&oRa5zg^8vjRWpm9Q3Q5H< z=F46WeEzJZcX8<iyQOincS=kSoboDu#VwbWhLg|eO!w|tH>>!i=2UUH*6A^;Wg_L4 zUcPiSQ!nFN-199uBAN4b?sIOP)9L$irB!rR?bMTd6s~)B@Xoz>@Rg#ExKdn}xv!~{ z(gI)Q){r9|Px&TzhOG{$W?01c>fxai9S_}Rs>^%}Ye-P^j&n|#;ym-C=C`LzlBZ@R zI47G&ludA$-<4fx@7lGY@|4OB%lk^5x|Z%|#LxQ7KGiJUl35{Y^6AQ<YmJ|^&*}NE z>WX@B`Ci!VHHv$m#(#4^n<~s)YL+JwdMJ0HfXeD)idNGO&AOF*)4SnvX_s7F*f-zK zQ@_?9KGngjEx#%)a@(l`Z&*(R929@DfOkEskB)FjRp*8<7WWnp)+n!ivs>rf?b_`3 zXW^fSpNdcBlsn#*TYsqWN6KOL#7V8H2U_x<`mfmek!2Zw`z-sqQyc|d=O4;m%vC>| z^PgdpWWtQE;e9Xf`7KiBn7r)b{G0L*kFOHxU0xD6V}p~w$wQMl;^J!^F62q>N|~HB zcT-MyDuc9$|2{6El9tOGLycxnntzo~;XlKzP`$j=82(cMdEO0y0cX}bzL>3YX0f${ zMdV)Bl?zVxCCc<IoT|6uEpMz%3j<%zl&VtJ-5SiBa!zh_w!JX3$!GPnGkmAs=|oC6 zT<~e(Fs&76y17jBzJWD|`;WdS`f7oEDzzbZPBmn8JdNV95)e9jQRTsk1sXe!bDTLJ z&LM6h<i6`g!heQOzPu-uUu-+|X_J${s|j{@l*{9UU&`)u;}Eu6t@QaO|En)<4^H}S z%%49qE{!w4gmIFZ!Jb9l{~0!|usv(Qcb)rFTgcp}2BOW3>N{I(86HXp>C6pX7AD(r zdqd=@3%=VGId0C~E6{K;<W%`bKd%C#;9jScmLK>0xHin6b@_Fk^@2;X`=3UhUnS1I zl;PF(hm{*kGj?h&5;O?z(<rawvP|SU&^hJTJEelo=0nzR8ge78SDNj8v(-RfT6ra( zz}>qt3qx|XMIH(;{5<u1%9}$eCtsF4%-=M@#_$l!#%nr$?EXB)Pu=oG)lQ#1V6B|= z`g@32h!k^?V&uXD3`R@DN@jbmG78urT(&@pb3^xDu9++U8Mi-rV=Fw%)mE<au1nC3 z$5T$5bQCFw3%2N_{%5!;Xg@`J#_W}AuZgTbeI?LvXHc^JT?Ul{U;MMH52;L>x5B5^ zFn!B|wO%)PyRKaR@y=eAPra~dZuFc4hF-;ET)kFjez9CqR&MzaXUv|GI7jWqrt4AR z;(GnFuIgT9;K=jJ-X~jVG)JHPc8mLA1NGl4jX#BVpExw(QO(%^JL&FK{fCy$D!Ed> zsUdz-aRN)B@&(-ohf1OrYcR<x&i}I7bNL>v*lMB1vNev@Zm)mj6j#mh=O~$Q<AFAV zj+gN=;q+AnvpmZZr5rb(SvGI>#9#WRAIgH<7OLN@EYp%#n{h)aTShTwlK7*VQ=c9Q z{*z2$yvx8~7VQ5x{NU<M9TM+E|1-!fd@^^6<&NN&o66(WOD=Xr@N0B1Oq!FwENY3x z%OK{7y4g=+6KADA+fcG^$?7>Qg*glDdAHeKu1a7EwKY2N)osGP^`WNoHnYo4pIz!F zCZ$wf=xh9IMaGP_wX;=y*$ynylJMv4TNG%|QdG2S%egxWnT7VQuWhFIxSjfQJ4G#O zqaarqm#pWGH=D(LUp>*+csciqg_B+0Y_(&H-OniN9ZL83taPhP`@E04hMdoWOx74{ zZi6|uSMObB8$3_Wn8~TyG|p_st`hT)GN%%y3Z2=7ceT6w``2Dx_;eDZab3XVRqCPt z8K(D_{AcL&Ub(tl&Q?U$U3&K?KHIQ4Xa1;hv&;D>G!{pe%{ZUJS@AgKlGV?+T(xTt ztl!KPW#n}+;kg&cQZTn!G3ar~?JsUp0U7I4*;o$z(Y~{mt=I8CgTc&S+U6g&Z@QX1 zhdnq=)Q`jAtMihCwVF!#hbr<`_v~6}ves`p$EVv@IV)~Y$tsQ(Y1qup_V0z6DPy72 z3ezh64+mB*;GdKtlzy9Y;TogN&<#wplAD&?PTr;9z0&QRxo=n6lhvOpwa?@wx=z?W zMZIK`#09}6;dueGI40@8SzFX{xN-S}UEH%=istj`>`~-N@Dn$CGxzGxh3TK&ey^UO zxOm>HiwZm5t#jDEOV1)VnlG?a*W6F#TyX0zCu6hBxWZ#6PN*yAz1$Z(v1)3#IHN;G ziK1TGpT$>v_8$KdAL6c+B_^;eVaxLO!lxKa47M<C@NahL4ECFRy4E7tGs#x<{sLc< zPYaGY34gp3bMdEB@q<|nH-ncwm+T8>yeOAw=Xav5-74x{z;d5mDvO_LNX_pE)Xj~3 z*Ep}Ju{~wt6c1fn7d3&h`A6o5znJZRm{~$&f&shssmmM>4shGF@Op7xVoR(%Cmwva zXqWeFkFVSxIwC){+Rv0XP*D5MG3j%Xg~O$rKUcSNXy>rJ@_6MYQ+`O|v(}C&9ycW1 zE4lw4VbBs_WMp7sVq#=wVPa-vWME)m6l72|bPP-^6lk2NuyEr+gNqM8d~^ta9%aU8 zFL3x(t&ipLo`?VV;-A{hdHqG=FHgZ^`Ri5Z><<;r+3@()$LV@8_CMkbp1=6dFspv* z>3_lfE5F$7*}VM^`%fO<hsS^P**mxYXXyLS(EDr7YwP2D^~VbShQIjuW%Cz4d)Hs` zagy~1YW_3y6vuo23!YQg{-2?By}Wz>hdVnyezA9!t9LwS?<`le!|L?(FFTFv>RnGy zzkjW+S^vVXGxi4$zb^XE(D3-B&;G}Tf0_R?9IQWF^fxd5<NXhOHvbvgo}QkrXYZ^R zzxL=d|4W6x{Oa1TlurK=f5HCgu3s{br|Zc_|FhdST`y*5;o;Xse|_qv>&0J6{<Xg6 z^*x=_)Aiy%-r2eC(?6r9zwDPDdUR%c&*nKhi~eR$*9&I*s~5lW9Pcm5y2a~1@EEUO zdwTjGwvBa*jUN5goO1d<!{I&qAMby#(<jE{sbT()_@$?(>;K3Le(AF;SnR=>=wEs9 z7wWoy$;$`YEq}Q`+CK2>{%1x{Pd68)$^Z2>$kU72|9HRm^gpYO9^GI1H{Y`8>93u2 z&C~hU{^B{^TsQf3(R&%$zy51aH~#_|%)k2A^B0nRcPvhSk^ii7dODxo^cPRh757B{ z^Zv5`S!8#8bem;;xWx7^*R_A~{$(}VQTRoE)t#qb_pjO+BlVx5?JxhQ_@#AI5B@S= zv$DA`#^Tow)8i5ObLyInb{akXwe~-Q@S6QkN<8hI&aBh@&%oSf{nuYI|HWqB`D^~N zU-&D|zdn9N(bL2IAMWg|KULfpvwlw9cD?uy_dnUxf5?9I@t-?GQEj-kdS%`EE04cQ z8mHyIDE!sGy#C4l#}Zo?U2B?uOov5$Vd7)Sea{>JGraozkDdS0$NvmRtdIA9+`p>o z<S!ZNFR#DI2hZ7g{`E}ttM#7$gy&zgTO3^W)sXko7KWmAiVjRuyzRcF9rM^TcfYfY z{qcMDfAs$|G}b$Rt#>~ElPzZFxy<Qb?(8fm`p?kxpP}Ko{IdCr)G`CUJ)9sS*AU-& zynYqaD&>o6s*C)lS=IW~wZGW!{h#5;U!MB2MSu0;FV^+H-dXgQr#|*q%#QyI4aL)6 zWV4$$&p!OM{|Env89TOq)tH|B?VjqTmAkg-{b$H4n9x~Pz|gnrb@fRphbOETfAz1A zcYjgediZ7i&%F3WuU{oM_gh#U|7!oF@;?JR|CQqAy54j0j_NOV<bUDYG}CAKtDSYz zzxMnpm}h_SY@7C+>ACe5e<Kv$NbNr+KH=oM=kb5cU)TGBQdnBB>VF37f7*531rEpO zum0u!b%wq7SNRKdv%l`JU-ehcApe4)`jygNrlaK_9*KFxOJBQ_$Qf{QLB_o3F3+v^ z_y1?e`nP-fbNv^Q)1Qm|Wsf}ndj6yM%Y_GKJo!HP^W@id>#sbvsnvh+^b7x*U;OJY z9@Bk#dh-1Xhv)1t|Jw3Psxbe>w`%)zi=RfX{dRmm=dtYL^<UP98X0(`{xf{D{_8D& zvFPd1{eSX&9?O5!Df*lL%HprM{^jWxe)V7U+i<$8!f3{Hxw`3ke4ie++pl~2*U@ri z(hnIqk(>Q0^OfriqeK!-Sbrz6v!(Y(B;1LS{ule?<YYCUnMNt6o)+zlUvx(L3y4#c ze#~8Y;)y3Go*d3o^C|t(=WhOGpK;}$b;Z9lzwWTuto<dl-g~<KwTH)F*v;9u{dHaQ zo|x?~EOwus{)N4=CShmH{#6fundXbuDR=dmCvn!#(az}LJM-~)%*RHFw=2r6ZT>aR zj9C}1J^kw)`D+YMPtQ7=wr9R?+P(=VQtWn}t!tmNe^FhZ(bKajhNq{$$d-L#B)R;W zq@kXh!}Cg`B#9@#oE6)zJpRwn@SmaMVE&68b<MA}c?$V198UQcY^Tx9q81^!XnL}n z({lUj`5$BU`#wEA=iip&b5jrZFRhz;dg`gCbxZ4(p0<w=|JqnL`<K1*i~kH0_uRkq z^mxyXy6&&`$LhV$#q2D2{-Tzhf6Xt8!mkPk1GX14iYnhZ`cg<r(D0-2w0EoY<~XiA z@Y>8cXzS;H?k|h(?6CSJ^W@|&`8C(%-TN=wO;*47H*WvQxKBni<()u<WlU`1m)eJ~ zzwD1KpD$7P%l}H<^lNhe*4wW*-G1Tm7n#S$ucZG?pY!JDp@=&XAFdvJTs+;V<Gx#7 zzK`Yi{|x8$KfC@@=IO7vy1Db}`Xn}`?)Tom^z^iU-P8W<wp%VAy=G@!`>XxS9{=)R zdH%vL`4z=`+&w2U&yP%>ang6m9|PH>AgS(6**x=|XT4o#aUev&KKplSZ~$+O#jf`+ z9{%I*{vuPG@O3)->-s}GEdKJZy?*6h;dHtBgLTti$qBA{So>hl<p{ojv;P^~Ev{VK z;Xg4gf8MmHf(1|S9zT7&r}F-*{n1nRM^D$Ba=4=SmtVc(ugod0U+jNqpeIwyBY!RV zoY1EK45z0nn6=#tQh&}}Jonbkt-<H_tcmSqkvduVSn`jN0DJNJo_DGHA1u?`A1cbW z@X6=a3WL-CHawSK*?;Be`E9lP54?BFxu^S|LAfm^>*?$F9YMXp2Mnj}R{OhoiIw=p z*<B%gANUVc$<|lA3Sg|Bb<QAUJ9ok3FZ)-``1s46|6*Mm|FwtvFBErw1*J>&OMmk( zJ^kfzFZ0I(DHjFt-knSD>^2YmUUe*=aq`OhpMM<m6yR-|mhxj^^K|~ppjz>A&k0t| z->EO=?eZ<lKF6bC!>(V^!?>ACsd%E;CyO2CUuM78<P7?KxFo85T3zeuuRDt#p40!) zQ}1%}=zHlyYxblU=Ei+AI3XY>EO~pW>|{Tt-AVgoAM*9*E?|z&oM`QJ_36{}hz!e; zCHo~pRUhWeE_!<U*Sk-D+3rUkw>sT_r9R@!&Vt7;i~dc2UG(%gb45b_tJ?f4zt#!u z^Zu5|RhN0({jrF5|Ar|q_XZ0rJ0~KfAa`!>6N`t8D=cjvKl~JP@%n|wdNDienwNUE zGxuLx*7fHB>!Yi7JgEs%g0>HeZ_Et(ailv?`<i)>u3lh=pyk^4`c8TrTtAK|s880@ zmvCAvvL{JNT26RUQdviI+2szdqs}Mh)yvO`ycQGPSlq1t<NfQ%=@Mex>3dY9q<`2Z zx_a|%n|<8DWRHx@qV0K>8A>%t2TwR&z9tZHLvX{>AJ+tUBHr%U(~$q-$)5z5_QPHC zA4E=<UvRPUUbt%ftmNqq5jH-44%h8Is_`c7EBMv_^7$9O__e2}zxpdzxBODVgZoQQ zf8AM-{Ux&R4*Nz<+Xr)I%-^^_M_nUv_sQK4>~6GNWb`uPuRgWkS9VU_r?l(Sbbsm< zw@nwf{I%w}SweEpsdt^_&4t%u;?^HyIg;)y62ru=f7?Qe^^<w8*NToEI|KEe`pw(- z;{r>d@R6e>r={2XpL4T)Q>SJusIb27V`gcm#HQ_Wk((DqO%;D5Y0lBQthMGn%Oe%@ z>od<OY~7f3Px)h43ujGN#9uw0<MqyLfAwMt{u<xEnijL8IgeSYCx>H}+`pee%p2w9 zHnNI(zNr0>uItd?P#0BrXjA)&p28~K^*ISIUI@nhXIL|ZLF9Su(>b%}`<uU=z#x5e zZDRGo{h>399^H8!e9VxcXZwDMge|I@-Ta?cJg(H5F3fDca`!1!!|0tI*Lt%>`VC`k z9{lT`{zZP-zdob;7iRxbzf_xZ_;tO*nIE-L3!07|n#K}XcBT62@1%T(t(r?F`xUkb zTwsVl7Whkc%E8|$oxJ_~?ANcaI&E=!x-iSWGe&P)Lozu}H!aB$k~?zjO<wbJvA+Ut zA0MByQEk+ftvdXf)syRS*}9|8nI7s-wrLSMClNJyp4Cc^{D+_Cw&cG_T#|J48k^>M zms1<|q^eiU6qU``)h>R{txRtVU*$1B^GiWD{65HXJjs9mTyU1ehm&@ueFaPQ*%dnU z%KqJyDR{amj=iU41=sY+9Nqa7J~y#XuROf{?XT<g{%tje`BxuaGnGA9u_GjNr|`q3 zg-yJ*^Cfq+#`ev!P;8V6oitD5{bRfT49BBIY|l*4`?_}Lk%bPvZj<(QPJW{u8pjpW zHF3T9%JkmnYufCNl%z_i7#&-?bK5!Nhu!tA#@&ne$aRWbk^7Lzw&C!<f-Tt-W%{>S z=N|56yi;-Z=H=7b@0B`vXU8wN{IYKA!TZ;q{uMo#f8|=tj=I_H*B&0f_Vn<Vk8&G- z8&7i=JF<HFuK5xVFV3;;tNQzqfqAapC%gE^Lem`fFonPGJtd-fjrUjUsfY76CFiRY z%zY4??Rag2#-VMzmIoMQx%X)NetMq2;$!CS+|S0FKj+>NG@B?Jb7>p%vh&u(=a049 zZF=Dtt0pvM1xww328$BguNU9z1v?bj^!a8<)k=KHT)W+nW9!nAq|BTZZ;zC*y);Ox zKEPkGE@<Al6W@Ex+0F^ik91qecl^Ho<xH_`7RQy(<t6L`BUTv3+>tk)ZTQ_U`T819 z#jXTNmWyu^i)7ZxyWR_b8NX_7V&ln^tET72TW;&#Zfmj7uv4^t&5Zu&cscXl4GEig zmC9{qm^6g1-pm`pYABO^E|%#<ZFgf-mS(Dd>c4^siksvo_OSFXVBUOujRI%Di}RMd z*7!WCKD_X0=fydP9^A8Ar+4O|+b7P?eIhqjeSXisTC6g4&*B>f6Z=zj{-kyAWNGb8 z;G2|CxW=o;#D6*emBQwK((U$3{;I#Q_?v#^N?U%_;cFIWMf&@?r-s*Mn$*0OTrBdD zbMmpvCaJShLhiTL{5Z^(Bz-3R(qGHpsSlfOgvM=L9WyO`)<N$a#XA3EJ{KC}rS(kz zv23o041Xgv&+63DRnGNg#*a3y5&g2WjLFIR`Hy2A459HpSu7cIcT5xNTIhYdi^*Yc za)`^?2i4!#+&pl%x3KpD^Zq#vyOUaHF5;aP<1DBa-@|2o@}B3Dq8T>YC-kJGXGra{ zGg4tTa(Q88)UhS~csqxaT=X$s-@E-ig_?5nB}|yxcXvtH9k38_YV)~Ndim`!+e;Vn z?pd8&)V_Z0U%p%$i3l0zdp~!$g(>d4;iC~!bx0_wT_R#hs{I`K>%7U$TO%esJ#wn# zUz9~qLw+CEpDmWg?)5$okIN-Y_<dSO>BFa8c0Skg963t(tNYx$7v9+O`1%zKFHL)k zdlSR^_c7<?t^QD`F;!sWho@%~Gy3P4ytbWnA}B0=aqE4_RoVN`x@$1LkhM7N*l1Ot z;!@67Aa^1=Hevdzvd_H@S9rHS`+a1(w3vT=aF6AGh8O%7q)y&@E|&G<>>7LHz8SAy zy?!jc!~A#ltAv&3_8#Ui`F6qo(+-!It~DmVlfuFlFl0!c>^Syjc5~kMJ%ZkDqR;D> zvRIomer`!yxG3<rk8EW{_hHFtjG2FS{LHvmqN~Qha^i)I*{2nz#tDo%AG;M5T;>$c zW?LA?W5#v&+uN919vV5$1&5hKH`q*;^lO~_O>%3QMElcY6Brlg-{;sjWAXcWvSzQ6 z8DciKF)jGRv*_a4oeD=@owH4O8vQ|7%4L06n^d{;zWb4!9ht2Y)CG5@O<5ab$n#XO zWdqY$ner|<(*m8`mMp%Ho7=k&-s8G(NngExj*kkXn(TrDHurlRrg-~HWR*N@n3@)_ zqwq^)`$_Kg@A(}yLMK(6-l8QO_4@reMvJL2%LFfGSmZkCA6{djdLn&>>^i{%`G=n~ zKHaf#y7eVC6=SXs*3b8p&3YtfIRB<f{b!xc&-mYVFfqv6ONdSNPJeE(XhWq>>*9b6 z`D+Xb&)6SM_O#Od>^b}Km;F0?_RYAqfi16OVa)!lWSs!ki8m*oc$yHuFZ{%Xzs+J# ze0{r5_xUn=Rvr1uckK9N=2a_R{5alpg7c~~Yq^?k&0~&f3fYey%=14Nzwr3w^;hhd z+038gbI|oQLv_i2hShD0a?(A2Ke^v;_*b^pf92L4@7cszG^@@olnr=4^=Mhy{<xe_ z``7aBJo^qGv-9L!+WD*_`?KNACLZp-@?%jm8yfk)993Orz|j@yv*W^A!F5}&98zOl zVP4>{P2=|Z`ExcZ1l09Q9$C<;cQ^C$lv!8Z<LzJeJ`dmsmR-26YeC07`3Sb+#<P5% zc(m@Q?_AHuA#e8jQPrWGz)R;|&z@RmQSj@FU&C`TuZb4P+V2nh>aS65b!J|~SW-T_ zN;07C#)FC}AE%~>$K2s#p81@+Y|6Sn7IMEGoLL&Bq*65QWtQEqX!g3|WH4!k;DOVx z<}$9mXCUNI`r`W}pP;rGn-?lQ-<#5SVEeHs<?!VF`waS;b{$Q5apNE_<L#Xt4Gjwl zOgJia?inm%R-gapP}zd@whtC+a8w^pXSpmB=&>ZjCQ+wgx`-A}*vhkQlcNNCj*6Pd z*`2({be2Kbf8x)B+2=A3KIRmNRePslxL@j&fWd;hY46sGTG}7WPIysbFsrH8Dy2`@ zLV%wyx~-f!m`kXwo!!jTtv&Da99EI|Z6Vx0Jne37tw}mAp(O4itRX8g=fHtHzq?!a zrZup(z5m!zv^nPN^0er{b%sItQ6-!@Cmw}3InR3BATnux`DT9iX}d0;-y<@~pnLPO zB(3=lC(a%$G_`%K;rT)HbXA#c>I<QZCYLj6f1WK|UVm87;>0!P)03Z`pKX`3UT3}j zG4}Kyrz+}eSWbB9r}3ZuJpJj<6K~Vco}c`A@?!?8Bf>rHm-ZjCm1kBeo^meI|3Yom z;fDAZhvgNol}|aIJpZelyo25+{*UwIjJFG!@$V~CEt$*^;uCk}{@Iuo6T95Q(^)P% zz1U}0kQO_ouw=%bsnVan+}qG>@Y0N<F8bFwqlEj)rT;d%rFgqPdz7T)aPQ?SJ%;&i z^A&qKm(G(-m#}{$ace^2%Q@e)t%9%VZVb_tm;1DZi|hHC8H%!-t&V(iSMG|?%iK9# zfo;P5+X5QzbDlFVX0J24+HxUr%G{=B4O4PIPx-(Xxn@dfOBC<Q^Tz~zTHWmUM3`QB zD_KM|r##tl@V4}|k8TU{XMJzFb?2u4o?FsCVm4YT2jm_InLX+GsmEU#L=M?L>0mBo z6FA)@<->6CQ0)CQkzLlS=SNIAZ2Gp%+2-1Pxeb%KuIq1ZU~1L+Ja@yVfI_wfvRyS2 zk!Lj9MP^1sd|$)4VWN{B!_tuENe`bM&b#5%ktub|#n*xFKf^t5^DPVVa<>RtyWZcE z%JN)KOui%ioPq#XjK2ia<f->8x#jrgBrGp^v17xMD6@Gn7Ja93@?s3E{Pr0;OkF6g zX5i={?w<afiMynu{xok;FMr%7i{6m(f)(>y52b&fZ6#RwnDc~-?EKoNOJ-Q|ys3IE zpduwS`}H+%UWtrqpM?|K*x7#W@IBWuN6V6Zzl3C)Xp{VV*=g^-t}*{=H(me2!S^)} zk~(-^uzqZpKmKaVaW}`$_Qy=*)%h2^R{OW-ug}XL2L%2zEbNc3EX><i?Detw?B(wU zCfuJA^Ia!%Wq&hd44H4aRM3!XUO{PdonMgp)v{uX=S)&d7b#YJ?=zjj(Rt0`+J(mZ z=R{p{EO*3LDf`<zSkSSp+c7xoP^wRgw$Md+-ut%&R+cR@hzJn*x8{y;=YIyCxein8 zS$~}563EzKRq{x2#k4txr^`N?!<06;rM`X}Z{{ue`s~T4LTe;cQ#x`g&IP^mEj094 zQpw0~efU1xT;_8|$2`_N7fd)8<J9u<^Q6#k#*GhS3*R&IvYl9`!QgG1+!V%M`q7~2 z28-FBJ6f`Q%PUWcJ%0GPL*`I`_P4Vd8#nCvaadce+d$H3&b!ARqFQ#!jZD)xCz>>H zaaAopR`H(o-0wqN{ZIchRG;11yD)9fvv=8P&)4KTJ-jn1)%Vi8h)yRK+uy~0mMxV( zjx2i4dUNvpIc7^rTJmB~GpOC1<##DE?8R9JlRf^Lvn(4V9vC!jJ6E}L!FI>`?1l?d zb2UEpl&ouK7jqQ}{w}$h;pB>s(>wTD*Gm+v&CIU5voE(TbhBkRTSo8=AMe(Kvd$tr z43i5^IF`Lja+>u!rcj|mJeWI2#AlC#^t}%UZ!Gxocca*?36tOdGuU(B_4@lt%&Rx& ziSb@ue$0zEG_EY^U}w~<=Pa{TMHqGFeD2lXXs#z-Cd~NRy3m*Nmh-LW87f=k4*D5t zxP-9O^94mX-0dyw+SH%!7hhScSNrMA&TEndha+a&*3V!1D`v+IYqgAvd#d)V|JYr3 zz+Qe~(ebLE$2En2-YZw@Gn)6GL872BKtKCnpFpVXbC$zQ^DPY?MSnZ8fU8JN{=yZ# zZ+|z6hQv#l#<{l7$@E;+c#qZkh{xj1-{$XgTF`N0Zbi+`GZ7}N3oNf~^ikq^AEl?P zc2o54*`l8(3k1CQndIk8Pd8F_*vH+Mq<Y}iSqlXtk9RdmW#=y5Q;FcR^vuesK6FI9 zWoyZ<i;Y`mEb=p-Hf1HB=R-p#rktIX2RRn9b^R>z3Uavj_h}+a(ZNLz1cS=MTh6}F z@w}XF;r_bv;qeVmH1)R6%4Ew3<`I=*PE%Q=8u;2uD7^Q9!_xQH7<x-9EmmfGe6o5i zp>MC)BBGn$GbcV__tLXB3psXJ&Rmc-V`BN7qkNZn4>7E_uxPj{uH)DesPyc`^#}V3 zq<6F1*Pmng<;<P&A~><hJoU+%z(WdEM~u8DsPepFD5~>$c5217_s1NyD?^Ti?D}2k zKdtN451!|$8c*tqeYpjmPZ3=lZZXRxcJBH$D<|;I{bO;qd;P)A&I97k5*+Ny1Rm`2 zpC=<F&iO}vTXs>CSIyG`v(<eSTYK*agaj^r&Z#jq_O+CJn|JR--P6sidWW}hYU(?# zX}c$S&sS@y;&Wk<c|6D59k19G%$~k@W@FFxWrx{q;u*UXWwTyu)V?Sxa$YxK_Q6e| z?|HYlDEAna{bN36wMuHa{cG0Cvn^s@%QP?NuiKlp_(c2pHP?ct{V<GpX2$cQuvhNU z84E#c&tPty1uM_|`|$hQ3X8b8nTzXeo@g+I2-d~~v|AVkwC#P6z}3E|*tCSTVA;gy zE{C`lK6x%&;ci)@USGqq<^F|*`kyE2$3EoBFF40tce8ZKq0;XMthxR(NIc!j#(68; zCg;zSHI@f$xC_?>GH0LTtyb80Y2S6pNrqDEWvh=rP~O}8)_66a+uXJ%Z9+5nd-gHx zyeqT5&v3ri_homcW<}M`KPJHC!F;&q9OJUL=G?1}+_GFB^Kgx@_vz<Ww^+9y>)9{7 z^Y_i=yc?PYxoT%6{(Zz9>(^BFqws2Ehv?Sl0uFK<$+Bh>$}5k|dNJj-#_N<w0k*@; zf1ho?c~EY{kHCiZlG;!0C(k~9@TNa`jl-MOLLX--{5G@Kub8kjtgw%RL8@bSVNf%x zKw-_!I?gBt_NRr7Oj&!`l$>0jPwo+rx}aaa=Z;d-{>Edr6Mf|h4PIS2p3KmCEN{El z!}bTC_zHUFHT!+nzb`iFSmUCUs}~&>zdXI0<<`H#DW~|FvQIbp3io7+D&GFscx!sD zO{&e&W>o>Z<8y=(9=tv6$iB>epXMdMFFP*@a@ZuXn#cD?x*c6MyEf5;^MH)joh#*$ z6O;NKlSP_uR32UC&?mVwL7nBqZLeC1Ety;0{@utG+{OLx!>kVlcXt@>Y3M3yPvdpC z(7#J!u849eSK#9w2}da|MLiep73=0GXLd2~+5e&Wo*N%mxJAE#)$HSo#Pj3R#TLGJ zc=%bf_r{K^vorTpF>vkHpW_vjJ>8P|MEx2C)+<8q8Mess-g$6n%ieUpvO88s{Vtau zY?+>rS#gR#S?rD|uaedKIoTR!6YlpI?Vk6gNTuMjVc2emgAJebt{!r`I74HL&t?<Z zUB_2AcTVeGZ@phq@Z@fxb6d~pGWs&apKMdV%~T?AU4pU0Q}AtJl-NQCX~uQc2YD;l z^@{t&3srZBwM%W8BK%m4gVRAcvQ{CtpVi>_+o`km*w=VZ7TEl@fg?{gNjmi6?v@)i zg?k@eGiHyHvioT>WA(8Y>wcYczRU8Tp@LESg2&R&jXOg9BhH+Z@;aw`z|pgW;jy5R zxWmo`mU%k4_7Wy#2i^+HpD{fA)L`e$U9DgKBuu)y>`BpYJ+-^5^w#c<`&1yN!gB5Y zoTaUyCXvkUdt9C`_}jQwB58$R_@9k)`t2f&+qzEa&soIClrIs&GQs?w#m6uKoq3T> z2M(-Mv61@R@p-K@Z_AU(6$uVr_j@iMEqHh%&Zu8&QD#l$;n?2R-Ot5*I3+8;c1(^t z+%tj2sOEbQ)6y^IQ&03>x0mQS`p(YYa_5yozvg>}lPm4!NANYQ_|MRm)vDCIN3-EQ z?^DKeO&@19TJ_D@5t-Ft^VlWo>%^}c;?6jl@ap!cMBI4%{YaIN_5L{uxfi5(ragIi zc*pg{#)m5TzE{lX7JX{M`C9V`H}4t2Q<)O{fuft)0;G9AzCF6NB;3i#@~YXL9m0!) zmj3wM*DSO0?2+cc1rl7din2vzm7nS{WLK~4^NkZUo!Y0T@OYbA->fi+*s!gq|82ZB zgLS>chR_3@?;b2zyd-Dd2F8RZZ#$OlJuke5`z>D_=W}yC6RV{!4w|^~KRyy!&%Ari zluPY=mgQ_^yH73%e6srOJua`*!}9k+-Ija47V}`PxuX%8Q8DkMmlyNFCKZ<(Z)y?( z9nV{x@DL5#aWo-h)%V9b96_%&&Ze#?WZn6;dws-gEt#K5=FBa(`&#rxj<PddTK(g! zgE~9^V}=8Z7yo%+=CbhG@}5Fw=c=Q*t&55*_Dbx3am3*6Vtu*dY~Pnx4u#BmeZJ>y z;l-}W&Cy3P7@j?tHaV;0PlBFiLjL?YUZRI&e;tWFb-aSdsNw{}$CcYZce|$lEpI(j z!zN)YesZSen_S2K=RB_~>)$0iw7wC4-s7*Fv;0G{h~h2($$N~CH2U^V<}kQstNd7~ zY1Z@i>IUlbRG*nYj+O9F-1YKx#4m?65?1Ac6aOSdHP6X^cwFTLmqfIXc;LQ&H*EG8 zCZ>EmC%5oyGXHUjX^dApPv(B_diug;Hq+DArCw5Y?*to8zRL4`J)PggH28Z_ajx0d zZ_nAhlvIAm+axYhsHuI}XEirA^`!b*HdFmi83`#9-n}ZAn67M7dHNe~dqeDIaaFH> zYC3%keEnZLS6Vo-)_*o@y=k^g@d6{$<tb+x_RW=8dSj7#gsyu}(;XHE-K^KV@lNc_ z?P}~+*~(W=t=ZwTQg&-YVZ=+pf1h|AO$xssZCH76;ny}NhP&&Zn}!%|$~^OVQbX{9 zY)*TvE%t44FBFrX_NuWuUzS=F_~3J)PK*1_&dk6=?))oC_Z3{J5xNto@aaFpnsmbp zQWA>=TIDS>HeYzn((K0g;&T%d^FB#Mu2MB6=Bf8&g<{XoS#hCSAbj2jIooLVdrB{Z z=cWeC2`wtk&fI(~IP_d@U)--n7phO+&#bgFl&Oe(_I-Bhit8RTl-#)F42}f7&SmfX zej=lB_V)IBoZ&HLTc5q=Y~VCK^R?%~{K}nEmtKxA&|1Cy<Ajt3myi<=Z|H9mKHQ$N zzNhv`Nm-({)>ZpymM0Dh*AzFO;>h0eoO20puid@^(a?+2uNg>n2j`e`bjC2O4SU01 zF=4_>8GA_%t~=6(w*(i;T*#4mxb8zuV$!Z_X0EqA=T1~T{XDn5J}pPW??B6rGZ$=& zc7{z!3VW&<E_^Pov-Q1z(z!D#l^%V|0z`aw9aEo}F02=%qqy}zV4`AsMyvD6iEVTJ zE^`Q2tt?1uEaN>cWUzYUIiuspeA;?G=@nU>7y2u3?{oICh^cM<-=&Uj^?Wa<bnva7 zncDrz7xofbE4S;M5@D8JWMggU(#YZ5GxHnk0SConTN1W%{65Mw{a)DOx9N|SSYDr= zw(|FkBGXmZlC;dv{XEAav#?1&I*nITP1U4<o#!$K@0~(751WcZS1lE0tu8vW*3)qJ z*Rl*vl_O3G7p#vSVrXEToE745UHtE3lemRb+}(3_9p1`z;z3^Q<kKG~9Xcy;z?n_% z&aI^ZlkQ7!HLb8zxm5R~!&RWUpD&O(G1MSjdEyeI&RgtGKIR6KUETMXtv+{p4u|%N z{4>XR#hzc+?<r(?)DXvSQKS;~=J#n=SI+fwj5r%UHZU#JJ9@PsA;Utc_7m6L%twiR z^OS#{(veqqD7z;8?`wWBw#@fJ4K-5^Zrt?xx+WuUqCk@g<DZAjFPJV~Gu+TLouS0c zf^!dd2Im>}=)<8mRqAeXoZZ{_e$J8*Eq1-wT?v-i^*pgTOX@8ZkKT;)3GZlR%GOvc z9o|#4wqfqP;<9c&HXDW&&-UMw<%)HWP%tl$5Z@c;Goi>K;Ky+lUd^Si<t<KpsxI!| zq<Dv!?<L!o?e}t*eUU2)XZ~>D$FWtPKTeA+v*igmYf-yjLZi2X?ZfQM%hKoGZF|Zg zsQR_%%0C|m{-ymo6=K$YMT@RHRtpY4ma*DTXzjLlJ`)d`ZA&}hE55QtKvm-YK95zo z;_SSxeE0ISVlQt>atPk=v|Xc6_JR1?t%oi$*KzjE_VrEO@s4q^;u81bW<9mFQF>;x z=B6BJvDyAN>BhrTkJhz*GUuIYcXP?s0=Y<ab++PbMjH>!j*!(>`*eK8jF!vOV|{pq z-*-Lv#bN0`hjFvn=Pui)S7W4n_ojy$ToXBT{=WWlrvD6cM0XhJtP4E-^OSIfQmafx zZj;`{Z%17;KhC!L<0DY`^JuxasHMTO4c&hY!cRC&OJxjR{C<-74!?+;hH#S|oGuw} z3R~>>e@P}pF3J8ES)(lK*&onw@>D_#*Ms-^a~DMQzrV&1y}j{=L5M^4gM9^D??Vz7 zuiknq#f?Mt-NVE8k|mOM|JGAlwf&9JMF#2WV@ns9R2I5Dn(~BY<>8ZaRxVm|oJFcm zB0G%rfq|eIr}R!+qpaf<ii$fm7cTQF*xmD|vEkS3$%@V<g?}HaojW?+y+Tj1>EHxa z(-|_o<|n^TJG4DL!fc9M_WX#nJ@)&%-^-tEh^vz^)skYHbFt&{#X_O1T$@KPT_4Ok zGCg<lxm=0MdsI%kzuTcuDOGTLpK6}Ll0UQMEtk~iEz8^b>-9Z}kaGTt4j0{Axt_G# zihDV49mBaUF?9$_a739OG;H{&@$Mn-!j=EdcooYP@96HY<ZQ2b+_?B~;N_01EKKj8 zS8i1G-^}7Ie7whU?eEkJb}?(;PM_I#&$Vgi(TKFIEi9LhS-(_!b!Ya8*?tjG3P&oA za&QJ6J(a_F=&UnaY1^`EtLxQ@Z_QdRx7p>2-*K57l_v#>7L1eECI>lO?@{pFpmkZ+ zGo|`)QNt7F4?E_o<ohvb_!~1Xcye98Dyio7^Lz34bUq~WW|X(|-rLl)x?MhITj%Vp z>nktYK0Ml+r0RKSnLyxi<706XS$BN9)wiq2-0ACdsow6#*7?z%=Omf@@^YM=N@M12 zbH2xPy>C<O^K%dM=1f*7dl2?0fl0B+h+X=`i$3q?Z>I(Pwmz0-SorjqlX9wDZSsQ8 z+^cPp49i|i{Z3YWyelu6p>N^ib5bD}=56}8FLCc3yQVUkV(pHvALbR5wX(OUTl{ed zj@iy7D!6X(doy-FRe7u9QSEbu<=DRQOT4t6ewa}`liwn#J?X@QfD4UPhXol|ovJ$Q zU!L%>@l(L{J4eF~&yNV)V4z<aCBFIa#Hxajnb`{iiVT^Teg1U0ONaH^le14mE;l~; z+|9yQXY80194{GU(<S)j(Kbnkk9{G_x*pi6<@hb+GY-tSRz8J+jrpEK%Ll8oE^}-* zSG0OPOL@{f<@nktr)(3Qm7FKLGM8u?3R-Pm78|{xU!u*Gi(}uq!W9ZT*9)6*J@qrX zUA*k;$Js@4M{3g5=gU6S()`%eo6kJQN9g<Mq8Q<&C#ASg#%y2;YWEXlJtw{=$M475 zznc~Xv|fBHebn{ALr&J3-k%c88_ge!Tucua$U3kpWyy7B?mmxL>;BsUX4lhh9Whz? ze&u76;F!)dsZ0Cfb<_>aBK|z&@wbvmoa}JnTls5^2c-*Vu6tzhoUz;D_-Wfzy>kqg zWcv!F7nh$j5a6C#ll-{wQt@knw?VoSKTmwnIFE1d(~Orj54JJvJ=1z%UhLDF&X<QT zseQg@vbsFaV9PfjEk@-B2Y6rJK67YG{Nz0@S~1Rra?h&|n%X@#zYu)IFjGk*`G-qh zsAiC#(U*nZk=zUaJnm_9I+MQObJt?$950r{SI;Gt+#gPR?Gc<kF(7}A4Cm$MKM$JL z7M*=+Rr6OdLMgJmy~^%&*NvRxXU>+zC|n7SzP`ruxme;{#{)s<dPKUC{Jcsk4jgCq zcq({cQ}+ADr)*26J=!Ypa;u%OJ8upDF`eb!j#m#EINe#i?DA_KUv1vUreRyl_k>0) z|83y3_qUp8lbEu=jEQ}!TYX$Oj`Kw<UNz%_hWeBPZ`QL<R#?S1dF^whwI%lUIr{Ue zS2qZHdmcX)anZ%aZW$vJ=eP4y0_xOkL)O^*xW@76h?EbfQ^9xn3YCs8vB~@H@TYM# zJ3n~jaH~b|z`?VMYnsCN*(4NZ@%eo4mVGbWViUc&`vs%p&1(vIzkF2g<X@Z~%g)Vg zr4a0UtV8t5S&vp}VQHzk7C(-dAFfGiYOxZU_c1H|s)fR0yBoQ2wvVn<{43~={`{~- zXzD2iX0<PZY>cNkVkH?AuZv6XOINfraFeind#Z42l$~B)rp4`^^4$WKN3E@nvo7mf zdsf&v@ccQ=GLr{84tvDKJbEU!<71zha^_;uNjV3uA5&P{w%agJ@L9HifJ<Mv<&Gam z7*{=JY!Xw`J^rG#xN>LHiLm`V$q7lH)~U#{PiDLLJylg)BC&5v+9l`f60_n@Hmr6k zESP#<Zv)r%z3<tJJUcUje(g{Q+s7ltv|m_ANuHU>bY5IxH2b3`r`Jok?5`GJJJ@`U z-PMcl!>Zq&i&@NGo;lHa@6Vnmk8?I8_BSZY);;W*9{D@flU4NTLB}%3+x!gQV($nZ zo&B7(zRXNkeUC`V>vE<!N$TMo-G7p!uN>cSBCC3i3itIrCQG&j<{uNzP<eC6gEem6 z?Q70U<$hVrWaBpDUn81Y?fvbTt<;`*c7~D-%hk8>CTa@4Kc@BLgzTETk8j5r8ZYjf zy@p|nwxwaqgB=}f`Hs&C3O@4T>+C2M7WaEWAxq{ydM?=ephj3$EqNV}QY@ovx|Su= zc3m0Ay`Rs;%N3t~+wkb?(wdy36L@BBG7$UN{QW@MHZ#G^9Is_x*xji*dg}eHM{{+Q zs!ttZ+-rEO_t>EwMR!XRUiw%?nw>MqyX<!7!G$gJ8UH^1RPA>6<F^A-CM=la!{(6d zJHN(gVs2&GA^#nbd0Ypc7<lYXJ9p&m;Z>h@zc+bQC4EkS;pTgt8L~4|9&Z+N;1un6 za_ZvRM?VCL#P+1!tGC?B#;3RTo^QJB!_Y_Z`xrfsT|C(tcX&?(Z?;?b_7<C(CtVHf z{|aU)d@gOv;`?&xsU7n*)z5R7dY>hkAJ`!6P<hxo@KUT?fr^E$;iI6Ch-9lPv&;HQ zmQ8vrp?cm;|Coz=)At{TToaR$CWik!#(H{jvjo?>=`-iFr!ieSlTdwB@tV#FO+J1L zpIWu$&w2fI?)&B5>$%mGz~s|<I6}NRf^S0KnW^=WGS^k3{%%a3RxFYif3k~BHk<L7 z&6A*fhOTXz8&5gtvgJ4gZ;v{Zy6(!EAGhYd@0q(H!}@gS1;!00{6rYfuPKpTpl#}L z=X%8HiOMHW@=f0?X=?Yz$$7p-i~7gLi;<4a);n)+K3DO&V#@V5r)GMd)0}HnwC>@e z*DQexE}!3{7}IxzS^tze=iA=XY}b1ja<=qu%Q8utC-<p^qgD6LL6+&ed>ob8wp=_G zBo!oKlPJg(dHXTv3}d!ui?W>$exAaTpgmbC!aMDsU7^eg&MogHoaFD+8TL)d;5*Nh zV#1Q2ua!KhB<Rk^L(ADuUo)AU_`>f@cR+VU(ZQ`@EruH}EHF3Z%G8d1U?cB(%|1au zf1kmTAf5BuL?0$7O5J+)_v1<BjjtJ8G+wMd&|<;P_2{|xa_h|{;gx}J=gi-x7-4dF z(HdXVSyKhpUYywcEvoWZ;4RJT$2i1hJV{nid>~tWqM=_$W2wV@?M;sazbW>l-cI`5 zaws-4jZJ6SljBaV*3u_LJ+I`yd(6Om@7U9(o0pp&sO#xk{7&K&QlISj_i4tyNNe-+ zHCe5m&&8x94?H(<O3BerzAd?SPr|3OM>kJ6cPNJOb2rz8GSMRbE)$d5jf)ntx7a>< zA+OW0p?BSeh0AiE_As}3-gEFi5VrACV~KV}_}jc+KM$A$g-0;tT@_o#=+R+gq0=LM zAXLtse~L|C?PC_Hk8N$&3%8uk5@((x^ECI~2j6`@X1iwm-4J`B!r;a`o0N_Bc+;%7 zc5X6#elBG9ygQ%npUb<Ht@l?pE={@R=TYa_30B86gIyjTPnc;wY2_2K>^-73+l_;= zcT^l`$UCmcVrtHtcE;>`b-@>>yYDNGPMgXnY2TbEdQ@)qf(!!_U&)A5RXctC<Tg6A z9M!ceELZ(-^5)|091SbeE8V^4GQF0PO<B0Q?+aJ!gYUgf%`VKM907Z!4sfi#U~u|v zoO`&8re;pl?-N$4(x(eKTXYNB9}6Y)vL9cwEbaB}YbruV3%*ae=*q-yDeS$ir-spj z^Xz-owr!O)sn3@B-n=I4DXLO0ZWg5-+dajHA&BX-^`VDHof>TNC3v6ndVcKPleqZ$ z?-MS<$$9#H2g^6lY|`b-<C$S8eYS0RQLpjTb*Hj^A9A~-sB>It##;4r0w+ExroQfp z^)`DLWN<;w_UVeIw|ml=w-@&HhG^|Hm?j<dUcsroopBXc7>8xl_v#<Vrj;rj{b{h# zXVTfHl822aKW1cL+#F$d%3kGIOy!#O{Sk)_Hx|v6JfxIs!NMSGyWgVyP^|IyBgy_; zKMXTC(sbF)+UF!+Kc;xCz>+bu`y{)L&V7q{?#ILeW>*~7KCjNxU{-uWdxmysb8p}4 zJ)KorN<TjL1c)d3T;b^FVYgr??0e<BIl1>>uYTg!Sq&bW_q|iBEC0`6_=Nkx_g=N0 z>~BZx)?Lj#rn<W7Tx9GrR<}d4*(!`YJTd~>y;k4y)*e4`d%0Wjj_lut6M|f3$vpJb zYnPhQyLZNyNiUT5TbTP9@j6^95M23~=jNVVvxjV(9z9t2;|QB(!<X~VO<XOx*9flK ze$Q?114rlbH4YA+)fg_ZNi5N_(7LkxoVCWi;$yNJ1@(RfDbl{eT!Oom@A2;Fn|Pxv zxurYvoH>&~!*a%D=N9<Xr|?TC<#b9LZED@iSl+tTWzM6C<}EdIAGBLr&X{E__d&%& z>YkE$!>0#{%(>Gqq?ksZ%CnP<l6dXo<Is9J!eNUJZ_Ff-2NtIk4<?r}?Dl=g)po)4 z{c|a{8N&OIskm)E`?W`GUMbJbM;gU#oT^?MPWtgN?nq!u6no7s(sXF|bD;+p#Lwj( zUou7V!6LT1pI^_>>Q~~if6iUt?-zVdxAV@oKN7D@^j1_I=4|EoVD;kw=i1c^KN`3w z9XKVoLD$Azf^Y3Eksrq&mj!O_oZa7WyRPWY$(4?^rENEScz^tUbiRiFu|%ZVoEa-5 z0xI+)W{FSUY<W_q;B;Dk%!y}v)U3IS4oxj?RxL@rqVZl{;{f}7a|UT6R{x5#cSC>M zl)dM2Wpww+P!%rQaBz43^mF-&s~;uLx?XjRA@=Cu=jRyHJX~fU<H%8NU&A!9yygyf zL*iq(&U=>I+8GN!WKSzRdpD`~P}k$BjTvj#)J>UQ@ho=5SDWM=4i}4LE_J@%^H3#k z(Ib7H<>hK>t8(fsR2U>UgsZkaW#DzZ=6qX3a?LKq1-t%!kXwD=l)ftC?R_7unr^>6 zuqJ%UQ3b{LxDCNJ?e;mL&Q5J}Od7%u9D2@rIptt*!qZc{oa}q}I81uvw`IO!wm2zN zT>Bv4z%28fO04yJ7=kKh@NI~?FY&gb{C4Y=#$|l{jra6b^Un#E?b>yYLoD`z+9dYc zCm9X<dlIJHpR?BbTIM2mlfH5nqr)rLSszL}GA}~(z^A;LXBVV9bbg*KU|79Bg2C&V z^^Vs9o~Df{io43+YwI0adEwL#=Iy4hk`p`T$?={|<(quuKqZSp>h2@2LVp-VZ||Pa z%y>YAVfQ`XRkFrP2XE}1;oH1DCgneaAk*rP9V>a*=iHkp{@CVVj!ytT>$Zf8dwZHH zcL*<;^RaD#W?bTQgGD9}cQVC%xh5X8G`?<wYteP9Lwk0=y#29JA!k*h(BgpSS`8Pr z{+yBQ+iEKMT%Lo)SA37>gdFMoV+=EyC(3=;DsrnU`<zasGLL*taEBGY=xg)TXUlu{ zq#a$g(f!ZEz)Sr~dmhEIUX7@EdbG64MBgGm;%>&H8SPDn*eeVg7v&2vNms-fo_eXZ zdqzd~=DrVyo$lopu{cc<`+4lex-Tit&4KTk`K~gTHeGhx^N7KzaKW)z^ZC>?`rX)8 zooG9gcBm;KVZHRbgkI_HY)Oay_Uw<ni}&rZIC0nHtk1=Q!%`iqBQE5!q!uo4-Sb*7 z>pgq(#|9yGk9*&eOr~A0iCLll?@`Tzz74FiQYM;DV9aN~+UjjEM<r?P@5I?$S1b*p zqHeUD;EwS7&tS>2B7EM)vwHoOD#E!}cXY~HtTPKUpUU`svWCAp_p~<mgR?^UgqPpr zVq|qVa<buSWhB>j_rss31zfI5N?o^T<HN$Mxi_AhIt5)XFq&3)`I;re?()CMw*v26 zJSXvz@kwFti3@Wd9a<e%chlAUZa9ls|4c(BIp5NW7f(pd;GG{4e%WJpo^3MM!l{fG zj0{ei)%|=i-AB%o^W&`Ylb;ert_d8>vS6+0i$0p0d9=7oYM0iA)3!`C+_!s`O``5T zYU0{9<FWVdrH34=<>QQ+zD9lTlbb5~P4ThrSq^>c$7cHOv+Il&SbLuCl5m(f>yhOx zg@%Ik>}CIcXs_AJ#a4MPJ@1~uQbot@f74oS-nxAvsn^||O+eYRY=>uyFJphZz^p~? zc|u>bR`*oy4sR1(B$9mHQmE$6v~CkATgmma*8M&j+55I6;da$r3*%27d1;gP+CSHn zYmz;x;C9sD!R7T6j_+h@TKMuvSD)yfEv63|i%zV(82sj;Z7jRI#1@{WqOx@wsd3Ej zdln`sdm24tS(SP8s>-!1yA9KvlpcKSTDG3^&Z!R%v+^$-U|hwptZ1hL!<|W=s*kNc zAie(dJ#nGF>qpfsS`wM_^N;B>mEH3ZkN&~7`;cN%uUfX_(qQW|I**wqSfqYYZRhM< z)fl(f^27!;=94X+?atjiX1))OxLiLM;PRp<rm#^wSDq&!=nI$6+YeV6za3Fzes?n9 zR?usytcZ*ELQMtDo{O+B$!?0^c<?f2HS2!{-=t|O8Lw}5DXj@x#?)^9#?Wmu`>`yJ z;=Cf}yqZV+B3i5W$>=N+5q@;|ocTdlS4OLug$#S&J#z4VaF|)pdam(3mhwuAAIGx} zvkPfdS)LNKW~?~vzI;u}!PB`CnkP(S?mx{kQ}5B0<uGnsvf{@vUDcZb$CjKraCp*Q z@&2A-w=33l?>LT5XWLh#tGDu;K~T2m<!N^>XKQm*T`|z|TQ2f(+KZf}$uD{RxLM^? zeH2W}E?;ai+OoXIP4d>g4J-zV=6jzT&U_jZkzu}Fc+-YBc?na;vL{EiJ|?d*Wd2ax z%Vt(!ENJK*8}@Wo+<bBEIX#b61lS#oc8Ure<Jj|XhDb@a+{%N#pIcf*8Kav_W_-zy zcx9r}F8!}KQPafS{LbywZ>MZp`a-X0&g@ou%Y@A(@nzo2#m?R~xV?wz+sUr293KK- z=sW9fPAQ5_IPoXe;(bh0XV(IjX1n6`0n3#>H}m>b&Xv$H6Mt8@r}4+bOfTVuuD>O| z&7JVhXCtSz>7*Xb__~5^`TU#nA3eOC?Ik?<z0rrp19opzQ*4TA|0D-2P=48SXCgnB z^ZPXgx>8afj(5k2r2aVGVY&SK>8XA!505X%Tdk(Iq$F_P#^fnt-;T%HFif>g(egVq zV@Fh(j$uyAf-|1Xl~2<&7b!9qo^@Q{XF6FdWaflPJGSOm+}S7K-;-qP%Juu`ZHC$L zn%(Yg^Xt;GE+?P2&{|d7c(TJs=4$${)123*KECJRY3KZ!O)%l@=h=?Dq8mFrcwDWD zJj_}?705R}Inrj%dS9-Pfmb%|h=P92jE^bXc3xlEc$&qtxZoc%%jUu#RR=BI^CRAK zzupsFbZkeA+u5%ZjjWctSzB>l{CVQ@mC(XNx}Wc9C^`z{+5O$M!-Mg|=Y9z$#@ELr z-^|@x-Y8n|;hNg1N<;G$#T%)mFZdd39v_-2o2`&}Ax`Gu<V|O8FjUJXBrLdoE|~95 zpVf`I3FZr5^Tl7*JaAO9w_sQFa#qo@-LEa9oTslb;=cX#wQ__1v0Rsomu*aZ+xM*a z=Ue-6@1oE53RVQiuoX4Pavl>hu&y%bc6^|>@5e#g!{=D#t|!;sR1Eyj5YAEf=Hj>1 zr3;V!`FX0rU*0mn*J7P`$gX=54DAWaq`jKrE!Qp8Sl`Cv72U^UAfER7$a1H5sTqu0 z@1F8}q7lQ$pdT->bji<xJ1RDNo>awg9`g}mT|UPs-C}RTDQAf`3nxBZ={!H9*4^pG z%j`Z1q?>TBxykCZtFdXD!|f?nshS2%*?Nn&oNVY!dM~r&pz)lW5A^0p_bgGkba*k7 zfA_v$CoUemdHk_9>#kMyIVxABeZKs8TKDkfO!mI!gMJ&AG?tn+|873A<3g{j(@wUD zMIWcA&0VGU<Hr%9oZ!RPcsUf^E-g0jOyHPx;B~Ko#GfQB_1q1|CJX<xGd`e^9~|>2 z(cx(0Yk6Vs=v7ihht1E=@kp)hNb=pZ>b~5k7!5Nk?k=%~GRyxK**#pR#wsPAcy7Zk z%^$~G440f(@X~WltDAUf;qwbt`PTxyxHsHq6OIZMpR-z_OV>8>c!!((F@v>wXBwOS zcy@S4-=5;~Cn@&NOq;oh7qg7}?@NVzjA3l@={^@5$#1cDo#F{a{mQ7uLn~DeWZby* zy^uk+#A0fRfx%LTgeRQ_0=tfMWOpvs_u^)axuLbCfsK*H%hbQEEN|wvr?ZWZS1fvy zpKdAApJ(`l^LXJskKW_=6e3SM7F=Zy?onCvs^YZyKHUcy&ePc<t)jmCKJPpyN2^_N z%F)TkC45(W2sUS$n<@}DHzwKt=<LWffk*!&b(mNiO4xBdl<0fLlq0^zJLfvzJ2Mf# zf-N=*%hcRn%(ZyDIBG^!pqiC=?CCuWZ&;S`G{2D9YR~oJFl)&jucY_w4-1&@oDsN{ zD<sUPS-LlVpA#c@xFGklTiXRSHPZyTLqD$B#K0RglWVu=`&mskzQxnH$};nGS@tkx zOFolNkjz<P^2sPMFzvd+h21yQ%mntD&-nd?xpJlUBEJnsw%jnOd8)Fh@cx{a5lYoZ zT9Tgc;biz#x~6hF|75W~&Fy-!n?%+=kuFa>`{Q6~s^wzGrF)Z2w@TXUF*57&&fs0@ zdH8Khgx|E-v?J@T__!;4-nWU9Lqvx8@`>kq5uN#Zx@N1{za3ea;%{-`acFs8soU-) zx96O^o+fBsBz2Rea7S}3v)s}f?d;*E$DNxj(s|7!`m~+v?)SJzo;%&|t+6Ub`+<to ztP|~f)?GQ$rL?%>sNRyOreEK?Z#lcon^RhRLQ1A@>E<9Ci4`0Q3Ev*w5#93b;1&+% zjklg05`9##(3D^0)FsxN_y68w;VeJg$-Ls@eoK}O_0A&eg+A=aJy`wLbh7yJJ@-u* zeB&)$3zK{DQceXY-;Z$X4)h6GzVVu%hoW`6r9eF6#EdAnX9f)$%W9t#Ub5RbGvobp zR?WL*e>VuRHyUQiekpI@oq570={V!TgeKPw_4o3!l;-j5NC|n^*Upn2ej=G8cU6AH z$E}~rl0tsoetS-VT|nyC1htdv3bPf8_kHL+$GgdrDRYB(?43B)>pmQ>3iRJk4Dyf6 zm}5Bc{%LLZhOaF_yIuCnZJy4br>>oNbN`&ZsSbxVn7&I0q)1$8UN5mSd%~&3A7@Xw zTAVO9yyB$gYvB#~cTHz`dR?4Xz@^={G2>G3xlISQ<lcHb!}jp$Z$~aYV{%AY?C9)U z^B|$<(E7(B95RK5yBAH7&z|HQyfB8x#ZtJ^U`t5(Yt{_WE7}d}hhl;S{=O}!F5dR} zV@JaS6XW&Q9vdxmZuClLnd@mUu`%Sz*7p$xq3fMngBT|-RyJX^wrz7(eIL=dRA=T% z4d-LJ%3H-HIzuhz=Pco4iSFWHxN-hwk1Nw*hIfyX3+|YtE}1S~ksVhUQgJ8T>aYUm zpNCaCIdU>wmwvw1v^lw1W_}jOlN7f_ANzG&rLW&-ZMzi2r}m`E-)_^A6yB7>4h~$) zKA18Wta`5b(;_xSs#y0wLxr~YlqLR?xvjkF&id5(316?6FR+9^_CJGU@W!?GtXYaK zB^3tSNu1<gaMw7*dPl{HGbRr%e?K4;uq#_*%{GCV_R&$d*W_B|sz>~m`;gGRX~Bi! z=9Vs<2iF#O2#d^;<mXcmIK3~HxufIjS~b2SFY=xnJP};4_UXbGkq-x#?|sPAbim|( zgr}lvRPMHPMt9kEn<uTTn#}PQ`R<b=Zk7oyN)kEsUE#Qk%9H(NT2Z-qXP+LPa9(r5 zp@h3VLcQ8)!c%ihejH_-WHw`k_Te-){oaxt{JN^2r%ZB^YMi6--OA9sYU|en0*5oX zC(1cHPh(>c5|t}&p1YfG-iIYdN&%-HI?TF|dTXEeF@YvtzJgTllZB-dH(1&%l({3J z${8~KN5RGr_h_FipGN!2DUNNOhufKSjQ%~-l&(4S$Ku7;L(6aT3W`+}o|$2@;h^^| z({8Om6?;pw=#96Z%U<Z^tx1tT;cjum#dVgDF8|Fb%?a^*S$A(g{Wwvk)2jLqL*R0q z#LY9V$JzZ9FV%Ws+ImSK&hj9OZ1sm{cOn-&oWS!=cC(lF(d`Uf>(V9qb?z1x9(3Pw z)nFm-$3nHB_tl4u9^B6p<>%r&c1JxaN$}BGsoD=N{{%N2el&Sk>d~7^Kd+vh-Lmfc zB-!oz4B7Z~%mwQViVhhDOv<fE+LfrpXRuuDKf`)nnSEZCHJ2|WZQ@+LzsJGy>5N-_ z+Loz5RI~GVJzs2_muB$BN+_H!{X(D7zZH>oIm^S}JZ95tkbUrQ<7)GY9h0toR@)%e zC8cgzGd*nQ;-)Wmf1H%O!Q7O}R?F5uC)FZtLc1Pk?si`vt~;5_*@C5K^SwP<By}U- z%w!kS_MW!fz?{#0Cpu;`9=3fjMc3it=f<3C!9~jX3i-UL&I#{-9`#zC6>{K=vvbU& zkT>OPIv8$mmSYp)W#hRx(Zc!=-v+Pp3GLg}znw@By}V2=u4zktM1lC^)3U0Hr`csr zvYJ0<WB$D9^T&?K?Mr4<%w4zdj7L<?=c@0M166tp{T8hMalR*@^{B~|glk%BZXP(r z$5L9f`Et3;L`!+i!dE|R6Bx97r+%CztL^z*>74fV`4Q7q9y~3|o;M?P;p55~x^F|5 zzn$v$OFS}CCTn-WcZnpM4Ig*}3ND!z`$|u}C*`<gj^VT$8d5%soCK!!2YOs=;bWU< zSHNDtJU{Y^pjO@v<3Ib?KHr?7FS*K`N$RYpJnOwY#w5OXBA2~(K9*d-6)$1Xa4WOu zgjjooi-6Ky=~Fr>Z5zy{ZqwUwFxLA}LbLXQ6O$s(r^zeKWts7P$;aEzS$NsbPG@lB z*pq%_>e7=ba(pv59G{d=SoLVKPi0tM52KADvz3zIYtgx!G6pvqq&}Zh$>_NrnJQFx zyQwmDVR1yY$@g|nu4{AVT@F9SDlIa*Foahy+cs5_d1=Mj^mWI+wsM^EmkeIwc=>ae zpiHo~Z{pqWom-Z=y==eL`?~r=a*nymV~g7j;x&&Zg#BVUmc=Ns_3P|95pKI1%qa^h zYj(2OB^J2&Gz$OQxixXoyyBcsQmxknel*;8B;la+`I^ktMZaaAeNyBLd98MoBWH~l zuSSwWu-p87Mr=2o@9$Zodaq%Bk5tm^8`{rxy^EN8`We==ch6qRnr&YbwAa|&&)^y_ z>(d$u5#e&h7M2Y=H>O%22{EzG7j~O?S<P@w?a9XTc2SE9PxyK`?kjA(nAaAld~-q7 zQNdnb_c_yVuc|(}d)3zWdlsKmjNC7|QK4+P-NvU3i)6p|a*BssGvdhzK9_k=de-`$ zj=zclUyWRh9k>z|avchv3#(O`hMU$1E?K90$xS!ja?`y~Gd10iZL=+3YxCaKV0hxl zlTdd5aZfu-M@iz>h$0KV&B--0n&$7fc_?zwT}OY`4q<`X1#2JcK4?B?rg33+WZU(h z8kfaoS*+_NjPjJ$OIjZnl%CuC<=m(0O%v|va|^f}y>!muTJDpQr%b}yvtKLoep~kO zG^?L@9*0ky?;{5(>*rkC;{N^MkSP0bXqD{Ci?jE=TM<5;WkKY@J4cuoFEAHRYIt~~ zd~(Qr<!{H6Vi(8jur2y%b-#yU0pH8rbKdgipUaH8?ke9?ea+#e{hG^yx4s@Z>)yfL z`#P;pe$M+7iU%jT+-%#mH_pI-BSH4L_oCf~YqK(+%;c7P%(Hhvyv3P?Z&%F-n(F%P z1fMI@qZwYotJ|d1K3_9r;WeME&g461#)XTQKAlqbYEEN&@nUh4ao@@3CKFdY;#88- z$+vWJdlEC#mLurvwD6)?K0*&-<$GAn3g(>==uxSN`PiJ@a$$qe>)R|L-s0C-E^%M3 z*vT<z=A)9hedjG^on(3RNUFfQ!NK76<u;*(H_8pgiX#HOli2&}b8;7z?R~I%n(?;p zeFk6j-%hspIIDksWXQ&<=6*h|hNxM8o?0iwKIq^Q{bz7c+`Hz1Xk66$i?bhCJT*S) zkp8~s7Te_Y+hk6<dnEH_{P4H9F(F)f_kjR2(~1Ks40rb=X}wj_zj2Del3gOkp!#Wn z;M;q13um+RCbm!Vsyyp6<?8JTr+2@d?eHnPdM7`th`Ah(!aL!A1sB3ytPcLr=sf+L zQK_NqO6HVny+6_|Swa`aI4!ub>t4;O<~c$Yj_hj|n)0ulsJ2D1lToZ#($g;FjuzvA zX9Z2i4R+13x459Oa9zDcs*|=~aqIff#CPB9&f9-K7Z{tf?EN_xmt}K|o=LD={dxG= zp1{*9y#v^I8fOX5m&`TONU@aay2l{nZeONQ`*UZK+S6O_xo&-T+*9gdk=fU5$J`UO zO3rfMhk%C(x$$~RK3Z;fJl>wV9BH{ixwDD6GSjp(iz)hC;S;5Ik|nd{{3G_w&z;V$ z)-bJhW2P@3!}kU;;Uxx-7|&dIa!#|Q>L~Bh=EBR3edngnX}<L)a(+cPPr{ast^4P! z;Wc@c$h{!<>A`tdj}&yo+Hp1>wRHP&w))h^HR}&o-QDTm?3K_x?a@m+L#Mg<ZVcJH zzU!2F&ef(itk_-LBc-dNyyhN@sORaa8=CekZrru<+;J(n;NUej`^(N*M{hsaG-VC5 z=qtZXO_Dn=H+8FY&P=$ky0Ks9R^hrpLo1(%^^-QgZ*FDmJ2Pp@7Qq>p7|SG=Ufg_} z!&SGj>qy}_!QL|V^_6a?^!<BgpR<r|a+<|g#Ma5r&i^i@qSKAfboO+X2^{|!B2H!= zsGN~F+2O}gZL#Kt&)qDS;&>+I?t0Bwq|x>_i8bqo!2Z{Y9@`2I*3bDqr^MIpPSVjx zX{8T8Po>@RmC$sX=(h7rjq%ok_G9`XMVWu*f1krBthYX#wZZSOlFWk#4XT%}o;)S3 zuKInp!BWpW37`GkpF1NW*_d@4i~Nk%*<O;`p}^Kx+QhHHl&{0MvqmCw4_EnPnG1@- z)9<THnWg&ta8s<7(w_AGjQtXmF0zQR&#BXFyRNy1Gk1&oxw5873;P1(9PHP`TzM^R zSIDx8;ptgdUR&EU>JGbu7aUvSKHd5FpJy|a-KXmwD~bEGJ+9^IAp=d`bRL6Jn+G#? zY(G59fce~Y;Y}v~?0ckkonUg_!xD0E`F-h0Yn;nPT0U`J6OfbPH2k@=_p<@ZEkUC# zR~nwn<Q`hG{Ft(&yGxzS1J#Wc1);V5F{vK<%PmV97g-d0h3~xHqoMj>N%j)wN`@ol ze9tAAH(q^T(b$xI%_nSDd*y<V8*>xpR!iM%aWU2F*()ZxqxOS)#=6z*fov0J#-Eqg z{hf4Mf%BL@%d$^KCj^&o?hWQRP<?F5?lv)=SUWZ5VvA)Nj8X0tU78Bk_t-Ay%;PE1 z^4@splBn>WB+jzg@jbV=bZiqAc}**9d9`)P{bR;~n?C)1Y%t}wzJ*Lu;+kIP56}5d zPj1>@bJ@eG&w!JuOSb-9%;GcJ)dx)8d2Tt-(8YV@L^pSP8;{WJpoCc^i#_+WDQ>+S zahs>a`Vf;`w&A1R=C!{LsFZCu*(S#(ofeXJ$Fs|VtLDjvs)|E8d&HhR^}U<uwD78* zac)M~4udO<UE3Zic4lt;*d3}mNA|Hp<ilfpvS;PrwkrGHdZ~HubFtmIml8D_S9R*H z+;~_-?}5NI;S<71n)fAUP5baxzQUJ7a0!2WPsW9LZAy#<?VV>%Icf<n>z`UA(3zWa z{g=^=jq&-v(k>pncROv>#>o>WT;lqb5X^A7da`1C@P%`X_aqrtDjNOp%UtsN!RCXH zY|rdG;r3ilZSg$D6D2|)8hoBDnA&?pE@-A%+o?Gcd+zl`Un_c&8(iV3q%`4JeO7gh znu=|m@q{DFlE&{gJ~*7T;JR61``5s&S59m^lWwsfW6spS8@C>Llz+~l+a>P9e+Idg z`?p0+VNFT6pyA7ED77(VcBOG@>@oktEb|@8WbRv?eYk?lhcWES9{$QQ_i1NtsBZEr zTKWCsfhSrHif@nQRWi<Fdu={TBwcxC)21m^dLOSV@ilxeblqKHna=y=n*5wOf~<N$ zSM0wOE>4@$zwusJ(cMFJ1**;ti>-QOzPNb$2@9IPiQ61y(_8ViTR${-x(rv}PlKm9 zyR3G6+bT9gV&NOZw_>Yu?pHo|Vs!1>>dVv05_Y*O8nG<9zb#1k`T1ika;%~qnH};Q zp7vi|a<f4}qUB~`v&v;1ZL65OasdW<f~#UCt4v~F=Ch+UVd*TtjT?JA&m8>AeNO*a zAg>gE<;y&|f@M-Ex9`7sVlgB7;M;>N)rn2Jb@v%uV9Mofz9#jReQxR^CFSQjSFZB7 zT0O6}O<PlG$eH%2w8=a8O}s@J*Pag#Hb00{GvsK{E^kS>HJ#<{lD&qB?CRPbixhk& zE({M!dvbT`jzpOUD}0|?$sRu56Vp(tXCzZ5+|#KxDJR9*`%YV!mp{YDY0T|@rVUmm zlbTu9FTN0L&3GWNxZ?=ptu@D&zqz<3h|^3qn74spmk}GsDz3GEp1tKWSa_$RE&9XC zyUrDjF3DSuf6`+&XJqwo*mYQSC4-cumfo`YHL0o#;)-`FEqp9sZ^+qIqIluq`CG}X z<!6&Jl|n1NPk)}D{C$Vm!wUPyoky&48#GTSq(0z%WYO|n>q||t*#ZCJ-h>p+jjpdH zm~z?v-Y^k$G2hN*%_g<toPnR=Z6=k2j?vddmfhW*uz-E>l6?j2Y$xO-4u!MuYTtj~ zR&y<O`!NQ#HrYFy?moY9Y%=ryK<%Fgm{;fuA9%&bC_i1$@!#j5#3lC>qn2oH_;G?` z(d~QRC$xzMzFspyg@y0Tn$?%23sM(2zIq^as`<jlS^FAF{@qa6v8%!+$)JSubCclx z<>_pUt<edSGADYzmt8RRe6b+&p_8Q@EK{1N-!p%4r0nVMga?^_E_Y9j|2jo;`<`7I z>J@t8e$JXl7DZK^TGF6zdMvQO`GEcFDZaw5RCpKzl*1?XNH)rvrM-NhX!qvgtV;8~ zE#F_86nu!`JGl7rqa8;#?cP(fPF1y7;a|bYa^3$7la*B36ZUOM&h<X9{M&(*st+RH z3*|ouO8d>kCO7Y&TCA$~9-HYA0w%7rj~g-Y7JWI(d0evO%I1n`CetURtW%OGsxF+U z%`mw#N-&@#p)1jS`#DzLoqH|TM9FMiCUUd6k4b;dMCS|ZHrfauxp+`vUGv{hp8R>- z34Gp$n&*|bYdml`+U^>>+91J%@43XCrTq+s(^3{+{P&?#?{4Rh9Zxm{DZlyHVESRT z&n{-uh(7C84Ra-TI348S-q4p{QM#ugS*&+kj?AL9<#C1gTrOIt7Kl%oxixsA)z5=o zstfYD%sI+uFVu+K9^s=nd%+9yW{=jTenuw}CTLxk-&U}!`#oon+inT*NqNZ;rq5kp zA8cOoQFCRnYYW4!KLr_ol4o*T_PO1!a8us6M>bh#sqga7(<I{3E4^ae);<b)%C@gy zX3+6~xbo%=CRZOvGBLgSE#b0EuF~Rc>4|Ok=PX@4>Bo`M7komGINT0LZo4gP6~m}% zDcRI@`t;|iQ778<l$PfBo?Nrkuk(S?uaLeqXD9c`=QFl$N_3vSN4&worQ+D@igy2V z8hd|;%>O)zd5LGnDf5XT=FKemd-<FHGgve*N|nzM;8+)~zNe&Ieh&9ELDuAoD#Kph zZVScIABP?{aVQ`8d`{HOICs;P3K6d)(O0ey4JsJ6SQXAU4U^~lJm&<zyRL`+#K+t^ z4KJr}bx?Mnf1knaLe$sCBEbyIYm$=$D-XPNe0X~HuM^h%6`R$WbffMjma;oOW)op7 zZ+xxxRmAsty*fkZ!7nNi!N*MYTxRg$%8I*vFyQo`8@rkhf7t9`=a4+rvC?NxvS6E< z$ij)sdxGAxzQ0x=FtPTD*{3qOqLMyFo`Tn&FA_pZOB<)B+Z=t*Qk%HdHYvk(iNV55 zm5C?z`#&*x{Qd0n>YMi*nw{pX``qy8^1ja=0Ux|SJnWIt$bK%n@n-AthQp>i*Y?j5 zobuAVg{^18o0)sNk1co@>6Ci&#m|$DjH{cu&AN(bD{Py8jCHGL%?8^}SA$6mhqt-8 zmRN^tMjX2zllbC{`I`8+PwV6E+_`&w`t55f0T*kJ{y4CsQmwy-Z8Kxx-oUb#XFeq? z&f;AE^K84amqA5?LwQ$-KD+!j;o`<}qXSBOou8-JW>!8a;BAjM9q=oiDXx_BvF?F2 z(f7h$9@}^0=mO>Q+t(Nv>T_@IsMxYkzQ?p6?NZsv2HT$P+t-wyGS1U0n6*;B?@rWr zjk#yn_cUEwvFHwmpZS{T4@pZ_G_JOk^wcdpwtvs_EU##p>SHB~)Hn|~tYSUY$=Pth zUF3n&;jB~_<$cYXYS)%mrJ65h{9F)|RIlQ{Pi4Mu<;2ITt3=AX8uSG_tXP9Y*D-Fe zJkb@XuqTnBVd*0q3n}(VHtXk1by*Vj$KdE^^H$TCLm4M8It0%yn!~m_W_Nv#$0P;W ziep+)g>mM6Q@6%*{5W=t;o$9aIlYq{rymQjX33te!V)0Tr*LVW_jdLfOy8e9l{Mqw zEjWH<L+RAgssrY(HAd+@73+5{wMm*QxaH^BSMjojoa<K@e>)`18}(-GgMzL7$x{k= zU)?QiPV)4(Q0zOox4a`^(rTZ~vK8r>>z}ikL~`>^{re$$<G!2oCN^dJWoRt9^|ij{ z&5fR{xKC<)&vta=F|TaqTo*2L+obQc@y%$Hryc!zF*{6(Tx6;y{b!ii5E1I)b(UvS zlToC>>T9}Zd)fE2a8_3x4mf_|%=|Bt9&+u^2{BN7t?DPYVa`TP17}h03GVxAlGQX% zK77uxHCFoY`Oj_p9W5@-p2Wg_j@@D6<>&lbAFdvED9PS$QCy}n_xtPz0_}|Nb!T%u zE-P(W$e<q1eYua{Vqb*$+5}G4%nEV#ngH8pa~t>Q95nXraaUlDVJd2=*_+IIB*E%z z@QOJnCv4#5+&l9Qi{|rx%T##PCm!tkeP(O*;Rj8b*E7HET=tlsE8&&MRLjq83u^Z! zow{;#%AUHLD$i%yao#@{aCElv#pw^Z_k9#t@xuI`WyHVh=fqfiQWwtY<ySc?GfVhf zw5<B!DeaB>pPOt6hzYqC=%c~Tw4nRwb19Dq_W9GLa&yHc3gi~&9eu9)qbBlal1I`# zzlH;HTdInkJQz2KTYf2wn);lrDU(ZP`<(;4Vq9*`jN1a57MA^a(iz-k^*CZh=i*6~ z1us=On6F9AU=YgQ<0X(~VEvq-tS85|@V#F0zSe@xj0${>-K8x}dFtwu8Iu=(l$Tfg zc)Vp#it}aFvt^b)4&PW8X1L1i*Ab@<g%5>I3t2@=-pehjTrJfxQPb4CS+|$HuW(J& z%i~rD4<0SJH%DsCg;<}33uYAeY`Dn1^|%s8z|%IBJspd$S5!RR%8@vcCvf5PIoT~+ zn=0oSI<fG*HLf^5VS~bohn`u<Z6ALgSh&maa_^J5y<2OTRT7s-t}+Ys`*275MoO{Q zr&Il#)@B}g5cTEe90q<DpOuCixn-72WSsNS;*f#agG&z%#!S@kv-{31vXv*Z(V44b zdrg9jY5t-I3GxXRx9yizSsuOL<H2wJ<Dg8-j^m<6!4sYyaP96<4*U1R{N)5|zaPcR zE*+NfKj*owYtrtcH&@%FTRd7Ce)8jErFXNUZls-SWe>}-P1+Z<kz*gDYxa$648eh) zYCkM>eDrW4%iGO=AKWMoSbWhSan%L88)5qz|4Er8uFt%<^mWbKqaktYZWn$?JFlp= z`}VXAhR1sZmKIeWU*XbgBWJLR)$vZd1@Dx$-QNwq1m+YU)4E}9`Lpnj)?!1>P6i+T zNY=gYk2#&P{CZ6zbLyL2hc>*Q&VI#i(u4Gbg<HcUHU?aG7u>YsTS0-wikpTnL|52I zoz?cRvo!B9R+)TF;l;mzHgg|GzMe;{mNWcV>LQlRj@kIPF!Au`o(3+t4XXp*S|6Fr z!MrE^Zs@0i)Tiv?dWXJzJGH5~t{`?*<k3?H!&BeSZjrZr_vPUVp?!ue8yQ3QrLmZm z|2QWj-s-L16H=xeGc$6+s(OjDS$BkEd>Arf_t~lChh`kfE56>SWph0uMeEQZhF{Mf z?M>QowB)te%)mv;%ty*p9;8dW;8<>(AT^2UweB%PrkD5Euo^5@vNQOTz+U~F<-x0# z`+TuJ#j7^PXtlbU9!`JEx?`%_<CvnUNA2INToWqjCM<S*>kF%$TRA=CJ_)V0(fV~z zbK&CM*DS0ueoGynwxB8FxgUp@y4(An{s{)=vd$a*+s_rph3)@7UHohu^RdXNyoJ5T zxLnWj)})9gdS9CHeJSfy({88C-TSs4F}xiW$?#j|LE8zwv-=FLXocLW+__`H^vS|K zDqBhye=|K_(b33pbJ^kF2Q76??rvOC(9PBQ)Z(bwtLp3Z`<zVJ{mwsT*ihI$;h5Cq z@=jOA<?j3ET$DJ>$NaX9>)VVyxm!~2PLK{g>e@NI;_%F8l}GY}ZR1}@?oklCd~Du_ zlUjSeK4!Ms^_<OkPO=c&&MiL;C*KuJzi)qu+u&4=`(ss)=Hqjiwc;1M|2ps^sKQbG zeUl)^71quC5q$IRMa0B2_}czHa@kEubIpz;yuFonH_oST|J+b!v4Hu|40gw}JLGPJ zZmN0ms#*OopZU{Hp9>a$JO4fqP6|HVy-e5f!Ug;Jx79kBn5<b3gdE+g*fzU6<X|Nu z)ATEcFEy;5F~?%{=AO=GFX>%BkG;2iQO_sd_|kIjo$D7*8FVnMDu4X__~*roC$lK% zu8Mthm4oAh`QNAIMIpOBHoWDMk^b1X>%m5`<oM-$JgYyw*KFPBSFj{QGP*Xw*Y)zF z=S(^~Le?*1+`r92$W(TQkL$;4yt6MX`>^#w>=T!bo7sdKO`XqaE+}k0sBo$%(_g~8 zWbxL7HOeRU+>yGW+%j|Bl-Y5cY|kt`-R2~?J>q0m?lO)e8>(w(Oq?x!-Ay3)!c4VW zetm{XDlB^ZDMj8Bi(}L_&tV7&xX1s!HS&p<^~sGIDwDhZ8JI9#dRqIRLBi_bfd#pi z)@KunvlMdn%vkDt-NS3$kBjY}rW|hk{GR2`-51Gcjz}wdDOVQ+oHM<r)njd1_gP?R z#rNd(J6oJ?T~H{rQF_+k*nQ?zM{D58Il|jD%p2lPzIyP-lJA@UivxDSS<jx!xf$}g zEffe!7Vb+CkbT1HzC`7@_><~r=5yR3%?`79*6AM6-0x6#U8itvb9W$b_neDAH&oo) zD09sD=)Dj5lP+J=Ti~91#)e~J-1e3^F%mQ5HoAGITkHv#Jo(Un2Frv^Nw0z)tWYYN zb&Xk}tMH~`gRWw=>*BS+6_&{+E01NjOyEs9X}T_R%M6WQQU4-2<sLaaZr4{3xgGP) zL}cO-ML+Fk)=x`5eM+ysq;gHEd(ERZH4TUP#TG5h8{$5nPn)&x<|a43g|QWP4qah- zal~uWLyMs9t;_bYhx7P~$x66aK9n$?;d$}xS>}xfIt#PE9of_FKDGT@jL9vgh#%iO zMHyl*-G9%`b-i8Auxj(hjCDT$y10IBU!!_jA@Ijzi)}le+CG*Rzo28A__T<<d86TJ zN4XtEAxHl+1U(j<&%E8VV1``GL#1hgfuFlQV+wBE-Wz``zinEI%&uj7a~{U`xG&KC zwDy!&eqhk|j(1Z#?uAsA-~2j9IFn~?K}v4=iqG>dx}7tcyQjm~eoodwxy64UJXj*l z&1cyAUgS?&<ATg~b0M>yGGV@1EALH~+OZ<yj!*I;%Tt`88-E;GtGVM{@^;t6y^orb zZj~f^zUW;(N78KqBj@*X8^z<(46RvyPC0L=Q2U=D&2z%(HxJi~PkzmEY;VHdx`=0a z(!F!5gar=W=x5_#&T`MwnzpEY_B}C!&+9fvlwIci;<sUmufxM@nIWcE_u1D!=5D** z__)V#!Iu|n>|!=@$bQ_n*<ot*gR~~cr5373R=YZ6KRs$C>|pLE&t>-D`L%2tRoRk9 z(-NA!WY!5xn(;OG`@=&*5q?ZIa-9<vbS@2J$($0ToM>X8|M>fXoG+})^1mHvc4~bv zSwQeYR^s-xk3D+%E|ye1=3!v4wOqe?)^!evH&+Waekjdl&p-cm(viG#{G6TI1+B4l z1wZCQUAdS($L{9=MXPI^>YjV^Ctu@tnkf9Mu-IXWj#Iu*$g;JI{QHVeMA;V=h<XZ7 zwK8y6nqyrT(<8>z_V)a9rn{DfeGF?&n|tnfgff3iH#*gP;Nzc!jI}qVq+grx&XU@Z zD^&K>yGcFHT_Ml7c!k>H+iyD(cxS6^m=f0TcU`bvFJJUE!O)1#6D=ngn&i56Ot|PL zD`4=4+wE(mQMO3v^*M{2Gj7edJftw^fq<*RF7<y8GiEb=dNw(x=jMwe)($40`>t4V z$A6DtEcUy5N99;|lC5Xc=3eQV=+>awX7kTQ^gi4z850{9GX2f(q)$Oi>ppB>H}%2i z+4~NNnoFH@j<RUJ_Vd&&P0K@4kImm?Bs6bJ>JQrbSH03~*3^pWUQvhC_b_t^loizP zu{sofq-n-Jt`^N|!}|f6vtz2Cg!u9L>&bdqPWG4IC$n^#-Ro->`X7$5-QQO!s-bTw zIxEOymmKdIvGi9Nx8%1;uJ4)>`CeWn>!d-$5~=g{<!clKj!xU<zfbR^3%h5y-nML! z>G506Div6B9cD9XUUv9>+lz+q)y%(-nR9wCzNg)xHs^7~v!f3S@^%$IKBl+(j3u+N zgOknnHGT(ryFbpVJW{^o_?MvK(&Cy`H(ztFSm2Pns^r~+>m_&D&!3CY-cs=AbI%nX zPR)B~x=b(gO57FUaQwHSn)Om=<=umh-hoAR-q(-+GoF;J``TCTL$Gp=!aTlpY*qS( z^7}N-Z)(rqX2i*~o&RLR3f0@rKMqeVT=L+dAIC=nUbFRfo7!Yqd=8%45|uT-hlRy- zfxXp{w@$O3ZLZSJ{&wh?iukg^pC{s)?0U7o9~BZec~k!`EI@4fq|SRHNwZ=$Np1Oe z_R-Ry2`kR>M{H=g^y_3~r{MSY=N4T(r_0L9gxlXY^7YDXJ>a%ws?vhElDwn_@rA5{ z&TDradb-HKLVano;Z+SSwdVPiOEk~kb3N>n+j05!-*f@dFVW9Gt`X3hofW}mvcPmx zq2+s-f)9(b9iQ$#rn1<o$fNwc<!O}$4fcrDN4(1JPCq8#+sAD1pP|y{q;lrLZ^tyY zHBZSG(A>lJbJYyn*<rQ+86LCxe`vhMX{phiFQIc;MaR{CO@?lDAyeHu{g^2!AOAB* zTvRovypemHmEAk)po$#xk~@7HUCzyJ`+D*<mxB$b@+!+}r+1esuSI!&3XJ#T*3jIt zEAZg)?d~n><77B9JZ;Jz@~)Y>`S{=W=2tjwPn><~F`w9^TQzCzlQ-NA|M>H`(7Z|O zZp^w=@giJYV)yZ<`)YkAXIZlUd(OQ=uW^s!g$dEpt!yWh7Cw5<c&nCaZPkImH`@{v z-^gxxaQtqn`Fi)yjcy;r``LtZ9K<#&aw$nQ#M|yZ)Ul)~X`;Z@cL}>B?$|NjJCo1q zc-8#xbKQ`nmg5^fvaCGaa`#<t@p;EJf)^9)d~(xkKdqnq`=s+e-m?!kdF?B>IpyS` zg1Vd9Z335?e<#MN@e1z=RkC^9AwT`w0nP<}jK|{&6pmP|Z{GIg7;k6kqa8CA6dpU@ z!z}2nee3Z8PZRdyGbasv+ot)qCGO_j-+uGN^oAE7ZoR%|GHHg5jo$J-r5`42`{O@H zR{HKG<%{kj>ZuDDH~Ja7rDO|w+3A_`yGrf8CMtd@@cuaihFM*v4Rdu&{xd`fifNWT zXkn6iQ}<(T<l@Yki7a;}b9>eJ+HE@L<dv9k_pRd*QQv)ccdR$it;i0xH2i3_>wv~g zSs!07fr@hyzL)cS8WdIbol%{z?A@}EZ3~zlPrAV&`(RGw{pA*+;;kze9GlKQLuLKF zL>He!*B3u$TfiQ3Uz~yIc*o@TO~uay?3E{HG;mh`ILh=zxOt7x6s!DWpLhiNzs2~r z@Ey<DuB4PVJ<X7ffl>7P!Bdz0z89~(|2<|JyX*|x1Suzm%sqE}8K#Jo)K_d(%MH47 zL6G5v;`u!)c`Laei?C+xK5%6A-i%Uz3A>h6+tj7r?2J2bn`^S)hBdNYl~a%L-@Tl@ zZhlR+)|x}JuGa>4&#Jz|8gaWta^=B|!3}jWZ)N?ay_heX6l=Sdw<2CoZ<Bob+vhS& zf=))qHG)_e*KhvZ)yXj7aNmX?)@@~b-acpRlPup`zvi{b$7|o4nr3cXGihyS=!A#d zr#tre*;{BGbU!3@_^6~+TL1LvntSsFtkxGZZhR^bT>skg-6H9b)o<20T->o~c3nwb z;f!?GiqG9{UR~;Lb3zyx?#*>$a?maK*tXhz(SL?H7YY`fK3KXhrmQ)X<I(5$5e_R| z6yo#!p9}iLS!kzy5EfgJpt{fE@HWre$<MjGZZga3);x3$3{QPjdGu(|3BKI#9n*d^ z9-02OIn9+(J&(EVk>h<m=Q|VRIFFfJQ+m8|$<DN;Gvxk#)G8^_X5U}2Q0-LJe+J2% z6)r{J&nfc;d_BEKcOo}`vq0tA0{>qpg}v_X=Kpzep+jq3-Osgdf>!1|XAdj)i+*gs zx9P&-Oar|lo!rGgW9kwfFlwCLZ&{bz`JiadtOJg!FZeD?bObhUlsuE8?6#wR%?=Tc zBz5^?vB&pV*zdFNy0pc==bl=G75|?(>dF7yf6vqnlV`0wy@^RVFDCze%c;`~dF%7c zbOpV>_OAOG{QGDt<8jyiJqOq(#&V@~1@ui&IX0o;cpW=`@!_l2RD^W*v+d8xJfM2w zQPS3&DZA=#PB1K~VgKio;M@AhT~^v`S4Can`d1pp@4M#MxIC=?z}zDp;BmVDfP>PN z+ifWt!MU$Z7VLJcJjbwPd%KK;kig9~dY*?LHbseT)0lBfQR>Fa_xwu)qS*Jyx{0k> zZ{hO8X^~vT;i<Y8+t*AG*%G<GyE9qyYI_Bz=9VJye})GZom%qm<9dhJX3CAJ6MC7N zJEIMIe<=6VsJ(dSdhoc5Ay@53-l)gNBLDQp6kNzz{93;DN0a<}87b?7W@6%jGg*@y zpEfvdUijeH?DyPf4(>2x{+-aG#(tdr-M^c=7CYZ5`;eY>z;oICIpU6@w?9=EcuBq8 zaea>538!^;_>1-SUg0`$yi4FS-?#f4r+hK7ac(^OhOv3+<NplBQ6&@nH=H`}{G^xt zR@#|~3tyb<{IYz;oc4yT_re-`>=`~(9?U<>BwYQUVZTILSGKt5(M<xP35AcAhIM7t z74q{mH0yo+aYSfWPrvuQISitX?pNPE?x`sI9KOdpja&JYM8T{MX*s<Rr&$yEq#vAU zb1>|Dc6Kt;^#hFu?ysJ;=D_SI*1sQxt}biwTr4P^mGvs2^taCAS^FE(cFWzG{x@Ci z*Fn9`-w6Q$E1K&q8XB)`v(oeaQ}E<<Wln>@?X>eXk0k|`yxj8UoSNk|Yqg!HH|elH zX@9Ql6U6&^yUkLgoofDK`fkg8ijw4FeR$HQRI*&KG*DrAdv{%+!?fEsdl&Ys3z>g< z>fuJSWs85D6}h`y=JV&a#Tl~sIVFNZTNV3UlxFjKb~y<|#IF9G(h%a5*l|(d2)E4V z@*fB9NJehBK0o5yrwwYRrFVC(6J-0(aIztIg4gr7f^$(NezqH)U22`EX!z)|!z^jb zuMKf4C+(HFBcq_y8G5?Sqw&~(hJa<JJFKM-cg(sfvwlL$gNGlk%<b7<S@&Z{mXu{} z%E`;t*Cziy`Q?g5**)<GPc5JQXV5dd`aVAQ-%pExPt92}kEhM&KYLE)Nn*ENf*Olv ztJLO-L)}S>3s{<D)4DrERTA^x&iQo7g2%yEs{drOdSe9pU&)1n$!j+>DDghAD3~J6 zB9!|(>9>IRg#8yg77HvC{&yymX+q~|4KLmnj%<NLEk^QR3mnu>w(L6M@T2^=1nZ(% z%=z1e-le?#dEkP3R?hcX5}F&g-{a<5k@YEs;TQ9oMG2F(E)!Z&=DRn+LeKm7+(duf zhyxGyTi$rQ&s~K{JYlDA<D0w!28p0K&yFShnatFmutNWwSx&=Jzh%}dYMG?XI~xq{ z$RF<7cKV{hO3prS=lg#iccspY{&{liyz@U3Om)p-t4^H_yCOcvUqLSL@jc__rB|0_ zg)dku5ok2^mYUXF=Y>Cxd}7(g+1w{B!r+l|jdAfDw>GAe(*HJo>teN<`*^K@M)UKZ z*W3<>eAEAu(BgVKB<;eqs~_xZoVhY(E%P7Me)?fh#IZ~NYrD2cpXb_VFFaUp$Y;p! zW6WW^5bpY~?#C<U@J18<Ibu7nF?~7CwQFZ}$v=aTSA9>ylFr2aeo%0>&qZVxzhv^$ zLvIc16|ObDjttr1AgIMZ*SoJkNMdo?zISfC0uMg?^G&c$PCWW?su-(mrE}d!%_OOX z4}ZLWE>X(C(e$F`!5UU;#`^njPP5(6JbZrB$H~G04PUme-IKUd>eR~ZwW+s$tL(n< z<8aS{#oUHs4A&<-xp{t1<nom2sQ(NSaaRO-W=((FXMMbJOK9DVTt+XEq?{i`@)bgh zbpLI1`zVzm{&CjlNdj7{=KM)mka@&LamQny?%n)7+?g$HbCO*=8=o(Z*bo$|^1`mr zJwju)>6+D1Z%;BGvlY!0lxzHXyeyzB^m((nSJ&hjGmSjm%1`&i=jfhNvA=#_w#1jm zyO^Q9gQG7*$K>JOdW&-*j2!#F9{uq|a>MPPr<ttS<9|+_c~80HbzQ}&QqSUPU%vil zklcJhoq3!7i7c5FoUQ3v_hvXX1#eFN#xAz3M|t8E^{S#7>n4O<?|X7!cTkgh=N{J5 zKZ-2vPYx*cTKM(;PS#@RIJn|lvDf;OZ0GqSceGrUK3w%!nz7)!_K^e83Jp7tTNZA~ z&3wIP`;`d+(Tg98F|JlV%{(VUJcwI<^DMh3CKsCud8I!t7rd~Y@$oU!MzLo9qDMz8 zrcLqteb!yETIl6;r6(txgV$8?v#FS_*($)}s%9Rv!EMrmof^$+=T@pI-!KWi)M_O5 z!0GeelxvJ9@1HB?F{-RMc|ezQ$@jj-CE1Dg_jqo(I_vi+8HpB84|2KPdzJC-+>gyU zuX7IPsYW^ZSUeJ$v-gPu!|Chc=H*tl`>**HF7>;;#(Pqr_r1fPJA;KT+*I3WoDpT> zFEO7_e0vW|kP>@@K&(hb!N<oZf1VcNxLqOgacYv?n{^+qJ)Dxy{@|F&6u+~77CbkU z)1MQt(rlN+<6!3HwMkbVXMN1$>(lnTv+vT&0@+tms@E)1@0E6xGQMnnr4;cp?oz&1 z0QbZX)<xffJ$LLbkX+^L&bsew=c0nnH3D0%UP;@`5xj``&m)b1R|_id>$%RGusHnt zj-!%H-EQ+ak69^hU9g+~=&^*EVzTzlQg^aGDxN;LTtaKfAr|)FIVNACSl)kbem5g< z;n~WM&FeXM9-lwPyEVfqJi_W3pWc=qCk1^bcYl9vBHGXKd!Lch8uy9!Zr^j#t9f7$ zmnZvy!MgHaq154xr)-~W-5j&;M~BwoweRm(*goygxYa)O_p>Q{O?#?#-Ba`6>Uwqf zeSJ>DGH#dWzrLO`*0^|J_lH8GUa#iRb$Z+`UGw_pT>fw+KKW_FY**JU*4O_&772RS zXk>7;Q1^bk9xv0gz!wJ^`;O`>|2T2wz=fvhj|HLHjb{%0-toeyv|4)pF_#MN_LE2V zt~<ouqp)>FqzKo)!t)i&H7fp|zpt{@)zvn7`hkY*hlN?4LgilfCbL|yVu`AM{+zAU zI?nOIL9I1i9X4FwUo*U3W#=r{6MmOvtLVH>ab7Ong8P%Dq?a8$!1b><uVVFv0>+7d zK64%JNQzDgT(Ulr!^_c|UrocmK$@SgNLyeQ!`=IO8}-CyPwV`7=uU>6^*{f&vqDsE z+}|T}l)sMo-<~JV2QmeG7EHbH=|96UVNsq-^%88X+g0~&F0nqGw(Ed}iJKPd-;X9X zTh`s*XSm?N^UnA=4v9|t7(PAb2nkq}&7&S#J@>u(<`lEl=kiy+D!cyOph>GEGXHPE z!N+Az@~sE^gA}gaKl$6Z=ycdsmCMihg{Dsk4>xZuQEdLnEztJ-@Wgitt!z8(d^k$W z)Y%P=I&v`X%DyIMpkSLF^>b#X#fh+dzn}Mt&+b|=t>xb*|45hVZ+o9!5xDNQkuTwa z!5vOb=lp3ZZq1wA*BCEbZ^B+4(d=|<*5@Y0%oi!EHu!$uvyknOUghQAsh1kq3-0kQ zU~F>@5?^2O*~{Tk(zE6`hV6=5;wKoM;+Qx|sMY6&(u?5tEj%~8&zDO|SvW?YoUO#U zAZ`5`BaKS-qciuUJQQ5cBf#y#;`00POa{3p7QL(<EN>4f-ngMIadc&aRDzuXQ)m1! z36Cji8`|!2{W?2IWX0!w#@<XBd=EPl1ui~Uyb^s+<U>w7XZchCrpPn4k6VQQq(3ke z@aB5pt~w>{ea!xz*dk`;Si3v-gWZm>`u{$cdBx%SN4q>0^%Ukjp6gQjj{NrpMI29j zl}j;tKKB_n|NZ)XdPkKwKmUE;E6yvorQpGWsSZy1eoG9SHDso|zxV6sxk5+TY40D$ z&*3uEZpitQEjlsD#QFMjA(aYu<BL<6-xkQVDQ%zh>BEMiGn%ezKiJ(+Y2A8+IsDdh zze{hOf5fOQ|I8cg%;2&xwme*}A(Wlt^NX`tm9qDqcTfK$)77&3$H^6~+Agua$@iw| zPWM+|mcY&ExOCk=!-?9-pYPumoX@q4ee0j6YovOkOo|)1?=W(l6F$bm9n{5sJ%11D zf{q(=w0|cY4sn_#v%Jr6=Z>krpDr_O_RO?BxhGU{%L+yH507pvvJo}=IpdLXrj>U8 z%78xGGdh+6kF5LWaBV1+-nOr}n2~+kftG_oSKdi={doMb)8&p}#rNi>s~cAy`>=gS z)60s#A0}Smh?D!smJ#_<y|3iCSfs<VpcL%__PKL^9dpW9;I}AAa-rsmyZMg=6_{Sw znLO%vW#afe!i`~nvq)o#+Sb-di*}2N<Udwn@H<lXj&V=N+jF;1&)oczFDFCqV&>yx zf;p3X-#y)QY~ytcy=@wLc6!l|mCC+7$ULFV-pq7NG=OWhk?1AI$Lo)IRV|W^t&em# zxL|6^pM2FQ6^kDU{A>%3YA&{z(m&yvl>y7kRagG@2$TiB&;Q<Je2%SU`?WmX8+s=S zyM83-hs$V+-Tjjk>BxMx#D1I5)IHzVh*d7TFLmnkfqsv(GjuN<5>f8hIKlLpeU7;A zh8MCAmrj<JO};R<gokTkcK7-F5`vD2+7FLESkZasn2_A=hVnJ3JP+jC?_0QB7193l zASF3a`LoQkIp0sl$vm6l?ZN&l@rGT){m$8~9v1t)cPGVg@7tib?0}2KX(@Jw&qi)j z7e3qjpf#>7@6jWrz~2uydd*ceRIyghj&M8hr%ooLz*p|$9G&G88LqLOD9YMblpgY+ zn7Q8KK*3U*7|VN$Yf2ll9Q*gUbDYZEl_dVL`;*K^#*Cgo*1#=nE%(nkw+LNl66Ch@ zW2`=!HB<Yi>BO3ZEvw2u7MM8h;;2n|a@ooI+~4QxwiqP;PW%udt?<h5unKocc)XrX z(<&|@{%KES?WFUas*c(IN>+bUyHhP?+lQ+)JDR6RZlCz$EbGNP5f2PGs~O|sd#0bz zxR4dImuEqietoWlp_H&E%k{l=H@7HE$q3uu<8oLtBzFDVp3Z~2zCTuax=#JBZPLOE zf(KRWYf@hbu9bTGbWc!usRO_GTb{ymylX%1k3Z%h^*pg$d$a7Rm05i6GGe3-x9tx9 z+~VZ;s87T^yYEM&G}rz*nf4PIlIxG@8kl@M)cjsev8sgev6%hChu8O1Z&jYOe)1mn zlkLpqi`7ogJ|Om_EAvBE@-a2__P6&!COo{udgbrOqfH90^5@T)uh@QY<-4brl8clk z)UKYofnh?Xg^XK*UVp?y5rr+b+PywbdVbA64@q!}%v+Z2GADe(`qjORK{xsK{jgb* zaG==E&&*2k#@vUGyuQ7)JbJ*4zeVgngM>kcx8v;a<7-&T70V*8?^wR(fw-FYc{kQ~ zE8N$8cxbV@*@~sGsQLTp@2v8Y1_xg0bd=inB%}u@=<8V?RQMfq^nLA4iKLu@?05;A zN%O9*z24d3+!=dw-G+d&2~u;uHZU+b%kD|t9mSj&%X*MGC1{yG&wh(Z`p$392{9d7 z)S&+9q0*GC9`^59_rAWo+u-$qX2#UtcQ$e86;v3^7GmCLIxRt6d$9&r!L<)pH2p3M zG-=+x*rU|;_UN5I2`&e8ExtEOCPXY${rmZ7lV4wbj)#NH8>jgPTlYWsURS96OL_bD zH7dt~^Umw9S(CM(J%VB4+0T6W6>lDKUT~YP%i*z-_j^O$X|*o})2DsNm{&AapzOoV zKS^0Pn<si3`N-~<Tq^kN>l~G)=bxt>&hW`tDL!v&kJ7g8?Mw+0ZNd(RVsD=_NS~o; zTYdJzv|Ecr@?s1!c3M1UeIzLUe$uK`_u5@~0UobJtiB~kPUc<l^Ik?;pzqv*#C4x8 zF0ZpVZn<jiCx@g1nhUm1l*we%<;p%XW4&<3uJF1YM?B861v71WrdwCk`kG<>?5^c! zn<o@Vt-bi>bFcq~8Pz}a+EzU;JjY?5Bl+H4uVC8-haYn!76`A+*m3z|hf2>4lj%LI z;lh(j7TVa<{cv5tv9|V;W#V0~)b^Eq;#}A6eSgopr={=F>&IpRi;mvgT6@QR-=6T_ zbCOs>=QRJDF(dbZ!U>t0Ct>9$gy%kFKlIKzuW(Hwn^F6rz2^)cU)+6*wP<m$<Bo!Q z3E{bp|L%mcEU47}%jVpv+fWu?aa8M~irUKWhwpA!B&ViY;(ttjPQ!uV6KXe(F=)J% z>;F3WWkA!nKEX=|Y@1lB3y!YvkWOrQB=$fmZvjKaz7O2u{c*E9uU}Z$|Ev9T)50Fz z2MT+QC0|}FW4oK=?6Bn{U;2HfjR6g-bN(|_>}1?zU37S#^2s9tOuO0tMz(E=cp5st z_n{KYC9C&Bp>8$1zrW@$xFYCys`B*OV~!z@Z>K5g8&;ldQBdJ{l0T=3DT06Tv5oF5 zu`5^G@3GVHtx|5izR6F&{ju;%_4K+Atn395&1JJ>!uJHNV^vvp|HmPI=Wi8%9?6Ib zsZ@Q-7y8J+y81sueNI5m>XY|Bw^s$8(NBJCdLoODU;bXiq|~bRJT8M~0e*=Y&aDUi zKKnA6y{|r?k@@-5>$g+&X0zAS-N@+`fB)owyTI1e{|sk%W+~o?{+l3M&M2Qh|9b<^ z8o%z;@6D`C{ppK!ZZ7F<T<~|J7}LA5+p`QN2JPPeUL^Fy_E7ovCf{PG*gxlZ)=|Q5 z%%yE*VcwIk(|U1r`RrMbH{CBZ_#_Y>IB%b!QPzd147;DDQm^7vz9r3_bTpjtKA-iD z$B}Q3t0}Zybav4-yye(>`~AmhfgLAp{%)9fN73J>O@Ln@s_2N~vWC8Y7KcuF2d>{O z%%D5f^!geOOIhjO0~6=y?|n2`s3q<AWGMr^$?@Al6g3-`eC=1Ndw%npp_}Rx_nVXE zO`niIUt*(E#6wS`mb)Qp>E14Ke}A0r&+v==yGbB4_nqaQ0`Z%t1a_}J^)10^qRXRs z!jnx8K1jUYAEB~hl_<mhbD38bP0rhWf|tj!V4<hd35Jaoas>$?F4Hf+Jlx3{E}^?a zVAj{yB8*$|Ohq4v_g8E)2`Gwjx=|9nc+Zj<IomA_zjQY{#eDnI>UX@);3ivJiv6CH zI}DH0)!%l{Whj?ky{|aIk=gm7xXzw40&zvm7jG$j?0B5Z8Gih>tf^Lo_J4*nFDdq^ z5C0jQJJ#vn_$pbDX>oGU-!I|}qJqwSM}8KumiD=qEkEXYH2OB<{reU|ttGv697)VV zoLW}#l~D~#Rpxj$2C&7JaV~$8+R4Sedyn#tri_(~{{Cmk(GhsH)~bEJ<&jk!hP4m3 zZ@j$Ru^?2Q`L3QS$J%>x%u}~3WZ%~_Do|K)s=Mwo6X(Kc*0T0_o6a_|{bzVtaIM`n z`~1SktP7XQb=K}!W*Ig+@8$P{FAwXPUj5p!aG{HSNl9tT!wHO{7wjcYHBG#5ZT~$L z-V=Oo7at28?212qkJUbD&C?f$OI8GK>3N!^JZ*D*j#9~TS=RpycNAJLUUvJZ=fk?V za&e6G9}~_-hdjB{-M%e-d;e}^4Y7;6DdW^VOL7~7SCG5^^S6CsCsdSA|2(oICGWhr z`7FkoL-m%d2O6Z8$8ToiDX}}NCu+~UMfl_7nL^^b*B?3J%59w1X>S=<cZjR_r%|)R z+$i~<1#bcyvy{I-I2$7(v+bcPgL70t5~HTsr<$ae4t<gR(*#e6e>)}+sk?aDKAvl= zZN73wJ%@ub3hmMqS+>52T>RjWfOnkd-voX^rI$JNHCnE2u~j_MQ(BbkuWg9wlsojS zrKQ{Fn)xc_<pt)mM4IMs<jV;xJuWxDC(9t*aowyx?-?icvh?mamnCaceb%usUVO=K zbCm{t>)m=%tPU4s=Y8Z=Xt0X2O`de*8-LG&l`cXn{xQo4`n7B}Nh`VFpQbBfb!6}F z)6*Sgx6hxp>6Y-tb<$tg>=nBhXIl3zT6Ds<_rjcuOd|6wYtK*Ib#&RvCl=jX((`s6 z$zm1WJz3K^w7_fTrfELG7pAAZU(Oq(!6n~+<LutU8~<!P#I&S)UE#F1qP!QDSL{*# z#2)or-)H56*9qw@9G}!T&rLfokdtrI=cuuXqmO?dC%e!LnNRsrNnZu`cOSEudUr7& z-=^G^C;5t}G3MWxutS)k@x^p5FWp74&l3*u-9E?N%6&m@<0O&q)z=&uq-&B>T)f?d z8Z2|=-dXUnY@W_5vE*&s>-Me*vyJL=BBJlA?p*oB;_YiSnWcOi7Pc`jea~Dey!%^1 zQGT5E+V2fJ9G?kKE1m5n7A5yiQ6QxvdreuFmRELV0mp(H;-_aZx!U^0pJS2YXqo+d z``<_RGInv@e!RvZ#r@-j52+K2Jvz4@nmmU?d!KFH&COGfY_tA7{oC1Z%#&C8AHAnF zG1s^H=XE`UD|#n7|NKekP!v3LX~*aNT$#m<uQ+4h{z=~Iz_`J5zwATK0ItQm8#?+I zA3Rc<@G4>!$2RNd77_{TgbO8{Pky}Sr0Vv%^SP{SV^Q<P@5j6h`S_P#%Q$$ZTDB&M zNj121rW4ncr;O{R3pFH+))xFSax}2!e)0M-1LsBu!|CpiD^K5R6?yPr$BmAc7B&CA z^E8F7oqFkCakBt->(A4#j`ObnbD(Mto6D_zhL$(`*%=(qe7a(1aa3*7?yHX^>>O{D zUD}^)R>j=u_Ac8tf6_dA%jiXAFRQ-0bH-g_Q9SkU_%Vy@#ZNZY-RQn3o_fX3aN(<2 zc3+#+ri29l+i*<5^W;{33D;W*yWOo$hevW3biDMq`03#aiLS3zGb9$2=th5DInh>o zf8R#U1G@3W%sUN(SL7aF(q$sP;?IMPI?cC=e;oJpQnoy@Y#u|!4mpM!+Pj}$<J}b` zCEvsDFh^Zax?%aV&&>~1m=;^sOEfXu@;*7eLdg2Vfn$!Eo29f$ZLJb(7Q`*nG+VNJ z{*R}wRwou*KYOI9quBoI;dd=9mgQ?YJSLsvdncf?X4eLd{o0K`KXC?sKWSKC6CBJD zwc=BJT;ccTmD+1o@pQGiyWdJ)TcdY3TOh^rWqc*uB~`x4!k8m|>~gDguYWow^2(4s zz2|Dk48Q*j5-sUlCVoqNd$poKp-Q9RnnH<5c!a6I1hun?^HMXy`5stF_5U?&TjKdN zoS~8F!8)eoXhFI1Gk+d0d3s0o_lW{Y`Lq!8Rqn<TroNY!T)K0YqjS5eq|nBY`X1S7 zTck9ey<VF4acaZ`XVJy8@)j*t`=`bx%o)J=aJvLoZ|}^t3Hgc>*^jT$D3m_ISty*? z@F=q3vgV>n?Q5)`CKRok-#xoy*Myll<!A0Wn6S-!F41=C)6_W+9_&57<+Vaw=6wn0 z%W=-@WD0JG1Q_4`c09^?+MJnE+}pN3D4Vf?EB3dCP1+47!Nt$M6n}0kDhS`+`|G{M z!-(B&_ir;g@D_3Gw%>C<=VFkIdv?EjAG802JHH=uopkuhcV|ZcuS4j8<)_=%h{jpA zd~QBDSGZ<=&x(yAR+F7y*KdpQY%lsI>&(PeWx!wIc+#2Y<g6RY4eK7I#D;%uHg;rN zX{$1m*)e!W{psmnuPo~?UlSiQ`#!T<zMzA?)W;qR-^ryFN3>ZJGQaTKTPUYH%+mVL zu(I{hmN|=0$4l&15ckOXlXTOefAzL{$pbEC7sBu5Cav!%+_y>N)K;f*(+RaZ0yl^7 z=&&x>y`5uQZvKIjMx9PNUe9?CH10Vv;nTZ^D{5U<yynR8w$<G~N33h2!*$0yhnGh4 ztvvs^`JV5q3j2Frn`V`~iTfbvwt>aUC;L)@Ro{k5C)~bB#oy=hTVi$d^;-X9h7M}? zO8;G#xx)DN=KgI#Z`!qu6gf^^y=%##aCvSR|80S*7sGlZr#xnnFDMSE7Cd#Y-^DP( zEBDFvH5yje-S;?rKiqii8LRI?-@=<+E7sW9{{7(KAYM}bXU5+SzQxBj<Q(JrFn8v{ zjVsHy*7xi^wRlTZUBOvh(YO2`o35ViZvOiu)cozO%7e~V!h=hz4=iGxr?{q2w(N$Q z*Md{+YSL^<zNS~sI>zLieV<WM9Mk>S?M3Hf3vSP<1^vfd4VLnLydSa3Au8)x-!d7m z_3tNVMD;w9jEUd0_WJv23azUzHtF*xw!T;t*==K=qdZG_>#X~GGL%g!B|N)7Ni5QG zcwfXUnDwx*%bj6*{Cf?-3j(j_6rc2Ss^4SrAVg+!k96FTlKOXQ+1E~=z87H^)OT}Q zSKHcsA1cF@PxHUK9v3Taaxmccy9eEwjHdb#7cMmI`gufSbJxwvI-W~sXDvMS_lcpk z-Hgku{_mM)C5SBjab!_SbD-KMUjfer-3?PE0s`aaAG2u4cr<BgkIMPvvzj)ND-5K~ z)78A%H$UZ<n6OeO*5K_Sx4w7J=eY2nFsZWdaXdEJH~uz%;G(sEWS%^ZX!yB%rsow= zl{Y&My1Oi>%;O0V`@p~6V#h+MwbwP<B&V`GOD@ZHk+JA!IMC<+^MGrM$(rq|7qx}B z_G`WT+RSU2^3a0o-Kp%Jl1VDBHs11D*3|v;VCby8n$|xLRa!&0el^VJt$fpb`}`U< zVTQHJ@uz>M{gE(!Q>UiKw^6Kp_VYPYSp==!>t8deM##=%u3TWqanUA*J+xo(L*)V6 z-WmO0`%BmkD(`3Cqt~x^o%y-kgl7eO`)lUgs4dv`pTT0vlLtw!1)D^+MwcHDIJV<o z8T-dZZUI&n3m&%|CJpBri8ev6%D#QhliN;Y*z)hGx*_ngyzb`)(`Fa@p0y1pqr)3c z@H4QpzK=~%VO(dS#kjBUQ+&XOc-McQ3cB2K7~2;tWL<RsG0V#kCAs?dYdFGQ2r=A! zzUO|5ERXKb16Nix?s)LpQ(Elv=QiKF*1mP@YI+>nna|e*7~~i5{{7GJT;a$bD}Ldp zr<TeevAuuf#H;8dllxz5y*irO#r`JI;ke73O|zTWvog<4UAx#P?QdREYl(Y|S&j5@ zbEh)7`1^WWnuJ@Q3u-J}+~tw({>@I}*WdYee-eV`=ucmN=P1*s>)OJnSQoC{b&U4_ zV`bc(?Tl<oo_o(qyA}E;Ib!7!g+`;NQrnkDs0Ph@+soLvGD4yBoKS$HmHgk6r&;^= z{b#7LSGj1$w=CB2pxk*j<)v2t8K(C%u?AM}>3?uUh0o=2yX><CJL2bUZCc0^b!S@D z=kEH1zZ3sFWLfC+;b{KB-kOUsvbBFxuWhT)Tww6xTfz3k=e@~grWFM;a@!uMRXau& z?K7Mq;O>1-RmpUI>&IqC?uMT`7B#46e4eGk{dU9e*X9Dp?nPc>e-yE}XW80jqlt_D z$bWm_aCY*_=?4_mYCkQhZ48{s_C`cF^gzOjrGGbQO*!x0J=O0OOJr+CsPuJ<4MEj& zvYUlZ8od4Xz(vVb@tnY_qbsdyAC-n4c8#;oVQ7r1diYgOan@FgirU|&{#mbSu4p?q z`|qX@Mw168xy!}<bQGrAmOM6FB)RuX{T!!PTBT2qU1XYW^4`p-t1|rk<PAD3&aw#) zGpytztEEFs?DtG%+_LIaiLqL?^|?b!uGIao*vVnVeEIvKJXd$->7f~~c1%j#_k;ar z-OV-4%1Lf@H@$>dM6TE_liX_FHB0>cBu0MGxO;_@B~1eM70OQ(IAF29a>3pJ5$l@d zL|&GH-UmE}UMz1kue0qqY+%Yf{pxXrS(W13tgR=nKJfS5M@2)&wZ3nU%vD&lKXZM> zw*wD9Bz+IN=KSY@UP}}6`~JhTmV7$?Ykh8;&BCecqUQG$J59RsHofNYiX{$m*;6tC zeEDa5e0$g>HpqXsZS+Zo2ln&lL@6$OCOUuX@1%rDZF{=gjxS>QqW)YeH$cjHLHVAW z)xwkA_9U{*D4LqLXGTcGl<L<KCI)=-EgT(LE?PW3XX`1GfAaedo*#?+^3`v%@^B~} zH!SEoDmyXt=Rsag`M5Z-$6M4UAK;Zg7IBhimGYKT0vvneddwEYiaX8vlPbchcbw(# zMvga3R_i~{lJl))IeOrsv-iS3Ner(X!`c|X_FCxOS$W#4aGm@%k(Vvn%g=H6NVQ&> zuEJ!=JVSn)8prNO;ru;2n=UMCj6WB7iSJMHqjg16FRbproz$VMyMB(CLv(PY^g%|& z&ByN^_F`Z-sHeeSDpgtcQ|V%D&pMeq7o1D0PB0(X#3i$T&V}%e8t>Pi%el#Rv*x+E zOVcgO+t;#Oo|K&|{eG-5&r@mlpQjI0*S)*Czb3^|!D2g4Z${CQlDeW*Z&u#gyWx#V zHOI%|ZH~&Hza5p_qP8>lbLS1oy$ZG!GVT&q&QJb+xR)V%r%fhg@3Aev^95TS16o9F zvVR;25SXv{BTqZhcS+6T=u0LCoPwVm&^;@9s<3l8&zGC(Z(BP%I#1sG^Y}r){Id4< zeHp2F$J-uUlu&(oTRPkGeUtn?l|}NK>tD++t!VhzTi~F0t*Be$ZeZ7KSI0vVCjBS$ zWSLH!Yhyj&*SO#P_YueIn_qtHS;A{w7c=P|^Ztt6zw=KYZWi5T%i;3ln!0D)kr{Uc zF7$2}=Wr}PFV6a1;*U*dugm01I|P<=%a!&&u8@`~)%kt**<&Z+4M#1WN$rY$%{?Je zMwYw#Mc@g$n>+HjN_-MIC9DjtnAznfZJwnk#~c%*DX{H_v*rnnJ;4er2D|1&9}RSy znN!8*!;%>{lmGjkl-9+yZqwg(Yfj)j_F>+=f-4P&H`R1EEXd?3yLitzK5v!Xx$S=* zTvZKn*pv3-_U6)0ht?is@L1kneQ=?^+j9Ah|2_m1zR0`WAHOD!`9eyHz&rL!fA3sj zl=FS?dydMw=H9uFuI*^LpPR^aaz|;Qg;K($xR`4v-ozBHyeF>6t1A2Ap28`IoQfS< zizYAE3u<VMJ-z#Lo5Q?yx9_iRWD{h``8-|2p{!qA`O0DuOZ~H_6wg~*$VV7Q=Jq|e zJal^MCjTcV^dh_0x<9YH_F>lKmG7la+)}--{e9=YGKmQvmRAJ6{l@8MXL#g7HNWiN zPZzHBGamc%z#>a3!B(RDQ9{Yb9sC)(eB3`yns_fdlwcKdph#}-cFxlxQVsd_t;g6N zWgqrG7!zWh$+!RM{vIEV1^4DYYl~?(8Mp7IOZ3Zo-zQdu3ja;`^ycIW-c>(NJzzTf z%>VKCQ!~WbCf`2YHOX~f>oF%Mk+-IQVmvk_7k>DiZE6(z>JSV6oYynl+e||bz4HIw zAj+tpeW>o|O2PK<=PYism+siPqv6TD{+?aUOgn8JceP6gZm$%yUHdlXMhAPz^55xl zHvGJ4J>_1t2N?cteBn|vdB4P}r4sv+n?H8EVLLBy&H41g(|O@i0@9*$44vWve^2K2 zO_6pNtvdDoy7w{tg(aW9ohm#qxvBn`9J2ynWBR-zhn#{>jBExM=W*&E+vw(SrT9Hd z6_4*LcME0i3*A2otl0jrhVv$AyK^PYYlyNqA#q{hYgNDLOPm<{JXyX;XwK$&qaNY* z^!RPh_X_tkSg+g@7drJvV8{2qh6U9p96n0N^`sn{xc1oN-_N;Dbu(JVTX?QvDpM2C zZ>SNU)5FBHgWY8J#gB(StZ1JWICaCt!pwvRvDT*;;~u2US#ww8LF6RG%Pkd(`}&rJ zyo*Tm2s+!FUzxGhLu+}&F2${@ElXk?Wx{zSD`wP1^7IM_pM1<_y?H}L=A6@;FK(Zs z*P$A_|1ziO!ae-kD~`>~D5{y6@^fuKa%$+eeH%ab&N`4Mn_H8ldU8wQo8w#=yUq7U z9gm4I5BG0ZJbG$r{5}H#_s(y%4|nmdIwJG4wNSh9Agfg0eEmIszL~C1<8884-!*4k zs8aiP)Af`;!wcu#d*)w=>YnxE8p{!_S0>UXuHPpGIy~2z{^W=ilgxv^H^Qe2OnSKe zEqhG8UdUFr&ll>;%^d^&xnDE)Tk<Z>bb?E)>yle?MH*$dgev6IR2lglKQ~;Bd+8n{ zlU3v*cm7Xm<!<dQhndtp-mkGz{lXt^bKHVwQN5*a-cu86pKZbI?`QDdbY1!Q`$26d zwJT<CADx{2C&%yh?}xpmT%x8Q?5{aAe@lOOPBcO(+<dCd=LurjmRcF}y4P3-8Ca`U zT+>+*bo>05bdDQEH9OT7C|bV%bVNs?IpE1RL!Z#q=l9k9+^}RjufE*o(odR-H9ro8 z?(EWD{QRC!hr`FMonH<3C8zF^*|*GCr`2M6avOteKbusBimd<d!fq+om1%n)Pmm2S zJiqn9(FR@SgLO9xtpwcX*+1tvG)>`F^Y(kP>kLhAJzFfZZ1S|9F%MStv&`DRd3G>I zdD{H@YF%Ar`SEkg^xT%)%6+=h@J70%x?r~MDxFz&AKBjotgtv8eUwvJKC<Hb8ZHiz zJ=cS;xk;^*>b@8AI@y7bCuz}a^SFPPCARK67h62l)adJ?{l~OCxKdQ+TkIDwvoHUC zbb=CZv%$R5mX)G)?(XL{naMdP?N9JcQCoO%zl4|A7Aw;=$-I|C`4;}%q4zMV`Q!|5 zL!o>9_ny6Mb<#XF|CnK34QKA}GxHVrHS+#E)PHq(u3~Re(>#ZIag{@&HB$5M6-fB2 zr)|u5)p+}2OT&VksO;~@gyxDb{BeNi;5I3bCy$*g%j3(8Z0g13OFCcf-dB(%Z5^`I zZ^w}XG0AljO&hme{dxA#6Y<5XzaI~}Ca$@5XW%S(c8)7|3gqt}3tn`~>(4xco~PEg zzW3)fT3xti(y3~_y~WC;D}UN^rPoU0%O6W^z3{p0-_0GSidTYv8`b+duW{kiz3OlO z{g}#xOXt)hcZu*%`)qW8YaQpuNk`szgxbs$D-gXnH^nZTspiHMw_v$>?mUU1z0Rk9 z9+Hb(c9_G?Z|?WmkF*rhgd_?}PtH9U_xay@A%1W75bG1-;k^&u9ollcEOE!#XXp9n z$LH7zP3e5{pJ9#2@r7Nz?9;jTTcql~-6mn$=9IE(>BIUpRZ5z^Ren4>Cp~0Jsg7R# zS|vELwu!Id$AP!e{+mDT{&>vhrGy3hv;KV|3nstX8h>_~B?H%jx-^lcOP?I>E1J+S z^-b^_H8&~s8?9A84y_gFvfB0gaYVwg1K+EUw21tWugqY%cxv{K@(HJ=s5h^lF0hH$ z_R^Ai3C<XWgtKP?g*OC#eJ=5QOI96U|30G-52<<gu5<3V`>{s$p~qas1*axH$d-EJ z;Fo>mP|Xgt>0*_~w*Ru=<E=?r%ow0@G3L>NTes_86jU9rJG6%H$@^wi0nKBoUkr<6 zCpDJXuG_R}Q{%OH>i0#oBRKlA_kG&3L`>cB&wJf1Z0ml9zil~W(4bL&yH7ewjM=h? z(`B`5^r^EkKj-n!5$IqjG&lB3Yd`wn`rV=htHL+0>=1Y;GTXFEVa4{6bLn?~r*+i+ zXXx3k#{Kk@ed+H6!yC(U3#w*{9ec*;!+U9}=01l*?BVRq-;Q)}HQZVxpRBTL#hWWf zJnx50*z@|at`@@&nbf2x837;Hjgww}l9R8HdFK=MGUD|PgMOaff($D2KOE*d)wG~a z!eff|)&s6m;g3ER2zQ*=t)J)iSXz4buHQRC`aHgFGw4dqy5xS0Gwy&#u;0ELGY|5! zeLSbZvSDK5%Bc(uReEPi1wM&BzG28!=wP*D!Yx*#yB18BG@g|1eJcN^?P%q{0^x%x zZ~XXs_+8wZr$3iA5Pe&D`%?nrruB?ne?LrV=DjcbI8k6#&eq@gdi$og^YPs<50~R{ zTo^dXdf%tZJ?<U`f8U8~#OqIf9{joIr-0wY1>gQNL}X6RzT*9D#x3s$@s8)1S5Le) z!^e}mexiME(j|BAlV)|sLBDe}Y98xNDDAvro2|puX;b?B$m`#G1<GqAx3%2Lkh6Vy zWiBiGIobUx+OG{51m;P-J(RnI<;v#?UwBNdUw=puIuLZju85(rMwXA6_m<@~BjL*r z{CaYFJ5TSf&k5Wx;qLwZo^>Tj3+3bYxw-DX8vAuxkdtw>tlh_ULDNjZe}!^MKh}$j zAGomYL-*dr9h{EBQk+|(rY|_n{??GMcq!jmIkSW-LcNvMe-c72m^sPZDKTWIk^b}i z{}BddK?WvfMg}G(W=2Lv1`uFmVqg{&5)ful5HWBFU`_aci-CiYiII_s;Xgyhzm0#~ z5B%=GR{tseJ3srE`OH81Kg$2%{CoJ|U-bk3l>bz)|8_s{q2A-)=O_Oeo|w$ANvl2H zbADf1TIHFu_xGjuoPmP#lJnolFZi4MgTL`V!-6wsKF^#vbN+!E{$=Ukp4C6|Z~SMM z{_B_hZu`&A5Bz7iDec>J|4e<y5BVeZA1q@+|0Vx%Kk$$FL48C0fr?A(nSZi3KdAM; zP&fIz{nMHA?|eEikNp!r`+<+U_dA-GmzVqB`CI(s`(N>1;RAou5B%z1_;2%rdc)uI zKg-#8E<X3}uUUe;;}`pjyO$g&KlTm^-uK?UtNv%V@~J=k?C)y$cl?rnFUSA0<qKc` zliS==?96N4z58+Z?tSUq-|qfOwElkg?%lf=%F^n<{`ixY-uP#mH<S8zewG(@<>lq& zU*5g{bu8oK?%lgL^Q757e16&3*x2|*4Zr04!;Aj}Kd751d34*+#DB}uKh9@<XEXof zw!>Fj`TjHP+`a!){V~QXL0{Lf|DAhtALGA?U+mY^tF~U~`p?jACj3vabr;KoqgM{H zf9~A9{Mh?DvUmTn^BoB(|DL^VarqnG-Me>r<i9*DS038)A~GaH;osbk`=7~kYd7)V zs;TJ?d%Eeh)v62s9^5lKzV2#4{ruDoT&|OrZ@eV2p>B=Ne+I4HhqunZy8HLsIjh$g z%D>*lnegDu^lKqbIf{Fmg3~0Tu0M^e`@Mh9_C3c!#5a~qnWkx8ccfcq)A<Raj2qYg z+xYu#-t0(K_q(aBvF^<}W-eiTq1tO(UH3W1$sLkY)RCF{;+Bjo`!|6@M^*{tmPfr> zC8VDGK7}{gs4YC{>%YzBFZc1>U*;>nzC`Gtiw57jch8a=MGo?8kyz!db*yf;%Go5< zoNck?JMH41);U|<+P1X&>)pGDAI#RxK7Jy6gJgsQqtWT?gum}EKQWpt#l);HzvhRW zf8&E6^1%=4Ha~D$qM1GYO~j4->WRJgC&oUxUBcqcud;q3m&g&eX9*TZSq~i9wE4+j z+5HNC8b9goU6Z8hckyXpj=W05(No8=Zsvx4IQC8Z41=-J{yP=MHF@t2KKLP5Ui0RH z`$g%J`K;4KBlksY-7BClZPTfT)0Et&wz14$h^xFeOQS$U`zSBZl~mWw_jF!ZS1^4# zJSmY?R4de+;YH<>NuK53%0pYP-ia{dNO0q^dwlS3^o9!ig<TU8dNK`mZoifLl2bVR z?9!>pYq(!UU6eXppz~$xWS^i2xz@={8v>$>IZ_>O8{5_^+>X{s%71k=m3gYuBIVzb zO-E9T*71a9c5|;@ZT0J>$6BBKYl?r>Y~)uQW}jra{P01B15BBDE!T98UiFf?G(B54 zTDHlW^~42XQAdWQ*|Rc3QX3tLF8Fa6C>>1oPo65Kxk<y6C8fY~bCAJP(Wob)pI)q- zHIb1gLaD)bt?{wH?yn3_*crcWlTi4a{Kx%zq7{!efBlK?m!7;fZ_V4OdU|4N(XEG{ z&lzxqI(BnBV=H*4_r`6mQ}rB{wRe9TL^6GeJ1u#DF`T<dX`|xQ9_<ZAMyK69d34T* zuNC<BQOZVs`QGH~j%Vj9?lazh#vxn#WBZ9Mw?YMM%OdVBpK6_`!WtMTAT!5kg=5yz zx;+fXH$<FEYiRAB!zJo0s+N|{SQd5R$j1vaBR7WDC^4i7JX<~OwN8-kH*w)5WoGgD zf350Y3g5YKd+E2lchf4=-ut*bk7(@`yS{DP#uaw^kBdm%sV<!A^TgqZLd%+$Yrlzj zth+YtAlGa)l?_*or}MnK_2Out=+%=7ZC87`ws8bzr#_tcrkf-5p>WHZ@Jt6!EBU>; zI~orpK4@*t-2LfJ{e}Mw^FP#y$9zrZT=V=%ozwmek=r)y`6l+CVd;Mc_kZPo;|iR4 zSK8^?f3ee8dui4hm!8@yHQTrBWIphLG3IPoYDDTp?Es+@3U<~?Oq&iy1Ti1lx7DpT zB7`T$f$2k-@%zo5(Y{+xi=AT5V2lWmP+|IYH9{a~&DN}Gf)5k*L>QcUyv6=AocOct zr~TBQY9Bw<8-Ke0WYq*a_ox5TpZ*KnQqy0)`B_bU`^WZ^+0&oMPv3X+r~7m1y@xJm zW+do@Fn38Z1WlZp7-Ps6qdnJJa%LNoqSnfXHDTY}lLDF|yS&a$<x*mE``~rz@EX?K z?6|8vr$xP5xmIxMtlQz5I>)woj__=yR)LD=bIzPO7g-tl+<0C=pUu1c3Eph4*X?>? zn72z%xsmbGfyEnxmu|7$zPCGXjY@_74Z#2(^_$U3aVD*SA~TpaY&ss17O^0Kkwg2O z&DYk@yAcusQ3B65CyF-nC?~bG#)dfZyx+I${o1=XcRw!YxG(wGChzB&GoP4NFjbve zQo@?Gb;=nnzh5^)SkEYgoLZQ`w_qC63gzi*j!e^RV!AlPVYStc&Ti42&#rQ5eVuj4 zCctar11Funkc5_oqskJ>s*5&eFsh|}eY|ehYcP6a;`(@!ZH-fT`In~k7i&ALO49Xm z)7wNNFH0Rh6QadD>4a^=4NE57x7oW)i=G~k(ohU(WZ3EO!s~i!gI<NewU1p>W~7%H zOC4ZfJ-*f<sH4F&)oWM(6~*Q^3q!P+Sr{L<_gdXo%Ijx2D`&vt6tOcYX%f?u4cAx< z8QPEbC@5AwJ8h+R#F3FFa)#4h#U!P^9OtO*S&l6Xjw}t%N1Zx$dG;;SP-Tcaqp_eu z&LcJ6diUlM=kF^WLXE{34=FF*`uuv@yE6)M*NV38Fbuf1`XGbO1_==#q2oNd8<|!F z-_$o@Qkt|v_H2hhbRgG(bJL8fdb18Zl;la^wl?*>#k52);kgI@8^Nd>45`Y;j$5&% zrKP36Sbi`eWL0aJnMGx49s3JmPvfo!c{3hx-ContlEBN|#x7EHIAB4laGR)nw1cRm zH|N$HJ!h8RIJbFeQiN7N`^jknOt-W<7!99qoWHJ7%Z(v?sg`fkQL7J<yMH^Z>Fk!! zxU|khT08#=GY?nLf~iwVnH6T8nsl3aMR|HCOADU^^HjapoN5cajgIijZRLG5<CM^W zrICtV4mXs2T6P96<NBp@VUeP{!>XN(!ak`yXD0gdZN2{3_?u3^=8Xm|Vn$ALZh8J% zwdt_v1}*KiMcdLhHeBmi=dG}5>k6M#)&xawhh%2~chij)jp}BKYg0ES$G)=@2;+M0 z@S?Txj`rTRq=>mM{dR;N;96*4+4Yxk^R2#n3=HaPr_5&%d~9%Z>bwb}&sm;jh=+Y) zej2oN*M`=h1q;O%i}F-m3@JJxcIs%<MUlfyEryJ#;iU{Wu5McUK}C>hMUc-=q0I+> zF)fYJ=;3+o$)+8dmef8&!eaK4vmR#~J=E57&0B2kkuJJkYtOGWEBGokXFldwrxWyU z+w?ZEZi$GtK3=&koU$#-TQ}a@%~2U@ZX~c!PRroojm?&8TBiAgsp+U42yxkTgH30h zaentyCuIf3iiZMW?YYV6TVp0Zx)#kS;I5)_P%`ZsgUTeGwC7X1r4AhnbNSBQdVj)o zZr?-4w&s~vJEwJ=(TV=gpm1+n_4FsUd)Mwew&m`-z^m)dO?F9nFing1bjH>@MpKij zRoC!eVQ6LB)F|m%qifvm;<n=2)>%hun0XY!813eV+pKDBv)U8Y^3s`oO_+p6OvzfQ zjX{f-ueicipk?~&=TSGlg<M*~4|=%x&Tu(tBqlaR%usijd?CHmA}Zf?*NaUza=*(@ z%Kyggd+2?|PxU9d_b1qeKdp1z5p$h;>d~I78@8?y`yyev`;+azD?1Eko46+&Xf`jI zp_sbG_?XSsyJdZxW`f#jxf)9ZA9^!|=1etA;BWA`vt_YRw1HnS!)yjSPxjNS9}-$P z!c84zTA$DTaKZU`T7|%0#>Tz>KG*NfkN(e~{Hgt9^xxLz-(pAi{Au0$&nb4@t3##t zeNHFaZ<Jjub#u05saffz$Twv#BHx(VE;@B;_l}mmUFWq^RetE4+t&7zKX&Qi=FRJx zC2BY%e%gn1Kb+prx}8B`1*_MOGfD|@#wU7BYPG{w&nsBR`ZPePjU~ZHF?NkuUF43M z`KRr*Ke?aGpEO@{U-*ui{!@Qif4V=bD}QQ#QtY?wviJ4dZ@>K}&D;3*Kf|Q`3N`aj zn(4m%#C|e<ik-*L`f2xd_r*WypK)I$D)0MWDV<AcU#~}{y%Aj2bk8iq`un}_bJBS4 zM?Y?iy8hC1z7*e@#9hMI+@pNh*X{aMd|oN@clvE3#*-hM<axiHU-6-C_CA*9i3;!D z^~;v-eC*kLAZQ7{6#tc(GiN@o)P7uIuz9`o?(1>o`?e=o@2Z=<d-u0XY43aOSPnm! zFO~Mb_w_5j`O@a)?mhPxut-QuDEaZa=5uIHBrp59H+P?#$lI1)kB_~3!zQnpQ~vxu zo&&~jCpdo<IQT81-YvbAN$^;@g))y~@Z^s(gpCzex23FDwDdmbqy))boC3c0*Ck4y zQ9r;^aX>Bo!h~W5(TLf*zumoi;qGMfwKvjy?--nENPBZe;4gpAx$TZk@{;oy85ix^ zASP&OpwAfUQY6J1S*rW(%t0Rc1xH$*G0u5byMyDPrbyM9j1A4f8h>T;G@dB92^$-~ zQfON(#>n}3_m}$&Um|2x#FGAgy?2Ij(E)*)iRbcN+SjGFvAOB_pIqt8z%+HP05gN} z%o!baw%sf|i3(qLxM-zy?&^#Z)w-&onebGg(O{yXR#dOs{`mFRg0EzQIv~%h^!ExW z&R)hKektqZWaF8eIZ~g`tK{b4%68cN^xUro0j8t&3TMKKmOpDK*)&a!U+!Gv>$Pw8 z`Ud`F4ZjxL#${~oVsPdT_s7*O68wB;^rrGpYI!whg~sD~mZ6F_qh=O0wtPM*=$0R6 zY%u5XtXG9e)1&3qao$%yFz4(G<BkN?sdHaXoj=9vVX9t8)24?j8N=A0v~u$}d`?SC zjAKn<3|UumM9U#RJ@N2tMmA%HQzE*CYSYz(Gs6nAYbKvxqZYKGkw-wRT6gVgd5ynj zX>SgHW0|UW)y{cR+pf1Or!M%o-^ch`h)k%0+}tT4b%7Too1L}#A1+N;bkzJvONWQ` z-f1rk3(k1n>XM)Ku)B0Yn{cCyPtZrF>mOG?6E&EWqm{j5{*)4nneol+&D<F)nf9NO z-XC**Uy8@#pzTv#lI*;;H-6PVbE$a3p3f(PI^$2d#>JXU*36ETI{M?oM3yZ~4LxTV z7HfrNef@RQfl*Za$$GoZ@zN`zn9eA&v@vkWG~GL%C}p!Y?zQB@fW?QVY&ds%w#15q z8ub&NPTf{~GOqGmGyCgx-6fF;9jA4=vS)v4Xx#nU@pVCu0F$Hfx?L*LcMQ`iLRPVN z{9Tm5VDVKao&QRZ_tb*F9p_}MjJBUlIOUnf9vaCs>#y6!z%^Wt9IkKQU{G5z>G8Is zT_4y@cWpj!+A!ppy+lpJf)#6)GYDSaAjccGPtx+_p=qYlstcVQ^;&!nF@0({EL!n! zdRyKU1D&-62bNm4h2*kcz0$no+lio~0Sv5OQ_paSc1lciKiyT{$F*ukqV2aBi-aT7 z!b?IQgdDyu$+gAt^;vB#l`R3@HFK38b2ofgGIL?)>{W#!KW=dJ3t4Qq811M(bLIo> zmC27b#aL~QxRy0HW9dU-1_OgxTr0Xx9o+QlW@iNd_8Xo7TvNCbgH|y96rQ7_>~My~ zctTHOCFh&9@`t4LS4G@->sgp}DN%KAZ>srh9oAoMl97ey8NCX!AFMn3dfhI81Bo@6 z!3L`sRNrhXy};5qd4;m$R{^GjH+Si98Ynu7Z3)z>nkln)+dGbAM@CleNg;`O({z5S z#^3T#sXA5MlE3*zgsfTFQ>R7#6GGojb<gf}s!}(u?Jv|ioxhn|^=#tiWeIn?tzT?= z_nc{S{F*CTPp2)=T2VY-ZGODX8ZLGv7R5v@&sUNQUbGxycpBp5%*rFVAho`DhZ9dk zLcp5WoGSV%k2d*Fu@Y=L*Qmp3>lPTtpr%s7#l-FE{N#v|SlYdYYpE@VEIAhE#e7_r zk>vOx%{A%a&8cVib~8q<;@%vezyA7bkF=5{ZnF+1DjXK$IGiB8VC^pc=r-Xs1ubbs zjyh|&8H`Pv*c}A^G&V|T+!Z*(apI#-<lA)@llOat-8gXVDuZU#wPip4ZE6**otu3? zo8i8>Cx?4qi+#WjcFQ@Z&Tfo*9{DLfw){=Fp8Q^(D3i!@c`G9xx3>5t%;NYs=ksY% zol`!_hF+`Bb>3W6r8DWk2C)wus=N4dFIc`X;}D%zvi8ll-*5IWDch)%{rA`z?biyE zLZ>u-Vm=xi5!4u2>?zQ&r|PG{Mus*9wz_?ui_TARD$q1dWIxy>q3k+Wn1MrSqpD*_ zhDSqzSV?4@$kQv%=2dU(CeL%c+7ZLd%{Xh}a+`vH^@;_J{LLa81spuX9<X(BI6XID zHrtl@iEo7-M_R#co`6$Re{EbXvej-|C^t{yY11&<HGj*lHS;i>l@koi>6FsB8{wJo z@aEUVp1TapS}R(b-f}P;Yb%LdsPJ0Udf&m!yp~HP6~@kNtTUqDgts<6p65}zHp|a8 z(W_N?(}Rbzr>>Z;t>Guy!_dbxf#2)yZ`*n26Smxb%fqQ8`eenLE7>V0FU~y4pyHUr za@5$rnPCRQjMFC*j=V@VJ#|3BiRVDXB%X`~O-yM?Z7t1@Jp>(76(^h(klSKe*UZ#@ z<D7(Hz2pTM2j__=KAv<iIiuXvwY0D;QE`j8W1~)lz|r65ZeH!Y!1Mg$+8&+@(g%7t zbk7JI&aBB)owC}z;nmSa%o2<SQ`Pu&oW*!J8B*Jqeq48w$1t%?F^Q8gQuu)7!v#tu zOAefKY|vDZXWct{k&uUNiL@t6lc>k@{_yo}F;CXpEI7}Ww8?aP`^J)k5}!C{CkAmu zE|N%Na+FGBKFF{*(M{5TpDD9J>X25<YJ)QoX(k6EbTXE>8OY6CTHxC{b(d<*ntU$L zs|9z<H?KQ7?{I>Fg26$F7fH9TZ;9OZFf++XBt*-hEwAKQ+n&aA5_Su|-$-WGx^1;i zp3AW5N5;mGW4e|Kj$$bazQ&$gCrlPH2<E8l6*Cby)_g$XXo3}6V)KEP>z2=i_$DX> znXvLkwK2RXwKl!!Uw86k(5f|}wKWQvH;Qh#+!au^V&Zg);Z;qW&t(;{=J2dN4aXZ+ zOLXv=s2DO8E|}zXkh5TIB5S`|MvEoG9EJuF^JbBUyiCtl8mw>daebOLiCf*lbm3+f zorQZE8D}~5OYhB(S)wPu=;_o>fgWZt38!UTC$xGL1(+EG*5*d;XgC--!_QN|@PlGQ zzm&)}&Rwk?v)Ht@9AXLh(9_Gv70lt}*K~2g$JWF)3B^(Y*9H^8_L#?v1_xQr7%n>d z_NHgo?R_kE5^D}}Fq}<bnkut)a=`9HDP;*|XZF5p4|$$X4qv}4(DDS|0fo6Q^!7Qt zVt-@VU=rF^x<pv?w4hO%K!Og->nJ9MrmY*M>Vy~wo?4M0@$U0w!N(koZCgSW*t;Jb z<zrD`N|re+r^sMlT5&>gHp_DcLq}fGkf3XqCR~#^7Q`8vP}4Y}FNAID`Q8`XIu6$8 zRBZ6`U_8t(TjJmQdR?(gKw_$Z(=!vn#vqOmMt8R&al?iWj13z#yE)ZQYFeo{%1Vah zb#S!44HIomRWsuFn0<1?qGLRZbk^op-CM2emR6P|xTcFkIEJx7o@YU}sDfx<YiOsT z;w-=2Li`p_95%-~^0^jNa>XXIi5+HIbz`aLib*vb$)a5n63YWmvl{#~5X+nK`fL!R z%3u5cM;P=38JLg&GXnzyqo5*_fRLerqf#KVfkR?Ig0M1+h*3e|f{oBYX=Zzd{|sMs zdKR>^{Abwj=i6^{LjUhC@!x+h#{d1#Ait~ri2JWl(SN6z<v-qNl|K`|uwIh;+j<d2 z?mx9%_V*>3zNwuE{rB_8ldq}udynlBSE;`d|NGWA&$lzy-MIc_QvA=Y|5_zv7J2_u z`p+ORQ9IzP_Mg`ky+_1V{xdMj1l)I?A!a+Hv-=dwe}?HUyf?L2<`{V>)-%@k{@9c- z$-enmmq?$xN}0xFLEB?9?ay>6cDc;qUbMf+{lbhH`;Q(|7nylvwxZ|B<1Z$0svn-c zG1(>Z<b-1;EAoyT_;zxNGr1Ur{9ONFNtIY~WT2tCT+d#~C&vX&q-@gu;xy4Pscl!( z<|h3=F^`UO=EVs7XYf&r41RL+=p>KnNwJ)qfl3*{N=bG~u`@PSUCA`8XXMMM_@*)W zNs)?&_o5=D^V44hIO_x$_A9UdSTB}3yQkHxmeX1Pi=)=jQ(PX^*#Rr^H&z+Veo@Pl zobSu~`pFV+p^WT>%XtFKQVb{Gf4x^l#gJRcaFKAzH<jc=E)#oBa`pKg(bsqpyD4tk zimCtfW^#GD%S=)|82nUvil4h|(ISz~O|Hj13hm@hYM1GR2%WqmxWaYP@-Ky(B&&1# zJ?40&a*I8QNr+U@JE@Q{Rb}!Hmy0e*oys8^{~36F=G55f#F*N(IDOc};&HlB%{Ozo zb44Fpm))6^m{OH8^*0`MMvgCb-{HKNE-s{)vcgF{_lvE&v!HU*DLWS}%T#8G<E*?} zR2GM?ly>&__txv0=x|s6gW=<kso8xSA3c@$D6lnZKG($MEMjKItvnvJ+>zMS`sPSf zZ_1k_;j4L^bpa=nEmp|I@&>C4#BeJXF6>!6Y2u=8Db*=9F^fbyC%KAvrcPLr?6Rm- zdQta3^)s9Hhh}Y8QJS|pc=hGj2}>r~XmM_y$i7LVuIKoqP0I^cU77Iplj2E@#-~v& z5m$LT1y@FOJEz~+sCsTG_a=#XMoGz&H%kZ|YiT{Q$y0IqF0rtHCn<s}Kg>NOEx-TT ze*ZH+MSrbm>bx%#ovxYT)G<kH_Lh{n-F)X4tF7?~Xlc31S2FRXe2S90iG}4i(~E`6 zR|@G0t*F?o=PC7~@5q$yjv1|;Us6v+o|veWBDA7;zDqA>nfiq<SA~x365$m}Wlpy3 zH5OXpX{+ALsjV~B+4+i)pR!upv9`7|Gp*zIouBzh`)K7A0X3DPKY2X=8DviWoZZs% zdE1%A8y~i8O#d-iPOoQva`J3BohR)g7ER?vo*z{<OBj7IZJn>HYdAkiSolcONg=0* zX=a{Z%xv6d+_)u^#b#!@Tv_76g$2K)Q*(P?bvQ|_Ra8;rc%-t%zu=gs3b$RKnnl?e zd%2h>gFoxLTr>q1m0EiqpXBmfb<vjAm4)i^RV|jPJ`<L1mTWs}Fyk5fl*QAJ&hHJj ztpC^~lg-{Ptbe>;#(nno6^lx)JEt$=RA{M5Xyx&nB%hHxN3`3N<L9xZ6EFOdmRs{< zlDC-LX<?^K4U3ifo)d~}`MBCzPA*i`7U77BSgF!@MyXq+N$1J(pd<Y*7x}mw7am(x zGQTRT%`v6F;?YuWd-uoZHPhnft9+1uSg-hX*)F4si*qDrCbw+dmbQ21$BDfg`$aXT zr|&iV&+sT&`9H&HqvS~5FDX;|61x=*?T>$SetL9WdtWU7<ebwo^E~2Pi<AEBSE+yf zSmW8#89SRVsXX$!U6nCgIk;-mx2f~myA@AtRoTRO<tE44l;6^>Tx>UH3kgYEO!}kP zyVu-#k|4YKac>jVs&2KfuJX=4Q(_jL<oRZ}oyExG{wBA!uTdTm>vTCwTIL)~+0=99 z<}Bkhx5#xmk5hIUd+{v3IQ>iNUrEF5%Du+_88Qpc#Q&K8M{rKRx=zJTw@MA^&8ioF z7KWTZcg6fa!<SPjr#Gv<$$5H{OVD<LQCp|2;I#!$oHbmyZ>m@-PEDHpI!JLQzn`c4 zUX>ohAhj1xUD7T}(efI~`AV|WIWnh2>MT0vcj~&hnt`|ULdAVOd*>&mi$*t3m^#y1 zdYPt>%BD!}>=?Hz8{L-gRpfBG@~?fH-7&-d3&)okE>`US>M8ACaOBF{4)29W_*G1M z`}Ml^OWwJ$VfmY1S7cUpT1m-F@v?YQlskDMi%^xFt5C<KM@gm`Cx4WLU60D%t0-iW z%96~JJn@J6(v^z5NxBPjxesz@M9shOpCRbeT$SYMY4T~>H)c$l^x)`9IZH>aw%yvE z5>FPfgw2><Rn_L6bn>8c^3jOfSLZvQ*0%FF#_1Bt*I%_t>P4lsVpopq+K}#>r>0Gr z&h4!@!PfS|S6hKD^#Fh8naPs{JtoZF^kRv{#^uh9)pzQS*`8Z|u>bq9y_;YBJE;(B zSk^PyW4F+Y$}c8uCaNnh9htPPQ}JZVE0c{uDoJmi*aaLp;qpph>e7e2St7i1JazV( zUifZSs2;jPVM^79rqYy+DjJhK6@@2E`X@7S#q|?=?Y>IQzwX-kZY%$(n3o%s0;47_ zOnUO<SW6_IpO0sDUw~&+vf>mA`MsV;ngTyw6*4*DEb(XIK^0wn=SgBunxC$)RAN;+ z$<3zbT5+mZ<v&BKQm=c;m&i2#i{F&Q-xdXO2iY%N@4_+hxSMXKno^)%|K>*v=5=r6 zU$~@5?YLCqHVfgRuNp_{F3eB*qTIE3^2Fc5>I)aTPVQvozcFw6i*F7$j_jS(=_JUr zN{}gC>hes5$b)kA&hsAzrYKKjd7@!)k>{Ju%s2hFHMzKS7R7LRY5Ww?-~3xy_~vPC zF^MIGa?bK8z5E-eMf{d_zscMbGq0;RWf{-1(~5%XI&MeS&L~{?<U#V0xn}NjGu<|R zUDD!ke5Y>afn!E3j#djlEsCjU^V8z<>v-dlzeuF_i{W<XZgH1K@vj>vEjY!pQRd_~ z*Ph8;swdg^IyD763b@s1v^uEIcBatMNe&y|1Ul=n>=rySXF;2nyvIpvA%%$5b}GFW zk9A$wJE6XjJNU7Q>WwFpMK2ybaNlL2iONZ-WGUOuNeg*ABWBBIB$b%N@SHS!I^{nD z+ewR?)&;iy)h&K;LGCRt-J4XMB$=}VcPe%&mMMO5PoCIwvWqiCsGZ5{q?D?-%7m>d z#&WGDPV$S*j@^uMO3CDCI(4N>B}mmN>4@*kjql=S9P2ny+kbCH%bVt#6E?l++p3ZB zisP^0N?RefO9IpGxpPNFPjZ{GSp7xaab`b>FV7TyE30fY@^ZWTdUE5!FM*TgOiXO1 zbOx*BJie(sxyj<U(U+pyZmG*fT~Y-hFMr8}6exPS^h-+z`A+P4tNg~NXF;I)3L%LL z|Ju#MCcT+{l-KCXr*|E-J;efkt6W($FO_+widU`Bd1Cp-(@~UVlaP$)9-kr?{^i?D zAF5=X5ST4;;3mi3Wg1c&KQ&I+vQahDh<}Ua;>&LWl}|6S^I7XCa9q`6#zp>xR?U3| z6FzOLa&}!?Xq1x^cVv#T-I<xwlv8$V%o5W&GP9t@GwMmlqW)jsjv1>@<o3z-opkE5 zb52p*Jg3;sg&b3zBMw|s<(;^#FDm2Y6B`fpqHPn}ZgO?LIdUXO(Ws<D<fg3nN<%ke z6)tPx+OBGYd1va5eoH!k>`i=<pI}!|r?}5gN6CPx-5a;NL`w&>?VaTLB0u76XGdSl z-5I}x%hZzlLd@R>n7wH+X**G5Xrj0*dFtj%LNEL`D#dJm6E!8aQz=BElRI#ia9Aw= zCeB42mJ$zd>CC=t*r}0xDdn4fMwiPsGq*{CE{5ECCj^<jS`@ht8ge)Z85*YP9KUel zjmsCqp8Dk9M)S@r->koJeX{(Gf5(oU>FJs5Q<QRCYU1N%o;<z!X?jnNzwz;K)|u1N zqA1hK<ifEiCwR#pmCSbn)8`0yvPya$6ZqS)cp}pqC*`;si`s5HXo}b}^JwREruz$Z zKdLl&+?gqv>9!;#_g}Zbo^%f<`~4EP{^sZMB+E@?(Y6#iE%Z&LRjK*62&YWTlu0K; z4A)vpsVtoI##bg%eUXc5Qgwfo?<><!3KLJ9mbN=T@$aM#y~x_h*JjCN)d<-gU14NY zRVV!G>G_@?hA-c~e;>4GvG=iRp&~`@z@6?w-)<Z;T)6R3s(`WT#hE|(Po#fKGck9o zPm9<osUl=zxbbB#Pkzp(7*5`j^lvG@)4Xro-V||dL0}r2lE8wUQgX2`dljn%zdn}} z{gwaS_2pCN--<V834NNM6m}-Ef1%Qs<13Ymmi#+r&+)flf2&pRvG+%R$$wDyw765D zpHy`us=BFMS?W#prg|UY{cqx{oUUZb-#FIOv+ei_xf{pdALTd_r<43oEqeWBxx!yF zPS3w6D|ll@>q9#}RZ*RT-F9sq>o456J|(mNn<9skPTYTnX<zo-|Ddt|CX?XbpP>SN zQw~ZLiQj0^JvrUYvry~ChuR5io;IH~eDq*Gi(>!DYVr5U5?_u!WUgzoP??|3f33&$ zbwKOaUn<peBc+-=J~jPkNR~KeYq(naPN14m#~(K}fh6_S8f`TfSvEQb=$)S&=l^Z< zPWA7Lj-9ZWVDBuIZmR4&|3ZtR`I4($9)-VylAN#9Gm3Ay!)f*LNZgjzWl@vc1lm&H z2PrOhSuHYgk|2w6=V?K8rP>KEoP>mgmnFX_PT}|YEpdE$s^{?l|I|+5m137Je|Yxf z(RMSvnX;LQKhkghXHe7KB>Pg{`J4HLPeEtY&IopFWeawa_FZ@3+tFvojm($%_h0;` zzO40qfbAkv+s+iVqe=oTs?`(E@{09$9D5y~By!Q^iJQ025?_HX7o(isP3LUI{F}b% z8t&3NQ{-l!Qc`_e`JAaqVRTcgQQ?aj${$q<0t(MGZhkXWWs2s9jWSgtH@naNXGrJy z6g{a_PWzO`+@q5o@_$rGS=hN+EUcq`ndvvx<tBzbY0h2J$0Bv6C`q*Z<@1&a<e8JQ z$dxHOxKqbTg!^E%V5&%MCzt<3UWc867miKgsY>c=mF4pBwiH~d^29M&WtFn;mcEF^ z-7Zg4-mVgqUhCbM<azR@<O=aWeKnC*jnkj)op|A-TI+uXmHqC2W{R0lm}lfL{e@4| z<SyGx-!4`qmx({Vew5a8RcbW!R7vr(+SGCV$fmCx^R1+%?w@F@nW!YtqG-s)x;};X z#+fBOZ<^v3zWU0tLN4;gQYFqS6CZOFnW-&_*!-;XPf!2l>blU?*8dqkcuhJ#@wkMT zyUczkfeBmfLh7$|oHQyDzp#vDzS9@O3CE4hJ1)#`d8DZxQEgx-(8`qI;bx@onsrJy z>)V7D{isGmHRX${f|FbpcZ<mEQI(Oh3sPHi{9=kwN43Z1Cw{9u4|)D+KRL;v<&XTr z{^F<3Ra034tA0%Ln(KC9f%A##s^p1_^h0Wd6c-j57|t|I<K>8J*)1Gm6Yg%6!jsu6 z-0c>zT_f9bq5RFHd8b^er7z{Bcq}@tvE}PGMP-T2Z2B8(J0b<VF8lTD>zVXZQD?GY z=cFn{o~DqOI;_)#RUXY&7cne3`JynTBx06Pt$fN86-zC)jV*rZC-?Ke`FCvZOvA_b zmK^;pD5r5u&3|o_vf`Sy8`sP%?WCey<!@YGsG=xlDYfzG#d&6_EGw=EOw^gKEWi1; zV&*T^o3cXfC#D#lbP?(iPg7Gf(qHuJDu+{&AM0wJDW;v1-C`vTf8X|*EtQ)6DC}p% zPYsP9r^KRido5IsCNiIvvg4dH$;HsFPdOu}LbA@UBar=+g43}Z&xGUxf|b=yZtM?V zajAC3+dg&{Yr{^%G&O^ymZO~(YuY}kor?M~Ns+_H>C1@%!&hu4WCHFjaaEF5l~g>k z$wS$bTmOinx%-hqbv2z8(<UnhOBHxb5}Dx9%9N&gv$JD6PfO8JZV{7bY<Dv`xz#m1 zIbW4JON!La$>`Ckc&gi#EO?~TTG8W5@1u+Iy^0UJeoL1X3W{{3+?3^?C~(Gyb@CFY z>FboU%%zgQq_pk+kZk0Ud!wc0gz$^x=J}5rwUQ$GN+uZ^rm5+Ab_=weT<GvTr@E=s zYVw5^k0k+ayuvCXrjva-b#}^2s@-U1x|-Fh+7T4rD%d1BrT^aYoFWS;DTy0LPZ_;= zu+QCE#Mv;%TT#b<s&J3Mf~JY5gp7`!oV3lbcYaEV<>X0?6PzuRJT@wCH2Ugn6f0S+ zbtEZ4QOIwKSlG*%CEY(Ib_u=qSJim5CRy6~y?=qzM28Nw?dp3SRfHUFJg7Tn(YUb3 z_hhoqZ_8xnoXi84q~D~96$Z55xINc?(=#{M{>{_W5ArIWeB&0BV&b()ZnB|a(hPy$ zjn8jRT6p4PvY*>WqbK&sUs7dd+9%8V<T^a#bm8n+*L|f-X`z5!Q23OrunF7x7xpCI z*&!y$t?zWuGf1^(&Kx!Uy@#4F{N=5>JFi7IzNbP_@ZyV!9Byh#LJCiu7A`!glGUpE zL&L7q*{8)#<-yE4o|Gxxs+{u9O<$veG(|c)HH3vM4HG*ib_FFJ@%Xq_QDVQFebf}= zy>6}*P9N5*?sPG7Uq8vtCGeQQJeI`hWQivkPfQF?)(O@LofHvI6|zru?Z5a<?Zpnc zM<+!lXc|7z6zFbIIr2-&u6^4s^^IS=n(8IB+yaBzYA0R{Q?ct*71$c}OQHL+bF#}f z)eD=B@k|!}Q>G~*pr)AO?xy5s*S_Ax(5F+wDgD}H*G@6jm6uX>D0uYs>^pWM%BO9X zPPee<LK~svEP-PdmtuM9PQEUG&>1ziFvv@$Q&Uy$#GT#=4}Mm7UEyh~+1ApjbTXyV zZ~v>g7qv6H7Ybi=c5Yl!Q_3vgJlF4z!!g4iaLXi+{dCAoos)(O`@M9Ixg6c1@+2oG zCnGs}uUTh6L0Qs~yIJij^G+>y=N8THo`W6(5`gbpo7qimkTqxVreM)x=jPGB#So ziSJfCSrS+^aq6$cLmB~!oSdCquB)_I^;|wBOQ|&W@=SDOE(uKKeALP$lDU2Pi<1+V zw66Z>eNeu4hB2o>mvB;}NW`(WV;&uAm8|XGq}X$RsN<Qw#BF`>wv$nTD^oi*l~;cY z<Z|CCwVqRM)rlALPB(2ic0!e>b!ABmubK1omC76CFSMvs3BNfS(X#8hs&Yn}v$EtB zNyGjZ>yCxpobb12J&Q`jqc-=w>z+9EYG`bVba9rK_^_Yb`H7=ex$~D4r@QhJGVaYG zeoJCn^#i`D2(P{?61Su`ZhrLUi~7fE9!&F$T0AjuWlo!l<)_?$hYM#)Dyut7%Scuk z%kQ_mT4A{G<fIPyi(em?B`bC5Dz$9dXk;jtQ?bq`_J`fq)DwF}ld2<@E9Y!t^Vn|S zp7eeBjqZsjuBYUc+6wqBYcb+@6S2~=bfsZdM}cROoSCoS{nnF(4^^};xn`PjcyIJu zxKk%(@`Y>D7CK8MyDWU!E4t;k;G4KT3KLgdzAU|PPH4BjQ<C(H<S5TBjZKSvdA~V} zMSMKbvyj7MUYCB6Lx;MT!knX*v=4Q;ti5(+uFz4I>`gOfOnkFb=f!SyEmg-Ot?MVI zPCDU~(dOU%B>Ka|wJY=weN9iY>-aFK^ovoS&nl&kJC7eqZR~%MGcn7xYf~sMPx6OJ z-~Y<=nc2MUXv%n`lrxFrQe9_(qimNN&!&>L&C>#9d#5>iia4o!aa%L-%sUUo%*~Gi z(_L<IxvOjn$?lzZ&Rxu_$+N(b<@KAGC9^-YxjmTXw)l{W(=7FH79&10{e_d=MVa&5 zyeDP!n!3ww-|-<?e)062M-DT2=0+@Wean%4Bw6t!yQ(^i_ryH@s>zoPk4splyOg=E zJ-5)&#VF=SZD*(OdY4ySSKnW>P8D{s^_@_&^~4vq1y7CK-XHSl)s36{aZX2(*Iad% zd$WSt-{<t+d$6hGNu2pIBX{dfC)_VA@>HD@D>Gj#@S}*pi;1c$Ld=v--pO3USLrc( zqoMM|BVSjn=eRN<QpzXUr}e=vrLVF)lRU&zJ13~QF4}V8rb>nFPQ}bgPK(t}Uw%8U zBdX#{xZ)P4<`>`W+S&zoDs7FL=Fw$1TlhuPBrDapeJ#fp@o#j^lGv^DedWSCqA4YA z&XwGg?Nk;n@m3UlTs6(@uQ6Z2IkOnyBtMpuiejF1VSba|9Pxc;sw#B+Vbt`cZ=%*; zl$yBtrpBV1JYQF*PG_35RsG0|Zq;+^gBF)Wy5@;ZiI_WabrYv@K=;JztJya>rrL?< zc$Vn9XbEkKR@^-CsG5fOqChE^FD8!4QmQwm6&dQCDT<X?dWxm(mr8)@O|$;Jkzeer zs+?4QU*#<GUhAl$snFNy!hPZ7o2Vb%zV<9FpPB^vT@<Z!idRolQCsp$WWK6&+{qV> z2R{l*1;wrK-zd88$#nO7>%&z#%WAU%ChKjDo@Aw84_(O4#LNI%#tvP{&d9_d$Sfcv ztYE<65FnDk3Z64y1}$X&Zhyw4)_vj6{y!NPzf0L4u|3!Rk^hgw#i_fR-Cu`p{IKxD zs;i+n^^ebg=I{J5m*08ge};CWckkZGKiqwl_wKzle{^0{g$8`xpMCf4tMB#C<~ROx zd{OIvrRMz33m0!(ym0Y9gU#=|{~1KRcTZhC#qHJJymw#AS5JLev^8|~4&GD0CF`U2 zf9hXw@y5k}ii;P%v+dvUk9px&`=@u`y$=m9T78GhYIn1HczLyy+Lwf>AtiR(%eBMn zu9?TbobUKi%5JgyBa;%7gfCX|!5d%Ho@@Uu|9)rp$HxaJ%hu1T@2F4w_o?2b#(q_L z^?wGFzw8Sy{1g1sekbGaH2$lTzoaxfyWjcUE6XeYvHi#MI~k{b=>$tByFZLxb(dE% z{=wCNe+NI>8!rA5q3q0mCgay!{_oij%*)HGR;^m^#UvY=wK`2la7$fz(Y6x%I|6^) z`d9pr?RS1<Qp*#eoblIv<%RzYWvf<)24t;Twff$w)#;a3hlV({^6;$!gT1TvneP4> z8vZ%<KLg{1f5~4WHXLUEA>zsy8ntS@*Qzh8eqGI5{Vw%CLxI5j4|?xn@4kBXSMS~T z@_&;5R^4S_Z2!+tv8f^9{tv}}7i_g94*#8X<3B@fnntoj-Ph3gM-1$u4hr_~Rvh6` z{=uTOYL#%^)c8vrIvhe*W+=*M@BcI@`C|JI0Ru%xo;@wvuj*GgN|^*ao)vLFY8CUJ zrJak{?AXU3x;AL*3<jxf?4jW)^#%>aoQAxTlQh)!zMjR&!=V3@*|F;|&xty24!b6f zqkf&+8j4pfW?35=TH7M@HdRAqqhbbssm#^GEb>oVD-s*#cO90#SW;TGLiMU!6YHWq zSBrh@nzTNjWRgf!S(DUwfcMR=MP~dzoox2G8Gm>v`n1S}`&^6N^@0O@>(_hPGg^N9 zam-Z2kt^oVa;Y`k42n~J>FxT@Ahc?mqJZ>q9>LRw-?VlaHM9t=d9&fq8G&DMZ@QFL z#Xg?SzEF*E^Q%>12CHJ@PRgHAmG2Pv#qf)H0?T%DjoyXYRYo@(xE?0{oT2!|K;CPe z$DB_|5~+7@FopG4NxkIg)i~OI<={tq;e}%QXO*2_usMofFgDQOU}=1rFpa5gP5;_E za*r=Gv2{r(`>n~y@ZOz~bXf1CdK&NCp#KaKO&UK{GF-g^X9TTT=aBj^nWMbQK=9?2 z-9O@2{0M7N(AgKk7-C-jO7XhOFA1{*xvBAqEFQHPUCa$W+p1r4o5Y|0wYmQiU%JPo z2RuuvI8;M6g~{^o_z`)*TxY6I9)I9sPPQ`wzbCM-=vkot?D&6%^Cy2~&veOJwL*G> zh?C_yPZp_n={5P&m93_x@=n;~Q+S}|g@F#o7Z$~fT{c0hFPz?AxNhl--?1~+9Q0vY zs3cid?j#?e)xMj>?d*^L4COEW9-OXGqL*f1ILD{8GV#X;`-iF85g(r%KFKXIA^J;d z&cb*$p2)&~`KLCl^O3mnhg1E+QL6=3%GXZH3x0pX*3iUzSWH$p;Sc-C{fd8@Kk^^4 zm;aOe$^4o8jDK!_PVp7am@jzvQK<Z4wWMz|<89lM7S1_#%z%|)g@a$jx<zje<z$>v zE*FxxbTT69eOjo4Y-!AdWg#pQzWvVnZY)o-UKrX6v&b`k5?ZzHVWZ!Uj~|cQT;T0V z%5moZv;R~5DSOL5_dm`*{+~hckNt=GWA=i7ynpmRwD10>__M>xYSq-kya54o8mDAr zt-jRPQ`V;QN@Vduw!Zd-Z4qXi=4ml@U5<8-FTKCCYUlG=3oIAD47wGeKUpr|dU9y! zs;R4HI=?uyAfhSq#09Pu{0<wfckkZ4`(lP^+49wGA$$3~FWj77v})C=={LNt-fNVy z-UnI=JvB5m<gl9C8GGlHu$X)GcH-;3R$UDhoa&vFUaND=h|hy*OKOwv-?lR>(%&QF z7N^Db&Xri$)cnepb1#QUeYc+T)Q*c+n|9XQMVOSwElbzQ<G4^I8)>yrikCll;YX{8 zgaperUgq>?3SSJocki9cE59`~)N8Hbxl2#y$MCefJBLQSR`c0urg-=CjuO=`2?AAf z`CI4es5J|_@b73YOPIcUM~O+@le>5C-sm?v{9$Xp)z;sUmfTO$1b92jT{y}TF0{q= z@+ZD1vE{K6IQ&tr{lc$)uk~whCNr*{8X6kl)2=x+G_E13*(vrg<FzuQ2I-Ajt5d#S zVOnU#z99dC>|D;|@CC<0L$i9McJJj-R4*|N{kZDttuE!21=XBRY5fcj+t-Fa4_wW1 z=%;aFhFa;9*=!PAGmrO8lPEDUag<us{HT`w$n0h}{zA4_+sn(p2>qE^^s}w>EaUFY zi`+u>W=<+mY^{9OxkqQF$AUKN)Evp0e>FP~W-!hbix8W7I)dfhf!6NWy9e3ceJ$U( zde@57nL*zRoLN>)FRxy;>gNS^<tI9+OvaTpom0|s7AvQIQVTu#t4x`Zn@!-=N2`Br zCyMu#C5s%&nCHRnR3b4Ua@Xz)T4xfkR&kVuzAt~9?taH>z2l#^B1R&MEEY&;=oD3Q zGjO&`#CctGiJJ4-N!&o6HDj%ih+9Jl!%8!sRja;iW;-L)!^T<uHgw&tR}U^;z0u;x zxU+oq?%mTt8>7mrHrvc)PPy;eJWWr!{JO&dtv75|uZ}47Y}zx0!*J8*^EN*YZTitw zc)Ul$Y5A@9&TgCu_doE;hI&sgub1Avd-wk8&3cFLJekefs<S)7UBPvVYw;QOK8I)X zbY2+R%1nQiG~0l;=~N+)yQCi%3+Himc~zTK%cr3emT+%SXbOy4r4*>Wih0u3P#4Z~ z>tYXbU1ePxs!*WVChXncm$#~C8P{DQb(b4?$Nbe}9rjwc@!w8~nRId^N7Am{YQNdm zNoK@0mw2e$$llGXGg*XHp}9w2&Q4hJ_+yDZsa~H}If{e^H}^0s%?h^^4N>$Lh<e@? z;20Yyz?VItS;G8!R>TaEWR4I&K7C2o<BwB0MAjCB8iuP@1V!kzXp4L)(tFXFta+xW z(x!1&lgTEp){M=^45w;)Etd#bD`w30deJF~&g+vmd8`)bI4H7a<yoGZ&nH6_L>~sv zt9X#C{iw#f_v4R^k2P)_P;@+gTuz~d<%w&Hs8e`zkG+Fv8-u%stO!fNiW^-A#if%U z==WY|y&iso;q&?ad0rh3N)ie|3$=QlEIO4c(7`z^p>?5o2xkJ<L?^?r433sB40Ac+ z*B$c~coG;I>hR(egD~S0Ru%!4N2}UaI$jhL>sT=7h0~=QycUXL@0yH${Bd;JCNIxw znYfjQ&x}ivi9^|&eczvH(u*e+85*A2s3gE2>!@*Beevoi6Rld-`Kvpt$1)yZ`CNV> zug&e0(NCLZ{a7|h(OugT4({Ud{d(Qy@f2^l-QhY%V;^Z-rl+1N;_02}EzEqwR{Vv1 z*wIa^Zz>6wsZP^95v4qVYvR$O07Vw9ZKlT$x&<{TBp#P32%hJ(sZ}dfWM$VJ)|AJ6 zmOi<ig&&+*Wj<UKY&Qv>SMJ>#cznv!_X`eox4+nWMq#?jgavX}XKbEy@#&01D-}~L z`KJ~c8hR!ix#<$*=Qvqf;z+7xP2+F=n*|U1{1s2umfv?`;W(XlD6Ug#x4Hvo)C=*( z!xFrA)P;@NbXlymmNalEt=hR@gA>=PRohIR_7r#+O7kR7-L;WnkK@DsWj&S#7S)M7 z42o0T<#j?tH}EO<OS2nKI~F3<Eu|wkVJg=#A)c^TcaBFbIC8_xL!n5)<mkzh_ov+q zC~*+imE2Uq(aS6(u|YNG+;5)feZN1IUQ}55W<pik6W#FVJVp(3SQLB`7k4d^(#a4% zwt>&GV8bLA-Yd)6bPN}}m~r-626@_Muk)KRLt*+QpSD}#VO9bwbS|$py4Y~q@^Nce z!Qt@YX$(b;{Q;JF8&<a+3s@^~=$G#G)V^tYX2%#WD7;iY(;o8C&#d1t^I)4ntf8C! zMTQq_J<jYrf{r~&=T53P<tB)TWOcO6U~4%pBgoXCs3~)huf;IX@S4+xQ!gimGTxfx zA#hOUps2@@87Hz0Z@69OS;A^@Oe4XraPFKZZw#}Y`%)!63ceklGLz{{x{<ZB6lZEy z*XKto+7*^@8O(E8=4V-;kd|;L%1dxjlcSOZ&q5&+1qRNIq7er<8<eh3*sSlcB9(`C zMP>GcC$AUy6m1mgtt<NA#?Q>e(9aT(v_Wz9<yi&?gmj7?bVU|08fxa<&SgpU$!m*u zJ^fhc?WAA)aSl)8)hD04HCg8X15f;kcp>@ovN?RAK7xsim5D5Z$!rcxEsv*bF`ST! zpM377&2ps_U5S-JNgG=@<To5rN!Yl|BcbQuVWA~kXG}cmy}^e|d`b_OfU1EDBcJBf z!eh#ADkm6Utmir7;`D*5)n_Top2Vxk$8PL#WfJgAa6CF+{MC8A2}O*82@=e6)=3tA zxWMkT+ERT@o8?I<mXCJE78}`mf;<eww2qmui!iG=Tzse|#v{u+Y3WqKhf|L-pJO=S zlE&lXA+pNpMw;5G&|3^HQUcR@&N;FOFW_obbav~DI32Su>Ey&&2RHcywn?m5;FM#i z*ylIpU(2x_cY8ih*I0A2|AnN)lJndt0nSe<xVc#NJIs(?;H9C`BH_Kxu`jjAXHzQY z)tg~zqLHV)grz3<u1L5np&GriUBR-8OR?vLu;Fplh|H)5x(o_V+vjnnF)(m*C@d6{ z-s7X5&8R)`t+)70CG!_Gg^rSvU7NO?@btX3%|Tl8%^{YB+LM{4Y6WPoTFIKhqi@Vp zY|P;}&#>ol3Fi^r32i!pN1jbcnOc^v7$^F%C$Y%z<o#SRon->9X$h?ou^ozPOpMoD zjpuTh$e$>hej$cIt?a10!C!MuuJErS`i4&|?;9qinZ3L;g{R`ML$N`|#)Nj4CJr@G z!LzHy_|Erk+${8yB{Q^V(pi^ssbp@^O%jdsMN}V6Vu%P)KIA;@RFwfkxHnG{M;n{r z^kZxmuhzZWd_u-OfnybSc)$UMCrczHN}jk*d$*?ft5vrZ(+MWYC&ueGnC?;IU{~o# zREb^5(llp{g4}8m^+m_Tn2sbfPvbi1)KggM+8iIY*vnISO^+haLZ4&1A`)~~FAZrk zFyL`qtk}}D>m<voU$HaO7`mJf-PN{9U=4HViaAyCY>~Uv6OCh`(?73GWz$>tu1D?b zr6)R^s@-g__xQ9P(sonbo&J7Z<8=|q)Kw{t-6jDHi4$jRnwGF+LIT6BjoFSYCj}J} zW&8XZSz8t{2>483J0_B-aG*znk!4#>+hO?&7rZ`MC&wI?lr);waFpe$z$#|0Ls50D z91N@ui+luIUg;>kU-y)wuW`1-sU>19#pjinHZNchykS_=_rR@GMSDZQ1!tMw0ugt` z-8vhNC+a4uOk=yVnyoFdSBmA-n#PmD3Kx0`r)hIMp0Au5>6#(LQz3dlR76&&htESz z;_?^2-LLoUezCP9(It#6ZgpsF`|-J-+hR*=g*X&CB>O~8w=`HPZW2%kXeupv_VLVw z&4-*F#fl;qOk-wR)i`B^!2}mU$(zaT-C|-V_6V%Gyt3C)V$;!phCLn*T^=Ww$AuYq zoKn|nGtBI0{-q#uU?Er0g;y)R1>8;;Dz-6(o>JD<Gc61aaAfw;J3C`>vYtcei3J@8 zM0w7#gs~mTkl0}6C1%BQX6a0^wapAH!Y8w0XRHWX_twegsF9vcQgW9E*G1+Q0S6u} zZpX!9CWaBhJc%u$r>e9P5>!PvkIQUg<#J&;EGCg4>g+nB`FiTAX68n50mlCf4vrH& zT_Y!`96NZbLtvf50yc(o8EtuuDsyr+HnsIRgua}0b-|3O-Hu`@9J<`@IXu3tJYo_| z8K>4brLraW%ZRal2@%s|IVxo}HLZ#1h+$syI)|t0R-6lAI3y~V9?Ou(Q1L1twCl(6 z*_@^4S#&R|F?EDX*$A&L;aGJlX+w{Zq2e^gh%1b%Dw3Eav?hAZIIY>(DIlgT#n~m% z|3rJ@Lal4dm(JueGtLQEm2yOYy+wkVCvmoL*^%jix}H25$qf2Ets=s6Rw<SxI3G=3 zZsw4BdQwQh2G+b8k55iY&0_6sylf<`^5ivVOrFth2Qf=kC$<^ag~XCJXsEREZ0MQD z{F*^!#?n5EMGrcXw2sg8G+*uHsmaV6Z0^FEk*M<2;$g$%^b?V{z8vdXI9Fn$V@I)T z(y`Eh#-defkwt5}Rz_@WGIMo~OtlQU$lc1zs3QGZT5{%^3DzpAtW8DEx+^SBh8qYo zFig6UAabEygNJzmgIlMJ)l{RWDi(7zj_oz(P{>*8$#Y>^+)kCl6Fo&*CvcpZxYUGi zUHpj;JR1|IT#(W+5>t%X%_tVV^;Vl=!DJ~0m#~~`O_EVM#<ENsTRGPFu+H@sU?^kh z5^R-N*d}ptQIm`U!^(h#9t%YdEo0%Hps34p?2uN#t<#Fj1ibrtj3yQt<`mw#6*SMs zKqzOD;hE(UrL9dX8@`>1j9@w>z~JJ<!?R++#;g(*O^F9-31{wVgh;$mdR!8^StM?4 z)1(8RCU&TZhMp496qp*Y#@U2ddr=k#XTo|7X&y%fzpIT+0!vm+6`ec5@}+`Sk%&rB zx{8i!LcmfF!NfRkj?jRl#45$mV1?c6+%{>dPLqyH1RL#SFqSxbL02=;!dOqBYfUqo zPasdSm`Q{S7q?M{weymo0HHIi)~t*z%UVPa$+Dc#*k}<j>x5#LDr-VF$Dw5=OT#3d zMKDfVbi-uB%8uks3tUZ(dh)E2JZ!Qjap8=G#S(X7S-2K9JvNYZ5{^t}&^o9xr&zcn zdFr{J9LHAo>nSW#GG;!hFkynhOfEql#$?fHw*rnxznsgv;uPaXo3b9RWgg0B0yd?j zg}hfx{MnO{<RBWQS(CR~A|N2Zc=sf33(dub%@S*hS`IO)CLRkp&Jh0p2!oa&12Y2? zBMUPFXq=FN8N9++K#@sE!O&63AduN1KsX_>z^P#Zbfgfxy7-s5wf^_~+TZ#A8A|8- z{G0lp;blP09H*y$^nX^$7Wc@1tXKE`&#=!!FaFeItBUoHzZCw{e;l)8J^P>eCw_|l zXSnyZ|H)kSPsN3sX8mW_`<kc!-|zLm=ln`f+rPB_?XCX|Pu~CAzPSGT-}+yS>wmv7 z3tIpC`<(1w`G4O2XW0E*{8vG1?BqXD{wkWD|L)I!qu$>6Pi@09v;4o?H!i>VpF!sS zeeSM~K;b_oAH#$qzUBYjdq{h3h+Xi@`?urt{xcj*>)7mh{MBk<tN#q<PbwmsvT8N% z$tTSgtkz2t*tn=8G9qFgZ*52HY@v%bX&X<3Z>rF=-rD-F?c$ygll+%AWzPJ&`YUtY z$#rLEYZh`jJx+Oh{a3tJpipw{%gXojANt!n|Jq{qzT`iHb;OR|+2&vF8kXmY%)I}l z{M(`ZFSc~wG~EC84}a(W)lc%bKk5Bz>nE_^^~|yEe=JAUziz+1|8)&mE~j?tii(P& zr{79;1s3YxwtN1Uy+y76;P2nbN8aDh`_HiUgPqR(tC!AK%sXelTwdhi)h7>6hx{|$ zcK*>nmFXgd*IG~7Is078*l7JNdvpDx_=RQfU+#B)WLEt2*qomqw>&=>cJ@qOQtD6n z@?(NVn=EV&E!yFxsj$a*VMfi=Jek>@6Y>l0^*`AvfAZm+S?y}ak55exUh;nKZoS&M zJ~id_hrWJ^f1?-YGVkW)Lxt%d3;)^AzIlAU<dM4;TMA!Y-2Aj}Im?8W7M;R>d9^lu zG8HeT3eG!vA|~{x%O|yu>_=ZbJ^RygyTFgPGCP0TPwty|a@YAE7j|we6iWN|-8k@) z`T7rwkNis0|8l$J$rY)9E<rEle&L>ro4Y(awb~EfD5`6_cG1h#tLVXd;aQI*Pk#EK zwoNbE=|SlWw*~jwk6tN~{-hV@r+txE_~2^y<A*Kh?3wd-a=mx$FEb~R)?aGU>Hf(| zzrW9J>n-y!`p*#d{69mrK<jCD`E>CYkAD>YvG~W~^hf;R@#&MBEd1Fe7dKnTxTrm7 zQ8cWZQ}1VdqLuZRzFS{Y_KW<3C;DqIicWqv!Qa3=tZ#0;C-<wSe|L^Z9KZ3QLqkn5 zv6g%LhjN}w`Mte{j@xguIsJT_{I)XR>Wu!+{$1twew9p=lDKh6>af+s{o6j8sk9vV zdNXqW+t<IN{!RPOu=!G{<rkNb_{~Xfzs>*2ZLD5q{%^6AYr%Y<B=6c4PGUiy3S(;K z+<tdG>)3DculhNH`@dbWiw`N;D9Zmb;AZ{CHQAf%<Mv;;qn;{p%x2@{)RO(-;dVdg zU;JVI_0Z&fW$V9RXw8_hZ)tz`(ZkN~_w**|9O9pRYR25#ho6|7{O9(c;aJ>}J$#R5 zEfv^kbbG?$CkuXjYLWCkWV5Hr%Jt;I-bad@og5xDb4+LUig+irdwM_d-ubBf{HslW zP3GV2$bC^}xUg4LUU2fs%^`a-7MeMlx_qBI+q6Y(<Hp{i8%u<QG;T|)wVBwMIep8x za9h1f{C54KeY^bM#jA@H=5@|VJQCOMq|mCYHZdeg)8a+Vo=#oPO7SV?Pf`U9c1u>9 zw``vgB(quIjbgR@UABMU4Ey&crq!3OSCu$s*z=@FO8S$TVb2r8-x|li1Xm`Xmftj2 z^{nmV*q7@+CDtFj@Ze&hUH>2Z>b&r03G+5g*!1G_CdK~g6IJ5wK1}51ly&=P*U}$5 zVQ0pdjC&>-^=_NjeX}{#;c@?}=iPm`x;p|nB9@5UXvuo`h@abJ_UYt90<FJ$Ip@!~ zo+EK{jg4`%?1j@e4K^CJ<a2T?-|Sp*Vd1{t(=-&NuGtqF798hu{$OEZesfFkJt<AY zLN4Xn?(HrW?E%v#a-?W-&+ZlYX5KexQ}=<cyhn*YY`<j-r+hJg@XX3WLy`Mpq`>{M zkA`9DsUL5bIfu;L*=l}!O>o4b*oo3-#HSSsbc7lvavgIE)VX5suK4@7it#j)d|jjW zJhL?BscA{+H!e;MaPoFlJjq)n{iUv(!)cMn^<;^?9Zp*w75)_xRy%dnOzEK!PqMU> zlJtinpH%gUx`u(AKZHJMFEq-C?fjwn%cS~HoQwH`i;F83yB+gc^h153t#b66<k&Uo zFK#Tjcd{k_<%M+-Ys6E9ge6{X^a<kJvnG&pvPVwJg$*zI4<|cI95XX1k~n5O;l(+3 z?T#296*V<06B{!tADx9s&tzTXJsw;**4g^RDd|Iuv)hYfHt&-(eoI_3Id15ozES#= zlbEUdX@UO?7Xy=KD>r#^u2T8K&1<2eC>r!|-N^@Kciss!J)NSa6R2o3#luNp#$<s$ zbwNW#9lg1al8jf(4Bt4*lK;EZg_n|^y-rHc%3|#AIBxImIJeY$=3{}#S*9I!%E`$R z$MTbeKek=CB)eG8-m~lErX_xC=levo<VDQvv~23SFPwTNCl;;AIlHZG-^|$$lI4Ph zEjl@kx=+mLP%KjvKc>i~n5d{|#Ni|+xo4T`lgQ;>O`@V=0-HTDmWEtSN^<(9`rwK0 zp1{dYPiD%swdm;N^Jeld6j{+8Hq)eTj^Ema%Fg-|lNNIGW^)R>`lP<FP+XdCp(Edw zBIh012Y;D9s5||nuC1;0uE70Gh31<(-bhJFM<g$HSL*QWc%-D&=be#k)tix#A9+X2 z%Il*?;KhR*7f&vE;=af3TFDRT3h$hkt}d>MZf0FRIfaj%#H>QK6*s#+*tqW8nvxZz zf=N<4ik%mGSFD*kzx|~R&ozm&F*(;X4Q3vR-EG?6`RVwBdnP&EyLt^bO>~ZINsXPa zbLer(kt0?ud*-+AQGMd}C3|zlidW(yrHV;q>Q9`OJYMW^E#lb`weypgZ3&fF`6H*t z?MTkdziKV|&dN7B+RiObdgCt7^d;l3h&}6jX?vDE9Zu(V-zr%V;<2TU>#Vf?ykjvw zG27evFHVS`(f-b!<LtwYoO6Pf`n(Ltjj5Z`?|j&))x@kLq~t|=*yf^RHNJuz5i43! z^o0vvRGH-5D~rkI?adb!+3D{beYCReM400vDf9V#l8e(e7Op$rCuvq{ytMpU$)kBE zg666{%N8o^2#KAT^vJUF$Zc&?{*K#<SNEMwbS!i|_B%c0Nwu(elJM~(D_%Z{W81B* zSQ)f&El=f|n##G!N0gUn+b&$Van>O*^A5wF=jRXp>1dmM)a`6ph@Ff3qVhe#OOss+ zX0#m2n8$Xuv)g!^k#6T4uMW42i<_O6e6R^hTEx5Y;<sPYX&vV~ZlAShJLbI7#dMjO z>A}mfvxTdK>bzd;nRg_#_2{Kfi`S&J867H;xc#Bz(GO{}5C0k1=1Ivv_|L$9@ne;^ zZgBs9hK^rRhvVF<OIg+jytJI_bCG3^)kMLKHY!~Y+82I&x;f<L$zRfnFP=V?U-rA6 zmnZIszEhpYpZUMyRGw}Oc5$t^G2uUhVRhQsSw|H&KZ%}s<ePEqggZ8eHYwUE9osFk zCilgYg(r1B3ctCy=B>0#Qk|dDEGc36iJRRw?K-FQB{==Gl)74}hL3(~Y4Vet{F9%S zy}YzozfoUZPU+cN@t2Y;H|95Ps|il+@$Yg!(Q(r&D|KOSFTcsYb5n2c%IUaRuy>A& zk~sgx2QgkXzK0Y=XUmJ#bsZ|y5>h(u88M;rl=0$u=k{3%tdu*ORH>(Y<KD&7lZ3?^ z6|0UNnRlLTBk$sy+#AabbwaWPmIzjI{t%ayS1Z}H%H+Y{E+0S7?k?XsE<ZVz`<;5H zK6(9tjmP>g?kFwL((6xZ-cqySQ;X7+*_wtXh8sVA?mB+_<f?p=oF_%j632SiShGL4 zDOkw%)A{KlLlfr}IUZ{+++;sKk*lrk=;>aW8!abqofWvJt*oss^XB4}s&^Tg&!&q8 z>bb3$Y`gK}lba##;aVRp<&K_QRN#KBd-Bc0?US3M^c$ZqxiMeth+<HoiJxnf<ih#7 zUFqrX1m+2eNuHAFb4l%aeELM!I}<Y#{d7Uj#mnW+t(~>z)y>EkceG_&a_(wNdiGA4 z<@9)?VerZcJ{Nv0`gmAYs=_D6Z_Pix*``<AH`*puXtyYSTDGr6G5EvFNA1Tmp1*lj zI#+Aa9^ct!>PLR6#Kmf4|2X@`>5K2fO*(lOf0$+T?1>Ckp3&;$lyW^)O)^Z=aB*ru z&yS0nCso$5AI(U%<jHvTNqdvhBDG3I&l54B+GcL0dRIMG?(JMJ;kMFu-qDkSA}^)W z)>UoX<2ZF!oJvpr6h;4O<(>E4@+S5#=}65Kl-hAIVpl8ck(!+szZ_K4S*WwI_i_3n zv(A%`CYw&)DLuo-C9QY9a#Bs?4)s%_hb(eDIXwI~_0RaRmbX$|Xp`u*I77j?f{Rzg zRGg`s-|SrH{vfVk{zSg|hsXOD?aJbBn{dBzy;64Cu`4dOHLf?Oe4H!Tec;Bg{)@^_ z*SzuM-J`nL>6^aO5wo0Fjo^rvH-7TT%$7XfwI=3gNXA{a*A`nh+C@o89M!n7;gm() zBjfZ_3r(DU9^R3zxP4>QAt&>N3m0})T6CWhSa)JeUjM2^Ik}f_+|!c!*f}>N=dZ<Y zi*9N8fS<Bz4|k|;tax)xapM#xryNhevr=sv*C-}G$(KI+#7BE$@bZkBExm`9I6V`& z85kpJ(^(}Q5U`K!i=OhAnyN@UW#=vTk~HPhHb1$iboTAV$QL<_{oVCbPo0*yBtLoi ziJgTPug;IWUVGes(ymg&!qDmNej8m>YF1u3u`zJ*&5~9V6T?liQBvBbH`iGC3Ql?X zW*+yGo4)gU``4`GT(pSGX-<%E(o11;SA~U<CfUyB{S!aQ3I}g23tWD4joFG%M{;H+ zACa~9?w$Qh<MLtijXaeFsZSSfT)uHX+u38Pr<0#N*vmbAVxh$S#<g-YxfjkV=~!n} z<o=Q++d28c6@B6F+g+^!%Z|9{d79|WIat!$E3LJ|!}s8gk{9_Cx!P|0o!oun*oE7l z+mEN-Sk|_=GUF%zitLGT{g+Zpo=4^%6H%9_fB0UcqGslQhDG9O8^z3Wmb`0!aLmQ9 zj`M}n(MNthL31*8%wC!i>#<A8DzZ$uEBWb}n=kGj+wgMHrZrAEA2M!!GCSLmqHSlf z$8V}(SXsuM<HrOALtLCTFTJ=eW8IWm6YmK-KBgo~M=Nf2O%b2;>2TZm36qu{Kbj;c zrKhbuGl(lGsZyY|f0|yVp~PB=vr=YNR^jQ2i#ARPh~rpoXRCd3$C1T$$}t(YmF2Wr zKIM2%6<u*-lCZq$!o`;brcb=Q`rwOLgAJ>AZTly$_;h+>p}czU!~M)LWnm>hm2Rv! zHdi>1_fxw6M0=*DntbKeQyzs23fvdulvR3i*7<3~pTt==UcT*I%bDA`R%YR^QtoBd z3OjA5a&la9wl#Dt>2O(^>g>Levr=GwW3|N|Z4Q&yCgE*=cy0TZwC$OG;MT=6`ED&+ zj?78Q<?o+p&mtsv{KDoHIbYoD^cJsm%b2LBXR@X>Db7#lQE&2xjGQk=3LdOjw&~)> z#T7SS?2%mVdbr`(kr}I-7f<=|&^Su_COhxOWkDiy_$OM*`FHLqH8P8RT)XS|k&6p2 zDQ%S1c22Hn>-uoXv{zbGb8+Q7u8!a*R(g}2%sbBark(C^njJEyZ+X4ZPfl);$gbW` zYDalrtP;$56)?+cj+C_1<0p^LU%aqLOVUjL@XAB_su!k91S+bO+SJJ}+A@!AyWdhd zh1rWfb-q|7D3V>_cKV}KPVXh-CmBDM<aJ%V;c9%jbK&OI0<9W<<YhN0ez~+NDAB}P zaaX%$P|AhN+D`5Mi{8vqmen{n=|ziGtj4vz>E4@OT$Iav;VJ7<aPy;L#id<#a)MW% z3Uc?I`opPJs+Hk=+TPIPRG-IRVZDxyvvW0ja&nfhQQ0V!k$br0X0W!v%Ee2TylHhY zQOkGRrs9*)ot(G$OSrU2Ht%QA;9Z<QkFE4-DLLUgH^RGdP3-KJr@T_8Q(5**pQ1kb zv-Pnr8JV+Z?C5!&?zef*&aNXlGcK;2ac)_aDc`n|9of<*fgjVl7G8c3oD{Rg%<P+; z-n`z)JSDmFHp~)T^!!-&VQ~?!izoRe{E?Pz(Y|RTGRH06B3N4E!n_&RCOkXVa(mIz zo4@o~Qqs-}22N>8sXD$eNcltl$;BVm^*Jx^lZuimo!Tqw;(91QDd%M=@9utq+()AC z#Z$|9VojR2tjV1vEXlRa_R!w$t`#NuC))mS_fPH;(d50nme=^{!ZSI3i<cjawX=K_ zyNIhxJSF7j<zo|;o%+aOdc?m!@Y)xZ1v5Q-)K0j1_oln-?VOO4wqkOLZ+F)W-<*&~ zH@Y73&R**5w(^Qw&JrOlEvrhWPimX@b{emk+goIob5AQJ?L^1QNG`36A5#zUZY)d} z>ose;@J{B!W&JrWVH5u|i1o$n41a8;eOz_pwlJR{<JFyJX38H@oWAMB@n1BtXH8qs z%F?0X)SFSn-QQF6=&Ymh3a4t*h3i#5m_K=`acshj7Axz;5$jVv=x%e%xp($Zk+6)E zb4JgK_MkO4<=Q)+EY9oH@Kt^qxx4GcmXO<OAAZ{MR@w#fWfb);cXhpzb6HzRxLWvP wT!-3%W9G+G3Tpc1DsJ`Y?aA$%FU!|)^Ox$D(#lg(BGT11oXW|^AO61y01p>UYXATM literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/about/gallery-geothermie.jpg b/packages/ui/src/public/img/about/gallery-geothermie.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b07c8eec236a80a4623cd6c22b0e457c6822562f GIT binary patch literal 83911 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%0Do;(^ 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⁢x*lpv}|7FVrB!4r?Z!PK0YjK8{W8Zi}?9= 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 Nw-pbLv&H|v2>`2YRyF_t literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/about/gallery-non-energetique.jpg b/packages/ui/src/public/img/about/gallery-non-energetique.jpg new file mode 100644 index 0000000000000000000000000000000000000000..60f18067ca1451887798994de73e72a2568f59e5 GIT binary patch literal 141045 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 a2d>@jFP;B@<KKew-<016{kv5E|0V#A5JtxU literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/about/gallery-stockages.jpg b/packages/ui/src/public/img/about/gallery-stockages.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e5f7d333b87ad439d8f10a3a304657f9014c4eb GIT binary patch literal 126284 zcmex=<NpH&0WUXCHwH#VMg|WC4+e(+w;5U(*jQNESXtQESlQUw**LfaxVShuxkUK* zc?85oBqYQ|#KfdzRpq6mm1V@l6m%4n)zme$G$rMA4RkdOR5dg;7}?p`xj49lxwwQi zq{O5&NCy88F$i)nHLx%+GYT>=2{JMZGX6ipAj`nO$jS(EDgzX-GBPo<u(306aQ?r= zz`@7}5|(A#u)B4~OfILbOSC7hHL_Ze_4Iy7Zly!-a}%+f3Z?CQo0o0+`Z35h*wb%a zcyLj*-ge%JlD;ev>vS*iOX{ff6fK!>O#j?si%D+lTy+kum?C#cZ0#n`5Z6y%Rr<6( zJ5OjjI{oT|zRH^LW2twNj!c{sbx&2bOH8eA>8|N>bb8)Qo64|j*1Cs3eC|7O&iry_ zLhREi%P;=UlU#e5O~K(w*R$2jmcJ<a&tUMC+17^5!me)3zS*hQvOFW|*Y64n4Liyq z^n6|Anl;|K8NKW+=O&01>`?xG#n?>LCF1!J^S0F?k;wvSY%%L!UB4@l9hN=4D?&4- z&B*BBXI`mad!`h7s%|hbHS)b=b*QL)>c#uD(^NaP-G!&|Pu%6VyR=Vsufj>~=lkk! zlzYBe!yE4JcInrFY+>CMEseXU?Umj2SoxY~z;08y)WBsv{0Y+Y3?5!KT*-7?)pJSB z+N8D7zEk%}DW4SnVX>HfQ=pII2MZ;svh(Yv)N5UwzqTlA`d{f4XY=f9rmnp<k^B1k zqg-qEOg~re^eSi9q+R7MCzbjwTpy<u?2yt?o2FZ*6Zbj6{OXJ7bq}SOMK-Z=Ny+)d z^ei#^dg^6LZc%yGnRV`V8rexZUfIefE%+P25t|lv^4ZUypPsCG>2~YoZfSv=yJKpC zbk_guI(H=X+)>A~lioJQn}5;U>9|JW*ENMjlRM8!Rz7pm>&z1M3g0N&X)^U#B(o)R z!WpB#sl~Is#9a$&mK>ZkYpSqzN@(}hwMxg|l^++|y|k;0?*ePF{`$S|tM-)#E<L~f zZgG9$*@>$qJ}zDQFf#U@_tGx{$0gr~^tVrcT^VgHF<-X4VNKkOX!m7J5hu8%7f5RS z)HuChX_C~H6WIw}r5Co_u4Z-?FZjN>eZ7kl`_X{)6Czz#8*Q~bE>ojF^@9~xR6(K0 z=g_mC4liVTukZWf^Vzg5Q?<io9?hszzGS#}dFtHD!AnlBeb8cccaZ?cq_>5S^Ug-S zR?-&qIU3#9wpr(nePhp=Mg5y<BQ`$exV`5$)4SvuQCl@nu<n*U7Cmjxg}$#dXP4>u zpVU6_&Fs{bu65HMyqGhu<Y-HJ&(HI(YFXdTI}>0y>4?7l=j#!++jgJbnjzDfu_M#( z(h)h4sW;efX-D|HGkI=urD4-luB)3~H>7twG23Doq#-i3=~_zPo}bxeimW+L1bDS| z!vq!?Jbtj@wer5a^G202FD71a4m&sR^1b_^=hC-)3%vL0wpP2)-HN3(IjiMQ&9zV6 z@=c>RW?R48Ill7E{O8zKu2S0frS(l{%N$daaD@+N9A#$i6)W-U`g)Xi!SW)-mZMY4 zW|S5!*4}pGyU28F#_AXQmKRy=+n8imdE}*MVSH#$m}-&O>&@pkvSs`fasOR;<=L!s zl|_HE&#e8l>~ruX?a$YOR<65X+?Mg1)hb}yU8f1%TY}FkTCa+m*r0AGF{d$T=IUJ% zTM~`T@;pQT?XdTE`m!{_N-J1%hFgrf?2JXdAC|0Nea=!eJ|;V<TKg<ZS%+chqQ?1Z zE1s4IzQ~&<?X~gpTE=L5le0Tth;5q2mbrFGjI#UfR~OelJhzF%eQRs!#;}ru8GVl1 z7j3nTvfS*N7qM~Hq@~`QZKeqAncK8AX`NY+5$n9ldnay8R>_~nlg^sxW@Y9rBIbU$ zq)Fq$hL?G(Y){Sg&$<0lX2KyQTb?PFcKS>5d7gZ!bUys}!iQ$rbxWF#ocd_y_R{OF zzU+?Y{9%zxMcY2EOgui*@m5&NZd0cqO(|pHb4k_(w@Z$@g?VpTQn9OdQzYB;twDa7 zN0wDT&EcKLp><~J>#K#uL5nATQp(?+-*H$soK<G&o8!F?{yJAB^VPV`P-9O%+n-&0 zw=`q>xeDLd%2S6^d~V#Tnl-a?X70cF+DThan=YBfctL!-<R_O0(^kue#0GtiuDXyF zW?YfcaV~P>(VeROzEVFY8%YGM@~?WcYF_B)t7fxZeKTHWb!$A?^-*5G)VA%g@K)Zb zy2o!8=G=W7%K3Af=5zmf0&f}BpIbh7yDx5`fGwY2b&Schy!+Fn#g2J2&0Jslw~(iH zS>*Ys?Jxfd&PY$za?RUoy*d16)ta@RZSLDneYnf>#J>3I(@)E{R4cXS2k+ui5^#3u z`Ojcf!rSh3JSL#Je~#&#ob&G7H%_`LN`3n@TS#<GWX=MHXiZap)lZ@>pS5N&mYGPN zI^xQ^etE0s&1-VUPiJ|3l4#s)DaK~HRoC#k%{klCI-A6oPu;if=gG>N>(%!@&sGw@ zHSyloX4b%l-0F{UkFDm;cR2sD{n@LJNvHEJ?`B<8+}blCw|A9qpGWev)_`59GR8qg z)8z8Q7P{NV-L=}5ClWq$?GhC?PB!nNs?S#J2R)~}6jn^j3fU|pcg1(w=6k0;EuH-~ z)b;z`r=Rz(dzl(xXgi~6O}n4lo|v@fD;Tey<B>mKTRv&Z?Zmq2#tLVS)w$layH@1s zp&NCr{p`l-tctXlEvqGXLR4Qi><-wu^49NLLE_p+1vwP=T7(~drNk<DY39;7Thv=l zKTWC2j@dY2+q};c?|t91>fX#N?Fuher}rMo`n<fK{phc>d;9KX{dj9oKfCwKWozlJ zEKi~ne_OOLFJG;2=Edxk7caJ!F{Cd(n|aHoZ$e(>;uQJWo8qI3t^K_!nw>b!9*M6y z>DlboFA#9>$cfiQHJ&TJEy?D-vrc8js_yrdG51U2W{7$9Y5Zz?(q?v(^V9Xv3lVp2 zt&n2M*D^Z$#Dmf3$KwyjRkQOp_O0@GTC(RqLlAGrrMVggo?Ch6z9@AGobe)1Fx%s9 zDu;h$^GUC@(Oa`yccrwhkX2(^!ELh1QE{Tq^~_G2`=&hN>ysY8F4JWx{mbQZyR7|+ zMDcyO65hbQXFeP~(tJ9Y@r%0Kwhae4V*2KEzHqTUY+P!#D?*oFVB71*zM3pdvbSsl zH1u9JAKAF4H#)8@dUDLHrBW03^n7u>rER~sB&_K8(So`(BUU$8EuGwH=P&GS;@+P7 z++<~#=<1m1vzixguc$xWQg(Z9PVV~SD?dF>t&Z%JWpH--G^@%wa24CmsFfML(roF= z_;e<!gjxz_3Mg70pSIN_hV}JnTkF)6`Im!=Q<ke5Eb}wnqSTjjts(uK#jCGT*EX(m zos|Ap@^aGDZ-+82t(DwkwAW~Q#-ZQab{rF4l2xv0l>Vyb<i+2mVP|DerhKUNEx7r2 zkK(C|^EQgCvkmGtNWGta+gDI#Ph;`db-t=u(|Ip@z7|n=ZlyTU@4Kf|+~!xwY9*3) zRrRb}WIZPyy0Rl<rn>RMFWg4IqF58w23@&$s%MJq$;V>cou#(!j;+(3Q+M2Zz0x~& z^0ckdH-qH*10!P1{ciMiEe~5_`rx?ml)cw;bP@%!9P<(<+{>IeO-;4p>cnji&ba;b zxw<E)TKIZy;?zxSvZppIUZLgkSv_y#`R~40_Pw-@*i`Q6swuM~z=ds=xv^&G&;C_; zB_a9D4`tO=_lT!2x~Q5~$=Ybi%6aO-(y%wz^DnQmn-RstI(4_&hg;5GQeS82+1y_{ zFE#3ykaxXnWya+Rt19<RnX)E}GrFNfpyuP5gO(Z*1{?0~k$b&c#_FzT(2rfa!mi{n zbq8*gbiXR;$3J(Q^xWrLXRM#^b#?!em7Cr~{#n-YtcLGV%i4t&0!PlBk2{f=TwMIT zy<}O;-8goS9gC(G_FeUvwkrMmiG@cdToBmuL#Oh5sbg=i{-&Buvse3z&y+mVz%x74 z-6GhtcwNRW-4bO}egC|c_uE-l1$x_dJY3=Y^vrVCUwT;&>QXO0T=Tv}Z|@b>b0;(x zKU~c`F-h%d$(5sbJqvbycMcAcw_GvvL$i|i3A_88FK??|RfwAt7HV|u<6o(xK1V0@ zY^*!IGJ3nzW!6t^dCg&WOwWGXzd)zUY*Ll`#`P2XQ#LN1DXkSfzpv)w#kvlQJM3qV zE4D?)JO6oo(>tTa?&z9*i@c8f4Q-ALvt(I2`%q(6;+g0R6BnHhy0Yw%&y<?`YPrAt zJ-b3zy%5$sE#f!f<pry`Q@8tUcwEWu__%g5`x)ahv0&>{lHT8~&cw1*rp^1RnY7b7 z<@>~l_tqEpYkw^Fd}qtG;{E*U?<aQMSy~&R+qvq>*IFjkJ?q=vmM%`J&@;>uU;k36 zv!}^oNlk+8{T-*Suzy*a<?%E0a*9P>^*o9GjbC=Se6^5&cwaZNqte2tDr?J?!}^_5 zC%-Rl`EYC9_6t`}%Iphw)((x>H)+j$-d9z}W7^Id)=R%T^6qZKskeUf{T38)UE6c> zuW&5WYTKwQdfT&4vbL)n*1f&z<CRn1i@wi0R%vte_(z^=@s8)rt-EgNFVZ@3M*eir zkHQs>FO$ws(GKd2+}Pgzs7(0iwcV@CMCML7a5DS6$kl6U>rXALnx9#-wMa&C&D;G( z7Kx{7cgeMc-kYTHtk!aAYBz7Os^>NBjgFb;+qN#Z5>sBCb@%y^^U60h>@*wC?B~7E ztzYzVk~_c9)2+8Gx<akhijMAloh3bQv-0Vn*?#F}fu*-OQmfeIbKEvwQ?iWiEZDdA z>gmt-f=o{8)Xs@C7i<n(XR@sS7xy-4X<MtEF<<*E?<(I+jd~HcZrS?DM{D-AEj8kd zol^9u;ON&y1%GcmU(3@x`(xpU!%t`atDg7t^ThK-Ue3iQGh8n{cooa|$$ZZK)L9?G zOZM_u@b~>%AM$L@kJ?Gkx6I63zph%??o#wEzl+wFN_$gN_BCaMpJ_eOb=t_t-lOlc z`j>sH^AB~LRqE!i?~ZtLwD`{Etr2}yo~L#!_^~j1>EuiLOX{b_?E7-0T&BxR=Ec|D zV!gusq1QY=ooinB!n)VJ#&xmyY_W4~8mF}`PZL=D{Kf>%ySrXhZdgB2{G^t$&3&!o z+7D;0`f=yI>D$`r2DRSXj=SA+t=kswy5e@)wu`^2J{Im{5AFJX?(4*JMcOx&v?6z| z6=p7)o22y1ugQIaLwU#bD^H*N+HYO|baljr=lix_Dy*wK`;^W5sL6&O^8?=1dDyJ) zT^sJ!_09C$EPKPgsS(c>tvYpsa}l?~;@2rf>O9BK%(%BVzUKL1(YoLxuUuohwP%|z zFWJq-oc-(8X|q>dul|*&n*5TLk3Djg|3shE(U@Q9)3V$D{1a-wSnqs1-SV>>=Olh_ zmy>7j?>eMDSEl2}oo~uhMK>&;eB#L$?!-Xx6T)skH1Et@VEE|3o0LaP93>N?G*-LD zNk#nH;Ivxh?bK6W!z)AoZ7eT8+uFreuu?+pW~q4Uj*GD~m}cp^ZGU#INM^pzuT_yV z4%mEdN&gbr>$iiw?3L2a56rSMmsIMitS>GyGPey9cepz9l9{H|j9DSs*H?N3Z0+XH zJp3|uwfN<8o0e4a?8)i<H}PH7>buXYPimdDycZw3t@of^#ovF^FK+zNv2WhSNwWJn zKh7wB9sezP-isA`?Cnb*-I_nGI<<b@g4HS8FUGP4p3SoCa|v60XI}5e-S=ERZGI%n z`EtqB_3MKzyZh#Pn%+*yy52Z%@yt2O>o3iFBByX8-uhVN28q3%T%VVy`Lu*IzqOL} z>zsQ%=VS(ZVpX`}&&9UOE;0Nr>2g<Jlznfa`ibK^mj}PM{Lj!=C9?N>!IAItI@Wxi z8mW`<)HTdf=E|RM8{(Ip<gNO^yl7$L)Qk7_i@K?VK4>X#7n^QaoZc_Fb$4s~qK>2a z%g*I|i&__a{>_Gtcb%8*;_ufgx2s2PTm8M#Qa}3V{9e|pnMLzcGHXuDg>O|!wsSiz z@Y_-G$M!e#grr}rJ~vhNx!b(#nBGsT3_JGCGS@#~670V6bJT$(Prb5aljQY_&Q9KR z@R?avTm@@Zh}*H}mov4JPw$J{|K;t)`Q{I2FTeNgp}brP--q*#%TI({dij$-`6u`6 zAk9_h{`z0KwW909O(pkFZUyC6WyQ@ue!t1GFX<O^#4~^8<WD+*mH+(BLi^8rshexZ zzB-~)YlBMY!Y$cGch5a|xbV-qKU+V3ef$37&0QRy?3P!%hNyMC;7((IxjWpy%JB6Q z!B29#L#hK)w%eSPcx#is<xgm@^};3myS}^D>?;lxzxb!!e{<o+hZ&{srXKk+ebcux zTZVlT1vgnv{P`w-Vb)KXedR~CePOw@RVw(#Tmw_~ue@i@Ka1pO;n^vh9Mu%J;`Qs8 z`Kx9auuYb^X&s+bw0`0W<wu%s3lFDkD68vzy=U=?KlXEPe2Wv9EBrESQ`z3Q`~LFB z_7?B%`|(>;dP@jDubh9T^Qy8Hf3@R|+3pKlJxN;h&e5NIv(wzqL}k?2E6T>&ZQ2%4 zvyhp;`c|@A(b0<gHa<BkpZ{D}^mX34?V3>=-gEqzR1|jFW5)Eq={uhP>hJk{m-*%X zULUz%_fLIOR&zV=|3q%~os^&D(|<KDQ*?W~XqnaWyd1+-oBXTq^`9%BXmh`&_tly$ zo9=U*i1yoCSd^*KX>dkf<+|rAThj>97O9@}>E}b^T5s%pCv|W(gXfEXNn0JJ7OuYZ z`F@VQp7v7(Tl3fUU9WEab~?S-ebwT{`N#f-?+W}WF0P~A7P-#r-%)d0iJ2n)rYCyR zm*&i?-!q}+bV<7L{(4`H_wFLTDZ0CP*Bp~SyDQGKS7e%1UbMiHv*D_nuW!2L+b6^& zX8iNc%hPQBLQfBs?N4sFvDDA{knvsbSNrEw*6-VQ@n`s%nX$3+74pCQI92Q2ld!3Z z`@oueFJcY$X6^26PK~#dw-k%lu6;WB^Vca!I=fg_{VqPO<L~Kq>v{5%%0pLIiR!AD zruBu{rER?{;3^{TarJd)+p!AK-R{43@+n3ysdd<VV!vt8!C3!S^U6O}+ArL-I_^bE zxK8g+p2EN9>+1NQ%$axJK;y${*`_51-{MZnu3Y*1qRPG!uj4<@{kipZTJ)Bp8!JOE z?XyhTalZK1*L81Cbgy$+9qHw*zh<*x>9<1GCFktZC%lzeP{w}c1f%-B+|SwCx2$4b z{b!i>)0c1Ymn-o?yI1~Y_^n@Me=ow$;f00V)*El0+Ig>#FwP5}z1(NbTidcdt7AWD z{qh!6mbs??>}cn=<IbTCC2|u#@5)qP9j+;}{aabf?VYvR?&>q<70od3Y0`3k7piln zbx%tF4q0>ObulYf+=|<*Z-2@=f5+>8WzVDUuS)wolY3g$%sl3sO`ml6j<s7KZ!==l z5Ph*}QJLLQo~_c_v8IZ%Sm&<j&wn=ea;)Lc6~56N*5{VTEj<+a=!EO*<!gg3ozC08 zxcB?(MS8PlSTDL!bT(LYXTPKToaLOlr9FPl%fFtVs~0rMr&Q3?I&QJy8B=@57sajp zQ6KL4PhUBEL-=%S2dO3Jm&W$$lxgjXU$&)NTV85)Qt{G>E9KYx%btHdYF?tjX2!fH zvTpyDTb{f+nPH*n&CZOyRcE!fOTO0aJgVKN>iAt@gWsaCnLfocIex8OT;+4^YVo5_ zg*QzcrMpe96fu3RD!N|Tr(;_!?qD9fSdhVLO?J#n71gcRro0S$XIQhYYM;scv*C5+ zQ3^>%yC<DI_h4&w)WKbOX|j)AAN!e;QIfam^jGDii0oL7AGurB?$CKw^7YMx6C1j= zDu4Rzt``uazbRu0>yk6PFKh1oTeQ`1rd2@vRlbuqFQ1Djd}z&MTKT?jx5}2xoW4^2 z*sXb=ljdK#<*AZ?A~;A>pz~0snZ?2FC$04-S$BM`*z2o)eQwQJ&%IJAeKiiQzJ~U? z4@}N43Rj4|msO>8)Ri@*b)mP>(r#rhw#{3cXZJX^teN1$>8tnMDx;-Vzh&3li(ciS z=T+_+omJZYaB1?o7pnfY`{qCNl3Lqc+$4FQ=j_RcN$H=W3@iB!w~E;woLv;V*89TV zPfI2|KC-P=dv;ae1^1%X-DS%+{AX~_nZUKC&m{FW$9>!PosV8DWk07`Wp4ah+2o4J zP2OW19ND)bcK%cf@sm$g+NQ^(JLQF~w_o4X*Xf^UoRRIUytZ5Y(l*Br-}7#4?0jDP zTa4L`Px8UbwbgIjrDKgn&n)kinO0(KR`E@u?UdcoopCRPkDhAj%M_H?o;q>+EuIq- ze~CZ!KHJuH@NC<Rz?(0fC*3Y$c3t)P5NnC}8+N6@8{4vfeq4J!{?>WpP&;<@<cyEy zKm9IDk*clMzI^EF1#|cQ%?)Dbx~%Sc#F|#vW>t!-&+8M}<5pB4nPz%5KFK@iq}5bC zHh$Z*jft0bN-g=kRU_*$Q;8Yhw;gX6O+WGI@g{?B5~~vryRX}w^~3ruv*hfBOQcPC z-<>(R+cp0W|60i_R^jp|FR3q>_UX>t9rLm`>--9OrZU?z?(i#Bt&3*KVcN;;$Bt}$ zxn6i*^=#fE@7F6P`BuAG^{lU-^W>AK$!7DbX99XA<a}9P%Da6PvqNdeg5}n;*{yF* z(4Mz{>73A4S>F8pH)hT9Tyy7n`!2pIZVomFm#-`05}obmv1q62zHD!YYR{;wE317= z3^pxcf1-8h+S$Yu`}I4x=WPAnHgC>CtE49_%4@4H*@aX;DN>o{leRVJNjvw&+|@C= zLuz+rY+|juFWP<k?gwRQJx{$&f47Jxy)ke(U(qr*Y+iwGB?o6-r1Ue{XD(CzO^Wk% zUy`}%>T=md#=5JvnSI%@O^n|yer?gge(QvDd<Pbr#b$}#NP4jO)%mE6j_)hgCttEz zX`s3`<>2Pfi?>t1tgdpqzHw$EL(;EG8%OC{4ZU_rzqQ={yR#0@SDD%I-Tj6?myJ~O za;B}?K5Dj}M$NpR->Pm9mQCLCv(0^@;t9i#rqjP|-?>Ie(t6q!k)yY*_U_k8jhR$s zcD`Wk?lxmnt%JfUmjutgSbBoBtbK9g_VTlnsxDuCu31xdX7=YQA=b=yMN<#R^GCU# zd?}ZfWRh?+oA-0g%%a6Bw`qKK>HNa8Fp8x{+qIl4d2uq+l>I3RlZ3jDi+`&M3JF@% zT@*C&s7#t^&F@=1JyPM@HY==+-oSfs(zcBuEq%qV$=U*Q*}g4VviYOlY}KqBk8JLp zm&4Ay(tU2aOh3K2%I4FV=len~%v;W@r+?#B@q}$pH7yoKC*5~_nfWKC%HrU;$e)il zAJLNatvPi{DxkHbQp+v#QtG3Ro>IN_onOv5%??k_sXX=lq|V-O>0bHB?XQIwrClpJ z5X(1hYkQPLH_!H##HamERf4x>M_e|`Q?TuLnX=L5^I7A!pL-&$8(lLxjxuC)eo@}< zG+p|`L+Juvm2aO_RVKLl$~YZ!_n2|nI_H|^nyw=TR?(CDOD1O?Zo4x7$i<RX{~0Q0 z7j2(;PS)Rf^)u6?Jz@)kzrArxvg)r9^WZsTS`sDoxMzZNo%w}jp>KAlRW6@&Z0pt! zzql<Oc3%&ao+GGuC`xwT{HIMXebwf<Z#`GF{d`BlF2lQ*s}?X`*ry?@dr9HqyYCC^ zH=hj5PR!1ccx$%N(QM8(rMcV_dX{Ic6;|D=vuRDv?%0->+-IykO$sD;*Bz^KxXQEj zUP*t|{$1%R5|huKmCM@bQ`mOQ?}K9LEVo(Ssjr@XzNF$F$YQ4~<r2@%>D%jBm7aVk z%{bw~w2isPs<lo&nbW%4cDJv*{z+d~liU3BGs2_3+k|DN%u`!f-C7*JLBzB$Y)Qe| zy?Fr=9Xy9$=tNBXCi~^Mfz$b~RhB$%=S4)GZJApoys0qwuv>Oqq|Lf7zQtP1@{*HZ zZT?Xv_ovKMx~}hh)EZ^$Ge%Y1OiMyK_uZQOTCn?U#HnS+cYcnaZ`3Iis+Hy)^m8?5 z#8J6}?5ay!>{?cAnrbXEyYNj`#H72&Yo%w%G5ao9sv5K3mf_^tnc7JQxJ1t!tg?8d z8dP<vr!V4llf)sZe>+di3YzDp<hIWI#ojN5U2?{)54Ws;{d0{*z_FtD<yDp~JCl{( zTrZ!^A1?6cTFKJ=QPa*8+hrO|=38%f|K?n`$#P{n(rd3>h+gft$K&Phhg=nlF5J6# zZ-4L6XGhGWTVD5E=)N4Xp(2?>^^}ic*1=zQUaNZ@xyv2hnaOicZ)w-=(qHAZ{xh~` zMt2wM`oss!Jn*t|Im_nhx|fuNH>{s78}aUlyv6xfy8>p*ELvL~e7&XlIh*0y`Efhn z@~+LOu4FV({x;=eWKhPGDOEL<JZ}%zDq9(_MK~*TSZ3|YifX*4sAc7G)oZ4ZMk<SB zT5jKFhChD`gPmHRz85PDyg&W)gMz=}DG`6ut&ScI(skI_`oUR5?fAk1t7+!e`?h{M zmSFOH<s@N|&yBrdMTRZ`hvekXJ<OE8Y<bD!>a}OAFT9)fIs4YFtDbwkbRyHW+L&LA z>s6!DH;Uey<NZk3%Pjsvsa`%`=+)Gfc5^=33vD|2JbQiMFU9rY+Oto6yn9&sBv0`p zTmFXi@q)*my@=g%{=^ohU+3Bvi|{h^9IJY~QuuP}{e;42eoVbf!&T-*n(fFib^Xke zFR{l)-o9iLSKqNFZ&#Z~rSqSLEeWpN>dKYhk@fW_*Unc(lKU5H7e%B^)Si8A4xjvb zDXpkCC+6&*S!+Mzk*v7*y!ZQ+(yPS19ysr+zi`KUYP-bM>F4HbJS_2M%}KH8#j}ib zjgPsA@;=GQO{%VMs@xlHp4W9`LW?l}vNoYx4lJUFN`y|T{<zZ-H@E7Mi@V)~d-o?_ z;)t%~{cQFqI!sokDNR>T<0SjU9RV}vRLC8=$7&Y6&-pW-yYoe_!u!iD-TWpPM>8`R zC$u^IyrUWWe9g&%mcX{|^OM}qtoqNe+;Gpc85b|iepQgL@n7$y69y*(UD{&#H>{oC zU8KO2Y4X$I&33QJCD8^J#lPaFMJvv@Ja@O`n%h}bXRLI3(zJZb?wp-x@TNg*w&vnf zc^?@$%XO#3+eW|mBmGjh;+IG!)A`imoeTV`R;$c?lV#d*#O?Q~_m^7E)+CuuUHP)= zz2NCpzCsm0-aGrWSk3<Vy4`k8yYqs2i<S!y`Y%Sv&fT9}zL7oa-4)iVGoNF1t2Q29 zW_9!0TG92BcB@U3xI0Vn=D&oOfA`OOQI<CIWB#SRj7r&&J{I$2XI{H?E}gNr?aaC2 zt80>#`b7LMW$avjW*W1Hec(mQGFDsDh<8&LxXrEllwm6J!da-w;?_5_UX_ybtKQ1( za*lSK(B(QSV>Ykn>wB+f)^rr@;??wdZ+21kmb?G_^lpK-GVkY<#LedYJzuWY^n%3I zEd7c58Vn9D+WgRX=AOS6Q&&GpR`Rd?-1_wAO?S^Vy2~H!xhwef(#4X3ddHl5>z1-~ zt~ipdu)kPQ%D-x1tXo^I=bHL8;R~bomc@IUc9rc7%&L4-=HdMF+p+b<vzBR3nXr47 z;j~w=yXUIJgztH|PE65cef1=bc%eg6Uve(sVPJ4*@02@MeQQy=tAMI`)C-yGt;H^V z>D!M6ol8vJ6dW7ZocuXImOD;!LX2^|y6W1t$DZfQY?f(6MsXyRbs4&Dbnq*k_iU$? zthK>^hH0Bvb&iYnZjbtT@3`aPTH9%y;Zwh!^4n?p=;)exdyS(-EM(fVHk?<<eY$6M z{Mx6w%Y8VD1Wv_Wool;Jc=6MY?crCw4yI(U@ClC;(dqsEcI#rd<I*Q?o5+5eZdKp+ z%J|5lg)AY9${Mz^J<Jxn^=gTcO5W*}HUAk-c4)g!xb@fj<F)IHKj}S-W)YrM>L`4k zXZo5d<?FcuyY){Ut+w~&7r9t$vw4@iy!66XDXahdXNZi?zFw5{>V&9Rn7gFMnoAWw zy|eemX|A)ZmFV(LS^d6?eepJ_6RT5K9xb`k$Da|`J%56v*UfM2S6&%D<onCOKdt*% zRgm=OIrm>#303n&<#FF;3w8@@{d6GdZ^^=Whu<%GwWK5N?5B_$cTcAOKDO`3e+Gdo zlOng=kXo7>b-XociS9;~t&cx*Wi9)>Y-&WWB<t^cT}y?{4@vLuKQFnVdg*i5OS6m) zAAY??`cRV7i&T#0cja@#ra!mwb-r!)aOLB>Ne4dJYv*)7u<O0v-EZvIF)QTN&kyG( z2<~8x_^mdHTUz#9aZ>08_Mf&Ny_K$ZP7})d*ty)xnxk)0;*&Em6F=P!^OUyLUfdwP zZR6!#YF6PUMj0!4rPJ1a3Mx82edX%oeR7|a7VSCvAaRP_`rAyKEp<(!e*R~e^nEv9 z_x9Dg)|=CcMLy44z<DEETIS8eZ@Qk}qUKD?xu|_9)BgVv1}R1cW|S2!3=E7+%q*;I z;Pov`0t^fc2hM0aL~dBoIZebjN`CRR-8+l}&BH6>jHk<+hnMTQH88ZkkdX*?k2~V^ z{Be1T_F2KI%&85+MqAb#x^ZW@QK+WKzNWwsek~<;?SSW{9_s5?$K6wDWzPJRzO^W? zC~Um}<Kq2(GT*<NJa>#NO5}SO!@R2I+5xrVs0b}KO|`rg6V)#<99yoQ<LM!(cq43Y z?OnU9s<_B=)8pzjuU`7|uJ(=sgLu8a$oHqmdn0~j&z}04>xqWASznV{aj(f073tO` zr?)K;Eu9o7a55^|PbJ9trDJt`e7N*drAgQI^+NC4WOb_g22H<sefEpbhQ8K&7th+< zwLvQ+>D#h}634Dx-7-1%NOS_@6?JdTl~eaVot&%5*B{ot=$NVWl*X83ecxoc9Ji(3 zrK0<jcYaQ^oK<U8=$1EwXU@|XHyZRdN1ZvPQM9tRNyo1v+Go+`vzLYB<5#e1pO=kT z+O*?jexUaJ$+n!n-u`vBZ_hp-v@G+>mx8CFs;rt_TOEBErmpen@|AXY6QsV?F!b4^ zP3jgGeb2kEbQYW1q;u+ErlGHD%pT#SP@|=<@9uv7$e<<m%lo5}E45ZFQ}>$1&6U*j zELG>;x=YeRR@^Kt47`a_%=6|uteUml^5{zgwk19pho_%SX4hc9e!bl+swgF6`~CIj zdX{jl<t$M#(0k##=JU+CBAE_~n>R9OcI;vZ6cOH@_cU5y(v0e^^>#JiHdxvmdm%LK z@bcAi=G!cMrQctE?!ss&YjRsGq48>1@4X0>uczmkFWk6!=|+w7rt2D7RQNYvI%!ob zWNdl0&u8)SOvmHTM3bhPI$pimE^#l?>iXh(D^YHhT|Re(nFLFHR&6yF-4`>XG=eAH zRdYs&c*q16rdMAAID{G*w>(yx)gV)soD;D0W$ESXXHU<}RoZ3x`SPlmhZi=ps+^j; zMN->0b;rz(UejRTrK<%)xg8e;b8uY0w3~}FU_#8X&~;N73V-%)Oj-JJ>HDiPKYW?; zm*-h_ZS8oMplUfW+im-KtCxIN&K%JdTxwJJZhFYE5Y3qmv()z5-cVR1(&>HaE(5## zj8kGpb6-|}%{+U4g6OT1>vlDfSIsofsK%U*dKK&)aq`u(5SJHAmfd@iGwEcfR|3nr zy>d$|xrBT~GZ+|t{JHLOjzc@_x7CJcCl*#&XDqfiH}^U2Y@yl2wW!^C&8r1L6BnH| zPkSZcwQ_k+U)xRY?dxVY2m~htGcY{++-`Y9?OyNK(&9%Ve!DLB{7AZDdF@eF2LrpC z*SFb43}Ope&t24TZnIgkm+9SO+g)Gs7#V#x<S;PLKUX}hs5wg8ulM88$<<j~cAP(R z=*-gBn>Za9tP;8M12kkOH2N;=+_`e*%#v%fuBI*z-OilEcEe18@$-j?ZJBM`=6%1k z<Dsru;MVl{QroAw-L~wx*U%;sbX4nV=)&xU9Koilp#iE|#-V}hRvx<>#d+p7)5@09 zISfx97D{dtIlkxH97*+MQ>$OjixGBnTp=jFWZ?zA#Y)oMH(NJ28eMqxB4y>2)~R`4 zLNBiPGLxY+M4)jQn~YwP#KFGj+jdq?cpcX}E#k9P0l(;?Ft5B>jLMp9S+Ctx1UhAd zGo~_^$~^ad9mMeEQiE)ehOz)-QRj092Gg4rpAO8A&zq4tT``3D$-Jg5r$TmRt~tKW z;A_QR(*#4WHS?Z`yfSv)ZtyOebB}M?1qoi}IXgDK*md!#sb){p9ryIWljjcm&I>-P zn(^h*&P|uXW+rXFG9lvGucB%19ySXxTngUVox7!F(&{NEdq2k7hBPweh9p0C+q!hm zvdI#POJ(OyJ$a6Aex6+w`{M1D&owQM=I_-wZ*#Wn6nnYDBnei_*~Pv~8b$6N5S}06 z_E&_<Y0E{+=MUYgVjitK*t)~Z>bJZcQ-0i=KetZWN{CwCK0R5uZf%lEVXUQ-$tvzS zPaCqOTxZ_9+Giawx$F*adP>}Pm%c5lI1W$r*(J1uxkPj7a=$r$UaekTyL{%Sq^^<` z6Z&$J*XK@IYP5Z(+qOxIEoGk9T56Q7&YE(A$wB18=IXb_vrCR>p68s)xG6>R0w>$; zRK0j#sV7CxCYLHSrdqyU)|JS(Q0U8=*qBqx1!F5EcQv~OF$i^RFJ^ik_44A1l?ODY zEY0ANWy{^*5bpBS=$CGo8`qqr!F>QztD6TNZ4*e4*BAlV8Q>%`<~NU!<FzSsb;< z%{OkVUT2<>SCh1lgvW~v!Ar$j`q68AHis=%^P9$;tER%LGD%aL(}jC;#7stq{L2f9 zkEV0TUQqhtovW^E67!71C@PJWr8&o8>-D*Oi@k0yt|`2DPDW^DZ&Q*3D+7Z-a8UEQ zE2kLPxBI83v#a=<u$E?JE^+J9_i#>q7-;ino#O_EfDGZ-$aG_iFW<ghvphF<x}CXF zMh?SF2Gay)&Jv%s+_PpndstPyv)*Z0e0{#*x_K++e(DXY%G5mbdb!%!<8vlxaB)Za z_M6|8c#>^5eL->Yl+}xV+Po2APT*iL;oh)dQmfYNAciB-uU|brefa#cPo4X=FZ5w- zxvIwdv|sOb{>f*F<?Uhbek!ar>iaycYIokQaI@&^wy_zNbt$YZ4GbdU4u@_#F(qzP zSn}=i?)lC0b0sv_Ee?6@kfVA-NU~_%sV}cje6rkndG*5GZ(e@fxnB2L^_Qojm$&RS zetPh3$<KcU4Gc~U35*LEUNEaC9Gj3^KHnzmlgz5urXgS04rR4@8y)xS`F`6@PR4It ztL@yl?egbdTJ1is<G1&f>Y3CKJG(Lg9%%*vh5!ZzcDGEH)z^Ke%KR~3!k4uB)nv_O ztSYy(KF5k5jV)bnKK<;?E$=TLfA_6s9lvkkd7aN|%T~(9o_W}^CCEp}uYrY`jfu_O zsbkr6|LEYT^OMhCFJpQ2u4xuq%reeB*If(z1NZ&-IrGc&n=g;&*_)nuzgqqL4CC0m z&dB^}3L3eJTMjUCIQlT8S#1cp?{+iUbia%L!lf@ZKYDyV)^P*VQ!`PEr^{v@`y9S5 zMqKLK<LUYuuh*FzHxZ1^^tV~Q-ln~Drjgo_2F7l)wGBM)_HNy)xAx~9iL<XSU)=WM zT>AWe*)=9ChvxLInp04%xy9e@PlVGYWp!`g&zFp*nTp)%wOTxH%cb`+3ZBdi5*!SS zn{VH)RSP*+6XA39-m%51spscz*c8^sJ>#Oo66pogSNANo+}R#klGUv9vSs0glKWDL zd(R1LFi0>kC?s4@+bg|OHNEA?wdut!&rExQxK%SAToP+pao)CciC*5kzQjGnrE}S~ z%{pzBs8J&Q`m6x=;^p&MJs1QSnAlk6O*7rsm8!9`JJWI9k#q^yS0YPxH9abEP41RX zI(*^vW9KQK&#u*70M^SN;~?~+X1ynaDgy&YLg1@&dI~}&7d3h|+`sz8{PDw{#Y-Qw zh%TO06nuU9qzKm3^-HJQwC?#dy*kxauqT*-!6b5RmFe@tbu0E7o}UC-;mlE1EnB<X zOi*}RySQ!n*XQTOZRWgOTlKY*U9)R;!20&SgN%K5Zywop=5w#y&(sT_kDf4N$hTa5 zKiHOYEw9Co0}Kod0)by@+1AY~Tw7duGxO@@$TdHH8Zp=Pu1#t5S?=Wb=O0%I<8=SH zDz9Ke$=A`(&+fZ;UcrFj#SDM%C9g_W-EN-3z`(%BP#a{rqiNd2Dd}CWF75nLbYj=F zU8Zv`+&PpNy7STF`}>!swrSnkarQ~t#EZ*fewQYn)sc3%?^Y09c6x5veLp+X^9%<V zk{Rr#&z8D$>VDWmPgB98$9jLsxra^eU|GWNJ5T2H!o5b%&M&#-Zx^oCqr7S3p<j<@ zn=!M8UR_qx8SgOX+Fo0)O`j_T7+4z`tj-+hesMW=Ye~k&xH948`DrogVUs(!Qk!1h zDn1=E=joKgwY$~{)jUnut<6`wJg!EAL2LE;(vw~HGbSs3`EGUm%!woh6<LPZs9@a} zQ{%dqN1Z;`e)UCZVd1{rb0#bcHJ946b=%H)kqg}et+qce7MA*MQ!(8=%x25gfXTI4 z(**bXRqlCmd+m#YqD29WB@L3LwZiA6lNWg9t@}7L*7jC$+HY+QCe^szsY1WD&UkY6 zNw&pa*O<R^BR_x4zA0H*5nnc^NGmhm_3P)Sd9hFKoLuhL@$k{K2Brh-Zd)(Eyf3eP znqkY&ua^=xZCO$MHu8k2cCMMo-oWW<=1YaQ$HlnKt6zL|ultOhC70`B#6sseum19T zo|dJjNL;bLZ^`NT9JvaN4Sc=#-NR;l^m!)zJ^OR}(n3RhFWz0*CM;fiOD}3))_QvK zTDMBh#@**0ez6mk{!;$wXT-N0Pf5M4QZmPO#e7P+(zmYjyiG9!14BuPZN9Ej@%iXi zuWk07`E2<))IWB0`V19L%~e%7_vc3CM!a3pFIrht{Q6e%vZXmisU}<A+}F!Xmrg!^ zx$Iix)ngy6GCub0e0tpS&?Bi;EWh9T{M@=#?Qiw9xRRHBhAF3B+<ozRx#qG@=Z#jq zd}Mv8>Kj+nheKtTEmnEGn4z>~#i6p!XNR}Dz2?bJ&iODm#@>Co<jTW(aWW6sUSGJL zQ*eKGy*=047c(C|yKa|xQSr;$&`7ReUds=mURtYCD&JSVUh^`-?VE~FlT+B0#k?ku z0?H<JPOo_J`DoUzU7UA6Kl^xme!n);?kz%Z?yo-oc;37%9}iVo8n(QsekXak<@UOo zfLm$b&(2Nv-4$Lrch}2hrM@0ZHRWa|UYtK)e1G;#SC^!Bme+olF1Riyxn|vm$89gZ zyi=?7@wc9~SMJI3*>Y2-q;S5y$mObPWx2qCZLh`W2DQ{|ovN+7F1`1@xZF?O_UGf} z)4R65x|XmZ*wC_gU*GJ*DW4DCNh$f_XIcFG>Yg>$)6E(0Ue8QDDV6DO5Lhd+NMu#X z&Zi6q-~GIx5P4NER&U15s?hAETvj{HUwr;4w)fU^ez%}Gn<G*$UzYfyDShL~lb7!= zN6(Cn`B%U6@_PH3$IXNdW?%Nptj_r=^4wT3<)Mb`$-NSXB$jE^ynVl90pr#5s+U(! z-mc3x&3}<SD~fAMB3s3mlBc$Y$LHORp1E3>>wD2Bi)!yLTh|*OUNEEc^5VtQyBA-0 z%k$J!kmd9931_W-7L{B%@nw(YuP=vLzD*NhwYs!2)hgcHZf@)@^{6xEXODBNTf1|Y z>G6KOcg?(}m)aK99zT8h?D?0!_-CK^^h9b(?!|SH*HhMpWI8n_o^MLq*C%82LXG$9 z^M_xxd2U83GJGlJeL1hR^6>4l>}3tx9)G^@``2~;yg47E&!m?+`Fs4z*IRyS)#snL zA{QvyJ<Qqs;=J9=(2`9Y=M}qSo@w4RG>y6OYvY`k>sAY@Xe<l9Y**}dd5OX5s`T@k z-^&uu-j}idV%~If*|EhhEPon4+-FyEZ=#@4^VL^RJeJS3YP~4wveD|ab!ux&61$zP zRc>UkY^eIO$a5KM=P@g8<8r#XXKC(5?bI{hFFw7v(t)#<&BijWF8KH)-p&rzSEWfp zVI{AWmlb#9#`-BqsBLCU$iEtqHg`LB?ABt7#8}bUr!>^un9M3W7QXaad93Pf$&Dqy zq|d%Q|FEn|Uh(|Atyv6Twm+P3@$f431(nYy#I^Vp@msGr!IFJ7=11RC+pO$mmCs~Z zU0zx)5a@b&&1kN1(e^v1(gI$+(fB2I%J}fXSHJWpK6zqt@ud3F_4757mK|TEZZqq0 zxSrvHuFHI>#Z_@%=NU(q{F0q|@@VO#70*wtyR~NFhBn(OtMtk9eQuPLNIX($yj1r0 zKZEn)^Uq&LCO`jFId|^eTg6XL&pXXIv9)>Go8y9+n@r~j1l7b8m*qz1?fkU(^7XuP z@rIYr9;=XAxqQ}wAb#JiH9tL+YdelMGsw=5tPMTc9`fPGox=6*3$I6guDrRfa$+;% z<;^mOzA8PJ;uhD7<jRlhoB8Bm=BpiF3O-GD`}ugvlgf)PUqm!a@H;rOVavrm7gAys zFaP%0ay{nj^9QFlpL=xl<@zwWy7O~A4zRrJHscS>ws}<adY0AhjpvShesm~*`K?Pe z_f1Q``J4Ic{+u3synKeO&>883qo(V&PdDhky3Ff$?S|WHza&0z53BR>dERMjS<Iu^ zSnA^Ckacb18FiE0d+U=IN`3knS3mRV6Y-ntY<{}?ubfucb?H>r`^gS#HZSSEv>?Oe z#z~*6ul-i}Z~6GMR^NH{_L?2W4?aDaV<>k_IctW<i_QshTY8k%+TC}*_5Pyp>3I=9 z;?%Odis#(@KJ%FIQc>411*eJLdox)U-kYFV>a^Vbdc_^P^Ys&J>z>8@XRv)NlJfPs zMcb`qjJ``Yv+owSynO%lxAIdfIS=RA+W5~ptE(oK@4QOc!er69cB7Lihy1;T&k9Ft zPvOwq{Hm_VR`0zz?_PcP$;UolUSYNEu*|{T3q9BN8PBMCu}tlE?fm?pY|H6wyMKN> z`sovs`h2_AD2+_RFL6JgOMHqro|tziP_0Rn!N69Y^;fLTsmh<<UgW6U5i?TUHPh^p zTBdKPU+~3#_U&J5?^?Rshwb)xe)Pppd-=Yy#^iqA7d~fJ-uw9Ca-VK-8t?XH*A<u* zgESj>o}TwlUh(+(ek<!}$B^0Q+&q^o-8S>{+GqOSJ=6Bo?DzdD8#8Zi*mQ$f|Hh9$ zy`2lET`e@)8uPX0xSQza=ZOLfvn$))EL7v|kln}g?U(H5ho|=3*~`MUc8imUXHwXm zb1N-3+gA0wk6-?+Do;shZ_)fIKYi{^`!sdg2dD5`e}1g7vf6ofUs$82qmt0-(tvj@ ztowp@Z?Z0U7FTZ{w!rM5qQ+bX2eTV)Q>DJXUaltZ`ekxe=+3UzPj+IKpJz`hiOUnL z<(?HMD_e2+#j{`|o~cC*LN1|NtCQAjfAgj0-ddY|F&o}q&=Bd#I9I|nW4T-7%i!vq zFOPrOFTAx{=jZd{X?D@)jURums{TCJB#Cv-9_QQ@RYk%IK3-X|F{ysj_DZH_sm;Eg zzu>kWPxATWE4Z>WSR~JGxYX$Bvp2$S#;Z54zI^R?^z`}d>+{)XpF5nlr?P10nd^~_ z0`rY7ti76hT4?PyFSVpEmOnpVc(G^8+nS2ySEGN~T7EiiZt${q10!43spTP?XRq4! zZn@natJ>J#;c5F#pFUrcc)8u|?ysVEKQ^77Cz+^FlszYN)y`)Lcdv$O%nH4D^z5SJ z3*GKY6n|xn{gON1u$QxWfv~T|T&|KAotGU<UR<|4J$vz$H(&bRt)Kqsn#|vS@Al*$ ze(>`C<hiCyfg+zx&i9qS*gD^)b$iHaho!MQisNlwS;frE=HEA|T*{f#ImhAPkylow ze(6q$`M0m$C|tMi-nw^nbL;X?pQ@^TFMsC67pr~6ZKZR<)~L(XOpQCuxp&24g{8tm z+e>$?yJNZDYQ@g;HZN2EA7PMYWMBe~tb%q3LNOB~Xke8cJhI9R8d<%V(jqAIqESJ0 z>zduM(Mg~6({)Yl=8ArN5xDEu)>5@~b+=DWh)nPLd2xMA@{<d1)8@@vD0-vonG)xO z07j)W&VXrYYDpqVBH=UDv^_U+swn2TPS4)F>XT8<qs)8Fk*Nj~uk4>2?wRzRjdj|L zzS`<_Pk#Kl8=WTXU%oWyfDkvcr+}l<kyFhlyuG%pTC+i8aSON5E0%_7N~aHB(X&&P zd0Vt<<^FJE-Ff|+)2%12UzyF!blSyCs`T;+zk46WEGu?L9Zg_#O6g!wn3j;hIVIE8 zZ9}VolIk*rpr{m~#EHc&n;suMcl2`C=Bw&1&(~M)I(uaMrs)TT90UT}<MpS%+<JrK z%Ezx?C+5t0peC!Ll)~CM+lf=5Eq#>&qpLz>LPum~rlR9?exaS2Yy12omfKaVUF-SU z&vwu8t2bXYGI$Ecc|KBKws(zo)sC;<*F=gj?bxZJ6y>C#!j>qQH?4z%L!_h0DKT|f z0>j!3A6`#utv(}eD$(S*KHPiyJSki8(yL9|D<gbvR?ONf@m@REW{zBQh>8hY<%I=4 zTUZ<zHmevW9S~$VG(pGb%o>+7Cs-Vt`zDJXJ~s7u(t}RXg<FEI2;cw0&%<$EMa^c; z*}Y3Pc5K^cZ+<E6#Cpcycm|Vh78hadm@{YBb8T>BImu+2_36?^7Gst*x_i!rh<0tg zTby=CMZhKZ>RFF@{}~o1u(C}o3Y2<(blHjM;O<jjr<*7o<T=2=a;@QVXxVfJ104p2 zCL`x9rw%GAYIEI*2?`h16f?O#*~&$C_O6&U#lkQ4N_R2n2u_;2UUFTjo}a$)wHPNJ zflCesi~`)I;h7~W5dsX15tBA1`y3G#ayfNya?8OO<5Rvbn{_9hj63`1kBZALeveDc ztlq-&b$79OY+Yti^PeHSM(Z%E^O@$B7EM9Z@Ql|+EDa1{Jk5=&$wFLW$q&7>7wS1n zY%p=%%UkotTUhvot+WqwlZvaQ$&Is|HQFCOR#i`6Ft$A><fzEabv7(Jj#EN}afZM& z*MfkwBqydbcf2&(8`NS8Ql!IvTULq$*s?E5>l6{GT&z0X+qJ4|e(U+K!3hjO*DQot zTuwVVht9j+q1u?BI`h=Y6gLLlv<WIacX~t)H}obi)%&*2uhxZ|<@;Xl(=03#4X5oj zIv+dbQ@WhrS=rMKtTQtiW=v8Ni&~|Zs!$NYnVG~fwOgg3a#952rcaiuyjh($yM)eG zbveSY_U4x|J`<ml0$akfrv;fyi{(ta`D*K?(?&ig7!?GWeM?MEEOr#|+3X;2(%fW$ zfzw3A+?si@i7DJhr@L8P1Q@)`y)S1ZMW)VkEKc8fS}Qu^?3A5V;a0t-n>`p9gnX`t zY+0h?!R+nBU?sNYfQ!J?)y+50JqZ$X6grfAV6j#MZ*-}x?L*yY-?gljn_m<iU0axR ze3ssq-#M-ws>@Uw)TGil*Q&O51Wd@xY;s&ZGl7LsGg@-d8=0=O$f;_ng^5aP42;p+ zU&eaQnmM=YWmN8#ZCb06ncntZ+q7z>4g=Gqa}MFr-U1GeLYEaYTE#qce4M(Y?tSAu z`}CS%A(LyRp#!6UfPMa@T|%dLUVGh~o1dMwYi*3_+PP({5ls;c+Nw*`#BH~oU=Ucq zSmX6{;|YhUD^m4mHj7DxCdIUdo^0W0N@+=Z`^(L9W@+HHm77h=P0y^1i|USF#ITXs zgF)dE%b~}+el{twi6k^0Tv^G%%AmTyGiuUOjV8r#J*m!_atAJ)z4kKfw6W1i!RUQ8 z-?yIEZ111#@AvkS(1y)A4BR>nUdN*4BE%Apwy~;&IUPs{2%Y5kge%8OjEzZ1CqwR= zd&Eoz3AI_XF0Inr`lRQW#?`fl6ogV#+h#N=s3u!Sh}j%!I>6<zX>x{vh696zqwBJ$ zM^Py=s;;TWwwCFbOkidS>CX&{-1k#$$>Zl={EfIow@f;4SwQQ=g`KC>aw=Qbi6jZm z@O0ZDA)=%dqoSCx^<%KmWtOYWd}-VFU)mAco+Kh6HgnUVH7}R_;L7}b`jvPHQ<KkW zgPw~_3$<2<+&G(jMoViAlQp+i)TJXDjzR~Glom(NmNGegxq0?nmHm5f?mP3uW<tYT zPG*lSR~J3ZdUo}sUt7KJf(D_~P9_h9s0Utgw<T|J2njl+c1($uO6h3eoS@Rdwpz#G z;+byEv-@rT`o1@1WZ5ZtW0i1@pH=R*RLjVpUv2j-Jw7EUf`LJ?>sI#Cw~5ObS{c-4 zt4@?lQBq)vU{IK?Hs##3@H4v?PM?2$?bo|1OpT0US`AET)w7aCE8fem>rOe~t;4{e zZFS}<&v`)}K_f;r@3b(fRL7*0rUL;Aimj(ZCx({0TAS=xV#pxGb&*9#aK=@G8J~(? zUR=HBg6VXvO)DH2g+4O*^ql4s)Y;%Y^UXR22CWFS$e9gB*B524+H>=2f!dy%Tfe=# zs&emxr+|RV1P@o!mkA+H`OmEUa^3k$wV2OAK?P@qO$;uFnYkAGh#p~JV6A-F{Vsh= z!=qxoITy>Sluik~nsnE2uXf&j*K1A;98w{o##tNWD(?I%`@M6wQChccxNnLQ16x7> zlZXOG;H`i)1rs=gb_K58b|@)npP82V$G3Oe$^x6+{*}tE*|FQ^&9?8>*Op9Hm}q)- zJ;TO!zlNB5@v47)Ew-ff)x7_*ErO|m(NLH{s|Dm7ZUJ5emf)VNi+-*YeQa*k^Lk=V z#HKy|`?^Y!SG!zIUvM)ls%q}Cf_1CnT_=hdr<z1go;-WfF7xO~yK*%uzs#Mk$mGPp z!0Ip|Ld`)SA(ORp-O_#EW?fY}Y{yj`I#=6CQEI1>Xj*Am)RZUw)t54(vX&`o9KLXq z)o?YN_vcSWxASar@7<j|J>U3ZHJhRbQwjq^LqNa;CM5?Z#*FG^sh&Dr27&W>PDknJ zXtA&euihMIYgrtB>uscI$i!F~-`X#&K55t1x1aI8w|V()b<4N!zb2?KC@?TEF)%T( zFfe7UofLI_*CKY!=a;sIOkK6KU^650)+p0Le)n+O;xg;oS?k1A@6`P3d|0G<J8xUh z&YXR#K7C#pU2VHkDnLbogMovSL4lzvqRG+N*)_ASSMtQVtzDb1dWCJ6q+=o)vN(MG z!ZZ7K`irfS`p*!4`N-AcoTIkCPZi#_daEdC^lV35ZAoeMWMM5{6$X|D1{MZ}3zM}3 z=k=QDde2+)XI9oyomby<&Q27X8WP%|CdBpa>&`1BRT7`l)>_#u`|i_QoRNCE?Zxf@ zv1K`>X_u~5zMH;Cq?40_Ghsq2I}-!L<0s2@tzH+kHg;~xI=y;*DbuNUFTb_Z(q6UH zLo`4w(dFumNw+?_PA~ratybWgz$rZ|6Xn+lGqq>sPWkwk->>Ni-vyrrA%P_u92nTA z9X);OT6o&s=<P2$3_oh;By8S%A#>Jeo75f0#a2b;hQ2?!(DZedacb_gPnj3*Y&xB$ zlxWB^dD8&~g;{&*?)w;vEZuhPGRTVz4D3pK_SEE={x%c;VqE;G*z~T8&F!?a(?k7U zS=##A)Z9JxdA4;-&fTc8=-f;<@3NOM(m6BRGMVP&riAYToA>VBkzT{tuq_M>mp~29 zBG0FvR;SOKcE`L_>-m;=qb2uidqu*NmY$8x`zf6l^)+<UkA*o+*UnFN-6$-a;TN;M zBzPaloQ+xABA2OkY!h=}pTNMtz<fS3HS%=qmc5qiw`_Wy@$A9!wAXLfb(F_kTx@Q+ zYtFg2UpsG4zVu}lr-;#`tC^X?IZGZdj=h?Gb*Tu$Or_O2SueeBO+DSz@#2e#w*!L# z1H<yEOXF_q#{7Jdx9sb)Psyv7N#}mlpDmVfvQKZ>^le2v+ah277UJdPJ^L(oTgj#9 zyw26KQeVRR-3~CYvd-k1xKLf+UQYFk?a2%VHU<WfkImhtSE5U9uifxD*zMZ>#U)3Q z56)Y)a;n3W86AOt?W?Y~Nb!Z6Jvn!Iaok(uFe}qH>*v;eb6`-)Ojk_ON>=0P?!Qo$ zx&SmlAN>65{Y}zLSr>$Jr$^5=T)yDiDp$$k=PQFmlO$D>RR8LyPd|NnvA=iJ!=sxf zz20&^dFtcEepe2rJ6;fDJbE(s&Fa_?vE=88hyClfmu=@@a$;cQpA)}+*~GIZ9=wK0 zXJ>Dp=og}ScCKQ8Vv<7FtL>ZXwYJP__pgmKcrxF4;}`1*Gc+%6EmC)Vz|fTa<i+*e ziLoX9p_V`H+~r<=vE%>~Qwl@GXa4n0ZcM+HEDcl5o7ela;!|Wv%9&LgSu}+=v$<`L z5ev*Ok84@aFZ1?v**d0qvDMqnd}eQPU~swqY}*&LYhD+xuIVeEvclFsD`5i2xHH?X z22R@R<I$xSwz>MO%%5AiK9yHPLt44>&xXD=3%v5&e#xe=SH{l{xBIWXt!uGk;^h~6 zWzNoKh)`W<v)p~vbgPT}EXVAXUFI#`=W~K#0mD*LGb<~>u4mI!S4S=VVq5v?dd-v5 zb6g#mwrx6jwN+={qV;ZSd2!L{r#JgqZ^=1*eBSYNmrs0)A`QG%C2hV(Z+DK2vMa6j zE1$k#`{nOW5ey0)42$;M;j+5RrJlQzJ4r1%**k2i#+HP0PKO+vZarIVaA5bYKXZ0} zwT+CrbN<f5&xU9Jw(a_5`1W$V?~85UH6DJPaP!h#v$e(1ww>KwyUNQ<1r-<-1sMCy zbd2uC@|Mk7^*Hq9`iD9h)j?CdvW~jAXgTQIU1)O5bG>!U%<}xKqP;&?U7xM{>-nNf z#Xok{a@pzS&fc1F{>;T?bMBfyQOn*Q@$St|FYjMcTca3w1Q}#zUF#Jt$p|}p_UYXh zo5MHky7+q0oSC1mP2?8j7W=ZrCotsc^|_g`A6+wioRikC-5qnb^3yYuH!p&ZM}^1T zHGgtCzHFaqiNE7>7S-}+9<^IvzPa)3)w*Y49-KX;2bXFdEt_Yqu2%9zw#us5tmoup zxv1AsSChoJfBlxs?E3KLVyn)6QPCwW=VE20<+4xDS`_#twlC*)>GZ2%l3#xAxRSnq z_wxD2+hT+J?T$Ztc3Csq-g)Q6X-#5=DcxT$&$m0)Z+vLR+p@yUSJAOcw&m5?TwO9@ z!-mLvw_JU8Y>ZuY=+DQf^u`rOH+y@FrY+gDW!m(cRV7->Yb&i{?yQ>I*Jr0vlKJHJ z{TQ><r<+rJ%dao{&)|9~jIrR+zUSw|YQOsnpIh-aZohWCv-c9y2%}KZkd6&LZ{EFV zSsT?;^KR?Y3zyQF#qCp@xLq^W3K}l@8={^(=WllQ@xwFc&a%9c`6BH}=9jMzo(0D3 zDV;l4(#m4;@|&BKl6&W!?e~(EK5u@c!{p1ywNdLX*PN>nG0nI(^OgJCl65n@qGs)! zcxM+wlgG*CxJ66W&6=3tvhDS4*4;br>dmdW6M66Ed9LVXbE1BK`)sMXZO_K|bbsZb z%tPN_T`ZebseAFNtMA2p>m%#J?j6sbd;VnE-u2#B+ZILLUT&vzYxk|3%qY38${Tyd zop!cHax7-O9h(@M=(J>AltIpVe&-c8HiTW<S0&52Rz1Ib{>j}7PwsZh(mWquzW&HF z7uRW3GL^f+Li?=6Kkf8cl7D;R3g6n<8&a2brCkr%?Ps&w+Dc-RX4TIc@3Jb(h;-G& z!lT<(xO57tI9)#fqWII-s?Y6xJ{=Q<%~h?cYt}@kPtA`y$8T8ja#Qy-#;V>6FVc;} zXSJMHG5!1I%9EpZlirzmt*U-?Ug-AB^4FJ(B3=D+BQC95+gft;mUi^5)lmz>6eex; zbUC|Su5R0p!zUXPwI-%7HqG7NEz2YEeEIIiliOpp4TV*zEH~v`K7ZDztJ(B>=DaeW zZTA<g*(SMpiOZX7+upyhy6wxmpr>+|S)`v<?)6D;r>!#C(rwwnk+N!S$;H)KPoE#s zarN0^UiE6-^CIcBXAimlT($4kRFBYZt6E>lU4_2yr<)dhySr_#Xi?$5WVa}*(B#>h zpZ3;D?lQk<-SzC_i_@uLkv@0R+|pvM@SIPZv;D@_)2eKpOD?BMN-A;9%v`;3*Uo1} zYhD&@etR%l_ib#ci)#MjmFsh_8EuwawJGnyr_d9}u4LwUm1Z2aWqT5N`G$4u{OQ-O zYA3AZ?)z(~w_4<ArzponPToal#ipk3%TC)U<lx%U=hye(&!7D5Gu{39G`8niy<W!A zF>iC;?Vx)%tD?lMA{QN4KXuZbuj^cI&(_J?JnQz>7t!+O^Iw*hI(tpnxg~>f#?h%? zjSeUsdb~RL<%P6u+WYQ&iB4+PaVq#yKCAHBwZ~8I`m&wfd1+UWm}+U;)VkRp_nMxX zdUg%x+4D(Sp+R9Aqpn!zUtMzYc(&DT-N=ln(ijethez&mHz_7A+avmNckE2bu+y3= z=P@pltmwXY@5juw=Z_qjt$TN^*UMF_R*O3=y>|1;=EfTrw{E_6>BF8|Ca$GNLso2E z<QVsE+GKvkMSu5lN4BibTj3aL^ssN~f+-ixZVOBoyBV9!Y^-#^$Jt$<^>1zE(o>cZ zTGw~yehQBY_x0L#Sv==_aK^>esS+D?r^lv6Zq)L66%sndWy<Y~JC2`qT~{T0t<&?x z+tig|MxQ@@o4b0|ij`k=VikGkrN+(_U=Un+;`Wv+{i&A5X?@dXrgpS=T`X90ciAkV zcgwxHGEWAn?rPhby>8b<#URC){b{R<Kfhe(D?7b0x^$ZBMUl^zJ8eU!h0oft?C!;A zZHq5=z6ytCGcbEiPClv}?(|uFU(aQ30f9Z-%5Is<&Tb9aZDJS`pDS{2>za^`4IA}W zzS(rNXXi)VS-YmWcJ0oM(sA{&)P9wFF;wF7&CMlGmd?A9vUNqXYWPM0K0}_1UVENC z`@DSP#mXw<V53->4L#yl;{#W&duu)|qvLGsORu%2T5G~=Z{=qT89qN%vVFH$SjORI zo=ee7O{=QcXf9iAa-(zR(pgHXp_ZGkbVS`;(?08BipX--(8!y+)aSbvY-B3QIon;7 zaz1z4t6fQdg~PI*YDO$u(Yh{9*=_gSV74rs*V)r2>&pBqI$D-F_jCEuOeNJhp-bc9 z!dRm$e{Tspb5>`XugUccZB@_ny;5J)!aQ09%d<}R*IYe%wm!P#y7;CvZ<b}dUM&j~ zeYAA*!evL6PoJsxI%Cev%GDuGJ}++0U(oyV-3BqKlPgzCMJb7f+vR@o?H9VH+M2OR zFh|#B^`g5M=N)bB?D`fRmaDUK!@jq|Txa8=C*5p4wR+xGu9wqaX3hHaFuUa4&Gi!x zKAmXrW_tEwuZ%BNGZhNooY!Sk(YRrB?o9XU1q|KX0zL<psI;8%I>-{e>Q<)e&Fm>n zQkhGyeF`>Pz4Pby*z;$Xd#c^~@adPVm-?k&{`!x9T4c-)EWTOt!uQ@}2j&x3S1rDA zVd0GP*1`RDT@M<QRs}^a44uQ^p~UEWB)#j_ZQb=IESoNUc(=6D^ltb3OV^J-fAQuV z_qMf?<ykBLvakL4Po7mGyQ6bk)NQN3w<oYwtX-s?rWht27IABi*xM7<K1)55PdP1N zW^v>;WOvFsESNhvvxhTf;j8KsGcwj}x|R4wv)d(FvG{9MOpi^RTGI8Rn=7}J?Oq=v zY__aAXVycnwrxIz8y=i5Juq!XgJegm*d`CfB#(Q|u_wcOi#s?|mqhDKZSPt*cXe3C zV!Q3Lo^B}K6?Qk>{``Wzmjz4b&fB^sVrtaRTR$Tr&%B!!*;``Hx8F6xK!-utz{it$ z)gk9accbjXr%mUzXz0{R-MKKdD<$jm)zqV*85xVF9?g5L*K?;!^6uNsO0VM1KHXJz zdE!#zp3R0*n%;8LN*_P_a=k%_LEP!co@Z>W9obnCljm$MT{c<8N5|@R$d1*9Ay-2q zU(`mqtTtu+JagNtZM!yJO}?2r`P}NIveG-h-rhPXXVaXii*K7}oisD}9ImduVuKP> zLZ;fTXRl*9L!(|-&oVxA)iHIOZRvy!Z$p?PR_L<Td<l=-pBq_p)oNSutlw7VDeH}r zk5_Nj_bRy?Z}iq;dF<J(p8`y~;=A5@)~=TE_~PKm64G<#G-v8%o>Nn`cO6mcjE=aZ zHDRMsgZJ8kErFp1Q)kKBif+4Gsr4fH_{G<k!)z)h-JGqn-*VNyWpl3NR%>tlEN(p2 zP3`VQMU7`SuTO}a*&4zTx^|1{)$0PA7ha1N+Q@QH<<Ox?y(|%1wJy#TTCz4xE9~;c z8o^Doe6L=ewWs9uu9+F{%%r(ZGF-3oOQ^oPx^Br?E0d55Gu6GD&YpR4ZFP)N&n|7Z zNjV$C&i_BcU?jl6#KgqJ$im3X%nUjZ5WGg3L6B8Qm`y}c$xuL4ncc`yLB&{1)xgBb z)Y%0*#LvjU$jZ3VDW13Dktd76mO^KqP94@Fl}XI3MXA$vYaiyH`u1bpgTkviPFGjy zFn;eg(EFsbp;bk!OSG*-;cHF)q>r2TgwC_6(s(hU#eMCfuU{u#dpr5EhvK|lC#F^W z`!e}mhiRX2e@pu_lN(wKPih_S4@h)c#yQKZFW_PEpRZ@LE%w=3a&qiFaN|*>Mc$#+ zH&uQdpDVO0<ZY13N3~mOzb$<g!`>WIP5eA}pKfTE>)PY38$M2nnipI3)@Dw)#M{|- zYGQWzOP}l(nWs79z=hi#?$3Vqxn4fCZmrUkiuS&!y9<{ef3l(GWSod=Nz4yTo7<*Y zOD-8{iCt3Y*v56lyn(6W0O#W=r>_2I=!?2|nv0Fe>)^zSk4j%ZYH4q)a7dJr;ar@0 z!mug&h~b}vmK*U4Z}muZs7^VV%%|gXaYmlai`9yPPN`iS&n6~6NY4&`)%7W)<vhEh zui)cW#XgDKdpn)dueosqR=m4-ga5;a6QUJM=H=i1r5g22Axh`NCXNf!dp$goU(dhY zQkn89`KasV8P`=x6S*}`e>iI9%C%_5#L!jS9`>*L%2!awbGI<sEq=?@$%VdN#uKmf z3SYUJxUzb}y0iUJ=YCksGd%BVvhDBIJ>Rx{)Q&v9JZ0+RwY&Z^*yPw=lzqn&`SvNN zu77sh16Sv~En%xa)ws@6$`hXJt*Oj@Xwlu%u2HW9E-CcreVsdTb}fI}{h#ux4d+)) zpPalQ<*R7w?5;(3RlC!+i!C{|VxeW6YvysSZOfiGrEGsIX0DeMzhlX#vMa~Wo|SxT z>-cBtll3-1*Tc0#t4<!*&^@-X{`Q1DCVL_>Yg>KOJ4zEgx#!uhK4$je#Lc${4UcSm z;&t%gkJ#sK=@aV|r4KdeZey!De_O6pLsDL8ws+pc8(Xy{_D}gK<2P;J#73Lkh_-L8 z3;NdgtFKhqak5zF`kRVhkB??G-8gCSjP=Jg_K8guPn-5kbUy0-q;bJVp*KHe(hMfq z-Mnq8_x$lKPo@4JDzVn94g2hyuX-@AikxD|yJ>;A<K$c^j+;{>4>YltTZjG@(-TeS zS!i?M$7Qa!lQi};tT^;~Ipd?}-P~X0E0v5+x@4+P-m>7q`8oG=&aF<9osph#&$4<& zO=L&DZ~VrjkbET*ZJn6w%cOK3KCjgN_;gi@=zoS@?XS|Wo4Hz#PT1V!UFUP4hjrsp ziQ|t~8*Jsw^06s@X;}4d4&%CFURkYu^BQ%YgsMEv3wo>-7N5)Yd~5IRTSxo-*v>g$ zp7LhB;qe;}*A~=tx;NJK-!7c{JT{SQ$$OjK2aXr<uM)n!{;;yZgawS{GW{2?v>*Q1 zb9zVVB~Po)C9j&!pN_dw<Z)hegJ|IH?URhBwRCdpPYt|ec<hRkWuEF<b?GBpYrJ$> zzRrBIrOD!oSD)>f=#7!_qKn+386Kog6!U+&QA6U(;_0lpYi_UF=(}TaZ@Iv&6RTx1 z9NZ^5O<FDYXUVaH{h>)u5-v|Tke*On&Al`%^=8Cup3`!CYpm9ny}l%IGsMmC%47RW z-kMBxzrESbkH4)vWxKz20r#)23H>v!?(P-uR8+cj`j5!pT@xS0^ol$R)$flLX7Qe9 z%5>D|W)!EgEuWFhmpv1YW*AKtUhn%g`cvx@i%*-M?}${%H}=>+@AiRP>A8Bp6*>>v zPn*G`z;Jrw%})ujmQy|y%Ow7j(|L7&WxAQlw8Mr=g~C^FV9#y(E55_xjO5nOuet>9 zJ=T(!{Bn1Gp~u`AUkc`$Y<6oi3qQ0wfvsD+l{vL*Uw2B2n(2aNcMhC(i(m7J$>+?? zcPYJM=jZEsDT`G3PFwU+b^Rk<!?cxxf+s_MDz&K8^k({O44isaETg?P_4})uqsd}i z{Z)G}ERWPyo_XYuX1a^WsdFsdoI9VSiY=>L<Eivi^31}o7E`h{H*%G?8JybhIzc;K zS^amG&b^CK&Xa!JY$+02A*{3JK&RTNHaDFf#`ZHViiHc<rTEt*2r!=C%_duT`?ZjL zeq?#yrd2Js=3Ltx+tu>s)M9%cnQOBuZO_J<Y247htT^||#w16}JvR>(r(17ZTd6#0 z>1&>S-%fGp#Ba6j{3EdT=M~q}5&af&e$^ZQGnC0U6qIqTWBRF*lk>u1%865UJM7gr z=100-p7|&~oBd<N{^Zlem-km+GSfZ!Y0pc^X?_RU7IjXYvf;G;&Ag+Jp6u1M?%aMw zI%Dnosdrb+yr<D(snXjeE&j6CP%T<l&arUmN!b~m$!b&gOnqj}uxD!nry<X|gZCaO zv%Xn1&02M{$fTn#VxNv{lw{n~Hj<fS&2KHcT%=F^bLN|`7MrsoPYZ~8PF|HFTvpbx zXurHnZ`AAq+Z4;DCf;${w9GriW1b2}&xcO0^!Yzk=Pz3Ge9dLi)K}dF%iGq@+t8vn z>5|^nNip(a)vS>-XL-y}QfckDwPL~v*Ci_7UW@GQt`q%dy;@7)uxs(P{|u&A80Vij zGH(alhd&ABZ!YF@X&;X}99F6PS%G)ck|*v@>eq$5n<y-DQ9HuAuSdswPX603{ttvU zxt&$&_!sl_z>Raa-!J&YTN!)J;mpB(oyzH7+0=zT2G!2}wQ_R)OO>OyO$yoeKJ52m zIG%bewNs^5#ZT34L8zbiW&ZyR1v_&ULnkhqn3(lhwdur>$LA(4-^s9d$Cn&+@4TuI z^&_b{GiOM1?^(3wY{qf9%BrJrM~Y?}l^&ZaXKvss?X_;}lLm=1RvT7*Ix6_`!l|pX z4xLQ%4Dz$PGVg=`4X;a?s*y>JM|`ssK1nQ@aH+|oh&^GG&%{T!g`P}z;>hV-!e(|l z`-?~H(@^f|X|3~?<~@6N$<8eA#^JQfB7K+7Tnzs0sF>=ZmUd8)`-$7pMv;^JM+COy zZed`1cac}sfXAibE}O`!z{bN1s^-1Fx%t|X-v#qkzc&1Nlgl5Id_(EAs+7<oo6sCj zFV8@|C7mjj;)nY$*T1k|RQT3pU&IQxnBDa~_P1Y(Dd^1IurrZoo=tghhuagL!rRF! zdu~UnMk>!Z&Qt8BklX)?wO(ENsM##Xf49tHKUjM$uQOC=`#I5}jN!!LjT1dtBdr;1 z-PhmQYj*#;G$+q{k-!7<JWicV6tq2`%C~;fDvumj`8KU3>56}nn)~^ul&;q->ywwL ze0(L?uwLM*$3uSY;{vnNrk*LXxzx`cyI5vpc>i%`Ywe$^J`H~pmmTspotB||wc088 znP<25>s8az*G4Wo*17uDEMwz?;!)Qw<b*OVayYU|O(l8Ne}*i*&D%^f&KzvovSFdu z)Iga-rjp@xA*EgIXM(1()t$N69`QKHgC(VC-+kAlkkScXQneR7jEb1KNo!X~ug3*0 z@z;XC{-u1qI^_kM(B8!i4+D(XpLg<iaN8pPWZ!(dulJTKiad&n{W$gDjkEuD-&4_5 zQ%&j2`;;iAciE$k^I-eOm;4>y<;s5Cn$!P&7MD$H@valG5j%9E;#Df|xdkfDw)MK_ zr`>0NlJh+~@A2>rcau8<y|lePeHNYi)N{!N<LwzUj1DSXxu5n`tzY@&(ND1-4-5HT zKDy(Q<dfdTpBHtcMjD!JI(PJ{+J^p9ELn4^+`go)Q9kkN+?lCMC9c+_ZHTxPY9=4( zqR_j<;F9Y}r5254!TQxJiujG5eBAC4y`?rtX4;iq;<8FzCiC9Tdd=ptYr=vaUx{vu z->EZ1=BD%)UY}MoP2f~x)3G<k=O#Vz{n8$BGhseU5mWc3Pfn_*?h5Ql?QCr;n&-&Q zu3Vj#`ylP4x^$QOJ8P>o?kc^VtzMf~Z7aX{(PIAMQX#&M(`$3|4md51S;SYBZ2BSM z(Y&+Y0vInnNbdQi&>;P0{oln=6<0s4?H2uH7a3Ejak^;@|GZ;1-@aa#s+#yXu6Ww> zT(@PJN`BpI>zbu)CGHEk9E)e|*C{-HQB8|w>87B`Vx=*jY&Vl{yy2Pj&Xjw#spt!q zkMWDD55N5Uc+<rtOBnC3>dRW%xcdARck^OT|4ijr7KY-*>lI%veP7Y>C^MDu-MLFP zy(&rO#<Lb5mYMW|J9QeTwdYw;Qw?q1!aGmqwv_GmOXgYT+U6SE6`0bVDwVfzg4o-o z+nQWntK_d-8aXfOa`?t~5vv4^xA3xO>eio94cJilG_CD!SjbA|Bg+45j85KE&AaU7 z;jJpBtr2!UrRwr)wf(D|TrZzFdP|Kvc!S4j<J)Tvvro{G{XE4sVZrakf&nUTIv&5t z>A1D#?!@i0J|*!!R$lP(lU2`z2hKMYnOxW1aJ2Yno*#10bXt<1`9T+Hq0G7?`70*& zG4D~Bu>9C=b?!IyY2n9u{UqG}@Xk{^D7P`x%{ReqO;q`64%frKcyhknHhK~yH__vX zi@>(WJ@a=8>Q!71ep|#A&N$`K3zJEIpQagn@=AKTWBISZdfA`Ct}3^0^)7vuf9&ET zKR=x`^T$`8hK2i>dC8T<>npzu+~>Gz%Vb~g=SP;_`I_}7No*G5wLQ&uPAKL4a6D}^ zOJx3!5aX1Ml0{PNt3Li`h*-HM>%@VIYc}D$jsK!fIF?WNU@m>)XyUv*Mw@T+7Tqzt z709txCHBj!HCyK|J(2d-#z--01IKdXB{vHsrk_tf8I>tJ^NGZ|k{;EJ)vd>;ZuoM2 zi`|P!ryozS_Em_8bIs%rTK|NfaXL$y@=5dGaklk0x9}WOII%u7V!u@DqCmMaA-${q ziL<YHexA>4XRtEip2dM$w#lzjUeyNrcx=0{B5sFWY-H)4dlqkmU#$Lm{I{reSct?; z#<Txs+b_IuTI|4~xU{wWKG*oa$b6}|)p0tJ<yn(<&D3AdXKz%|t7JIo)O<T4Ds-A< z;Ae;QwGRb~=6Lt4tDh;o$7fZW2>Z+@T0gU|td+U=J3>UBN7AI@#Z-~>6%PeJ-RtN4 z-ScKv@)nP&+|IY0m9)=lRVIpF;g{xoc4g0$6<1!IzGtDBH#KXeMkkYP^St2B<ZTrP zb>ok#J$tWG6fyP3qc@5Id;ZLDX}d7@=?0$$&Z`d$BvT9??GzWhs+P%c*zD1os@13O zrcX@qs1tqm!ey<($1PdaTF$~=myU0I7iKhh`lPdMr=~HUHa^0ldr#p%gHDyaeDTR% z$K#u;J!BqlR4UzgZT|$<3n!GB1iaMPrLrdoY}Vv*u=Dw}GuyD+Vs4;JS@`w*i2dC? zvx;7G3!J@fFH!K?T2F0D-SJ}wfAJdfHYYCrkvRLOj#0MOPSr_2MRXO{GxUFvU+~wj zO3!cE*|jM~LjO`#=REE^{peK>L;Tywv>Tq%0T!0ZT95p<|63S#ui#P&N6IPZT|!G& zZ?JiDO(|q`uC}k~GJ`|^N<SXjbl7UnSCP9r{r&WR-<#N|vfxQ_WuByfYvgI)W8FMc zrio1QJEB%}_4u~OE8V7^xUp)@jo00uTiCc(wBC2BZAyJR!NSMQGxgiW#kU+)>YRBR zb{bBWvNTFpW;Sz~y;H{PS^W}&NUaUNtNsP{Dn^FI?_E)MA^f5zi?+t6C%TXAa&@Lo z3g=wj-p{jVlW%0=v?G(he>^sMrnlbdo$gPbTrsI+Pz*2F*mhC3QAR|6l3d%74Vyj9 zDi)<jN}Sr5-tOi-@!Is$@;wU*7}*?`eXU)Pxr1H&!+we7&$E9S3D3{@xbbA<bjj0+ z@`anu>vzn)aqY&#nYV@1i+OEaLM8046kp1*nPz3-Em-k*g7I<jOZM;HZ`pK8`BT|3 z*FvuM)~)rc(;Gv6-O^VVJnX@^?o9H-_&u>Kx!dxRzr8QY|9J1Zw!PQ4RJSABm2Ndp z?g@S36*<3a&!Y1yDnnNu|M2IekwVV2Gu2a1W~vy<R?Z9Y3FX`KM=>M3)N4Isxo``Y z^TQyCm8qsn-rYa2Z70Kd(XH<`9XOfv#Zc$Y;l|%n)(f3z7cx%gmgu>Z89wEoK<K*4 zX_jg8@AwL|8Edx{?Q_=6>(r6%`Tp8?OTI|Yr|+e9soHl8*PPn1{$kHT(WJ<a83&BQ zlni$JiW=!p);q=OwLzH4<#g+o7th!9UaaZ9c06;Yg1Xei+hG^iiY;b;ZPLE=p3M!f zKgnDj_m9gYN-lcyZ~Mx`)c85^4fV47mc039^>(YelcvW>k8`v7k6#!4cAkIYQJyGg z<yEV@7S?}Y{w4F}G^2X%Wbu^MJMQmzsnfkhH7rtO^~8?)4(7*FN9ucDTR!vL(N*s) za{EUGlf-YkiwA|58>RK_+?!>s8FhHqtyLdCT*>v7^Upfw5Tr5b1i#6fN7@U0v+car ziFrC&e0;f$;nmv7KFT(CmRwvTxzPD>-+^D@nJGt|xc;!oM_$?ZH1o%kzSWi4A#&1p zyiZ*GRpy?2Olsr2PiK!`&3L#uu<H}IiIRRxrcaUI5vdcORCrh>i^i-~Hp$QYGjV@` z-Hce56)Si)>3gbPa#uEZJU4XtoSCoAZd<*k@Z<Bo(#|HWdv1jm>JvTXtomwq6cq3s zTzsx^lV;$OP&amuGiDq9Gi2{?SG7`j(<!Y!_ruRV7nRUHcivR7qt##kZvDi`v)^OG zi^LdapXYDaw@50>q`&SkyU2K>{@H^koK{}@GE_g=mg#(&em>{u8}|zy0)lHiFX&8X zIGpOVbl>Ib{fZMGO|v}EJ$XTWe`mmT=ilk;)&E{T{(MrF*RwfJeC~JMl)u)^p1kMR z!_`YWQ+In^^;|Zg?&`}^Wn2fZ8A`IMP1#er#E5T!JBLups@3xr_y64*bz;Jd?`@l8 z*3A<-`)SjYO%tX)OO&j<yKA4bfkF%K{Uet+mYw>l9ez+j^5e?H&LdM6`RtDH%?Y03 z(Iq5p^_IoWr~Syp+Z)<SQ-YuI=z5rJ+NBa?Y{c<LTTCaHXX4qVSLUufvr;C^rt9ji zV~P_CoUi^1{mB%yl;uA|mWYVKgjIWGWR2ZKj{m)881wp^oAP&^I-mI!Gk4`2+bDK+ zl2T||(%iqf?uWIWoqAl`$UFazc)I=hyv5Hse@?7(>UI8bnEzj#>6WX>mBBqzx>c5F zr1@>~{W>XMalQlFC2uv)gjZ(i_3|A%^L0Gl+*{Ca_;g_(N1vl?qtTHIQ|cm|lp}rC z&e>wL>C@EHg=ZWx6=&bRDj)JBR>wQbZ$pvMw$RwaH_ZdIndN<E-bp&gq_gnz72SWg zglueowO!-fe9F3ha)Q+)tMy@?Dz7e;r?i}W(y=+|*rRAqtv!#<tvJ8q&}-F;>3)0G z?wnx1<&%q6$25;$!Z$Y^eD%pNXRW?-?(CDw?IBWZsZ8AVVRw4DOL%X2c$q}{ort+` zCwFO&S&dnd@{bkvze{HqTfa+fVJi#c@J^lXqWEQ!K`OiZhPO6rmU!Os`YhYdBOrFt z$-TEou3N>SYM)D;E#o0h`6l~au2Smj*sY~3{xh)Ge)zljcai<O!@uVLiJP-R_iWtC z&Oct0ZrS!XxNO*LGAXy{@wSU|4spvEZdrLWI4wS9?%r9`K2&VJHeu7vM=C$kEEzvv zT`jjWLFLW!RnhC>_KVqU-FeRHOxTY+EytHtN0svIINsg=x?I>|<;yPNvsHGxdIf|p z*-WaRJ*_+Wq)MyGgmg`ndDqq+_~>t8<ZY#OI!Dagx#+GX?~FHVdZk*n?3#8aXJsPC z=VO~VPnvpE%wAG)P+ql3^}ON93AyqA9$GCFUE{Xs?2ND6N0s81EAYffBxR<==_UMW zwcJyhSToThG&QHcivLkasHM*D%+Rg!x8w~{yFaK_T+r@$;!riGcwys~rE2baJ*qv1 zY_2XT6PHv57H>>AtI(0V$heZ(@94t0jq5)vu;|`98^@N{;her|n*Hsmewmy1)yQ1S zc^|LgVZ?V+f|={Z#LZ&-f9|#aXSgwOOVG)Qr%NhTBbTiItaEghH@8|?ZxrjYBU&6v znO^$&1|Kurq};zgHTV-R^q)a6^U>p+DQg{X`FZi5S-aS{cgMGy)dyuZ7hjB?-t)Kb zwr!kQRGHcnOX<Q7`)4eQh?Vs7sgvIy_M__4;tp+Lbz_dG57*f&Uw`R8ta8!QEhJx) zH&9f0UDDgMO>e&$Z{(TiJ;}|cFvHgRR@Ubwi#$ccj-0kg&*&+etumwfc~bPT^^-%U z$7FDcd<*t1yK-sE<~vuoOML=EjFdw%u6dNW>@!_3FMT}|+xDnk#|<X0I#Hxz7cuj? z@b4!-@;pzjjdW}io9Mi<GC_Cp%PGfBEpiKC&o>X{QZYQQtkHNyYlX49L|BXGmd|;I zJatNT{Ps+JHQhhxpw-6*WqoG9tzL`dXqO)R5bk>0>Pb4++y2lK{WlWj*Y#yQ>)X)$ zEBmip&y9@<8*^<crFW+sKa#=r=IWux*Wb;P<=U93)^62znb-K_l64P*uY~^j<LkfX zOZ1PGXCI$4bFwr|Ff7&c*nKXLvwQNB8XI@cv#)#n3TygLg>`L_Tl#oO`IA@Y^`@`- zGk@NB^Rp*dX383DbdG<1r8a2)4o;EnjG-BiBh?jjHfryWEV7z-bn>wp>w7uw%@aa7 zZGu)lzGSJoOj=B}+vcQp#dNg}!|j2}eGWc<XKOxC-rM*%zbbISlfcb;+&mw&9aw+V zHZ$8MHdjk$Q()wi{fD$uC0H!)pPh7V=BA^O;WlyRee98!PaISHP*!yB+ER)7PWwLJ z+9f<UCDbJ>q?MHw_7`0`;n2A-jk&MTaIuY9Xw_-9kBrCj*UY_abG%HOd+U=gIT|Tn zs#><ce3`xbS6oo)m!}<<uDY$4J}I~7V*VYs8*1H28ExWj+L@t~LQ_92lMG0hXJeLh ze`mMtk;<?=+Y5J8@3Qed)8Dr1=5N+Fa&vc2_)xZV^U;EpPWl3u51CBhJ0Dwps(Hcj zAg99%Id7y&73|*lpFuXFXU)VCGrO<4%eOzZ*naDP&E$`Q{~7KiHQU5SdCctWD1ElX zAYEQ%vTs`D>!>GhJRe`)d*1)!zH7FRwrT&d4~RIvZHAV2mCw_)TOObM+NL_AE2GG3 zKCjD)(3kUGM|?|FE33EOUAg1cMK7T_Ua6a<Joc)4uJ$&N$#yyv-f>btEVpdWDt+&{ zUGvqCPce&Gc3Hgl@p)y9RlDUX_HI6XTcyb}j_;$vZ`FDFyH#BIi@cq0^8}pkUY4Hx zv@NE;E-yIldT)T1#6O1%eTHipWVw@__f*YtSrhTQc9$C)$G`O8oyl%}D_Cn(wl}|d z`T4rFaL<tqvF>MT*Vs*oNPhUd^V_69iBgB>TW&kQE$5B#^Qj+pXYWo=JK)E6`wMrr zs&#IPl*Af|Hz_RUYEQJ*?K<I}@I&REHLF2()`7&Sg&c2n4zkaUT%Pb=Sf?VkG_m+< z>8<_d$F|>E{dMc{uYd2xulTe&*<<zGtL<wvW~My+;c4+|-t(ZU^0LbK8)<$?Lc)UE z`;MekU!Cz}f_t3n*%EJonZ{FE4yk$0(@Ls%()H=p*#|{CjGS|qrmvOhJI}zeCAjG0 z$IVxJ=icz!sdLW9@5Ka<TWQB!r>5sMpV+nI^n2%qni<!sQ&N<j&1d|(@o7&?O0Dv$ zjmg)-JRYTJ8?F3wRNE^>*fIaa+$myOpUPgUOcGCW%aK|A)o|a_CpRi~JpOm5zC3qh zZh|$lS9QHg4@<zRRXIG<e4hjfY)koMK0BBFsp=(8>*UiPpIdwqsA=CZW%9|nG3jqE zZQy>zEnGP(_{#RfW@YDYpZ&KuqCoHSu^UP?w-vt_Ee<Y!-Q>f+P^2a4M8smj6UO<> zFHWjSc0}CYR#*H^&U0B%`c&U))=v3M_8XQ$a%Vp7?#ZmHUvXjL9Pjta7tcurR5B~* zC^_Bt{b6$Fsq3s|)6O&7*e?IFhcWNR)lE^eBb4%`CK=8={m%WwbRQ96k*K=D;A0Pk zL`n>!J}kP<mbsW~Lj+e+U+i=jZPofUg)ful&Rsm=ohN&my}t50&AvT<Bj2o9CnA^@ z8>3gGcExMqf&R^xGNx+1@=<<t=fozR?&~MGZ%kL3&=aj=;8SHfE#$k);}a1-uO@Fe zpd8_HIAO-)=`Ry^Uw?c)Ywy;1K4t-}Q&>O$@hx__sV;OpA?NGS=?Ob>8ibqn-}Q{~ zdE+^e^JL^>!&51I2be9`C(QmiDOFpOKYrSOhQ9iBb}~}OVze6z6mB_19Cer|>T#XL zFuf=FK<~V1{(Ktx4J+6mCg(T_zCO9n$^Exvd)Ne~b$o7rLpg7%+cYnqWVi9hca_Df zJ*-*pDg4w`4>Y@dO)IysCit~x#_^Xg`uE6&?EX9bnd`(5KDQ+^WtXhdKJq!@Vd$!R zkyF^_zm~Ztq^m75C1tWoM5$I-=cB|g)35aHt-TkqY2$)PyPwqEUJ&AAyxL?_DYxRK zosz1P7O^WUCF+#Tu6&yDxYFUU*^)}9hf}S%+hlh9U0eRjWpBrfQkIHqdkzF{e$;hd z!6xqElS!US7`^BGXLzP?B00fRT`pm1x}`8%*o2f#V)FO9^-oM_w%We+@$A1l{Wq?Q zm+nsZcSEyc+cm*yDeg6Gn!hxr=m@^EOionE)({M<+jn<Lhoi1od$ZTZ2Ak}iQ<9yQ z=DD3sZ1+)L60<&D_(|814cAJ~)^+t9<BAl?n!jvA!k>)i%NKq+wxJ_5NnN?|^zq}< z?T)`%{diA$4+m>>=5HIl#ci!cTRj4obg7=a{LC}f`NX+T_6;^|nF~AiIWr2L6iIbj z#i`Jsx?|DCqmF;fc07`_Sh-bm`tH*zT^CP0sp?Aiv)WT8=e<=`B)gkiH_>MEXWjJs z7bjiq4ldkmwOrOJVX1;z&n=I;+{d+=j+{T|dSe!!@}%WCf7g{7UfQrU+rqthnYV&V z<i3>(oV>+~S^pU_7HR2*O+6i!+IOftIDV0Nnozxzzxg%yJ3W#9y^BxGn6o(K$JIKk z)sMqv!xs2_TiYA5V%E;m2&*l}fBNjoJos+OHjz1^4HXYI$*QDDO0vFMK3z8=KmYjT z2WEGq{?4_sO1Tx98R_n9*vD(o@73F+v?JLlDR^>XD$mkm8Ny2QR!A@Golz~hXW3-2 zuAa!#mwI!mEkxFGc>nsgrSzxu-Pg%?rWUDZZkTI0+x-+r?~Rn{bB(_{8R_}X*}Bpu zeQNIUtjONZ99Mm5m5+sw&QAJM?W@_Qc50IE-Hr}#&Pi8le9qe1sV1M~`FJ+($m@B@ zk0;#7`8G|(?)nc_#~Vjwnz#hpM89nex>#pj6!}O^H@SI+t2}>d_>{(1MR%g-JU*>* zlIJ5!bkEgC`SNSBPV0tvrkp%_LLpk8>*%R-Mn`u}n=hJmb!NurYp(AOKAv@DW&hcm zZtJZg;teLN2ILmIC?8FgGENdNo7iV|#wu^?%9+<EK8n%4F!!1icZ{n_l&{9SyJuQI zMXKI5@7#0AWV`P~t&3X{D%2Y^@{KO?P7a)Y$JN1IH>|VBp=X83x8)vB+ai`mi^*9g zbDYj_SGtkLw8buHk8P&QAJMXi9~vbUA3Ptm{b*k+<JMXkXfbQ`{H<y~`Ha^X7EU%1 z{1_}4wc2g}9Ih4{uLEwYC$3_MGMw#m<ND-Bo>lBm#Jx`(Ir@x$UbuvMZsq+wljSzw znK-Rw^2UwgbC-te=zX<WoAJ|9`qIXz=y@F-4j+E|OsUyamhwwvuhi3@kETnSPg&|Q zFM8va81d!(hNk&0r)J787C6rub<sV&Kin|9uuYch!;dq!rk>SbA~4m+i_J6S=82cB zY_r}tEVi9hF6hR4^wzaC3su)ImSS$RZ*56-U(&a3_WIzzUd!LU|8TkXwcK=t&<ZJo zBG<HYQ3sYrw=>$hzPg#bpI6Rwc~;!aovQ1KTxNHCF|GQN{p)m3hWnDAOXo_jJeloq zPO-a8DS5V_>5FSVQMXe)s?P@OtM=UE$=Y%5?Xg$arEUCJriyDG=ZKUQa(z+Inm%cv zq-{yzn@18C`u3(sd|foP@<i~xulIC{7{X6a)&8+8Xlag{^U34ov$PJGUV4&d8lLsQ zt68B_QnW<n&wmEB%tyr;GA|w!{`pgQdHKn;EB?Oext^97-}m-y<f-*Lti{B)tbcUA z@MiF~;ycT?_h}n;u<Po-7rgBr@MO)Ul0NUyb9L8J`nJoOWdG^b`pM9lTKK5u+r-S* zX6~UK-(HDXP3ZX+ddybCt=PboUpD=x$~?21zKJmrH#cgWx@p4C*=KiD!#@7yPR=sN z)LRy_EDm&^*!Wu2D9O#so!$9SfZvzZYf2qE*QoH^&$+jeug?ADnm@_8K9dAkF7>!c zZk&H*RkykLF*~Ox>p2zY_rEAtG<?1`_~hZht&B3Q>W}3-A76=Sxp?yAkw0lwdAH7< zyx(U%#WKtPu=k-~t!a-c?gd$|+OAwPx2t1$lIx3as@xN=Z^%>W*zt~|?XdBduEL0v z9+ksFr8AY^Y!UqU<F5JJ9O*KLs~aK&KFn@hn$5HCKf~gp)@NJJ_(kqGEgS8tGx5x^ zBdMMrn>Gs^O{zHgdRs=9O<+Sx&#vobwpPtC-);$;HM`4XPq`NPbmQSqrPnWQS=yu< zo@2Ud8%L5va_@#qJ@Zo<OpOY&WS*;KmA*W3J??6}%%*^d;`XPnF7)kRrD^in`+4}v zo2x&mu`Ex_J(L&|68hJxdCq*x_}=MLzm~r6XFlI;qx@_8^z75GI>P2_p1-}N(yr*v z51;ehvA21{PQ0>v;4k^*ij()gHGSq!l-6xzoxEac&Xwu?&)=RGfA?of(WNKae)GSI z#@p=K>(Vt}lXX$c!~FH>>?aOZZ#<$N&l<{bZuZf*<=bC>o@M#teB1fPb|#*$wubp_ zt9RsFh&y~~vbKZ0eBGa=s=M8LzS!*FT@+KA9aDXhHF{6bRgqfXvbfA0S3d9;r>vb> zGxNZ$^+LWn36=Q=CdWLvXz?#pZjWf_V$)|`4xe~>%~X2(6iVgH-zffgRd)Nb>k~!Q z^K(nnGma$QoMJ!8G`{lcG?$4!+BaHRR$R%NG4bg7%=qnF<1SxfoV8Kmz|*iT&E`@G zIn%bxi%^+l)Vt}#t`BZEZ6;jjyIA_*ucElDM(elijfZ_EXwLaIL+e2^ON8<@#(67O z%Un_Bl_}rWb$Rb>yW7XRWn%Z57kD!Ln5U`KnDpiCetDIMp7(8TH>STmb?e&}{rlNv z?|<lAZCw~;c#FwS>U#L*JlAs_(e0h8)f=^LaNg#>`X(&m(R!T;DK#bEle;ukv_m#l zxczv&Ib<Wh#&S!)Fu5)D(|V`QIUjY!aK6W<wi_AEt$wTO40@M+*dKHM(Dsvsn;s_~ zEBkTpdb;Gti1eRtj65Y0?@TBTkec&cSn<678HFus7ovHNE@3d4Up@JR_9xRN8&6!0 zc>ODnVZzlf$K}+zXYY-h7uEj!ciK{?D*=H|Yu0PdnrYA-P;mF*GWD|K3~O|RZ5r4n zq~zQduKBs^`5ZHMqq1xU<A|T1G|s&;n8GqO=jHa&S3*ggQ{HiQ>fJtZ@JjQ;`rQv6 zay3W1y&;vY?8@Xix8Ml3juy+;(_CB6@T*pRY7Ekw`*~a0*@roAXCEqUdG;ZF)!K>| z*Z5P4qdRM@#n#>`<$72C($njt?sfj(&3pFEnSAmUe@{)=ufC;wW6Lx&eE;MMs(AlN zn)76rth7#~g1yOG6Q}ZDd)_Q#d)KWkI>~RRxN2gY<~^m)+tx%EoA`t(Pnc47@1x38 zmNTDJxE}5mSGuzC$&F9xQ}QA^G?Q6QUO&OrIbF(kzS_prd#39*on0uq?(LIfo4T9w zZa%rdf2A^F{wvjDar2|6Kl?dtI=)#xSLp7hGq=3wY^_+(X8CkylBPgwq+EG_+k@rX z(l&g{@u*q8|J^h>jU~zIj0Lf)V{iBGWnIt5UG4PA;M2F0Du<PyY_evV{_36Aw*wE- zb9>o2C0<@(RV@D46gqKF<>PBw={*dK;ttH2yg8wz?B#WtiSv?s)i#_s*z<;E^3-?> zN!|IY?l{TC9h@tgxUD+->wgB8e|<+q<9Fm=NY@Y37J1zIdb_b-v2MoFwR6_~xa)WF z;q;?%@f+JDRqH(q@&hLLmE8E4vFq>N8vec6d@{F^Ql_c~Y`wDP<Vq<^hc=zZQcH~d zH23)inV(qT(kp7JBKSkA&{O%~;p2L~M~};-_cUxe%9Q?Lo$Fhc^;vz@Gm5Mu5AUB8 zmwsi_l@qp+bvfPhv$HIBhkovVx_HW4&v!Tck5q)rd7``2t?5e2?fFZizH1*l!=1kM zeP?W&my8L+*Lk*{e|;82_dmL?I6<PKQ!Z=rD~_M`K}Xr*pX%H)eY@9f`HA_}C+@c$ zVsnT)xmUJpm8{$3174R`3v*-`pFQAX@w#TVi&3_rH*dOU(!z}CqJ2`&o!G7j2>1I( z$`%=}(%!J}TU6faw;q9Uz7>2Ne1CH1RyBWGoNO&nzEEcOp@*CI9mt>Hw!7wp=<H*Q zWgYEI4|53!nwkVAG})?Td935CdR%?TtxO^%MsKHXi>s&4jZLg<^{w+aZp=O|9W8vJ zqgmc~`N~)!KkLRXPqk0VFWK=mKk%dI>MKh<<DPn%zFy=JqS~na)9UekZN)u5UtRxf zJIQ5zJO2v<`7iIy_g@fVt9gE|=7B|#jc+<fsl4t9`+aLq%$R&u`Nm>nf62E_$NB4* zsk<Fw)DRD<6~AKat~2GuA;!MlVO1tmpMO>LN{SC%b4)+bQ@YTmMW!e3Zt)KFYg_J} z=k@IJ4=|ZnFlUO%j(^3or~N*eU2#dc>+ZzJF2^`Wd(Fd#jZVM3X&T=qr@EL!U}@F$ z+F%vI=(Q(L%2i*R=9y!%RcY=~4Skc$16!t9>OVd3zUR18l41HiN#lJV<mcVI{nW3n zcs0*Yg*T7Z8U6WkXzhlXkCjc=T)ckU{NtLR3U89jEf+6Z9>v0R^V1SPzsh2FNk5j{ zj<$+pF7qn)c<$?7(BaagarLTNy{W~Td#i=Qo<AySZW0Y!FU^|uHTc-$nakg0Rk?Mm z{+s*3S+1q<+s9@1c5P`Bxxa>?%k$Xs887!A{L99FrEc+m1}^6A9}la#{!9(lSI}Id z9dxHuZR1&;O`Z&!o!j)19_t)RwB<9>%Pc){Y~BaSxjSyi?V0oTR7tki`MO`1v_&PZ z9o3U^S(v>c<1j<~nhjNbo31?n@zSH|%F`v&@@|^^I`uJPr}hW)ic<#r&XoHYd7n6a z%P%gLFXly2?BU3;lUGiptPoc6+tI@sb^l+^n%iH@<xK+q$XI?ov~r&PwC)G43m>1` zW#41L_u1XfEn|-DbZeQPXXjt8@Y6iJ#_Ier<`0YOm**|9JD)iFa08EqAxF-S1I?z> z(_iw2X-28Oi4d^fSa&b8Qaq%|V`=oaw~<rdhF6Qe4NjZnE%tcr%b8I-o=C-~zFcZ2 zay_=@$G=F9u+A+P1#IhO)~#nf(S0%@edlD>wa<6PL~G8g_z=<0+Ohe(SmmShHkI!b z&lihv2j;GEGrqIz?*YkoZk6XMQ!Ex8)-heXuW(A5WZG)g`B`ZddnK#N=l55<`C#_l zRj2FEqFC2SYkw-4tW}*l*~2p8mbQ+}TGOdYyH(zsv&L|T1Q>qy=3O$aFso<x<0U&p zcf7W9d@b>G_N@79rM9Vml8m;sKkR$v=7SwvcYMqjcHI%*%NM!xywA-?iJ#}5Ip!j} zr%m{p#1fwL&~p}7)Aql;Rk>wl`Hw|k)a6BXUJZ3PCUq=+!hYMWbN5-#<ushn`9t?B zPr=Ru5)av}=4ci0Fh5@*Q5+HStdGgwx2ER#xr}Fhn=9;nQ*s58>exOzTN+vAI{nE? z)I7;EG5oo%xxAZQVUB6^$%G%*eHdiEUTgBQdvsSr|0Ksk+2u=L9`fn1dZ=Y^QsUTV zf%BCd$DU}d{JQ4jY1PC3US&!Mon3VE>w$?fAHy#lj%Tg9`Sx|<+Gy6QU0zp3eykK< ztIsW?t1kIy^35%UKd$JzCMGQW9+c#(oRC!9U?u*1UHYV_S>G$;qr+B4?mVnJ%Y4tI zyHj`njF@5R=Gs2tl|}Z%PocG*aS?BVwruPRo-u3D@w48h{RJ*(64!^^zFgSz-I6=} z@#^EY+g=`xw7Y!u>ciE?V>ewsaehs2&H29urL9{xU-V;K^L)qErz?u>+IM=^Zuz)r zd9rTi!(KU0gXO`}<%WuPP0iG&p1J%>K%V`_9}U&^m|qRy=_{_sH?WyCtA7`qTgUW( zA@N$a=`Y6l^DjUDaxI%tB0A#IYq8kpIrs9dd01qWnH%RFIc}rw6zSBgI3YS-r{KlW zkMlxfp6VQb`rN0?l6#N2+<L$J^1RcYW@_91T5RiCB)&a-hJgP3lf3*vr|kug6@9)w zbLVR7x~RkH?}DH2nejMc!o!JuMa5rFp08Z;L-+HnvohE8@*h{&U*3PAewpDOmgk%w z<Gvp~K6zVAyb@Qx_J!7kvmQz`OuElA*+@=)l4)-AT>ZF7J&~shH~LB+6e)kOF79l< zXUx>)U&0lR?O*=<!L|AF`4dI=+H_3SI_O!Od&2Zx;PE57C%!%wP^FeEZ&1GVUa3^- zjfsw)7PIv3E&sB`mt8aMNOE63YoFVju!ZYp^5mR6UN||X=lG*~XTGibO3Np%4bqm| zv|8GH?G34Uo7VhvpR~HrZ-Z>&v7g#Mtq*=~cxZWB+I+q`$I-v0Es5+VC5KtkZ6XAC zuI+bj>A8PczBQ+=j=BAc2G6_&Y3f&uUjB8oPJbUJnEG_Bop;qS&#JPc``%9eq$3s4 z6tVN#xsv|i<2;LRI;}r`Ix@S!_V3ddx3~qb-AP)1V9kOVk0k#n^Gskqx65X&)<(VM zW(IHmt+HeP<(B>R;`#X(_%C{#dwFfUrf5`I{?D}U@<z8_S^WN|=56;Z^W4+T$p>Z1 zJS$Rvt-My1dirFVzgUs^;$E!}X6v^EoMe5q&NnDU`xV2n_3~$3xK>!6J2iF3aoJ^C z_1Z<*XWcjHnp{;EFK@z`(RNI5&HW?I8%#?M>26m(c=?G~zEh|!|3b}m?k{F(X#PrD zS~N9jJ@3JPzc1YXHE+pRg*Df8_k4c4<oK+J$Ytx5K3?{W^JAX<-LO)m@3HykjjbQd zkA40;>*k+?d-6T^WbWmExpBDNbd9p<ta}Uv?@c#&p8t4VyGV>L{E6G+(kZMtFP@93 zS-yQ@p=F#hr;f|&T-^F*sSEmdRtPaq$`|ZfF5*+9+p%zS-TOTr?@x5(-LSZpZuw-& zL*3pV^W!Z4Gi)>Y&ybcrCB<AdJ=<^bcO|Z(*v<C@drz_2@6uC!nv(q>;mL)Brvi`e z>Q4R?XZU;HM*TfIbv~^rED92ixiMeA^FhUfqUle%>?D8lcydW(@10)7FSyFZYg5_m zshLJX<;T3%WPD`v`jgxKIQQz4Cr?zrvN&&FTItVLbkdFSXi@09<<BiO_I%y3Lv;OX z`xVpn)Re4q33{=g_p8nRQz7}H>&*Q1<v+HIPEY@G@uoYAkn!hPKWsOJ>aw2izEIrj z+&As;o_VvrOui?wV^zrHD|b}myjnKQNbhghAKl+}vCrQ36Vu(GW}C{(Jk>{i(}U+H zw!Ahgz40)I-F&v>o*Nfa&)qQGy2)UE;|I?3O&fcXj9<@fIQ7jd>BgI@`ZH9Tr*%I1 zdnNIypIqQMIj7?Ow9}k%5A|hNPFpT;dw1Z%X&%3x%d9rJ)9T@|La9yPBqHZ{L(BQ% zPr2#4j_quFX1bv$lbJDnjb2@LXvk^7<-v?^!}K=QbE_+I{bZ>;u2Uzus4wDK`)Zf@ zC*v2no~pPTXl)zb$C0|3`?$QvlZVRFC+t2`<vi(gLEMB%UjLSTIrFFVwZVxUQ#n>g zz3e%gJ5wsY-?KotXq){C85ZxO?zgvd9y?!jG-{Khlby=x?1@XREPa;DFLd>z<LTIG zZ}U{l<+C)eg-n?*&Um77=cnWGSG-wwN}fMme=?%w^nZq|{m(BOS5~b1W&5$J`A&My z+fUKvb2nF?ebWA8{r2e1wbL&xvi$4$VO3EolXRp13N5XZ-dFz!2Ti}c?PmJw+*F6> zj5q(VTJB*<d{w;Re9whL#?DrWK7#LUEFWIuI9G8_;K7^8cix}e^C{yeBg3E8d!<r~ zLsPvO+^#O=x^QOUr8Bm+kFxLee1BSSKWB51bJLaCeOG2?oSw#iTzsR>=PAY6ylb*6 zCULIdyt5^A&5dJ^*E}vP^T@NiVDi^C@50&_+?$@nU!H!hzH|A}Jz>d)#>$WNKJ@%f zym?HXasHyS3UTZF<7eENI#=ba?4k7rRhL|nQ*~ed3;*_VMQq>O`Z-Tly4NkYd@;K) zWskc0!__bTd8Ng>6j?pozx<<K=t^FTz0MNz+q#}+F}Jo=ewtz|F?W||g3eA+ld^9g zetSJQojmc;)6O41o_0q3wYBM#U-8fMwPwwpBm3_LDVr|n(VhRdzUSY3-)E1!dR`bG zGhT3R=i_@79~P&(owYbWXL6lh^nZq;+Zt_imQ6j!d^I%BX<gr*<C<YptA+9>KS+!G zvHI(@tB%rzcUGSj=(Rdwx0vNZkEil<4#|ZrJg;_Mk6+B(zO6lZwzBo}$u>Km9r*d= zz+*<qt@qj(jH9g%|6KRTY{Mca?QM?S%ZyDDZb*H%e16_Id9xX7PLGG&+xBT{CsHc< zC69TY?Yh_We!_nSfANAUu0?X?oeK|#XRe%CU-7YJ-`Z(APY6m+o)%X9Sz+xfJuhMY zwU%tlP4qL)Mqb@zp}gU!P)g`BOC6yFa)A>L8b1nh(7AHKD@^9Xl8?!b@0dTjZ}pN> zn<VgRi!!h4B(X0OxXj%6C+<zZ&cMtkR8~Ag{@bq5?0HUpX_m|5@~*wOD>T*m+?vA1 zsNmZlpUx}Gp8PR<?cH6guLRC;d@aeg`1zCfC+)xeva;8=etoKbd$FkeX>PsQzp|49 z+a>Sh#^ie3w6Z??F!5K}&6E2dJeewYUiQezQ#b5d*S@vf?|<vjto7D)i+szngMHP{ zFWh-qWX|`M4<Gv*pXhUY8y7Ike!nko{;#Gd-QE)?MA@8~n%;k9f^MAhjP8l5n=AK7 zu*vsd_%}D)s&|UyWl27s*B{tw-fn&#ucCj<_ozQ(+ZM;{AHvpGkM%9tsV?i<TrhP8 zA7j}b^&pEM%162uJ)OG#?Oi)5<!ch(^_TaQUbFU@G5yWEysD!aKjYl;LT@R&`!M5E z<+o~~QwKWdCq_qxzX|M5xn`5`^X(!DAydIG3IA-EY`TtQZ1P&dX|(lgqxPrJB`s&f z+=@Jk=XRc-)7g>l=}|Lxdqab9GUMSjD(|-yy%X=*toU7kXRpbMD?hoj{Ebf?o>;Yc zlIzM>a(;h=KW+Cb&{diAONqbtxusCp^BlX?MQd;US^oNk>f7`G8A3F*FFm^NbmCvW zgHP~`k3E9DKeo1i{Io;jg<09zjrPjS4Vygn@df{9sQy)a#V3N<CNS1NJiyO>+E1<H zuX*}<b)U`R*tcHhbXZ+c$-G-)Y~qDRD&Lk&u(DqySbJDcu$e7C@~8ac${X1geq}%2 zxRssd$<2Oj!eIH&T9);s>a=4OU+T&~u@@P5+}OO&(NI$N-45ONyj!mRWNiKCwW=*w z<;q&er|(Kl&dL;de3IllrS4ed6nBQr=&<k4gC84mE=y(Xi)6h1F#5SjK2NQaPJ&U+ z_S<adc=@l?7W`*eSjWFC<<<KPJy-pjPYnCMsT*2YEU)O@b}{+PpTaP{=Sg7_>X#O; zyY}kG-zQx1GuN|LS~4pxP26*Da?er*zN&3PMVZwfWjg;el<PnKRb~Hv-ttv?A4Sx@ zUC;MWoqeh3hvmk<3m*PF-*atq^<VbKe;7X<$U5|n&!I8>SIP79%XOOl|GGO_&i|+q zXTYqPS*KKV)@E+Y*CjqZwaGkjf=SjrlhPMzOGIpwvE01(dH$+xZO6(aZ=@%-9ut?m zS-fk`pJ#3L{a;wDl-EVQS<P}URC{jGp6aw%orcY&KNQ=<tTG%AM<lK)T$qx&JxOP6 z(vgn_7y9hC_CN0M|Fg*_<=lPy=kcPC_@`d>XE^bV;ZS+QpN+Y^8(FlPc6hyBC#vwz z-tpIehSqb8U(@n)d1~gbQf`-?u`_kjmxQAQbEZ$;%*7vOtJZ$~V&3spnnf}(tHLU- z?<w;7m}Ju?saJARUnchaq+d}f4{McU?mbuPvPeq1^lNhdk&oAG=FQmuInC$aoc`a3 z1vS3f`X`?EFwyXQv^Vy9WNB-|+1@e<)AoourkaOI2HSib+GkvNQY$X)w)fb&xUSy% z;7`7%<J^8s><qm=?QNCUijHNmIT6!$ort)WFVmT3Jn80}JNn8xY<daCs$VAgHq|ly zXRtcA-|DCKnroux_H*rK<SS8Tnk$;~an6f^h3A&1#uxZAPKwOD-uLuX*`jP)^*H~C zIg{){H*)Jd<=~!MINhqZMDntv2}|^Orfmv>Yx>s&etn+)YSsZWktD_~&B=$aYyFY1 zbIA!wKX7*5{hZ({|LWszojdaE`>&%slTu{r&UR^Sv~e?gyhg|9)5N-$GIxRxoR2Hu zt#lLjm{cw2oU-0uEp(<$QtYhk+v0s@JX8N%JS|_T;=g|Jg6}cyjkWW64_tk$lmEQl zT>10mhigni@-xos)%&^sz1s2iugBxPTUM0|&9!IL-|?9393yDG^u)&L)(Of{QvVrV z9seV<>D%U)b>X)|<W>u)8=v$(*~fipoBrwSi(l4+J^yR)$LUt6$hM;X3tq2oq-#$+ zuhOJ_X6AvLUB8z~DAns^Nj*tcd6M9G;7;_#A04u#jm-RV8+eo}f7<`$QLnsxZ0|nN zHsg$G$LyuwFv~Kx-K##cIbol(V3C3^hp@H_OIgUXI|=h#k8Zo6yN=snTb}XUaHa&Q zeEB2U_v&^<yDpnLJ;LeHu_f1+-*l~8l=5n7+Y$K~-rF`+hgw5;QWf-{ZYxOJysTMI zhGFvYs=8p=*Mdv#J^l6jC0oSir?#EvjL+*#jxSc_bMsVt`liKLezBkRo_`)s)C=vJ zefK<8z4%aFSm*C5&e*to#;Jcb`8Pead9cd+wpnq-{P}?qdB)Q>l&j4AYa#uls^{xj z{^}#wi#Y$?cZ_;}oZa$?1?TnHCc}V?l}A_-|GZY0f4i>#`_!cwsk0n!Uy>=`yJ4ZS ze1L6cOw@yC{~6jO&h#&d`qtMopSkn(I`4mRN{0_;d@|l)mX@RU!}Gku>%89w6|OKC ze0(e`_uKk+C41fjW246c4A%qL<QtZ6%TMI%ub+4GS#sBn$f_kz3w6w{9Y5<GeVV7L zlCS0F6L#jFTXTLKx^>`vlat!_!y!7Z_a|*)&3Jmv<39t#---J&*(Ry6=<ffKotw07 zZo>~AqvZC=#S1^NUzh(h>%7{9?FS?exoz-2TU;EY^LUd@PT$ok{yDGr%nE({!no#R zLD=Jp_^qqOtlZKXeZGlkIWPM5(8KZ6q#x(M{Hh50zRr^4O_80(#f2}Vvg3HZge$+- zZ0on0+++3V#A5rE6Z%V5e$LWO|8lqL{=|mN!1VQ}uYZfVRwWlK+bC>SVPtWne%Utr z?Tq)zq+joeng5?5?&W`m^7z*1fAiLUJ?~faXic|CQUAYM|3vMNzT9Vx4{h00ZGG-< z|C9a&v!7c$y>szDL!Mwu`hsMZ`fT}ko)XE{uiX<$lYd^CBX#7myi)tMzUlTB=KWu# zZ!kYSrYFm~HZj>$d2QzGhP7(G2e0?`bJ{ouH>yu{n7H9&V;|oS$zzqqrx!|pKkjfk zPI3CwT{1sa-JEutzL8j5J-hEs*NN3T66z%)t<#R($=y|>__mqTT49d7{93PnZhQVJ zPwnG<JO9aUPo?#tjir;Uz5e)c>h2FMTA$=))7-YDx4>Iuc1ylWb852Dq0Cc7R_~;H z<#Z-FZQCt&V(Q$TUY}j(&6$5VGT&pzoHd74o~qUKPnf)3`(*c}d3(3AN5xDrS^BV2 z|Bk|Xz0JQSdmpZ{-&9q2$~VeixBfznW^J<B=X!ac;Dx$77RmIR${6f*w7EBHYuHlx zz=E&qlMRFdp1!%B_O)c=u|IptH~nYOm7n)^zMWRj?zjyLl-|qtwt3Aw+W(~gNu6=! z#(B*@-3#~Kwz4>L<mJX=^$oKR|6SL<#=uL(Sa`16<OlN2Hy&-u-Qpg<!rHbyPQR}@ zNJa3-0@=@|Gp~1VSM1EuYu!;)7q@&;rN*?rEyBqk*D;50mYO=*b-w2IoQtpHpWOY= z(4&~6&}3(1{(6G%hPPYf?}fh>UZE>daA1YPhVl!4*jQcb=5qd)x&QKbeeQL=PZRGf zc&(!4Ytc|p<RoUiK-+CK@2ic+!<Gn1-)TBBLn+KN>ElV2-X^D=aqf3hnp`thJIeUp z%32}$*J7jY`=EfPI@^{)UnRZnsRu0%XM3%`mAUlz#J>9Cs=7i^j{K?TL(k-0SpTiP zqt^5Ar<J1lcUO1pe>H2;teQQ+k9^jxGLFg)OI$IhePv4V@1FIOi{iy(Pdt9J%6498 zmb&6e)0JAcH_F*-8mo3LpHf|EqS&$eu(bP|yNd-*HLTfrJ@dHZ<MRbOu3brvk#z3b zdqR%AS0<OQrL})0Pr$@&H!K&n@LZ3{-6on7n%nU?eqn5{Y{lp0=g%$fopW^=v$MWy zG&^f=;+9z%7dfxp`I{sEUFws3;iJ=LDR;SDUvh4#*k`2u@|B+wS5|uMnx#dV*30EK zEb@Ce`$Nbhv(2Z9*5C8wyrp;NpG$|!-nNW~KlpARFj4N`=QX$ZPfBr1_=LRupS)g0 ztFj8Ms;zpl@{>nn_q<aPr?oD&Fny?5Q)S5Y(kArBOV<^m%e!Qga#?1Vb_q16M(w@c zIr~ca(pE>~Ft1<JxN;{s#>_5UW3cL5VCa&AM^7BJ2wU^^Pleh^|4ABlGmr20ygK`6 z+GkG{pM8!ej!isxVwbD9aYFk0yq&M~vcI#Nh1qO8`F7ep-N}YR0{u5{tu6Qz+?X<d z+EQ`3<f(kVGO1|`8mfKybM-3L@cb)1yNx4tI<KU-c>mjpA0NlmzAkBrTRGQNKFntF z(G!P$sC(XiyQrNd-E_8v|MmY2t+~lY&kx!^H!;2bIO^>4Z;v)llri&+5-*iCoA_ke zRWUi;oaI}V^EqV9P<yy`rs8^q<m2rn3#GPJ{nL2X6*%>0oYR_>xq8c$8P_Ms?bxYy zxaQ%3!f3{Og^R7*BKmJ~)<jJ5Su2q9VwsZ%%OA~q#x>cmf0_9zhOX9Td|s2SI%)N) z<2EZFF1>Q>0qe9Q6VI|fm>6js9<}Kw1DDa^%A7@IN(u{>m7GnKUw*8vsN;p|&g<&? zE}8UMeV-P%EOfQ9%jM{oz2{Eb2zYHuSk3(4@npTiv&>UJn#(8HnAv}Okhk;D$M_w( z&5tMFS(SRvxv-PZU;jwpA7}AN?(3#Lp7EvQw)T`|D(k+iihSODs3jv{@srhFn`5@- zUlw-weC)#MJ@S$}9=G_cyZdY2Cp!VAGj$UqCYdd)D{t<oo^UI#vW-9RQB~KT8+(?p z9Iuk(NbK`G_s+onibvVnPkd$8Z)Zz59DH+O>x${NUz<*<Zeqy|5#4CVA-iyLU-7*8 zk9#whe%iSEn7^26kxQw=*+2P}Y44lPu1?LpnP2N2b?){_Hx_j%<3$DuIgdo<BslY( zN!H`kGCsNZOZq!;$%6;n>L-4l-+$px>Pdzp(^(dKTip8dWWV6`;z!}?ma(m?Q)k?q z7TFV46LI}USNrRj1ZmlN-}Jz_ZlV$*n;8y7C9wzZW$d^crLDNh#Vxg0nB94<Th2P& z<r1HNPIKVXoqIikOJLS1n<W#kPZfH&r|RtI?Rg8ucmHSTn4!>@udrk7!;hQ2S$rj% zoNgWq<qTb#KDlG%yS2sUVVM?*Dq*$GCx3hCYNmy8+1!haQk&Uh$1Qw^Q(x93=*icF zuDQFVM8(h5=S^!-dMs1tyD;dI|Aezb=@a9{r+94qIos!It$&*4icc3}e80;19p2YJ zWsZ<wTdsWJ8c*xlVHYPYDO0JsGiA$DA=5pZt$#e(|5*6k(~M7(!{^OeUB;jAc3Q=| zt#6J$+H}0~Hut)s(8qJan)I!<gr+`u#XI-?pMR21F8q1!TQ?{FNc?|>*xoliYo$&# z=|1M`ldt?&+TG5U9dW<=_}lyTmJ&KA_e}iH&?olGt?rVGDyNX!HC<Li&-*eOU6Q6u zejcAU987qyvFX&DPt0@M%x`Nid{dp3KkdSyRgOK`NB6vNtGJyh$&k<g%D7_h7V~-e z0+Zg~XjFXtx%`D<f8ep*)wwIP&xOAKWIDgQ`RBT#JGow4D}Jd(T5i+I|9C#iWW8#h zY{Ex5JCzlC_8!|=FlVd%c?o9|;UDwLf^^L*SC}ncnLD$R_066fT^Y42lR8rbmn82r zDvP*WY1(_-kJ)B&*rXl8E9dRmdL~9(X-{k2nw^XM@6`3r({bS_J9FX2B+<#I^NxB% zZLQohH%@HcgEb3oe^8k>dEYY0%4fY#pQlZ#b1TntOqlavp*HJdiHDC4dhfCDxWA{U zP%wPsvClO**(ahOJnO0El!<7Hm>d0k-|=HVZcGVfe<ONTa)xenmZF*Dk^bAJA3rW! zw}1V)H>V$aM(>tyzAgA`hRVCi{g2mwYMFW>t-SvB#Ra?L-S&r^oRek5bmWwQ#ktcB zJ@?Aa9cSsC@-$cSj?Og3daXxaEw7~eyeJImxwj$Pg?X;QveI)qO?UM2PZjp?6TR8T z>!Nf~;e5ryYb^mD-UgFhzD>3`b^qke86SDH+;mL7<#9f3{{H;M_s1K)S2C*PERm9_ z$v$$%esWiA;-6C`lPy18o%{Gi;-@`@num@DF8kzZv&}kHL+;3Q6|L)Uy?T#-5?-`j zTXoe%i|?Mw&gzUOI&wbV`8eschgoZ%QcnpxGlSK)4CNk+W!8>G5^`(So|u<#;=|F$ zFDrK)P5pOo*5o7GRE*AEo%&-|>l$;{!zxwPg&Hz*yyq-EbpDWI*pn~GGjl(eybBjy zr5w`b()OQ0HEr*n`TY&gHzbA4^h~;R$n<IayP}v4+|4Sf*FN5VsCwWA|BEH*%4)Z( zbbng#Ijdhy{jpxHYe!AC+_el{$<Gsgk3YF+)T96H{U>>r8JiNOv+PhguNG7|e`2!Z zvCU7?&#@&ol}l{v<92vHm#@6vZ24D9$@On#zO%Bi-uZpW@^yTt<GuyY&A+anlKoTW zpnTt4|8FnmX{vB#7fz_S_GfF@W-X6P3~Qf;y2L9NiJf*XGB_Kc6mmQ$=nS9gC-bPI zL2K%nlxpT2{5ByxU`2bb^lv`hD<}SJaSiTWt*9O8=YL!xZHJR<;QpDGbzfJ1I<ryT zC|G#juk|MJ%1;-czw_E?L+UBtciP@=LI3)CTy<YO`uIux_G#<W8QX<Tk~;2~zV;|u z^6PNc=>)MSM;<@V`MWb*q%h;&GSeH%C#4I@)jEG_2cH!&+TV73vf6u=VEK7gMFy6Y zfxC`Ns?Myo?0NkuVuIwka*Mlt84Z)>1b_UelDAUt#)hBwU$`I1;%ff1cG3E81~aeq zhWB|Y|GL|7TvN;Vapa!(If7@`?s`69ozAbLvmdQ_;IXM^+pY5&2Q|)XoI7kjcXP6x zz3(=i9^-R2bh2$v83?)E_*)wPFZt(_6v1l?<)co|Y5F<qZXm;BzRi{HyE%`yrOa{5 z{!|_P(XHpLV9z>*Hyf7qbVV-de<h$(XXC0nJ<7E4`|X~OwzV>kC;vVAa@Kd%3ngEU zmd>91HD8rE{?VIj{gxiDO+uYk?Xf=fVdmp!4@*Q(|I~KB^3(YA9$~?z!;kJ1cAnU9 zqQb1ux&4E^{NXk4|1)_1;Q6ZVnBMd5?9mo&?-LUXb^WpzU2;Ac9TAr2@x9LPbn=a< zpWhVlY+ABj_?UCWtkYp<kIPxibjeiIJv%dP%_o^R&Y`@QSd-^n4KiIL+T-xpZKjTE z!?F_X*7I5OER%j{g<Q}5H=Y0E=9+E)8GP#|E;dZb_)y3G?c-*K^GYf;Njhs!g~ysy zsY-?kSeq?5w|r}!Q$)-4i63l(r3<%8NmitU<Y}dHMjh&$dLm7+Wl6$>=hIp4+tnt_ zXZiU~+~##t;k>|kfpZTYa4S1?`^~1BPwQ{47X9`q!@bC1(<dFiu#JzV&F!~&ac<IX zW1GNtp5d!a)+qkzd={zruIy6HPs6&OS-~<BZd|slSbwm}VdDJrvLRDv?YXdL8?Tp5 zO>JVyl@jTjAOCcDK7D-k*{KPqoD>h-I==1XWb@so6&<_1kL^f%oOV7j<N4OD^CXXz zPDsD6?{8baGU>?A!-d~!_jp#NuS%O%y<Wx0Jt|lzbdsCt%rKYvCr@1K)2Pn2=6OH& z^U0~H?YBI$Jk(bkpGd9US{k(FkM%Uo^!^F!KAw)qiV8fcremlvapP<$-}L87QVM+c zgB#gwD^7fykhNArT%%y>dgl|rQf+G9a%5TeZ~V(w_<YHwD{V)!zdTv4{-43{M6l|H zl&+<diYLv`m;cXjWyy?9^AAQ?dz;HVw|Hk3zV*bVP1CeazWv-?sIfEcXy$Qst4GCF zCoMTt&wagZlW`-<@^GB%F;BLdp0|76&OUIQdCsTw$<{gLr*euns!z19*rptwRB60( z=FJc53Zgz8x%;U=SbKk8<@}Rb@snPEZe$M-bG?3=Ut-40Wf$MdPH*xHi`~PiY%ZF9 z^YqD2@;h!mee%{y!PW7eN2botSGNMLc3-fmEnRvtLd;U3PIdC*%`z+sLT2un7w`R9 zckIcF=83h{p9=HUs&9Pqb5!Lt(wS20XcBnz{5QcFImsWd-m`A9m{}R|YUa-cMcRh~ zZD*=XoMHHO?&fW5N9M}KIZ53!&Fd7q<+XNcBv0l0ln9j$ue^fL$BUIrc>O$8%@<Ew zvOayY`!ds4Ctf{CxL2mo$tO9ZbD2W$j+3T#PN|cwE2chrI{U;qJJa=-<1_a0#<{GD z+!<D(Vt>N#L~g3Xrqug0#3PQJn#-T@D6v~VNZ0bbe?;)9;+Hak{~3gzPrrTh*<yZ^ z`}dS2vNs%-=K0MdbY`dQPhsV!8}owFu5xbvH*@N1d$HHOPJz8qK86!p1ZP{ztF6i~ z(D>f>X4$Uw&nNwy&3~@Y{{GRB&*2lFWF}2*j5O=bv^t(B@iV;IY2~-NS;jTGo%1ZG zy<TT?FJoc8$wyvGc7d9WpFb)8UeS~j@gyZub)NT{*2j-o6O1bUB+j<*cszB@Cdq9D zGVIoKc<1&pnFh6Xd)|`0xiIXEepHX?s*eRG|JHvD*?;hor^SmG7gqBe<GhvmpJC$L zB^r_{J;!dBUDR#;<Zfs8W|K?oN3EOlE&elj-4Z>uf9`At?|UAR%@KQEbsVaByeH82 z#2v9Ga~(H|*6lnND-bmM$<Mn!KIfF(i!N?je5T#HEbII8_05y#oID-T6eAmPT*OD` zdXLVm6Vh)V-+Hk)YGRD${g-!Eh{aBlP@QbMG9bWp?)Lc)(xsl}{@QhA(#9g@orzI~ zMcf}|<mw+@v-0wf+dKgeSG4SP$uSA%m3^@6!7ueGrYT?ZrPF)1it8tcK2ttl>lg4c z@T$d+XF?w*J5ODjI_t<<<=g+h{B*H8={~L6^pE4Vok#MwW-D1JCrDoRxvRY5g`>Uw zf@#7>T~#JNzBO_FZjbE~I`^}PxwgFAagFb;o0paAk-uvuPCb2m-rJc!UK^y8hejtF z{khw7*sJ~a$5~bk4<y%cHyW=$?z~QW^8EgZ+E>;`t=2p#w=w=<Yo(;r(RD(1H7f20 z-duSitSMvl@v=beoBpj6+uW1)iS)%xV~+__efjZOghoN=q^dpqq7S>~YVfa6{#3|m zebnyZrbX>O5p$P3(ca_l{K)j$69uM^8`_`gJ`XB7qhmCu_lc0fN%hHVj!b4YFxnnk zDY^MT6ypTh2i=)@Mk@aA!hXzuvg6mW<;snBW=%cR9JNn+-61p8cZTopyx)25xy5Zc z?YcERG0X2H)<603@n3$>5&PoAWv@Seo;%xm8>h$lf&%}h(DO>qInOv&EjK<`Et$He zM{4@PRi#2_mae_qt2|?-<frSWLMIm*^KF<KExtUgj4gdp71x`2%s0{}S4zumUnZnt zf8ukNrQ>DIpD(Z5F~xQmdHy~B<4?MjU*#Om<!SBRd21#$PdvG&?BjVszBVWRUFoO4 zF}pwcxo4w-^nn5%4#VVwVjLS24@Or^k}tXN?OajI)!3*=BRRWp`K{-Q-Ux*VhEEIo zb}szJ?#0);Sf@VfvdquWeHpHOi!I~r@oO`07y4}qc|GR<@3C{HnZgpAp3l7UyLZ)= zs_vsZYj`#V$S&wuHPu4-$3~H!>}x5L7biPB@eSN?RK+dm5<l~tu=?D$lAET>JPSO| zn&;kk+cV<O(ZYSj5%ybl>&b89O`23_$Gdp{6~XSyr9UH;mg^WiZ4mvTe&yey_}^={ zTv_I1;M){9_gIb0>$wI^#+?u5y)i0KGdxm!a$j<DYS@IuGu`|``h+-gQ*306p6>W# z=6}mVW`(EG@$cU(J>*X8wtsx`55s%$-}{Qwx6Ds+-sZ;Bd@9Q1r}x`y>VN*t$-mCl zvGqR#yOi1fo;5`&i6#b9oj;U*G-PHE+xS#_UfG3BkA?1WFBbc7u(BY|N2ck~C(r3k zYfdl-A5-y9mW^E0%k}l*vmG}r#U6?I*-xnF-q@jKlXW_2jhXV~mY6)#Bm=jJr~gdy zP<c5ge}!)F?0>tu52~-ozWwmY?^{Wx|0MqO#K^y7d3G*$!|wE{8@vw7xv2#?R>l_J zv3frD<XUAhw_Ks3h$D+Kd|Wp$)VuxRVHW?yfAoe`7;no13*)!@w|Ui7EW2`V!GDG? z>-l%|a(q}<VYn#g#m{9Do!T=hUKh_35?}7+As1Px@4IQ1%-VfY>8p=@{#YbaG9~@- zBWGPk8JX$R7k_GAyG1?sPf?rn2J7_x$^cgR+w*c0Cddf!gkQ_&+pzA_o@a_;hu1wm z^}r-()!Atkk9O)GcA7hfVdniuhu`g&oV0J&`V&%;7rS=aHd^hFF5RX!Woq5c+cw>e zjc0p)obS2DIA@A<*XsA&{~2_5luzJa|I_)xuSo}H-Pk0$zvz~0^@*B}iMO9TnQ_VM zg6d4sdAm6agGA0=JAEhXX==T(vdhD5_aA<3{xHM-gZz~z_dD$h+jv%)g?}jXe=N(= ztt;D^wIxA*8taV3Zsnh)rq%luJUa5{Jf~Yk+Lt*#+icY}PX6HDICE7*>z-BvkLBvu z3X^~SJX`nll>U__<IOz621hqG#T~VAmh!l2aV{<+^>L1Cok?$qeQeddNxMQG&)QZx zuTrOln=72t<!9LarHN0q?ypz1HtJnqecYO><Wh#h#x*T#npYf+?c2GwX}QUb@W*W$ zmVAMa=TDioeDhMSKVApIrm23sT<hg<F=m5(SEHqLX679G^v6lxIZrvhO*LlN<p0g+ zmB0OT>)xMkl_HOJJ-B$jN9y4GXKDOglcv2hk4%WyvrST&w$my0LbZmj?manM_d8xW zu2J0Ed6sY9xmv6zpp$)b%%q*?Wp+o-ExgO;@;XUUF<x7d>1etS!=pO($Nw1wPyS~R z;<2zd^*E|*HTS`>KatWMe{B4^CL7LueQ{cHe6Qes`6{b7Tc15i$}$fY)pcPu6k1wl zX7SF<XZGcgG`kg#*hQx*&vHvlTzjkWSFc_zU&UjK>~#_?6@g7EtA1>}9AP1y9d`Ss z4)eZP!E+w*N(Y?w1}kq>S!cm5`m}0-yU?%hOY?Wws~)@Y_({fHX^x-oH`E=Poo$^j z@Z$XwnWXxlDw~3zi!<N&i<IAx3QNekCdv7eZEu@VT~XklnEE3vsVV=gzDegNdCdCq z^y+=d?X$0`EG^h^f4Vhu<Hs~*n<r0l3jEgyy*Zv-c|!4fkjLKr#r4I0{~6|{yt#3W zX^romc^hZWZ=E9NW%;<6yEMM1&xyzEZjqj|(1nCaE6%#zJmDKDCcGwdcSJ>dyzbN! zIY$mGcyG~@^rB+{o4)j%tT!vl=UWtiV!S6>bMdXB)Rgz~pVzEe^Y+-GOOf0Cc7;!z zeD*1`=7G=trw$|<9#BsXRi03t^;2A5rod!gMrvx)_Jue0GybzlnAWBwH`P6}A|iHw zV&eQOvvh-Pt#;3!8vALL_-XNF8nLTSRLLmJzAP53`Y7-C<RzWcey!(ZKXvBql$h?V zOD}d6+^h=vv%O;(yJ8BH^_-dOE=NrAh`v0XwaaYT#7)no({9>$xr<B)PM5Jdqx;cp zL6X&ss#4pK`j-0j#l8ADpV#Sh_k^_Ahm^IesiqtCttqGr_|KpvySR5v{qc<FtV~gx z>(rXwhUki`3K$w5iF@<)i+FUC*1Oe5eip^49h&y|4UfrliNvYJTNYc}?ddb>Ij?f< z&0-USpA)k=b#)CogYH}uo#UxnWTf~cJ8*BtPlncaj&hzXRT;)_cHVerd9z45(b-#d zTf_t}zfSc#{69{Y8r-Vbq@De!S8?hT_pP0#kF278M=AtPbdlV<dBy6GZ@o<CpL(1& z@!7LSUwf<P$JN&I389H=KOesI$vcTzU_Wn#dU*R9bB^A%TV`tiXHbxybmMlNOVH2Y z>2s^A)E_tT7(Lzb>R|TVX<w#13$(h|w(IoS!x8mCsxrO#KFZbaLhJ82O8eV0hQ7YC zUogX6)@a6$70=tR#ZA9kl`oO~;Yw@jwSuWN(;^IYm0hQ%h*h%wG@dK1VA?H~^y%iR zOQB!Zu4h@BT+_a4&j-zCx>M{WU+!EgGu=GN>$B(a(D}WOYZYbw#J+mQEhp~Ezf9=8 z(u|&&C5lDMPj1>&s;w3icz@l;w$dAorAmMFb9U@a?fmVu<fmSM$HgVw9Zebfm$|BS z9G9dYQ+7_)RBc@!Jz+~@rQ7*C*KPl(v#wfF`AX(f@ZCJm*M2c4_4!k?4~i_!v2EI@ z+vIh2!nuPLmXr3Bzx6G9x-;;}M3<(LA31*>#wPz$nJ}5>kj3PcTIJoJ6aF(~&)@X8 zr{zWCcgv60(;X%@&g8l`d2Qy&&YzOi5l_-5%$~*|mS!=1uH%eJn}oLdEn8lixVg$w zY-jGgzd=Wvq+)-ZKNtRUT0zaMYlWXG)>wYJ^YG`f$19?~@@x*D_jk5LuhNu%KV?rV zztM>|3|=#BC&vwQq167VUB|VKAI^PK9Qu=U<%iEjB`bnA+H5SA>sp`X{)M+qu!`;Y zr1uhcVoofvuGdKkU)y+hNs~y-{#3ExJZrV1okF`#C7lwQcC=GJcqeoC7WboRDf3S6 zK60__p^wu3<$nW}*1j$hl>0t$1JB3#lI|NWf85-Xb*^P~kN=!mrWxPcP22?Bbk1=k zPyTypO*_lZsM~hN3ukdF&3wL=TXDmmq@EC-PHm-5<C9H3Lg|yOpVz2YCjHrXbK09v z=8}ddZ~sUPa#|?KydmR_eKg-at<p;ecP-oOnK*Oz9HH0DZKs23H^_8|8BV^m>+i`Q z_3wP9JEWw)skdKXx#wPGO~!rIV7J7NpZkB>vvR)a^A7)cF78m>m3pE2ln38F{byk7 zTWDLby)5)i#>e-@b@vn}UcJMyMLG0(Kmp&{ua<Fw%Az0qb&?LBHZ98Tke>SU;*Y$a zAN-HyTW3ptpSQ*D;;$;h-&>|CC7!>uUR3MErQ}P~m(J62uc}EY&<Rzj`qL4*-N~=_ z(An=_r%T_K{><^-zUS-XmF;#*HfdjfI_K<(xZj%RkGYymd@g^=G*kQ6tSLL+{g}<T z>f*$w54brks=0JOZd&o;uu!PdrC$3R0WX#JixfSzT(yP!sjQUI-<dC0PO|3S)7&q# z_SZ8>mfZQa?vE??ylvdPjqTizvzIJW<y>#uOMkZAq1LZFJ7Sxmn#86ymkmMshGEZg z#k#k#-4p)!cj6>Jo>uE!PHfD}ghUEc42wA9o9+FUi*p|Q{A+%X?w(K;k&E|ye*~2) z-WJ}_UKx>>FxPlO+?9I8bFI^EUcY8>_tRcZtHVcXA1xKB*jUD-KXXyafrbYR>HYgE zzD{xry!|7a@6DD6MoYFzE$uL8R~9!m5G<a3VrN9m(i!tbRvs{Tw)r}@*1?w-)AH(< zRkbbLc)YOV;=V6)PX05LnWQf1XrJ@dBx%19U%#YXrR%Fdd)=1i?Ywg3)XbF;tAwx0 z%-o!G)NJCr{@$7l8Tq+93^IQb(oR@LZ%C<Iu+6a6TW;sdhnw6!%0IA=QGa{<Q-3_` zsc^+vb4pcv98+@(t4}Rn<mGi%=KSM5_rk@sPX-vRt1WhT-p`dDJj?R)e9JVu3#azV zs@X1{eS1&Lp0I?eyH0G{p7HwJDVtNgXJ#E_I?`=WajwpwM%?z}<z=O}-Nj>Ou&igl zdzxom_1@lflJ{&@Yo8R@-d(18zLZ-;`-;bMGvf!3)+sge+_(I3()|Ft%8%R{r@3dn zes8b-k^4#ba(_qmhqrIrS!ZvR+I*|(%PpO0&LUUeG9Bh^68Wx}l6GL0oy{v@$+obH zo9|959$I9`EfGC=uG*{<SEtM=jXZcHf0IX%^`wP<K`AG8&NQ-1Ql7WwNuoiOW6hnZ zzqh_{_WC3CGXA+}WyRBJIos3X)t5e7S=6rj%0e^#Yub~iNpUxW@`Ve_x%RKxalYKS z<MEpKo#M;2yKEZkq`thryIgm*;BMP`zuQwaeuaq{RrzfYuJVqwU-r&*(#L5FPby9= zPD$E%?s4$z19onk;}<=MpIY9{(znd|nzHuEZF?`-Rln<2X+2kV?m0`l%?<VQdgYQ^ zEf-GwrRACUq?S3;DBkbR+Js~C!d%%R{FtZY%}81H@znGeM;^~e-el*^ICqo%xqm5n zucUp&(@$S!T`$NbJHb`7U-)$LiAg)Ok2YjSHY~p5o636UB!{JLdf28<i&ZAgSvSe( zm`cXG*#Yw_HP4r78%%QSy)jui$@;nElh5aD+UGDIm-?3Rn9(9@gV&#&2^XhHxEu@V zQn5a#lxWQH?~uV_kEK_o*k(3MRwowkyLHsI=lPClXX3ZpEZCgoo@eHAe08Ff`6Qdj ze>Ja+thovzV~;&}x<RG6Ym?U6)9<T1*4<rp>Ek6gO^Yt>#CiVyMZtxkF{e+&EEEa8 z9Pf8$b^h#DrLD)JUQ}$KJh{F1vF68#-I;lO?x%|<tbBQT+ece@{<oi8ly<(1ID9cH z@Px{v$0scwFfP>)4h<77G&ni=SJCdL{XQDTRYif*7nn|uU+~v_jf7nR!_CV)72#Hi z&hvCWKKId_TO9d$_POKMbM6TlUlBgeE^PVP+eF7uBIV=P+;r~Lg)^sbt#jT#W0L=i z<*)Z9+bP@&`**WHQ~2qc$+w>?PgrHlo@X#OV$QdWCDS}6CTF}^!S=@C&THdUtx=y= zbf$G5x4pHN<pj^f1#fC<Q(v&OD=A1#UM0Tw``+Xe4HLq`t|pz;jo0t*-;`9{C3Pv& zeQU(6>tSnEj&5A~X0`FLGfy}AZP><l#_zx<0m*LWujWsqen!u4^0+){#ew_lcl_P6 z<Lkp5lgqqLYah-?`E-&?`J~NCk)_Yu&UR{@xV_$d`_|L9_$T`cUHjm%O)*(?b<7$4 zL(a$UJ;^Jq;VzsWch$<UXio3!?w2k3iR`jbJDDHl|E=EtZ~fx^Up7CMGPwCj%AmP7 z(qmFjYU<-Dk3UwO4=FI0yJI(P*9}{x31R;kmTB9B)#{lhU!J!3q{Z%uj~%rhlm~5o zFe5$nY|oFgiIUf?p2ujn)Gz$HsKmC|-p{mN{_eD-7su>AY>4>W{`k-P+!mX7Epy?z zdWX6-bw-LG`3@=Ygz>tp;`6Y2p8IId<A|RTIrhiuzr5b_u}7KX@O&$V2S5ID<*WGj zrfp6)-5R*#1MfVm&74{L!_?C1%=Yitemd0uR>dYM%_j<FmY-*-tf@YDfnTX9M|QX2 zv7FZ*wM+A?B=U;N{wf~#o@UD~=Kqo}NJ;6*kLBH0_PW*;_s$5L-!q?AVu{RpVdc;V z5lRQ6Lfe*PNLgH*`k-I6$=uILQDpa9ZI0gu4W^xnT<N#p_}rSVIjf^*_ikA^)xK*@ z%(;)28Gh!9%-47QezI4l{$~D@4fiKMKfUHtwoNnR`5p~vt925OOD8SimDv-cW1r^G zf8+$uAK!VG3w?b4h(?MXU-~F#^UITuPFma+eAwnVYeGWVc{R@BePxG=E9&gy+-I%! zv$PG}d_H<(nQN~{hKY{eqsP`KS>^q@dG^iOExSM9L*4!MO^dSFKmV%lQBG4{<1Tk^ z)$vQYOT2y>=P)+Z1peChJLQJK19_{%v(D{sGk?jIuhwYew=2nje{M>^OlI}4<?PAQ z9B1W(j;mbTF}ozbxp~i=t;O-J)Bo-<{k2W$$h$Ym`UXemKV5cBa`TzujhgZ|&ip$6 z&SZ&9xnlTLnUrUIPCYxfGC2#L4zajhnSJ4oZ_nnx_H)wz>YooXTk`bv)yK7`d{4x- zsB(9tw`EA#eSDbmscOMd$$4jLR~%a}+4-t-C%3V#ro+RAs<VfGJX`Dj_VAMV=@X+> zCc4D`XIS5}<Eqy2Gy5JtTl`jBm3g9x@BFZHyO^IdoZGKj-m`;Q=H&;KL*=uRN_Jd* zm@~b<DfoBT**@vCJTbMCJ3Ja@xBB`Xawv+EvYFg6+y8ikPljsn)%IVy(X;N(3ijbS ze@{h)(XLgW=hDebntRn2v`rH^A6Zn|E*Mbyxc~e17mIBwUSDw7t<!uwlv#J<iux0O zdXwgNEq~KeI<+{W-oZFh#`1!o*2`1R12_CFIJ;5drr>)Ucg0olHnxRYS{>J&8y|<= z?4Qv!^?dmL+5M05*Z7_{I(yVVVbhwP6`QB%TUuOtK3mG?bK(@9)f$s5C64Xisd>I! zB=XcJ-aOwqD~mEVcYdvz`uJhxj7kq3`}C)}{zBo;b1%uH>qbv(zE);`)A{I9f8XMO z8LC><*LT{u6m8#q^3*-Gvp3gvSUjItvE$JBQy==~)Hr*6l6c8yQ&hw1d2h?Usguth zh+cPLX0nP+ZKC79SDsdvzq8vcPy8ly(<d%0u=Ct0hOZ2c{3{aD`lqe=F)j4->Dy)n zV#kAuH)mgoTNr0*ksoPtO=*VDsyCY?_ucc`p(c4x>||DG#?LN8>)2%<whLYG=DDMF zbwyg|6M-u;_{`S)G+%y)vtqa4lR}O|=h&*-^z0(FruLZ$cKq_5lY6YoI5kfDqWAls z;sPI~&OSIAc(q=o&2aux^(3~})8q?RCA)sT*EOeI;n%TG!oTD%@IEPQ{cC?(>B(L< zgTJQToH-tbNs{&vihZ}P>s!t_w)DyV?1TKv-dvvMA5t7(Qu@}!@6MEc_w%*Or0S*G zCYx#}mrLApZcY~LdwKR^>x#pwRcCc)i#p8td-~7SF3+NV(KTI}7JL3PtW51!`Wj<= zR9>U&)4gxkD%9uCep0EHEWY02pyxq}U9XrLPVKn$_UQ!u#V`Hyr#_W+mrab-`IX%^ z@97e|Ti3OZ-$?snGW*M}tUF=5Ln?FiJN@29D_r@`5z2N@wRm^_zOWQsog{ZtH{AqD zmyN4pD-1sG<@(hk<CnEMwa;%;@Vv*LWcI5c^E@8$rSw08O7Ol5M_VKN{b!2k702}S zE8Uool6=QDE5xGe&USrs#XJdbuA1ym`r(&3MeH}G%(1j6?O80O*i$uSqk5M_>csA) z5&s#g=BZ7dxKUZyICZy}WF5x^`vp0=t(&Vf{xe8lp8S=6lIIrrsecX??aoz|Tw}2@ zAvUf5<sRM1W@Tre1iop#aO!TzosCass87mxtSsahTbGtMKSEvOp54=ctRugUlo(uH zsXO)C!~^0FPE1@UAaRs8wNW8<*2kkk*Y+Mc`$t>k*2cJ#r>;H@Y4f<^Uw*tTTWnTK z!GWl+in6D#Zo4z5rO<BC*5g~fmrq>!>c;+pM|(|QR?D<ib@$fEotW`_&ZLdsjDqJ* zzbu~r(Xz@fe)37x^qmKlma;TePoHotGoht$-`p?v)h^A8yX5hwHY$9T$HGd+!`>%@ z>-{1-w#(bN98_Bx%g~bEU->;Iym0pPY@24=>#3DjY&(@Fcu5(aiuf4%;CS|(C+Cy4 zvu3W^Q@7a1uW07^yIEeHS)1L@7ICr`tLNB8TTEFW8MkN7lsU(FHn<-PnLS~0=i~Fz z@^eL%Hp&T0C(EWMZ@3Xrx;puI_i0zzYBkR@0lWtzWt^GXCb7)a{rH|URr%|m$91Kh zA2@ID_Sl7b3(Y$Jng8I5!;)<W4j9z2$zP6e^OjU`DpZiz*kdohwEe>BMOR*bExQ+) ztnyOsOlxxAmuQba55kQ&u2w(w%A6wN9+$sazGupNEv4z39zJ`xdd=p$8&o&OcTKvo zGH7e4pVuC~d5ac&yxX;P`_9-`k7{RaJ=(7m&BHk<%usg!#YZ!qFI@Mn?d}e3qtBt) zm%sKaU0?t8#`Rm9EKcM`t=5-5b$On(nBW7uiEryR9T%}SnwfDlDl$oYN9UzF;mJ)e zre;}6mQ9)Zwkosh<AcflDmwShZFaZiYVBveZ=XE1wNEW0r7BEWU-<Yec2UC#&wt3q zR84JYzkIQ5(i!Rg?%(!1KHmQL{jhXyT*fC)l{wjh*6ES~r%wO7t?Q_-JSUf9$E(|i z3Y#YC6s@b7qy0hLDy?mwNwk!MfsY%v)Zx^|@2Ll0_-uKo<W(ExA?qo*e(E*;4X@l^ zN-}KgtN$u-q2);ro62IZhcoOH+4+yZDp<$(i@CSwRy6-@O@qkf(t;APjlFWmT_V-e zGDGJIY06nmNh{yY&}H%OrpyyZ{R5>x)Sqt<Y*m-a7p>Fps+K%i#Oay)Y0{~eVVUB$ z)H`ji&axL*kIG`@K9tN?^~C7w(Gp9mX{k31?o3-O9qg|!njTcuc=4_JpB%ed>7XTZ zO!mY^iuwCq(Us?YtnU?)6>`jNMN>p_&O))(zb0S)P_*T#@yBp2-+QJZ8^bT%wUK{* z+eLcCh2;V%0pcsPPwsg!@6qqI&4$M`)ADbt-t97DvrX?=_1^ORPg}b+qAI25Y`*S2 zb3w>lzI5tg?UWvaGyAkQ%-j$xCw1|tNVwjY*>`V*H_x7B+I=NG{Yt^Q@UOc1ikqVx z{~uv616|w%y0nRz8FFzGBLgFopdz!7p@5R3uu&k3LZY%kp|MktNaI9Shoqu~D$XX! z(94_H>=~yoUwr$M#d-f7zFKhsQ!2E*If{Dn%O~BL6aB>B+w@8BwXSKGiZA^&@(%Jn za(~IDpSD**w}mr#PPe?+p8e!|!qFgEWjj|*>4dgd$6p@bJKI#wbz`*n^4p($V=vm8 zzw6w(YvQ}G*t@d|N}H!tPrP-?^0>cza&vX+gO%^9?A287#80}dZYj5B<66z+ABqw` z-ScuD&AhW#cH+Too-@15SFEX>yZEM1+?ui@y%oweVip^BAABeD)#%hS_iX1oSEud_ zSS)2Nbth!+k@a_WSl=%!dN<>@QOr(}7*~y{sV_f8hZMJ&3YXq2oe~;teeI@V<}q`@ z++IV=eZ0G}PE9&_&nk^o{zP~B!Cf|zpR6j)eV_buyDSx0A!pP*eUjJj>C7!lx6XdP z_EwqKi|VOr8hh&eZr+{wpzBFI`-@ZUuVVMjUvjDIq1=+IK83c6eJ|_J*xY#Jw84j< z2R9$AcsgbAo!rc+DM>k92QF8pNiVjMZ`xB*_{q|A(xXr1pF(P8t3UZ_qS}5+Y}w=| zdymw*r|h*1vVHS?X6lXmEuk~gdA@Cu@-tcD9u*XJ;mg-WbAQ@jsa4&p-;y(XWu4#k zjLW|&sw-2(=5O}R)%eeFdZ|iCpj%b2y{*}aEAfxo_N#X4XH0SB)q5LRVH>}Cs##cz z%>Jgwyv_z!?3b?yI~%;e=%4HBRJkQ8y{C0{u9>z|c#ov3%ci5L%Acb3cy_OwAzf?G zd!9L?Ov}FcL*m7I$ELF?UA<U5S>@`A^%G5}#j4p(Tr;uoyI}sLFCRjddkRijn!nUD zrN<<x|Kz6MK9RwpieBp%@04(7v)$+WDnw)Z6fJw-%l5%K$<yXZZasA5asQ-W;eW*S z+-9Hn>+Am@a1U>Nro_6)W^LAeUTb7h)=l0zIY{@xO*^hVk(M=z+rPbu5$mcETk()9 z(9^^|s$BFzedF=Kn23MN|IK-Q+GVkhpWWloJ+EF>dr#jNGk@NcbJs$q`)uAg_pTTp zZ^g;~44EtDcZyheH@>Qjk=h^sb>EGTY3r7(t+lGq67Y+k{3~$(gL8ATf7maV|DhLE z_@AM1?UehIcio%(a6<Rw8%I}*C*?EyEJ@k4;_)(`qR{yh-@VLUT`TRgdD0tCnFs6D z-r97Yylkd3Z^`EL{|qzVXvgpPYgsqj)Z{r=`^oUMjGH?nt2Y!T6&$TFcfXT++h_U7 zeM#O;COho|-hR?Jaa_&Mdk=R$>%2EJUV0o?t+ej@Bd>ES<*?bO)M+=*e!0K4WA<KG z*I$eOI$JH7l0K=pWv8%zWBtUfzh~||v-kLp!?wq5^;GR<xMq1OzMZw$ILv&XiSJ)k z4gLBjQNOk<me0(bz4)!rd>=zA>w?oKgUq(LUE}V4sq$xWnEbp>oyf&sPJTSO{7aPH z;-^Ydh3>2}U18dm2Q4n`c=Bcc(W!qg>bZV-|K#n1gEK`>Hnp5{mFqj_ch9wHt0-?A z+sw_AKjnUk`JgKKN#m0_Yh&I)S<@*!AKYg4-1zSDM|#f354sWF>T?%;xqJG=e4g(q zcO`?(c5ILHIOV_n!MnGMR=v3W<h|3f;7ZNs%Wh0u=l4fh=wzRjzGviApS&7*b^AA| zmxZ5BFA0@+IV~pVuKG!l9W`HWEvnF)7%NpHz4)M{p8HPOJ7PVOzbmzlYWObNTUmc{ zZsvc6lisgP&Hgi}FO`g2{N2#axZ2yfJBI70g_dUIgRL^Xrf$Ky+9|mStB<>Q<)4@+ z`A7I_fAiHVVL@`U#q~~koUE5sU$$pamc8<2f7X4o!_{7X2+~q7Ok=n6ecgDf`&LBz z<i<L#z$M)^oG*?y+Ip1FpM0giF>~uSkGpbQ3)8n0);$WG=DW%DgqJsas>O60&i$FK zx6G>-{gK{cd!Oy)o{3W`%sihj3Nrgpm^5X>scyX^N4<IO#!R~?aZL4QR!Ht1{_@7$ z^ZxUC|1%Wa`RLRVUs!bFlAD}YcC$vI$H}GcPyR^iCTyKnF1?-CXXP`tzv}gk%bWGT z#k(x(-EeNPx!vZXAF3Z}lrFmGyCxT&mjBjWEOz~1+Pu|$k|OpGGG=Ep@8b+t3#$tE zedAl;5!$?4^<d%$&8@kgRNd8|>@0|K|Kznplgp0lLtdBYL%|#C+{=`LwDVZmg|tjl zmQ0eq^4;kA<n3Ggi|;yrnRioKUFF4n(<a|Sm+hu$Pd>EGlRvrD?~$fkgjCS+=C5fz zX{v{}xoW0zU1u|B={s1%b#`|3*-w3ea=w$wLKC803lGX&-m+55@L;^^rzq*!hqbs> ze@J{)J~8D?;O=t&g9UDZ%O=hgnK^0A!FfI>4*oRG(+R#%YOk@Z=kd4vgPSa8-2QxZ z(!Qw@mo#?j&Cr~tJ3~u6y-N2%%cJ)hZTAm+uj$@4rPb}(Ps`_Pjpn&bx@Ba3(6`H; zbxV&j*U_CE-Y2WKD?aht;GOZ<wDEM{w@q8l&YNfF{;E2@@vYlC@5`-<dApQ(O?TS4 zZr<j0)q0lLyNGW#V)v_UU9~sOZw^wESG%U~|M%D>?dF{O8QUImx=-Hy_rz((xv$P? z-0Asp@>QkTQQ0ebmpnH;JsISl&tg?KY2iDI7nfa)H&4#@>OO5LJv&|5WAmrfSychw zD_@*SvnmQQKJPW@;BL1Fv+Py%YH!7s3hy+%+_%F$%RKwU%>{Y04X^eyuQBF%zFgAy zV8(xjBTHh8@@8pqt+?85)MbAs%rnc?IO$M?aL|rfuYW6OZf~0Jy=JD<$qdg2{~0u; z_jCoP-s8K+x@Bj9DYuABLCoGGiBI0TY)`B(d+m9>v1a;;vPY_!zyI`?cqjLtRA(=< zUGy_`>*SOP{g*>jZBEYW%b#d5|2MbH>=`c$VjkZy=Lx*q;^h~)Xwj!wQ9ZAGS%btU zu{U);=<JbBcsuQ$w@;n_73W($I?|ps+<82Ertf$zE0c8g?WXs#a`&oI%1>&lAGBQF zJgMtL9UspOo$Z&Nbhq(cyY<8DuiHGnbC;!7%3triyJF^T>D0_)?R&p?zn%0$x>?JA z%lda(Ydg1ktY<r+)ZMdkdUELG+jp|>>k79&@tBp9<&v~v;#bZslU=qfd8x<czvvvx zgBPD}s{C^?ee&+xRF)T8=87Izb0~M}wtc>5qnxIHkCb_`OlOH}rf)*rwnZf|DP8@{ zH5+{sR+)#+h*aHvC;d*U@m?$A2z$2VLUoNqPNT<iPjYAbx%!(0S+^}d81$edWbyn- zYwq&#Uzx~}nP}&lzoWq5=+1uGMbo-(oqPG6*Q@Nti65HAn^pID)#@xxyS!cP<*JwQ zY8O}Q`Ycxr*-#awuRnQ5NMuNm_Q_bogZH8ytm8>JIeE*GneWn~U-r%Xz2uSJo&GBi z?wof0p>wdx>)h9%*MXg;kr`M0XAAP~^A9deTizpZ>xa}lpIFh*pF*p(Iz60ow!PW) zVC}T_6&sV5AM|~2Fz{Pv<tD8^;yeB=yt(2{_2o3B+^F>JcD^ew20dQ7=+94E*OS|( z&OI@y%hLK&mdb8-k#;sq^+v}E)y<RlOiX*v9Q0tSN5Di;ML(mQI4SdYBFQq{bu5ck z^2>;AxLCa@eX`Q67t7w<P5bF{EbvzHq|>4wB6m*NaAV5yJ7v4Ar};gs^@&*fcp0Bn z`f~B)59z9fm*va6`ro`NyRr6dYUHhVZpxF3A3s>KQg+Q-bH3Jps^NuqCrM5C_eg1$ z)7{fb`*&RPe=x~gBQWsPlfWsgTZ61qCs}V!Su~CR+My4*J-zGy`JPsLdeC>uQ_tS* zMf#10wAqhb7V>#F+vCX0n$0`Ku5o$%bGtb8M*rn46JKQ+eVH!Px#DEa#3{+mIe{CG z+pAqUHD&kA^GX@_MVq(Wf0F;;_)f76<|h`jpWJ4dwA?3p?&j<d8taP;$|hFLNS^nf z;hXhN%|zKXyU)8!iMVp{mQ`w&*UfOZ+m`Rl&8jz9r7Qnucrcf{aBGFYVm*#Gk4~k9 zaW!r^?B+A=9+yGtlSTW^RVAE%^XfkXdzoaNmF_;TZ8xUQsC;?Srz_*F)|*RLJUYug zdQ+9{c*FK_x^A6#=z8(yn#7E{Z33%<|MnGhCZCjjdA+$}+mrRoU*7D^)-`LpyRG%M zO7F!^$?H1Z>je9_*GN=a?~yb-*<AYIgPmjy@6jlgy()`xF2^p;XM3?bMP{e6?fiEk zKUL-5xi6bv@MpTxo421-4=H`Q#~u`xt`lS(SFc{K6Lk5>ie<KE-=!J<5!E==`(Aaa z_fq-h%N_q2)Rj_Z`lk40?6{TGo6z03G4t{B^(7nJgM>nrE{28cd|9$`nNs(r7pGnx znE1om+wfcR+Woh#_<m@$tk7zg=Xu@~9XZeUWXXe72PGCaZ=ZN-v!Lr#!DD*8=gK<Y zJSey6@>l9!wxX!NDQaThs}EJTHr}$$)q69mZq=;`OTWDPE)`YOUA<@a(-swtV`jQ1 zqNX?9(%O*uw(?Gg>#?U!vkqxD+D(=7dntSF;<gXP8PNr&{CB*au=e5XJ+tQt8A`i- zPFr;R#B-r1XR7O5pPUo8bWr?B&t#zwWs#F*Wbb`i<7G2{@~66GfrVaY)^Hw_p3nC1 zP~b_~4a-02zIpOT`b}`^@#bA@6`E!fZ%_Wzy7iN(#>1bsy6>(tU5>~Wb1!~!SDxwG z>dP-{MN3b=jN_5~6s1vHlvsCf=^v3FFYn5Tf6DEgw4`jh8|yz;@dsBguV?N*{8D4P zbLLHrqsb@Fx$`##Os?MHwr*|tqP&R7ACAj<*!u+g>pV2hd3Yo9SCyxU)7_J6I#o12 zl&5k!H_hCn&7w5@yHweyi>~WjCaitFwnFU2)6P)YKhrs7FTXW-*VS*|s5yU`sdmPi zEm0yrH*U$9uW{nzl-x-N-)SFsE4HUUU-g=6%%<7z4C)p(U3&1tO^)C9*x8L8&#tPt ztSSqc7+B$I$M2sf7<h2f;}d^FCvR`lbU!(D@`tcV%PiKHpA=pDURCVmi`QvCOiQkx zkNI-gdSV<;$?{A0|F+DwXS<R+r6BC0=L6R-w@$5*-Sg$k$;^MeA^T69lsI`ws=df` z*@x3JGlNy0_jhZDt++h>Qj+;BvA64@T}5~6Tv~g1f8)LBuX0t_e>JSmXGz(!aQlgE zMQzJZNn6ijmC)Yo>fL*fSGQmE;`618cTWGi?5$1bIkunf8s34yMyJ9qoB3Vs&#PCh z5G@FKG`DY2@5WG9{~IALk53jS|1?{4M!IHZt@Tbljr+TG9zBWqD409(lg2xxX-QE! z%UsUe>iyK(X|JByk~%dkr2j$r#hp(!>*RjY>5j9j3byup{NP>r<qu^ujgSBB>3vy{ zdwbHIB2BGr>63asMW*=_XnNk(Rb25?D8=K{rW1MXJEgk3Ma)H_OrDm!S9>dYXT{oD zuf^A*W`A*A$*Fsv?Wbur^Ry)!PGlU*&i&vN6tQr{!aMFBWxHK=h)Q`D?r5zMIUS+( zEAr(lms>mRn|Z1$?So>ERZ7p_^4C6F?6!#d%#zhUWw~p_mv&3d$%&isF+|;sEA3@L zRE6M)cBRuri_BN<l+K$tPvDXHw(AkM{&7t*JKp$ynom*dldzZjo1dv!nQcg%cC4JM z&uvpx@7_iK86NC<-n_N@&7Z0N8Itw?c=c}xYO(J66tg5;W0%aXl(&6+Pu(j|te%)< zq>^&N^U2lqO<lL|co#pp{;Op7;!l2ZbLMUivJcv}FLd(WsLTm%|6ZFs{jy=j(X@_J z)sy<o-2LphZY3Oa&u8CxbE(=p>xrz#IIhgtR3=^{E?6^jTEIWP^DISXJB4GW>KCky ztj-APUMX@<aF?;%^W+j$b>~ki(>yI^mzjn59v8FLf4nHr?DVwQF8N#T=^THiKKYb$ zIXw0F<dTgluIBUl^Y?PqOt<p*YqPnychRDmJCi@;hghCxzWrc{N=wAO`8#f}nD+S6 zm5^51J>n0ZocED@eR9%&hBu}Ao13$ApS=Iz)wZ7XVv(i}*CO{6pNBK-IigmUE2^Io zO1nBaEWTOaR%wr5z_(Y@PnV1Tnbd#D^*_UgOBb%(f6g{<*|fIxt9BmPGX3(YNoN<n z%+9DP`nj&>knEA!S3}w*ly^S3c>CBRu08yhpPW9Kb)4VNsVM$a*)_N8s$p!C4!*6l zUhH#ZUHfjfjI#+V9#odtzRgvR;hM+w$?C!KcUsOn9`*%TYTvo>eEY;(o4GcH%nRHV zsd?mRp4hdCzTcH|B7@B%cj=V49^G;=H%ffbw#|797VXgDm6qkTI`Gf^pW1nrtGq|0 zC+;-X-!diP#q_n-aeQyQ4_n_oDl<FlXqRk3uv_Gh*FpBOhQBL*o5sX9=1P03dIns( zJ>kyP$jqXGT<=BV2b+^>&n!Q=Vs&fE^yiCxCS^}N-_pIOB<fb(3&Cl#|GJ+H-5n79 zZ?2m6D^-pMo?e=pzs!mMU};`fR(Lt%dm?w1P>qyf|4)H`Tx&K4zfXF*nKR|o!JRsN znNOyEs+kz=vQ_k*dFD?s4c`i_bC;7NQe8ayPv(9XO)hZqy==B|@})kVowr-N^x5tu zx#w>w?%4Lj>}a6YG><#;9$O?&s+4<p<HfWmPBF`ZAKVu%_z-aAWNvcH#BDG7bouiq z-Dj(?IPNOZ)w*L^+u9YIrPlR+xRy4hJpWG6RNj38OYL+HFBa0=v|Z-rNsrx@mX@~1 zcRcye@cG#J#5ab_x8g2l`m@PbKUtQrEidDcQrWbh8YeyeEG{<6c8UvJ&3|ITqF&!S zOKflYyp6Cps9`6$a;g2N16#J3nr*&x_4?g7kC!ifPx|W$Hu>r9(huEsQzoH0@R;i^ zwW64$xLa<s{xh6tiTa>k!+A3Oz`Kx`*y-lZx9=q1I>RZyN?kZ-k8ICP@%V{*-)>R) z)Ad7t%856kf*yUwmrM9h`tBB4QeLFHQ8+@&TfJOqO1kUP124r-Ze90qzp~rK{wH0= zm({EScl%GSezN`2#XI&>v_Hgn+b(;%dTGh8Q2B{9v$lV5v!B0x@|~h2_Z{Emo>k90 z*{p0(SG8}-FSCgM49fdvy!hw(DOY>ZpFZCtCzJb6uB<cbJLi>Vsccbc`t|Gc`x+1C zuemdKcFOK-wr9J|BRNhVvOIVz<yn8hdYwN~neM+kLMmKO8qHVk%-l4or0XHy*|*(+ zc5Is_*?Uga)%i1()xF^6PqVWL(H={z%|-GihTh7%^sUZoN|D8$Ba_<MA1tf${a9hW z)7)@t<8$^j$(_8t8#gok)?d8&r{&9Ak^RiwPMHbowqE*GYaMT^UK8+8;ttP&Z}aZo zeDG}!@BPA9oy|O3ipmYYWc-=mw1<1L>c$G4=c<M&7q6{zab3^y`N67#8S7P-#Z-20 z4h~H{8d#cjWRiQ4OrMu<Kb!lGL(=ovdglM+^8VvJ$J=jah{o|dbuQa332oju{e!2* zC5wYW5!MwND<#Y}1@>#ix7qX>226S=Co2BIOjUSNrSr1HDfd<NT-KE6%%8lS<Fu&K zpGi6KeOuFQ4Np#Qnyj&T;>}c-6EEJT%i7zT%zv^uIAi1N=ids2HQsf0%y3KaJ|wfA zjmI$J_y_yG-fecT4PsNal`DO8J@VxAM#JmMoB5UQ{%sZeX)5jNJ(+dVU8RC)i}vxa z`W0t#Cs!yiX7gULyE3biw>LiU+$5K?B5~ufpeLETO_KJXXsKrkQ@5GA)N|ub!zCX= zipmpq8=jU<d-20w&B*nq{(&cX{W||VPCuRbVCjJcJ3r-KHjn((Jn2Dh!7rO$kMaYZ z6}H!6d_Ng@t1Cr!>v$GvnQbfc@CrI*ZJ{$||AWbk?nKU4dRbIkczKtZxu?W~{c3Y+ zA{MNfW6zp*c1Bpizgr$VWol=>_-++a{nOyg$-v|jm!IVMHw!JRzRP#pdLG{)U;e7& zO_mF5I5W+EN<}Q*xp;HXlHf@>MR(R*?|XVsqsHhT`<Bc!SBs5ho1&{z{&c?2ysx76 zY|i{iUnVYB7wvO>aqs8{XWv_$eXKhrBSn@@o@MUgaXIt$9mnfUGwwGVWr{4#IM2Lz z*QcU<UE}S|BIR5f<tMHt{NX&%|0E#m%^&VhNA=ksENQQiU3`q&smAE(!5UHZHrqx0 z6Lr_M{&Ri1Ew6CJbm`Rn%w2tgyYyxrbGd!8J$<`+-psp9Q@qyj$xY)9Fkb5VLvsz+ zb-&Bnwldql{gIr;v)gXg#+;9-dzL@wDam!6c;lz_>cvJ{ZVGAYTb2r*&OET9r_ME? z?Cd(D{Y*WVd-*(POBSoHlyaW-<<TGB4`)~3Dtjt8xqI_w&OZIHR?fATTz|!gJc>y& zdF=7oP1@c&aLU%`oGH>J7gutww>5lne>wML{UDC$2W#T`=DqsR&TIaw^S8(P6?umB z>S>E6ZuiPO{UCUb+4-lvFH+YxS;>cYtl<ju+9R~rW_FCnsr((@xhi$M>Z0As`yV$R zO<c5CM>5&VdFOOqNB61_^|h<h?kYv^v}cy8kzTD+J&ku)K*>pSnf|MnP3|nX$m@Bm z<7~Zeclq|oS;>K}YOa0})&h&Sv;AlIsVB!X)yV9VR;5#g*`16t8+2_WmYO!k1b17P zOtLnxbP97TNXmWku0}-r`RbfSQzc&38lCQG-RAU3%Q^Yh%*noIpDE9p&i+(r%HKzO za~4JI+g|j+OUwMh_KRGX^kilVCwEC*u5>yZ$m{F5GS}9skM~!hm&f*{lLcjF@0&I= z_sM$IUsHn5do3=qFnf9AeVfOQM7~oWtmG~iPxrOW`abuLl&(!Ar+%}l>j$r@^#@me zt(t!^r|Va&_j*>l6F=qlUp`w^STpfgsmj-D5)Uoa*BaLPb^UYwa_iH(819ms{l12| zmlkSt8MjVct7yAi_VAadZg<}u+39?HY2&*~2j*-{ues+tG4iLG$;>XH-a3~{Z$AY^ z=pEf;>0ZXFdF=eMsDh<QJ$v|NTP98AuURY7d!c6b*VLph$6p;;^;Waem`A+j=wu_! z57lc9oqSbwa{ZH*Qr)xS{LG$)$A8Zh`Du9auG^KJ!hJr8{e>JatS470>c+b6U7Ysi zOW*Z0$zrWI-w&V43oMp43vM=8v}8j;UB~u~tE?Av-{_8AJ8RRub)Eki)WZEFz0`B0 z)9!kB>3<4xdu1xllYQXrwsUW9_ul^y!Zly{?Bb?Lx}Wma%m}?aujj$zwW^oDT=bK$ zc=`Hgqo8Mn$=j!jDO-Ad<3GA2*RRx3aSo64T0Z%U+P!zK3zx4p-7V6pzbe-&QZcy1 z+dVkU<ml?9D>Lnxu3hOb5%bJCE`KsmPuI+RZG_p1o42POH{0#=DX&W_K;t-bSC{qU zNz+u~-prV7>$>K$jNaL;jc!Yxc%Js(eqhdmoH?rh8Q3qMcK3^2caQhB?A(ddpR?>% z+dn0DX4|PEr=BqX!e2{O8?_E@p3>dCVs_%>l6hP~nkivdH~+PpbNk9>-(Pt?QS(Dq z{gF|++1|9~$y-a!S<_yM?`QUZWohgG)w9oP^ZoSY;wKBsW-L80-7seMgAaw1WsNVs zJZo;|RoLr(NcF4LXYZ&TsuKE_?l_moY|S>wyBO3W_+sa_iJ5^#6T9@;xlUDQ6h_C^ zaBq!#5H-toliZ2hPF39-?wU=xBsa;Q>B_t{Nin8@?HQ*RJ$kckQ>>)+x8lpq&CT)t z`At=&Gj<vI`|epc^}*GP^S>)!y*4$|^_JYcEy00(l4}<q@@Luq$~b!IvJXzx1$`&> zJ~v+cRptICi`QP(@lE?0*Zk0n5L=eg@oQq)-y^9Drz&pVKDp$cck{u!u0QmSZ#k`N zGvno*b43-&le_MuS=h+kn0KY1y&$aKH{#x%jVfwOs;5rfan5(wlo{X370-LIW*zN6 zu)FW#jpe>KU!Ai4TIX}L^vQR*$9IZ~ioA==UhFc@GP`AV^mM-O9h02h3uAfJHf7bC z-m&3lI@mGgtZ&5ciLYPz@2pVNG<p8P%kan^#p9R#;?<U~T3^n#q@vrrQe|uME!&B2 zbh%X2CDYtqSWUEF8GE?vgLSF<o}0_{uGxR(x)|^ADrKqnwWR+H!RlKLb;Tpp7pl*g zsVV8YXvHD@Wj>|H{dgn|%7lCNEPkb|Z*-vRKZD{WqwY%E9j5iidc%L3mPEhL`6_SE zvb8k%JkzgSj^(TM{Qfg2w?6oK<=c9uU-_#~|J1Yn#rA$lb?_6<r;82b+f3DS+{C>W zew%jjt+oG?!@8g1eLj?(SQh10X?WhteYbkCg`PI6>&5$%IgUz3$~_5@m0!6!y=tSI z;KB26i+mMz?F+svf3NnnDC@yA&*kcFrV{IN3jGhB_wzrgtNwmEb8+{!RKrs)OMcXG z`!3ve%xll|G?mjeo!%|x6>{^Ytq!Q;_Mhi%wpwKJi8n_->H7sa-JO=iGyB@HkKsOZ z_lWBGe7^ko^2f`WX_C{563PnB2+U1f7`Rl)$p7GRpOebL{&hc3CR|zZ?9`PAlP~`n zPR@I}KaYK_rn%aiJzIKjbuQD$s}6kSdD&%4`jiP@;=erm5M8_M?+^3i8auVDz0)Lp zpD$O>Y`rWq)4I|q*W>x>vgBr4+nX=etg_wtVuO}&+GC9s$8P?VDvz&wrvA<Us&kY< zwT;k~DJkx8o^Lj7`T25pr}UDeFC9<$H~#g%QXk~qtP?Bv<)z~Bq>}2;sVn-f=#)<X zHFYQNOR<^JeU)ZAb!J}aTA25%L-o((x;?UWzUMO5broHf?wjZ1@YW+}*0<Ru$_L+? zz5DXj>-xL?ld|V0Z@rZone#_>jaSCkm}|$XHr6k5&Ut$#^k9qDhnlVnv&66Jzg2So zpq2JFGf2j6_O5v4y2V{dS8CsXs`|CzP4X87ohuV9YU38)mScTs!)4%JB@?eQ>A@7$ z8RuC_<J+97YQlWvI`4#pd0pu~=$o*`=(uZzb>+*PEh&%R);IloEjW47jJ4AvtbG>u z?U^%YTFj3h_N+4`&1Q5i4R>F<R*u(w<?@4dvr61AwB4D|{LUxZ<VyU>ys)+%wuhs0 zzRfbq)|l-2<@l|AXJ*)*IWt$n^0)EDS+|NF+VHAQe{z3m+0n&cwe2Sszr49U@>bHM zhch4i5f>8JJ)Na|kKB9%rOWRk7pE+lGhy+Ucl}pR3AgW*cyP*8MD$ulVZ}153YCA0 zN>vX@-+R1dkL<FDS*OGgE?qA1?v8tU+VY9pSGHK5iga({4_x{3r_=lkr-eRr+8&zD z5;C)}LfQYP`46K${>ja@7O$J_)BJe!<~Orh#k)+uSzELzC_-0R`^{-fBd@=!o9E2b z*qN}i-lwl`cI=TQD{JJIn8trl|GH~VSCwwg^hsZy%ryOwot1q%utN8DRg})|m&;=e zuLb{S*gkd7to^)m&lGuj^;#a%GFDbU8>x|1z39ZTxX0V(yYHCu=f*<ulTnxNig`!7 zYMy^Ed)23^S^2wEQhQHNGS%_?psBAa+_Gtwsj`gQ@eh_++xrA-6muWkT+He9kK@%} z7i*QG6~0+1MOA&Lib_oPe3zMFcv^5$_@}TbG4mgM{kP1tM%*p@&4<Eo3FmJg_vzaA z`en0i!71a5%gcU<E>C-JYqs>?vy;|cX3mqWCI)Fe_2^15d0e8ubXRYY#cSW)Kh?fy zZp+%6UpjY>oWGi6Sy0*(Wu0kH(@S*D%{FE$_*LCs_|AQ&+?VQ!opO)wB!ypYD>##R z;@FhF8(aE|oP)0XXK3>LRApU#Q}gYLMN!e!3#y{-9G%tsi06C2+*|3pcO*~QyD2G3 zX42Q$yX=<ndZ*5sG;592{6|^No_p8M@;&*x!z<>(r>ykmqW+wvo)a$b`?mS=94@Qu zO`lGDQ@5XHtD7<>;^~*kOU}nfg$upC*xdBs^hDR!-4`Bo#ccNXvkRSc<$BZPKT~D& zkKaD-$7dDqXZ0!Z@1HqekKc?nNMEZyf3yEj<yd>4Y3~bVW7Y5Ld7LX+?y99bCAUq* zJ1%Nw!(R71f95$)Z(Ur^_GgYfTS|YGu}OWPvHRtu@aC=4F4?a5Hna1MZTp6Aa))oE zG5wVhUHK(ke^Qpc=baxyZLJ>5xvdkDG!D5{MW47``*N1lMek2_)8;+9xOUa!=$kj2 zj5Zo-7HGck-u>Xr{=g#VT@MQHcn1fT^}c<R6E(|wTSW4l((0#w7q5$4%Dt=X?EJgV z<&(CAy*$m<wq#}2@{Hp7IyooTE{^#rJJX(J-@KspCwIHWEpeCi*i*+IVeVzSRJmlD zkN89B`P-QDJ3e^!ud6C5zTB+wn4Mj=;`PDu-!?L}ccvV-J+J;`zfy^2eW!T(PRS|0 zsyjnxS?R9#KDkS(Q|si*!+}vEsjDW|t;znW@8^8^{%t+~uTuF%?TyFeUM=#fm@+eN z;a|7vn|bMb=WO=%*#A3A^^a8Vep`WUifdin=GM%3u-d>W^WmOZ`ZF%PX0KUO70}0# zdHA%!hQx%g%V!#wOb%4#O)JwA__EOca^rkfmv<p&E$XM=-WKV4+Dq(w^b3V)YwEXr z+4^NpJky*<vwp}VE|%CoX~IH|$0xr0o5t%}J#*!fpM7izdvhcHGn}~AU#xveeBHK< zwz?62JJ#P?fBV6M2jAw%NNjGiiqO(1^yXPoJ<EQj{!i;AM|Xvto!uX1baL61S?l~? zd;jxY7x`1as!)C5^3!h1nvZe?e{%CbIr&cY#8Z|os{C2jk>}q(e*5IiMD>T0rk{T4 z7Pzb9$d;eF`+R03ojoc0TBrP^{pw5KW))6adCYD0*^7<&5k8lHl`eb#L-$kGD}RZ_ zVY#2qZd8>2sk||0@yq8QPIy19ost)n7Ofra8-Maw-o(3VNpJS6T<bA=eDJIJKbQ4Q zQSxr@1B!mFjg0<K|8t9~{VAvT@TD5{8mAU|dk0=WuyDoI^*4|I?YGZ0%e@lv&;N2+ zK|#vFNf(PUzE0_qzS}%`T6v_T9sAnle9tuAF6%gG$LHr4In($~QQ3py&zE{;x^MX= z*?BNaeanMGwmtF73Sts01Frd(a%qL9p7Uv&HTRX|gMF@B#ePWc@@I+m&+qHA+W*Es z=!fb``5)%5k7vxORQ|GS;*mYwuj&^2#-EH5?Pq^dkWm$~-hcU`d66D&{~65Od@fzt zr;_3Q%(n7%^JLYp^FP$O|2s3SZT>EgqTJJgd$?cOzmkY&yDKZP{+p?_(pII7E?cC| zq<ZvUeVg~$X^P6@6?+8x*6hCS=U4Tq`1ef9zw1wY|Df-!5fR;=*lT>-J<H(kyl1&{ z*7BZf=PWq?z^jJSvFq-%9dcJESJ%uiNd59;S&g*7KFNJQC5}ANw&t08IMAa+F;?Qq zLd~L}v{##?q@r?Ne~K@ZJt_2`A?};c(ev(yWj|D1%~-K2?Y1UY)WyP!Zgcj{5`C%D zHFe^#EBibTx;=G!8y)t;WKPPhw0U>7xrh6GUnEs@xun<D<B`x)u0WN4f?oq~&zn_M zCosugMd*{7`%ja4?(gb<<b$3bdzQD^$!gW(52~!5lB)ArrvGR7YO?53;mrg8R=>Rd z($0131MlBG>vsOuIR2*i`p3)7{o9rECmxj)nf%svIr~<*D;1WD?*-2mzWSdb`BPzf z)#4A;J%*?3c+^h!MBZ)Qa>}|?Y5z2J-HPx}b?eq=eEIU#{48gs>n($eCr?ghlejuP z{mHW1sn5Dy_52<xNtcAybcg%SP+huK=0|e9x9*4ZMO#WWj?IogS)si0>!ed>x&2>0 zS}aoQqJ7X-b?N@76Mos3CO`PorKff7$IUxa6|V?<S<12WK~Qe)59Qsryw5Iv^}8rq z{iB#!_{mKX3zuJ9{`kB4AE^)ZPc)8P`qgVbV`AHuDW&2kcNzN%-(N9j)`O~#-*(<y zYO$Z?OX{5^Ui`Nu=lic;^3sNLS>H<)`zxI{F28R6{O$R-ir;rX#Q3;wZcBgnuq)() ztJRXi)R(`zuUze$EB~Kilg_za6MyX#yK$wCKiG}4j_Y!d@2yK=xh;9_2XC)b{llHM zXaAFFJ<q2%zREiH<WnNwn@>rnUwTSDi0;2E>-yln#eaqmw-#BYPF2a%@_KYKCqMh+ zbsM=OiTa!4_8*zIZEH;A@@<P2ekgl=JhN)DU+S_M(^)=MP0Y+Sd%t46iplnSQ|h=( zzdSwCx&PqW{|p<Iz4SGjn^v5tKd2n;IcLt?GsoGi9>1CYq1L(R{hbq;nT3^USGBJG zG?cXXG0E(B=#Kvk%2%$>PJi&9!FSbv2JcUf?mO*ON=phq>56>n)V1~9)qOZM>*W52 z6N{(Js?+%^v1R^AN&owiDvMA3JyUo8wOeb=%%=1&7iXwm-jt@AE@8c(-v2*C%eF)F zeUz5Bco|l&saCmodtJ=da*w-Tg%5oQo6i<`E8Z(M%zKKD!@FLIey=BIigK&M%8pHZ zyYc9Y<tYnSFIx0RXbShs^R5$XBpxrT3ctDjKf}t^TYs9{@n0%3)a3Fix)tj=Yvsu! zS1w;ETKMa7Nw)oYTf6>O+PjLD`Tn>C%G+uE5BjexozbatQzhra#gp%hmA6i>ExfMs zpP@Of&U|y^KPzwl$e2i5S^0ETz0QM|m6xyOeOqa;(%5&;BCA<OOa5@p<Jf)Tv81L+ zzn{PMr0CT8Z<U6Z)oZ#VjW5rep}Q?`#^M`&7t?x9+&$yEnRR89w8uL$mp`)w_TBm& zWe`8Pyjec4?uyRT9W|Totp2HeC9FPBe8*42=D2$qSMs0u{F{~j<x%gXOMUz=T?#K= z^2#Y+F4LJCXkODh-*e6We?^<C{xdK~|7XaXV7lej!$?*Aw^OAb?KFA%u=CH~Y5(r4 zab7?8RiNg5+V&51+>2|IdMbr0H<vy*(mFXerTN*prxODUCWm>~-qg*EHI}Kp`kx_T z!<&QqR{UAq*Z+3;@vx*bk@pYg6sfA2{gkdxt2_Pj_Q`ouFUxOQ)8ii==VgCV*M4!> zKfmwI(|7!}_5U~JYpCp{d*v@TM+ugib?z*<Iq^YMugJv%+uW6Y-MBqnSE^u&bW`oI zvl?%`mu;DJCXBo8sc`7Osz_V&r-3WEj?A5Sa?yW=PbTyK*&2RNUglZPw*TLe(u9qA z{s(n)BZFMNhM8QKO<4Z6X5yEn6LZs_bU#&kDqMEaFRJ#ao24?p|CduYE@^jL9)JJ% z&4ZOTVz(wtnZA5`Q{3dY)|(35)zpf=C!De{>*BbjD|%v<{Eg2SFZ$aSq%W&a-YWa% z?UQ#VPmcVpsqfghQ*=37$kjUERk26&lb56%T~?kdJ!$i`FIV;1(|R=)Rd00uBXBu= z!K52kO|r6HhP_N*Dz(e|_r(7UfxmL||1->Ing4ukLFV7+>hGNU)n@-ln{s(i>ApQ* zjz|7yVA~w?PIb}Wd+f{CF1zzbR44O4L+Ae3s(QcuzpAP{Gf!69#@>FAx9-u~*~<^A zCA|GmzK?fu$&ss;%ACqZuJ2EJMY?$zoGCqUX6o_VO=l$C*+tTAbxyV=b}dPAKRKm* zakG%2GSBK0Yo<S#ta7hPuXEot;}0Q$)2v@kZkEm2H#=$e<OlJAUvr)PXC?Pvsur9) zSxw@b=M^u%E4~xko>gVveUjU^Q{!M?pYP)bnbGwuPgkrmicq^gE!S<{lGT~}Y$W2- z_QY=vnf&v`FYkPV6A$$zG^)a<UY6gy@{iQ_f36d+-%h^vt7Gpzfh~_#X)n1V7HDf( zq5VnYr{TqS))mScX0aD%8XKi~+RZd53Xjt8>NEUS5L!F)<-xY1l+_k5=k1p@NbD-A zkexhPb>q`XuaoLiH+Q+-U0Cw&!Esi*E#dxOqki^O_}paQ?*F0eLG+CG6Sp4pJ}JNa z^1n4dQy2aXTNStEn$DD+lT#M1?yTY8)qnZ4(2O}Y^O@9N?|56UHm&{gNn4Z6&Ie2K z+Sp&8Sh4lG&aYgL)thZ3obNWRxpKMwPH(N%nrWtwVk8enY8*U%vv1b?gJ11`%kAs> zn_??lljVL`dHHIM6@O+gR#o}syKR3{Ir|;!*yG3JuBCp7wR~xw&V1a@d*A*^H_J43 zZNJQO+}rS5!e5U(Cx55?>Uqm9=l`0T_E$5{x##l1w`svI`)0oODY2?A4Lm5jC|>Q- zk|6g7n|f+bm$Myh*%kd_ic7m?bzsqdh9v#ie{+n^&XT`y`Ou<=ZJpVtVvoIN^*C_( zsf4RH^Q~i_ZYK2v7bW$rQE3-F`Pa*SRnQf!NV$2Nz7^E*eY92gm0ohj*#A}1-aivl zr2buVt5^LyrzBqWhwc{dl=3K3Q&rvFce~w+oqz3LIHfl9A)i%$&f}9&MMeDwCSRy- zU-`9b!Tv3EJwe`$Cx6eZTFp{g5?`?SvVFeFQaP*pF0o$@YxZ9*shT|ZLU(LkU^81) zz?_YY8hYIBtC!q+@yS$kkGRU3cb9sVFMm<ey|KUfOKShgf-9YOx$T#{IX7GSVNWKn zotJCr$tI1^2k)NTt@e(z<8puE|D<}J|M45&MO0cZ?tZcG;g{uqk4!q#aa1SH<K+u` zNv%GEM48=|`hh7^7OSVsSM_L`6C6MBmAe<8r~KnT;_PWvNp4GKHt$}R^5{&Km2}=W z!DNr9s%@4#gWPWHW51I)Ev7Ro`&6g1`|VHVXE!IEHunn2&E0s~JM`TT=~eX_(YXuj zrf%+3`pWlms$}Fg<AdA!*b7hYi?FnGf6~8L?wY&z?>}GmZAqP>Te6=0@p^Szo#)G$ zrkvey&~@RmwceAz)Xa?3Df-j7wK*qL;I^hf(6aM65zkkO<ozmJvv~XDPg%C^cOwk; z-RRm?t|J}TbTgN;<XK<-T0ZAAwwt>b|KT)md^`0zbCK$*Ywr5GU+#X*di=pZSTIgd zecA4+gyk1a)a8rhx-(s8z8AjIz3E;1<}l^58BfzB7TpwID`T7!>ar+ck5S>Dj;$v( z%sn};*-Txsa^h{H?Tfz3E^#xcUA@#{`$;!}@A6GjVT)!z>0iEDHu{I=Q3>IFem7+| zS^AvXY?bPI$$GwPS4QBaS&P3K9p&}4;rwv!=GxOsH-G%5KWS#On%yf`xBm<eLYLj# z`Eskg+FAAaYHxjRzV?14HtC1)*DSYn^Co>Ym1nM-e9P2E?5oE2Jc}h|{QiD=dwR3? zU-_XbKd<l4jQZlF(24ItOe<7_PFX(4`jne4t10<AdgEoYvs@=l&fZtO+1{M<cz40< zBPrHK7V8Ax8UB{OEp5+w$nWghU1pa>Ke$!p-PrPc`P3(CeI%~9=PlfI)yR1Bey-lw zzN`IgOP1<(sW1O$VZ9{x@`O{Hi$z=|R!{z9)c(^_EM|$;cjHf4uWFrd$3$#-eDuP$ zQ&%H3ybm7C6@Ri?OU<wNa!H)$oq7Kmn66&El4sAVt8E|bou!%ZZ{cm@yXo0R1*s+b zxBn_kfBDyL?(C8;nX^rQ=O4IJIep@>H#gNxPdwGwGga`F&9Z{L^vBCNzMA|rU;k?1 zeOvwaZ=amF6uZ=YqQ&N-N~1pe^vOy;RJ1g^GbOejlzqEn;iZ?h?kDHpSdwe@b?d=k zj}?1l?)%7mS$SgN%d5QacIy|uc$v9m&&Jbb*LKPX@0<D3<IY{9+b3Rq%6+}^Yt@Z) zIz=_o%ir{?|B7Gs?XcLMiC-QUZO;GCaC33Zr<*%F_4xgiKF3T6dFp(n=ex0mD0k$R z$BGq(Gv(H;xfRb;l7GALS7hoT{~yYG^Wt2d>Tasz;W7!8c<J+asrH?`o|{o8jjYZ$ z=OiDz+bR9!$%#|3r$0G|X)0PB{G75VxoKw8pDDLQlD@0uUyONja`K1p8!P+|X1rCq zt7WvZrsve(Eh=6|W91&RmQL*7&$Fc<wRX-$?{6`yx9n$~yLNHCE5EJAtsUYAmo1pS z`bkg4owMo-b#JXrX;GZ6=PSRc%`9<NUCa-m8`su!&r>=7RcM;K+V85|n38Emmh}a1 zuKaXvd3JQmT}8K|>Tr(zYA>b3nWpqkIOKB6+{;u-|C4Qn-&W-Z&%X*DOlSQm&Sa$Z z<kkmOk=rI;z81WgGHZ#WXVG!l9UWJNE`Jns{_V=DcX_++m(xbaC4~zrUG3TCthB6D z<h9Z4J*;tSdSTSWtX%~O+xGBEgy|l6s1cpi{IKrw>x^w>KQ%VG+*>~B;$-I7%HKPU zQcIpZU(ObI{N5Jj<=f&_4Ht6kZ~UV-dCpF0!Dqc^mQTyd-e2B)^-6c%iN9|D8PYl8 z*62;x{_>Kou0^<SZT^bbuQ$9dJbjRyth>gzCRSPP%7?tVE8*W3^&M?J`SR$8vOPit zm1eK^3H)RG&#-m&Vyi!L^Oji4f0vySvcsrIHSO64wV$?;AEKJJxCfVS@%ArOb`Q3G z<Q-^r&%Dgfzb(Geds5V`)Bmcf`wKpqO9sjR>Qu@4Yk$$?K}UA>7TwtRmFMp1-1j_^ zeX;A$bV=DY(XFB%6n7hyeTufO`2A-6wl%9I-IQkDcv)%huWEnm_}!D|{dm^RnKS3> z<SYNyH`@vcsb%?o>FW2+W)ltErK)ptV|DMZUG>ZATHfw|EBauyp27YT>!+QyU+y=> zQdjiJ!rr%Lp`7}~&zEFIrzDEswF}IjsIqqBlGQ=!XXdLex^*!8#2lm6v=^JK0(<@R zCz;!H?(AAQ?@Ia6lGA3}r<5%`9Fpl~V&$E=*)PP>&#QM<+{3+og1X(M_UbvYbzIY) z^t@X7@A<22*Y!{S#-8o`tGXm=vi}D^FTeYfznZE%uJc%XCOS}bt=Re#-?n)d8>K$k zesCAh_V4jG75{FpPkR#I<Xqanea^H6H}8r?$;WyBo#$V8-e+d4;q^~P{#9wn^crWr zIIz+>DKlEEZH>^S>67a(uWmp2pJC=5i)lZdr@Q36?6`C6_|Ec@ui4uqQ@)CCG&<oO zTIQ}Zt*?KZJ?raK!>Y(VQ$2R@+68WZ;2F8|%cr6wpQm%gEyb4CH>S0(T)u9yjQYw{ zzp$thi}L|@m#*IFJ#nwjqQGBsttb96^psg_l)iJO?Y7SRNgWU7GdcZZZIa!0C4KUi zeGyaopKLi@Yf$G^XcXiwpZvS*uzE?<>!1h!JaseQcIrGVI93qz!&*!*<F?kqy15gl zY<X#~boKI;ke}v<!ycXP^Eo>A<UFsxcQ*4c^H?wD7|+J>J*9ioeWt}Fp$SEG&s@VI zw{CoSKl7)esMMq<u^G4A>seC2{M{Yq>9pfhoy1<9Q*m6^y1Rd<e_qjh_ES{K^S_s! zXYWp5&RQgOHFW#)^)KfBnf7dAKv|zrz3+p6vyGRXIXdrJvfuUQZJZueyEZM$w)Bfm zKDhGr*$0_sZ|>_lExNgVreUVnB;i1>__9UUpLObTZk3i<_I6XtljslrLE2y1dkpg; zM1w50U!TlgnDHQ<oz=?5SXWazS7W_WRNndHH^r*Mp0zD~`&u;Zq*uq$;!lys-Ng@U z*(xu&reZ5vom3UoyXE9xoqMTo)R(@hj+_~Jcgf7TD!a-~9Cl~l`gg|foqE3<xm8P+ zUsk(vwd<$y%2Uqs+mai@y$w%kY`v)HWOQ3BNNF|OoL6^TbyumFcr0<V<Fz$^tNe1w z&6Qv416i}5T%Ffu^5$SO`;)`MId|FJch8&YmeBulp=Rc}v#0!&n&!mRPdvKUw5HEH z+)w|fx%VrR{Z9(NF1Yj~`N4j9wXgpfF0TCeJ$Lqjy>>ogoB9v7o_uliO2m|jvJoav z&fPSUDy&SqTj%xQw9G=bOZN8pPj>Ehp4Rs&`KxqbTKvsP7pBZ-{#vZKqq@%OyOsDM zok#r>z0Td6<saUXm31k4hwjo8(}jnW*UP_uvTnN1gHP2nKZPxuWgo<zyzuo)Q(faJ z=d&%+WivVT3#ObXO|!Bx-MUnFQ^WVPw#YcIS_7*CZ!${G`QE?Nvh2v>OZOZ1_suB? zvCi<yySUl)O3lUF&zJf72bL}IzVt25?#$P1mM^tEytB6Cb*&U^>aJ>ud7mvd{o*T6 zw|%a*v9a!&b)K(lqo>(LuK4nwVflk7&x9UrrFA|czqWN-ukm(w3;NHH6d%5B-khWz z$+zEbR+IRYTU?S7JpbE=yh(;F>XK5kin4C0yjNGZHRmt9k=x7t*ZoWP<<N_fH!tmq zKCx}p>q5=B8#T|$q`zs^KKbS4a@OsA6U~0Q-PG$eDd^)iyewg;6z~4^+?P_roT~o} zUU&A*s`Od;q5S2XU|nDSv^BmLPKlo~H!@N>ezC5~bMob%MrJ#NFP~0(sdU}*<;QjP ztkaJDN<O*cw57_M*|n+`pIzqsbCq>H@g?a$gYV4LFgqXPFZXM9{+)NV;8WY|yDLuq zFw@k1vgF_5T^l-2?!Ecs;@7QO8Ea*u7A@9RUMUf{R58$>P5gK7akcB>$t_papR_%H zrEPNmSH=Ag`pz#O?7wmCV^j9j9V@?W{_<p&S>aEqZD+phXRgcfEjd^gI-?{vNc+Ua z{K+cIFRGrLG&4Sp|KP95%gVk_U9wHl(pvl`r=8A)UuSKOam_7p7On4$Pq!_;ba|Ei zh59R*%R5f?Wm#`oI^~R(rDgidlZ%#`y9G8HsdUd4yR(?>*2xu1cJDDRZ&r0_)w+FR z@j=&(H|r#u{#ofwTGw~dZj$#&4SS_qzb9<aR+gC1GEZMc{PO8CtHSS3s;VZ)UA}rL zcUigF%~JP=qB@a<-AR`VmbrQ#tXk#vcHR7wQE5f4JG8Yt7xDY9QvMXV_CLeQmH!#G z`*{4Bx>Dq3$i&H+zw%k*eT>#@zx-h9$-}9+wQ{pM_PK0VbPIM~{ylNp-7gEd-)xHa z)_bcdz37wck@#tu{~2C?|9t)GF6YAeHAVJ||1+#AcW*iWRsPHOSD7}Kv<jD{ChSPa zk3VR(GMVMewai{#W#yM?TxRo|w@jV3A=)~0iT%OQ1MT0uep$)89oIPa=I-A!=UucP zynT6aO5wN4m;1bR?$-1PpGrP@^Fwl@tv>t0ue}=kbWVpqI2i0XTgLx#dflS>M$ebq z-B)V$&HA93u`4aTK<dW5h3c9buXcR!{BcL6=kK4tKaAZQzwEX>v-iyDTI1iGmCEMl z{pzl!&Ht2X|Ho&}oEe7KH=5-}<wQm8m~f>c`AYL?v#dK?_DOuTo4Zzj#SdF^-4of7 z-)4vGmiU$$XnSL_h5h`^I$QoTB(6!BTCBKo;kKOQf(HvFUYycMf0Cz>y^Q0X*8Z&5 z%{jfx-m3+yDe6+x-SX&!^@qfQ>WHtVahKCCe_KB>tJY_4tbcP&(qj3>cM-<_8QAXb zH2-V8{DY~c^$)ohU(WwM>TxhtRCuTSqz>=s?gwp?JWcB6OuTug-gm05rR;@TU8(w$ zOJ@JOET86Oefr|GYvtZdb%D+K>Mj3VS1(_6S^8>p?<(o|lhg0*=~~Y}`C8AmS4Znl z>T2p|FS>85aWeDE{u|v_zpZD!EjuAOZ^_cb=9Q*)?q;7qq%Y+u`62f-cUqL(q)9=^ z-DTH(CQdRBJb&}#$@7u!CpGqQY|(w{eqzm1Zs)HhFDFl%e5S(f<Sn5oqBCpvGu^(` zJ>`w(9@#Z-bxyw0@#NgKnXhZhk=OHo$7jE8oFo5}tH<#_gG%bUBMWwjZJT)Tu2}iu z{|xP~GL`pn$}iVaetEtqrPh3scI5ZKqOw#;!|PXOy%jT1*V<*~7BMkUaC_usxj7Xo z3qF}@rtCavnDOeUYt7WfD`sU(Ti5ewnXPTc{U_TtUOKk#T-{UEle)1tJ2&0F{UCE4 zZ+`sU2i4wA{)<(1`78GyR@AjLIX(IO%{cq)9d}t=PsR!d9&+-EeVlvS)y{j3^cI7Y zud{ydkzXzT!~FDeTg|DTa<v0j%vQRbo_%mrjQp}sA-ARk2K}lutM@&oo^!ENdbV}I z?B9ha-=+mi_HC8(aPsia3TfZ^V4cUi%UL{=dSaz>-G6GHHF`QN_fnVtlc-6yq3=>u z^&$_>SS9yjNoy|enz@rq%1@oRvHC&Ze}>!%Q<Qzzx$9cW_Ixw5cy(+^=I!X&FQ(24 z`7`(Y!4nTF%=w>mU&~Lf6#iAJrL1A)_Tub&k7`q?iN#mD*H8S<u&Q<GlWfnW!e6Z0 z^*wjY=YQ~@;ly)wTLZ1woVO`U<s$B%)~FSBs?}cd<?GVTEZ639b_MHcEI-+F+vr2_ zq%TWmb{PN4ITQIdo##yCZ843&h#;4za?d*Bj67fLns9CLrYETn3V)>+3tg{06aPv% z|KL&O2V1|zEq;*ewJ5Dp+-0UmiG65v%94k!s;*U6%3eQse|<~Y>2e>Z3wOR0B){z4 z^vlKmKZBONyQix}=Nz$TWv_#k_SU_h`0{*o#k5&LaejAo`b}N_MkXYk6zb*W)%i2w zQq$wfJ}17aTzr|~o>S+(eC_(6pSG4+cmFdKW>vqrIIpEV+{D%6UPtE3)w30sua!y; zcv3ZM^NNX+CS}wIetGp&o}<b>R66`W15>^4in%k)_p@i_9oLYK3_K|xy-m4oTKLJ= z>Ib*^vnTH`lG^XRGVrtW<ttZ;eE#{`np$=LG+R}WvTs>bma*#BN%QV&3bod=JxgEQ z9W$-G@cN|dHzvQ{;nQ|AIDeAyouxb0a}-7X;fjg8eR5i0yYswxi+%ojM&1>+%A9%8 ztt9ZTNwvVYLzh2!<xk6gU#eM{a{KHipM5jrHpf1hv3=i@PU{D|e`hay{VD!|)5}Jl zT7%Fz(?Tard&lkHe1GD<#j<C6ZF*K3J$);3>EOSm`)>B`o3bl?@n)9P4`!QgY<ViU zWA9S0+{IhBsH@%9`jDGmUt-4}X1nQ!MZVgUFVkODINe_^W$Wp;@vYkuyZJK}GhZKi z(k{QEO;Wdhd3DMk@%>8ob-2B>{~ozl&lGfFMLqMhwz)>vCk0K}WWI7r%a)Q$&X-zb z4J~#hRd4e4t7ls_XR67E_(?|HE4iZjZho1SeRrkuC2uVik+7QXML$Hoyqwsh@Le!k z%A(e~r$XxG!Bo55K0maAwwT=GIPJGozA;N<#XqZh+f19f(^2jvD^{k|>MzY(WOV8I zN!?E?XLau3o5xpm>E)zFDckgBq|~S9)O^{$>C6<3{ga(NE8Jxz<NSC}Pu$6!l~yhO z#E;id{h;q0Nuv*;PYzsJn$fnbd+naNE3KaV3Sancqxkb>;kOrkxn5l}@$#>p*<~u7 zzOHIz{WAS^0!y3j&04#kZAsF`TJb0Gp{zllT25SCDn2`{ZFc<SlirV&C;wEwKDoFn zwbpOqtw~zOUFI2{o^luW_Ph&qHE}%>k~7;{wa`2~vuB3%gJq|7Yqy=<7g!Y1cmHP2 zl!+xdF_Vs26<^ObcZ#&07a!$1{rZ;GFDAC7w4JNZR<p9}IkDf?Wa*FBP3KNqPggzN ze5*`ROZ?#E=E;^~TZ|vIuRXf>O8uRxfRdZ4IyWT`^BV7X-#OiVuk0pw+md<xW|@0^ zWM*~Ay)yIDH90z^>_5YYz7r=WMooNIXqvENqls3Dt>&@YA>Mx8;!Qdizsjn-soE9Q zd8I-|>En|-GbVlfmb`S)ccU#^qugKFp18gG%PF_N962w(OPK2zZMB}bInFckRjt~x zANEWSy-(bmYIyM2j0<z}w*-Hx3ceh@&v*Z(w-<kCb-dE^Jp9VwHOsc$VY<s+T$Sh+ zdvZCB`?kk-iI+**PduEGbHA20-?_PKhn9P>!8yOcQ?@5gyH(aF$GP=%t+?Ekb>1&+ z+FQS02FGJHUEeB8x^4N-aAHcb?!`F2Khi&4-898ib!NPryydoyTK$r`YadR${GqJJ zVRF>;GV6@Vn!fYZi^LxLXXoAcYJX(fwmly|bY{QYcj~0-;^p#QKh-U~<=N|-tQF=w zKCy4|>^RO>EB5xEnDpefj**?~SF7x=$|q%QHEe7)Nmbpy`cr-JVoNWb`=^t#LVpOw zx!Ue+eZ5ny%%fVR?AW;%#)h?;Q_kJrFI18jv@FSYW}Ek%%szuYZsXt4rCZr`C71Iz z?{})M%b1eZ7URddce{L}zpv|hji?P>|5znd-EDKfoNqd<$ge7PTCYpv_`E5{*7j$o z<|VyLd+G76rXXg=%af^nXN=39@9+=2(-E?M_17g6HFAATn+hjK$2Z4u%{4T>Jo%JV z9p7geuBf8uT`5b_C)fORvk~ZCA8>HF^pm$!Z=Sp_R&YA!%!I37swb8Bg>UWlHSeEP zWsvC{7%INv_w0?wEGO!od~)^1`tqizIa%AET=|v1Ca`M$trM?aWo}<w(-jrur~jb) zQ@?+ZbfU{wvn4+_hX;HA=5?3wsy}4g$NkCs+P_84m;W<J2Kq+&X-aGs(%tP|HuXQl z#=A@7-`L&K_u2ARTJ`+>c{5)3-#xk3(zUQDIAU9*uf&T*_ars<=L+w$JAPexv3}p| za9J%k!LZz$sV5V*^vsc6v8-jr?j15}lamV`Y%5CqJJTRxwb?OW`-$awlccYvJe5p} zW8Eja#BRB}=!47GFK3#cdg&&|vw1SRtVEBLRsVtQiSw_xnv0cf$<26c&$_&Mf17t+ zvS60uRl!M>o$=wzGldE+-eq%jcFtCo)u>ynymEIYuczOov_)ROGo~+GY`#2g(ytvc zsb{Ay4|Q4m<zpVp!d0v8`QEDXF1GNv@}J?#mH!NP|88|}KJMjwvfh8mbK$QEUoMM0 zw>|da)XbYJ%G?X@F8PqA^Wgm7zGI*Ml$_jUBfVN)Y0bv0tZ&!Z7Wu2B#@QYJ=Gk-a zbozsnwbE<8{HdM!@|}_WZZ`L;{s&DDiv8_5&vAeGsgkPV7{z1y^784Am+>g;Eaa53 ziaK55ckldzeCN2Zy7nsb?3bSF57~#me6nAc`^wcDr{V+Z`Zi_%RK2sIf7RvuJ$G)M znD^(8>;?CnjB=j2JH%dcXNUA^JiZh&d*3v}c;!jqaW1pph|Q@;d$In+<rvv>y|J6) zE(b3E`{?}b`P(%`HI`ZISf!bexo7TV{oIAWW@&s2wpMjd3!JgJt>DbR%fVNo|M6c6 z%fC9!j`dSarBuzNO9gL#8cvdqPfGdv)aH-GQ^ocD`|6eNo^0>yEcO3Z@w@Qb6|YY* z6E-%!$}Bt5b@ksw-5q}>1x+_rwD`|ZxI4J{%kkD&%h#zhMY&Hd|0;ELqx==mf8K3d zWdHe>N&ebZIO)%#ttAQTAM!;N-8%oDL2b9kUj3CtE{nf%#T5AmzVtliuPc=$oc&b5 zKWyrs?zBA?_AAA-XD!k*?wrXVcy{xZ{SRh;l?nRL`D^Z_3Cpgk<=qc<nN@a4?LUL9 z`nEXs$af~+ej1g_JxLCfnDqL548Q8lN#_sV75cWAYvws_PZRr#_DkYUSuWllC@!Ay zZL?uo;JnS(CfA-{e)@IP1R0a7E;-dpCazw}8>+egq~&=FmH!O()p9;1=Wq7!yMMcX zW8g8ai>IZp#6A_e_Nz1ZV&l>;{~5gHFHN5$EhzDy;l#Yz8=VgsMWw~xb(vG_6x8SY z@;}4I9+xFIw)utaSL(mA_t}e=A8dle7pJ{Vf8`L=GU>{H24R0E&ipGS-riYXRi!uQ zy-r<rvGYWAX)NcjHF4_}r+v3_o7a;zcT@57j#($y+*o{C(boR8^AwA$Zx_uh|1)H# zJ^A3f{gnNki$53Jh)v^mpS<nJtj+t>LM5)ar%aX5IGDZcuIlc9FaH*a%%7z1dn>)9 z@UrrjkV$%>uC*pBa!+=<dVh_y&0ldnCQ)d|vI%z<yT9D@<!SoHFH5@CNZNXainknl z^2tle|L@7e(P7JeoOrAodm;ZxR9)S<D(hDlW6edc{bxwGHT-r_V(B#Vu(M|a7PT&3 zYBqhAh~0WV8{><=GGm2uKjqwc@pQJzxoc%l4yA_q$@|QFP*~?~>lq|dvT#S<>g7qo z*B7o|a&^fc@fF`azI@#xwco_c+Wg?3?pJoR9*Ul_zmoNz!AnNb@if0k#;fDMC#JJA z9}H35&5|y1C*jSNsLA2mn?vh!X39n$`m*@p{NSZ8e-&nP3SaAq?mB5Nax&AqDIj~p zG?r^d8QXiLB|8(mbk@y1^L84~iMKOWhfderrsX^L<E=EeWlPkjbOvu#cbl^0s<--* zyE~>-w@y~w$M5f!>&n0L#+E1B&FWWP>#DlXvdTBJ!p%Z#TGOGY6TR;~ouQo{y_xNv zyXIZqvri^nevrG*RpoY4)avca?9;k_YyM}rkvFr?s*Zide})^y^Lch?{h1uK>ivnO zQj2c8-B8?V_vo?Q!EiMp^IaPsPpY0?{ouh}mF*HqM>lWw^8efO!nb~7)xOW0dA{E^ zEKy&5*ZySGtU!B5qdB4Ci{<V&`^TT3cr9Iy-8SVRYtOv7cO(zGKk2&EoHEC5mfwE{ z=IcGG%a`r+@eUU9>A5E4zIw%!lH~skm!rK*OAmgHzrAytMcyZiV`djuE!*~L#Z8Ul zM^;>{3R=73XL?Dz%XF{pshTP8ChMB%J(}ecyCUMW*efaD@6wYWbkE){WHsUA$zs>j zldi1ly*Ty6pN;!<Zhbf(9&Gf%@;^iR!B@xSl`dZJbwAU}5nLA;^5*1i)$8--Uffg| zReS#AeVvjIyDUzoA8c*re!un7za#12ei-dLweeoWQ<Wga<$qUCbkpAQCF?(faz?dY z_v9S+f^SP*)~`L^5)<lDe64h;Xxh?x-$d!Z8^r!S>$`ERefip@(sk}Hv~u44XPERP zchSR>Gev7Pm4jd2-gau*lFA3omp%7)bZ+&2uy5j&gqzDvx#JJAuXrdM-z8&mrR?;B zY5SI~x>@G#XY|&6`I1#Scf(g@WoA{X@~kj#v%UBI$+Y8luF9=7mo(B-eJgdvb5qb1 zgL4N@=`GqL&#G(opFwr6@>iu}FTbAIRK7{D<4&N4{gWw?x|WaZSdQO$5jW?K_tj~y zbhdRIi@SXJvg*>T`6`LaMV3DOa`42xo_%k=9BgL2d3W-y*vskJn>8LUbC1w}yMOcc z@9SbDq&Mz$Eq@Z+vj2vkMyezCgXXT2Ejh0zO+KxC^2PC!yF+s?KRdp3;f(dlfk|_2 z>_2f|<lDky6*C@xDA&^1mRB=fsP{jEzqzFJ)>3Ju<$9MlK6vopa&e2?@+a%P)Lwi$ z5&D&HAKzJbmAK{VSss(;t33M8aAHzV&^2$K>6dGLqL#O5zTCWPrmoqiKHf|Hh0z7( z+tmaom-Ws2W$yiQ@z$CNSLR<ndSKeTdDAZU$ab?OTN}+v>NJ}xwC}ZZcVtdc`(C+u z+oW_3Y3I3mG_8NK_cX_pHAQX9u2gTI`zyV~(#*Fg?^osB`TvhFs0%PMFf)Pxh+<%7 zU}j_xR5Wx9Oe_>=oVakK!oiCVKYWCq#KveZuzvD4Go~lIQ}h=fXxsj&Qg^CwWY#{V z!)-FJj^8cJyfO92%Sg*a={Kvm-#E7Xb&5B!JEnVn(^tkf!Tx_c?l;Q5lU3OMY4Kah zOVN>6&w6Fazx>n1dp@GP{nM0N`AfonhYHBfnHY9^gYwD^NhS@yWzXr|QOXIOm~{S* z*!^GUXZ&X<_R{~|BYYwt$yZ2sVT)I!&Ws5$xsKoeGh8)uDu@lSntM*Cx~9k^%VVW@ zh)d`t{-g^*;tZ^L3-`oLe)R0{qW(yWj?UOwt!zSDo@?33zG?8Dqh@+uvCLhUHE~sg z;6rWJ?i)hKk0@L!TKxS}%za(cPPz8i@=NO`L_7Yr-){DpmH)8T#EnnZ<eF?Lx%-(} zOlC^LA5qhW3WXa7e`=ptH)-15k|_$&OA_`~n}xh(PV@}d))sr&bW&y80=q-3O`+>f zuRC@9>y#Ze-p#S$mO^J`MgO^P^v+wS>(b^v!TFd>3FnfSg*+23OxUxdN4m0*H|deQ z;!pmSUu1jE8sB)SA?A{7Cb)PSH-paJ@0%9PYyFnE|76<oM`2fw9?-4*BoSfFovnMT z<*on8O3y`&5euKFZ~7v=@>s-!I>VyqHwQVVa(zE261nP|hSq#Vk)yrEb{*RtUoCWq z{?1$U?#_w*9u6(?lX?O^JzMrVM?GYUfnnopt%Ld=3!lE`<~p)#`*p=NOMRv~<@l$b z-@QSDS!6-qte%zYmU8JkoR;4|b6sia&CN_P_uCHq{Lhe?yz)Oo!Mpw6!sCB8-dgpr z=+LaG-1aByMeNnN|1(HD6AYV}vo3{u$3kf_jpzie-j3C&v%gAacwavx<e5?1BK;@% z@ba4{o&HVG{;gCbF0|nIrlvyz^Ob_S{&pQdqMaeH{BXjRtc~|FBm^2i&f8@c*f{Ta z#~Im`t~Z;0IEX%r*s(+P(~Pup{~07>V(KLx3j8yOU9|7OpO!U37m~NKx2)m)(8I7r z_eR;`*P=|Xoq0I7PIFlQB<gI)l5GMLk4Wm=UC?8F?$n{ypKrXw3Y^X{|CGAsa&5Q5 z-6@?7S7a47y%Z}m3F$ud;J3g+pQY1G1R^i~)_uY7#^Kae;jF;Z-A845HNSFZJ-gX= zZ_&yG?ebfF)}9f<pA)rABV6RCHp}I?*0YDq?$X?<wP4vMHmCT_KQ(qJh*Sqg^Jm*k zvzg1Wilesupt&%&?ve6{3PbMgmujkShW`pYb^DD=kcRt&!(!*R>Q&~cbA@l58ltmz z>-tW|kdIUEe>hToyt{1y`<l)Bthwu1=Uw|d)pp{h*#Q>88J}h{Ez*s0bzL}BNN9eX zBUh|p%bLB5Hy>Rw@8s+Y8&}^j`^G(6L^JPr;`R+Y9)6Q3`R6G6pJC4J=^PHr)S_gU z%}_YDBq8!ykKP@{DO$(=GpGyomo;BlvYF-0%}2jQ_AV<3-_-b@VFMRytAs#kp1`tc z`;J(N$r*`QZ>wLK!Q#{4+{is^eNyLth8O+UFB+}6$UariM5=qr)MzJV3Gu>bN>lc^ zMXYAmlN7pt$fo@@@6~1{pZ^R(tI9TsM3(D$CvUK{uytZAWzbS)n8<r?ZsT1x<J;{Y zY+6!+mpF^-Zx9il*d#lfi`gvbv2xeUbCb;?v^QQ^e&c=i^#m0S+m^ZdC*+flnJ?8( zG`{qTf%V9ndpetpm)1;avyA9>G;)kdVmZ-w@S3>g-^Sdp?5F3dz72SESa13Jn-_9& zB3m?1d~XeNe6;-y`{@-bxxYW<GmCxD=6n*F_wTkD{}-pS6S|A;Io^)c6I{Rf&{8c{ z+lJplQ=PX4CNB7-o?2nBap{IlM{B19Hdb?FMjtaTtZ-G(c~UmjjiG6ttB2V8$wxOW zoUL@|UVM)L*SiQ&QGKQ<(JwFapW^c}WAql$;GfiVvo~<%=lX=%JNU}Q9C!B_Y~qa( z)S3Ci-7NT;#@^2f{2$f@cF)y$;<ZO#aTRlSN7I>;CB3s+cU(Ae<)({v;5|p7^G~wG z{0^(j-ATF>r+7=qeDA&k%&cAvyW8BZGb+suDNx=RcS}Hb@s7Rv{3(`-uKyWQ4?F&r zcC<U|-f_W@=|@_I>x?69+pI3l>h!V`TA{aRnu+}6&XZdwu4vQHj*r}?<fwQ=)KGlV zQ<LoaCyrKaliu7|Y(K%vnqljC1ul`4axW`iUzH>C?_B$R(tF_(j<%o}=R5;1i`8=` zRdfC1-TyIOMdjD=(4z%g+!pPd{YhO$Fk}D5LsS2HpPDPy7yYro$gI?6M(^?O?gsT- z)7)N8SUO#7Nf@iRjLwSHFL}+n?s6UziqJEN?KoW}clt=!J}>XZ22<^htlPlypWz}$ zRKD)kDP{AHY;nAyBC$}(xO;DZM$1=@C9MyCxH@FK6tS*57|ZjUh1pT|mZ7QZ<lrXN zY08e<w^r-j6u#22_@c1j2I(%*H$jJ1u5mm4AbHXQ20^K*Rcac0#0;5N|7T!Gx%FOo z?d@W|g(;dP_b*Om*ndT!{*{wjw0DtUt>f+~TWof`{U&GBlDFVrdRnr}s)kxOZlyg^ zhZb_)Qmj=D(Rs|k{bRbS(yyc4^-tn^MYd|i1gd-vx*KHJ_WJfG?y&aMyCEmtG#}NL z8qL|o+ZePtC|FosG;`&0k12E2^OOvKv`u8WVSIvd)%{fW@}C+RcTaPynzpd-5Kr`p z#Rnxs+TVID`+YLZV$w;M{HVRDy^h!4h`!+Ux^YSC<sZKadxb`ePikw+eS&p({TkR} zs+#V!dI?rq=%gH2xa4xfx8%zY98>m7J#pxYbA6fp#Je!gtNH0P2isRmA1`|obnr9x z-YExn?l0_GRd+pog71;j92)+qDv3Y5!>*rLZ~IAr>CZI2o(=t#4u;&ZIfoe^3$HOu zo^WSTq~C^LZ%m`u_Ut=S6Ih+Qqt4sj^U40zMhQm+Gd;e{*&OtrA!G4XrdZV)rLzHU zcW=t<*pkTc;!e~Wp0wjhSC5;@pIrDNS@K@5z_CqR+@|(RXaxvF&HtAqC>gy)&+<vt zkyVT<MZP4?dBeMU)1$eqAv<ce{&LOXlv^=<@kguR1c&E#4o{QclvK$p_gFkRU^>;P z?sVswSrQ5s8{(2@GDUvmvv85p{I=-ZCq?m%Tw=$?vmY|3EW6{Nbxk6cqvt<^OWq+D z!QCGjr*2{uxx!eovOBbr^*{t;OQH55?rI^{zYZLddz1clInB^*`O^Me?8@7w&)>9o z|1${fU;5_Qfs50+<yB>F9%Fd@K-Hj`;eM;INSuqEsn2&+XWf-rf4KZlIKTPQE}vM? zUwh6_Ztrwm_HU6_FCEZ%&3XTp;H|HEic|O9a`?{>vQMmsfqU_jJOewYw8)9KG<}** zbGo&v2JBF6+*xd=T6e9IwP0~d_zL~kSDd>YB%@9<{j6ya-xb;P+2`Y_14d^Goc<kK zd-P8e|BgdnrglX2>I9^;o#J-9W*V)qOstlF(+`$K+oT=~uup!nXm8Il)w<_l8jKk` z@>73v`(6Ig=jEI_HRwNsgw6c<35&w-6l}5b){0+Q>hVftr+f0LQ`1Cre%jYAQ<B@z z;c@w&L(UV&w_LinZ8Y9GK9x1ucwAgd^uuLF@$Gt-60Qg~JY(qDS^iZ?zWGmE;Vb!k ziOoK8msU0(Qs(&ZTSE1l@FCk7uPX~a`a6q?L>yOtbK%BL?+1sy4W{yPUq0zR@yUh_ zdIyd67nX)ix|H4hq<E>p)T5zO*<b9lls=ls*3vwGqR^@zr|mZvX>eEn6u*AplcIg7 zQjG0(omFic@4S6=c=NvrtFF5qx>>g<`eDzq%SYXG_Z^e!EvS}wQ8Se@_c80r&jAO` zzQvxloua1HCB9}2lccMgfaCtnM`KJ=9c1cvR0=z_9&Sjy-8;jkAxqwP!ePEo&d1U> zT8FvhTwkMgYtn&BCW{NgiXN?D-!!ASwRf@IA=W$_^Fwi~_n$0WKe@c%Qvg?&!}TXS zB@VAsd=zx+c`}1pjJnb_z34XOC?+w#$(<b2xev_TztGy#S1<g#w3mCqrmz-!#lNb; zNBk!^Z@QrCS+t_zlU{&jN?MYA!h$EN`;Y%;P!W^v3>2`6Rn8W0`0es7SZks9SJ80! z6)d7Yc72=~2b31@ACX!ZbUAUOq+ClOw<nAKtSOmhsvBqi)J>@rHsie#r1-==tj{1m zB`Bw+Z>f*j8J;lygniF9tg$MYDz=ZwBx1Rek>-;NCDuj%>Ng!!aeS5Y_$O0qoV~Wu z_sk&C7wv1+mxWzk|68k}=I<1C_vDK$$`Lhb0pib3Msa^NaXtEzkzvuBFvse{eY{6} zxx?97!Z&sNd)2i0#S{jYfNQlq4m#}HQW#g?>b{xu=%DhAXRRj%7JHt*nX1aOd1lz# z*ff=u+Nnh<i|%A>Tf|WB;{Eu>(LZNI7nJ(QALgER^v907T>lxKyx(|Y!=tJRcTHL| z>Nc^zWiH)zB46Uoit8W6S6zRzCuaK%*Vn%-PwhJ;!us@x{a1w<FU`IE&hL<a6SB?w zfWUW#)kWXMPj_Xm%)0dN)EfQEvPmaSUE04v-;{a5&Ug23UgGgC(26XZe21lC&9Bzh zFD(n5&R-MuuiLcf<G+L3V?Q=uf8!unzh;-!zL>MIF(Fw`?N``8*weL^p_;dEx9&ls z6DI!2jgB8?9xL%Ejj(dzO26r`*0$w>%?_D0bw|YRPYM+mUt+%M-m!hF3Z-AZ;huCx z@zdSAzAWn#SHAw+p!I5Yz=E8eOW%4g-Xhj}qhYD+l-_-+darG|y2D=cN7N}=d4}p< zf6>A4PpKjKrrVjR3+4-&oE8%^Oze@X^O`1hI6Cl#S3v!ng6tKRPu?9^n(?(osB@Mg ztL(Q03>z7ayDXpcDKdJE(hU}c&(2a)wcQ`_9$a>8cV4>M4q=bbPX5hpZ7Qr!%`e$% zb;(b3y>(>$lD<UUla8*wCu{#RF#q8YWs^JL6n-pB%3h-9FZUE}!EYLT&y&lZeo0<` z|71|UaA=)N(tifCGy52JeD7W}U!t1tWwKN0&Dvl2N~_lPmMesasWbcMZ(i#4&EzTD zyeV9f=@Y|NOC6U;T&;iOy<U)m>E8|8;ugJ)+S@c~Q`F5JjazD1Bo+zXKA$*c^@=&+ zkE)gx_N+1yIzH8K?WJWiZnh>V{Ac*$Z?^u8-SpqH&i!Xdj%GIQy3J~9prujY@PtQe zzk=iKoBtLmb%#GW;GOy^#A2oUreBP|O>fUt3R``$D)vgaz=|^2zbo!8QnS!JleJjs z*3BU8In9Y-KLZ#-eU&}kmp$OlZ5Dbl`-xkqg0}M;#Ya9(D?28x>1mQr6`L~UrsX0& zrdlP-w*eA4k#Q_a$EqitVZS1yK1XrZSJ}19-&nWsENpr4pCRGO<G0`RqW&{%<V#;8 zuyisLlUz%%RK=N4YyM@sCMw%&I&f_d>=NJAeOO+qr)uAo9jYB=%PbkzUFu+Bdz_lH zF1=`K{1q>=okDwG%xK?udz-A%niUHVe(YNvZ>C$y;;;7O*!H#-nO(KBmfXK_aJtrN zkr}C5-#E?uDjCJp|Ks$9JY9~BPj=3~BOM#tKT)zy^zY0^^CJQ-*sC&pydjyj!?avp zDJpD7O}lmGRC(R?oI4auX20#=<lhh{zrspNHKJ^B>nb6}g`3_yQPQ~iTW4*N%HJbD z<QzXQ<eOE~Jz2P6iF0(qe}>4twk_JloGUkqE|~Ar#OoOloMmxhQ*hCOoX>0r949?= zJdyD6OXK{l2KI{rxa1a^=&wooSk1oU-Z|ZzFV=6Ea*K~t>`bi|7SP?aVfQx;9{<G1 zJDPo4(#{!w?})5e6T;g5*M;S;;s(}_(^&teMXo)5F`X-I;~S3FihKLj*}6LA94;S- zk)LhK!Mj3i@(ma9MnT3?-B(oi`oFObc<g=jp`ad9)Vs9188_bQ{pr3oBf{M;zey%p zy=hmq9Gl20BbU<JnI=M8S{XHJlC$R}OG#MuJ*)n$!JD4?y8Q-I{FRfef*&%sEp>TQ zW_6=xYLTe=3A_0zEgY6D2bbNGpOAQG!z;fty2Trd8<I}_@V}zs8M(!!EJjvAPs=@f zS!CnyNNMMJ$Ln7>MsuYs711pcI*@hxwbrMfhDQY%{xe9dy*yp_Y+I;kuc6ZoJJ%O3 zKN;r!HPkcz<;C%QGw&5%nNI?jKkGWI{;fYX@=Zn7wERNmvI=3Zed@~d)00z}HfemC zcf9D(U!{{@noR^mr2ly@x~glo{)W76*N%`AcdFTcD4v+MYDcS2<mAGC5o#A0FKM3I z>wPeBE4PyVo1pqV2Zb~LPM;|_TXmiRciL{IEdHA>xEoV6wzmFi3|eyauMXGE@U$ZN zpr?g?hohvFT7D>+@Sl7msam%valzpmJR4s<?n+%{9a<N|qhPPBJ>~4Q+;~Ob2?<Vm z2@hXu9{qMIQ~p{6gTtb<xZVS-4WCpNRCLJyQi^D7YB)dXy^~34-NgC-PR6pxZ{DE3 zRsXb1o%`!2{_8(_CcAi_&es$D^Cs%R{jYl5iVbb+&xM3U9@3WKy}_`eXqiIuH+dHS z&9jwm^m|_ukaW8fTD`R(qO~l@tiQ$ekY`zc{)zqSE4~RIRhAF%lFU42aO?gXudPBa z<~F1{8N{x7+}r)O@!EUUt3LA1Wg!VpVKEiXl8I+l)h#j1)cAE|>GE_nbpapuv;(`^ zH|Z*Cc>S#uxbAtw=V5Dz#15T59$5-fQVAwE1zt%0;4wa}<UL8wX;GuaPYzqzhH0zb zcxk0Bb?_CLmiXjK|8^5+tzHI>&FeqDQHWWUE^v-lNpovaTtwaBt_zn9y1(jG%ui@E zmkgP7>bjk)wZyS20zZ;;m+NmZl)AC|!|EosqnhqF9w@v$c;J`NtCs>w&c7QZUaez~ z30ib1MyXYA;o@6Y?Od%dDw^u8ThzX9ewIyWiSv}33mIP~UFN$Z=J02#D)SN{w*8Y< zFTdmYwEs8jA?g1NlSTbGn091k%Br#y6|uKPuKdrC92(NY%(GV3T3Sw8E5Ytu;EFuE zi!$k%?e$BYlKR6Wc=p>ldd?T<;<Y%wJl`WkO14RA>%nDmER4C9Oph)bGk&w0_HV(W z<2R>m)ztmbnr8R#C3||H5^F}}l(s3AIuRa=K2C^WI5p*pT#I+iPg#ZYs?GByYLvyZ z<KL{i8nSxtp3Bh>^<Ek_9r?+zAipQ|-kzo<wrx(CSErdhD0DpJ<n*6mgRgV-Kc(A> z+pk!awyylQka1i3L{_;8VoSN@jw*J|=%29liP5HGQk!CyU2*uGP>>%Gnyq^1goA9? zwnIs-Z(<(1|6C#e;6DSWSVqg%ZM<ju6>UWs^PGE_4tMCWHn>hY82`jcX_a)@(ixe* zrNZ4KSWVfsI=>N!4F2~lT1sik-W5*kt<Ki@$w(!AUA`hIQ!M_*M6ryYx)-&X*Cdn) zzm)a$ojKt~&AZrXYuGC?)Eve3IB90Ff0UZ~cb1&d1CH0f1zn>jt#tn;<or_A;nbp2 zkq!}`@=R^pvu58}w=%YGdX4|2bpls*OwIn!aN<mAO?#AQfobM<om~9{we{~beSSnZ z#LKg|t$8i4Eum|8<Wsa!cTU?{)(#)e8521FNbv8U5WHD}ZPvjRu3vV#zZIH1@i9+m zRB~rPdO_WTMN3u&zEBR(En2MoXS%)v$0v5pXj>NR!hD+zjNcZ?sH?8|=6XZ(sgub4 z6|BM40_ztjI~@@ZcKDTYaLXsFll2pJ-BXb2c2w2XR{OE8BWbFH*roR;Q??wQ6q)c_ zlT+>>Q@r9WfoW}w%mR#+KecsaD|%;t)1Aem_2S3zf(ZpDIDhlI$~C@GJ(Mdu{ag5( z^&jj1ssFG)bnRT_Qg`+13JZ3MMc7Yp$Z^P8rXa2rp?B=gW393?cP)18JG%IuNwt9D zs&}WmG~TwPimiB2>!NV!XQJSvnMJ)D3T$VzOEO8Z|5o0W`CiLF#$N8gGXLL2f!wVJ zje3Fu!WDkpUQr&?Q=ai*N~N!2LEWWy_8x!MacD#>Xx8@$Sau}-m6EpC9d*a~X$?1@ z{9~33Wc_9{OTppc<{Jg`XIl0j>im%8#*p74Vi;_a<=rZOB|56<md~}q2`xNN-KEd5 z<mg%!s9N6Ooc+pOLs2S>@%hbQud3rOeLMahu(R156)61LTXw=>{>_sQPgiETk;dDU zY9+TJPpYunm;HuR?rRp22rj=ry>b1MUK#EDEiR(cTz2<}OGv1T+`q-Em|wp!$&F8T zU;oB5t9AZ&g+;}VeHWetzNi%Iuj#mSUUAxtncSyUKQiB#-Mp1YuI#{8zm1A34!Y}~ zjM%RB_(*QUC-a&UR>DCqET-MxaiXe->q&%b@rvR<w(a(R{G2!RFspk!<NCek@}w2| zYl`Jrq@r44`A>Fy+;qgc;1u6P5lg*^tViCuh%qxwf7#d?x9QQXX08Q}OUkyVzP_gw zHFHnzM-Rv43nljNTk4|v{${`|;~dp>hbJcRv1f%WuS$w=77p0uB51H`8gIKrm5|j` z5!1H^--p+KlQ|crHsR)~9@eskkT(oI_c<m$tmHn;*OZf4XR2FKlYFD2IH~b5gLH6W zHOqnpbNjiXw(bAtqU}H7MMF)4{M*SJmUpgqkDqWWq-L&_vZL;ou1n3u`4d{zSNJR1 zWChur?cV&;x-}$v>7R}&!@K>*_*Sw0XGog2HXxH_O|NUMM|X+A`doSC##21E<g=I; zUFw+FxnW0w=S$tr{tcd1c1lc&h2P8_47+b=nf-0kNWKwTq#{0N%3XUUm8ows#Y_J! zV0C#VoanA+WIbyZd+N<)3pA7JmFiZ%(fHPJASY?VifgMPrI}CMkrAG>O0{cd*jFy~ zpciciH#}Jx|7ibF$G&rmyHic-P6jOcwpeVQKo`GU%g!Cuf=kL&d+#$@1<iY7y4ZbV z(v?5`Ms*YG59uqc*V2@}#r<MwOww~@v0o|*tqhV5VSgQ@ZyZ~h|0vF__!D2{f<qVc zLyXpBehInpfazh-70uckhmZU<;_h^ai_@9m?zN-w@lTQL`a7|e0qb7AshhNYvO>4r zrp+p{suQ_yO=Bq1-4L>1W!03!0YAkWIk&m-KZ;3+b<~Nv7VV;)WV1Wzc!Mx|(4rLn zU(QDUPyXG!=j~<JaeTT^+uDPPUv&QEUR0^yVzMu9an|K6E@#+7IxA{=GUsj+4Pbn- zgiF0=-5fbb_S-iEZgO0y6I!YEZLxN`xE5#KMbm(ym^EVSC(ZieZtq-lweFJsFAl3* z>56|76qG`b9lCv9DdAVDv;T%eb8ozEpZY{VY~EtSK&Ip(R?~em1W#KFHO8GbTvw!K z|5LE@ulKR*krUr;Y}s<m=x9jGmNTaVzIN4jCM@w?y|Lr8m&5kkRy;|!i{^a)BX@kl zRIQMeE{hn2!u;hwia$`A<D?~`Y*Z+n-6o*3Qq(cv6th=|<BmIm?8nR})-Fm}{F2N2 zZ{L)^Y6toiV?y{gyLtU>D-b#y*Ju-@YU^h4`^piO-GZSyUUqJW*u8o``g`qcxzhH# zjX!i}mj9D0F{kviauT2TIDYMt7TLe5#i7A(!dtFiM;ZPzOq1W?>NrocsOwOsnA_<S zEz;t8d*)7Cw!&qJ#grz-wQlVnQXLi?3cR~#$MzP}2S0UP;`TYR9iGs!<r_mxXVtMf z@1;-soZqmmOj;$Qm$&MzpwOxrr#x*0bY1@RtdRJ|`%$MM%gey|P^{sv!+gA|3|cMR zoFz`uyndO<6GNH5*|Gg*)cHGq^`Yj_vg1!)99(~YP5#4I%e3SZmTrE-EcW%A{uV7p z@iJA3lbiC62Z%4$;M%X;?E54n_=`7Vw#18`J4}xbbT-?2c+@ZP(Nn&0v07HI{buHc z-wfx34(<>wIU0J&VLgY0j=;6bUdQTx4Eqk;>2F!2A-&=!qn21#>b;O<Q#EENluFfp z<8=+b+#eL@xijcx9Z!bS>x3%}{~U@Y=J@~SybylkVXJ}=L!I*?xruV8FBxY|@Qs@4 z|F<<HUptXMd19%_C!<qcE86y`CtY>_bZ2Ftnpd!r+eC+zZ@m<&4y(`OSrL%*>LC|% z$E=MUTZ))Z|8r-%>6ZCzn}L_zo#i)V+m=muv+M0kogJ4JZgsvEqyIHUwDpgZUQLec z1)1q9nSL`Bgv&LZ&#G5=a{ubCB>5l8eJ**Yzwui$N@y0}f8y{uesjykhJb*%Ez2%_ z?eo`MqTBsRXX@<YK>JP47TN9)xPPVGX`_Ha(7Mo$-%<^1mn6jf9Nw`n>^zcqGsNZN z)M-^KLMyC}yUgG*4eaJ-<zC<NWNDYQ-#_n!JM-0*kJjF5eOq*DlN4)h>$EGzPS491 z_?=Jk(-e`rJKbmMD*kPspPbSB+7LQT#C5rrb;E^&@@IC;aAOiE-FRs7R_@c>J2&`E zT;f$GWuoAv>YEaC@jpYxOV|2TDebq1JLKPSPx;TVA+P?8@bSO%9R4#Df2h9^pXvYR z#Fjh(mU8y_k8*=HF$w7>6g|4KrJ|ZW%}}ABH}RYc+ma6*rCaSJCA|e_irP)8n9N}K zQ21sK|Hdb*j3LUw7q<UrNbUP1=Cri^lTxH?;L?9RN>f@VH|z1qN=&(Z@kz+j2d84S zc#pd`NV=qNx}hVcc5G{hOSqR-OMLP?-l8IpPlg4m*#-6AcwHAIJ3q2Lki}(cGyh$+ zghZUvYQrba$DK6dS{vW**sIXKu|eR;^~bLkdslzcNN*FC)^OeRW|ORJ<AsBtH*Z>& zw4{(*mX|$Zsgca7#R|Hc733Rd?O40x{(=sc7(SJRD48k$872xavOi&WzoL3pP0!-} zn@!>ZQV#81e5VReb*Q>4h9o%rn{ndmyr&aSSe!p$xNgY_Mb*=PxHsHNnEu8~X4SN1 zH(GtBZH!S|aDzjqfoE}*qSUX>fKx3?CjAy#?O53P`DR3zp7sox9o%nrTo$s}&L;54 z{!ZYw{|p<mt(#5PzuEfw-?>l!88-fB`157wmH!Ndb^jUOlyD|4Ws^H?oBSzI$GQ5S zFth%o!yh`Oudb+1V&+$5a=5iwS@xFlj;B(pvVGB_;)N?FD1Q{c)2MtSAS#(PTkOSu z2BD>AZ>aM5Pf$p;+nAvE^vTwzZ4n!?w%8qansfinor&d#!rsi)iE4J;(|Kwy{|RfO zm3ytu?-P=pw#!ZVu*4=^{Wtyr$`3^LDE`jLDKV6DQ5D}Q!`8^DEE$;f$w>KDtn-(I z#rHRDd;j!^YaNGz^0kik8|S|BDyl|FM`%e41i1D#o{XPqmODG{z_pbp*zUC`F)jSI zc`Iu(f5w~O1z$=v+JiSP;e38_zVecla}0Pbg=LmpPk!=1!-Y%mQ>cd8!{w9D@@*{J z;;_wJ;?I7)%E^+;Hm{Zt&6yJ1K56CVj3+P53j{5AtfsZ^^gDK<{iuWIiB$y(i>Fz% z9nQ+1v@LehbWfIe0U=%oy(f$G3<DEX1%L9yw(35KmY7)jpF#O$cZBA}ju#!taYCn8 zuh^%y!{w1&xZSza{~1nXXiZ&auW;|$<U2iW_n%z+*!9QSUMDAOughn}yJ62)y!Dz^ zW?GQrb~MF;IX|I5@#@rSp1n#dc@qV7)ql!6KQgGlR`zDX9i=zn`&@XgxIDWlQFeUx z90hlC4w>T~?}RkO%b$pfMNDowddK3->6P(uMaEhk@wwSWZ!{TLo2nQCCsuxo-zcM& z$aQ7?Rpy|rjAs-*#9Q)i$^8^(knNtJmFN4kG}istBn5B($?La7d2N*aJ0;s=3FBAo z(p@RXO6*R*UibKV#!Jb`zYA{cRqoxmNFgLo-sKY~m*2)K@$M(DF8I%|ace>RH>q8m ztNAyqYgl${a^Q)2_Z#XiZ#Hd6xLG*so086<nc0GyWA(&pBQ^S_&F~dfbM(5uamp+^ z*We{tZw*4jH#{s_=CET)$tS&U+Z+s|+SzaNJrP<f-Dtr%=ZO`=yU_D(hS?cHl0vcS z5$Wr--)z1kVLs`0gzKZ9^44tW`fQUPYi^Ui)xN{2SE0i7lfru?bAC=;QK9AeUm4N_ zK4t|o=4_D*JiCa!WG8oO+?B;~ho>Id`G+rT{#TQAH=USNX2}WY-#WB<EyvzEXU`D7 z=3n0V;?f2DdJzWQa;{?iozGOb<a#2@xOc4FE~UQ8`CjIP+uDzU`&@1szsY(OyFo<j z)yA+c^{&%LZwG{4ds1eyCpoGAl7M-xmy3Cew#SB#=?l5FSrpD+d60Gbqld^;?^~V> z+a#j%{(Z7~sdq##d(-AScUH^&mQ74cSmUbx$>)P?nv8_Dc-$i2uhVUg&6alksy|&x zTEKGI#o#yB46m*I##vA#tXj%qx^IJY>BB;&l>zcIR!j<2V!H9{w$>Z>Z(4WVgkDQ` zziLU?|D|W!9EE+Z4|-?*nf|YTL*GS7)s2f3C$&s{y==zA-EkAVSWk0pe|tKqD&!>h zD{E&L%iDemQs*D)^3<+a()Pz$(Y<Bq-+rkZU6*<cFMeZ<``dc#n}YL~Nz<4=Y4`1x zj#%=HBSI@UVTsbqsS$!lHYXkGS-i_lvb*R|;ZpToLaR8BUUAV6(!bNXWQF{tEPK`W zFO+s|_?&j3&SA0U$=wU;4sCh;jp^E?S4>aDE`E_}wY`7k>BO^L+_}?Em+(1mK769} zPe+Kt9_5Q$rB0>niCHa?b%3eyV?+HLZ_oNo9n)?lKNY<8&$aK;q*aM`F9nNq|52-{ z=Wq@EtEjQoq4E6^hyM(-bDNlxZ%s|TbXD5>F3U>0vjq!pJji?Mc>YO?;E(yy1*w0s zp6+q}rrOZ(pJB7sn`j2cY-Y!B<wX8B`6X{R&6@tjRsYM5b72ps@&0oP3tr-7wqrU! z*OW_+oNw1px;y=+)T4tUFV<~0x-IhUQRvnB6YKW>IQaBxcf)cn{*6=hCK&bFB*`&v zoOhfvIeKTQtZJ>!Cz}Q<KbgxD3JgC_kZ0BRTza~hV}3`%UsH**^A=VAXJCq5`JX`{ z-2cgnUhVmb8<!SIOxP-s@V=SV(M5A@-XXTvt#9OuG_33=?EmSp(>~I8!QU&6&L39j zb-(pqvY%!5`A(-z8CwkHBR18SoP8p?C~To!LSO%z4~{$Uh}uqZX;A;_JXuA@TQN#C z%U%Cu>f<M3*}OWtehM$?{>FWKdNA`R7FNZ;($1y1CnsOd=q<nDakp<1-%*eI%%V%z zPnyI2$BUu+KZ8WI;hXhdv7Cv?pQ<{xDQw!F@9Ln|e95<B{fVcKd8fZ|P5<}l+=PSY z&b?t@G9l@r!&$Dc+JPmrd89rHd{a8<)B2}pUA@81hAnFGLA8RvzNZVFKN<A(;f$&; zhK)1#J!sgQ7TYMcXyM9Zi<X97Oi8$UOV#CJ{-#q?e|B54|7X~sDjK0x-^A;}a$)a| zJG>2B7ry3emUEcT^ibxvo~G%XP3*Ei8e8Tvd!#H7Q}y(JD3V>T{xY6pLP(+N`RGGS z8(vQ<6L_$CYGTofZ+iD%%JI5Sn3=vYsQHtS{ejcRuKs68FR;5Jwrz`xh4RUj<|ST9 z3%@PPnUUebIA`9mw&j~8B34{be^YO=$zqL54o6`~$&`(MW^8tBcIfJVvXLouw;E?a zf}UtfzE*IGkz5LMl<Mpv_R#bvdm3GyB>iceq`txD_05IN8it1??x<c|Sa<wl^qW)u z-P70Vbc@Jj2^yZ*xoL4#)4|m%rX6~^nDNJr$RKG}2Ib8i9?oY()_JYT4HTMwnQP`U zPR-+rd6n9m=E#NVKG08P)IV9KB)Bq4;J_zs*Y;KWg}%gp3(yFWSZF`-i0|C}SHib! zoGUifWpmQBNX~VOdc`JAZ0+5=cXiW-n<uAjT^U<FRlLb(k*^@rk(h<-GsA)f9t4N8 z9KDr%e94tN6C*!mWICVxw(ip8_P}p~4J++VZ&`b0`ek;nR;K!sPTD_B?S2O;rrImr zSYiJ}mXTSdFjZ)q-F0TE9f#l5Ey|7wXK{Sge8oTEoBR%&9jWbKC9L?5looROXDwV6 zCn=mP7b5uemkWn;qeiQPky*y4X9{P%-Im`>bXq22v17rs?Kcj!^>3QWv{7hr|FJ)Q zLb)jm86Dr$O`7_jAySYl=h(xlg@30sUEWyHbpJ}ufkls%T{0P5BbNw8ew=D_`Hk>H z?kmf`DP+bru++Ns>U3y6e6wzqmd)%lTyk!TU-AUjwJjD=Iqb`RqJd+T7PIo3DJ>>n zr&hA~Tx41*wk7vQ>;}CfCR&S%IWIPuwnbU1H3*j2@LZi(`bMOB)l5^D2a%aC|MY8z zf0FrEp;uSP7^tr;U%WV>y*Gb@2Xodjeowm&^(R8C5gx&HJ)3oxMgF_E)4O23mBfON z0e2!eb_K*11*Rx0_sr#-W~I=*<?r;Zk!&5)9GI7OxGlcvS6yB7qx+k|{onJa>~ucb z9)I+xcc4J~BGu66(K;oC8<jM>li#f5dT?sWN@n&+&$Fgy9oytucW2p$uSE)u-+r3@ zV||<2zFW3?D*KFX-uw-pk8@8|5sBl?I>8(;=O<U`?S<VJ7d~0I`lo~i`&I@~_8YDe zzjicfePd9Vx$I7*8K>>eC8af~KloYStf{=RaobsgTYjJQ#Ql4;+Hyp%KTA?Nxbl&L zPW!};1qP0un+>}389xP_@cSest~L8*bLQeFOFHW(9o2nPVwyY8Yqj|A_BXQIIHK;Y zv30qiX6v@6a|vI!MDl{0Z~PW?J=z#QX>aRqt&oV!085@jadVD!^1nHu<0n3+yRXgA z*embmya($(iLI93t!sY1Qp+b)oT2)g+g67=&wj5cI`m0*my=AiRVd4;BYxdGWTTni z>@0he>sTske&dSs-Ad8SS3i<7Jo2=>-z-d+S^d*0M(&IQV}7J@@><31L1OEcCj@)^ zWau^9+tlDS^>MoY39T!F&C!1APu$>o^k(b&x!qf)-`udJT3<sk{kGS0iN!}&`yCg1 zB<Ic1?HPWe!Ev9Yj-KdJ#!ZVV^%yheEn_`d;;qzq<?Y6s8`wJBrCqLx^VW*U-w5C` z|9dL@U4M)IE6&DUbL!QPGw@HE!(io5uqsQ(E3jYoRBqRmYeo-ypNRKJC|1=pb9nhr z)LL49!X_m3=>C8cK5JcmOu4%94ezqUY?~%;lrLF-X2#m~q|chFLR)HPE}oy%9sJP# z88_Dk{sa5dc5Q#_RsZp1Qpdg!Ay?l`rX1}Vtxr6%7&`i%>9ue8u*u!)qt<58i0(;8 zbU#UMsSw&TrM6#H{d8;Uwlbs8u!RD=qJl!N#V2knKmCc{m;I#6u7A#@^*5AP?cdNV z{<kS^{&$hR$G*>aqkN}*a_B~NZ)>ZXqQ{r6R2Mkx4Rh4caS@jM7P+is$I(C?`_u*9 zyj$N0Uihu^<(#ff@7I~!lP_~`t()-m2gg?-4Lj#zKSvq!7Dx7zZd0BbZDokRxyCE? z?H}c{4ljk6TDQIV67HkWAi#9~#<D{>=O(btdf`2TvAm%9u>OgL?1$fCPhYdt4d>gY z@Fn>|_>+C=T5Oxo-q7Vc5WM1c+wy=E=ag12uL~TE!Evp|CJUM>Iz=|$@crn~6VUOW zq0nIm<LsT+B(+Vvg!3m#i_S7B<(l0huIpYkV_~j{>+JPnX(D^n7>X+nY;o_M@hWfW zPr*gTMql0voSdHUvGcBOnc5CPrFG3WVx}!Q{=_is&Q2*dgFkzxcs6Qe^m}@y*<Y&8 zQ0l$4x#J33Y1+Ao4w_6C{v8cdi71XwZ3roI@W@VH$ox%Zk>+ncu^53J30#+6bL845 zxvqc1w0URA2E{9)+MBFuf1G+Peq!DHS0U@anl6cd&GK76w&S-*@^+q3W3~f)XRECm z-mFS8l5PC_mEnN4UZH7`zDNAc*}`ws1LR^>Uf8v|_ZZg(Mvs$07vyj7b7uVLWAx?U zxR&>nVnDX&&IO0Gc%*K;bxTdj7Twt1%xb77T{M-o`u^<sT{$7EjF+A$Qi%H2URH9e zZOU|$$*t!;<t+a&?NHl<PR*N9&fk{x8n|e;Pv#8{UbK}xNXMX6yGLWW!UmQ93?7Pw z7XrLCb!=PEbl^$cPM5mH`7>f7vMkJEg5-ZS%!-KLsQs0Btr*X>)7@Pi8i^s5Z_lm@ zklwt3Wm={D<|qee2Nr|*3uZ-X{gl1Kq05ld>+#v{w598Wg9pNs7i_chc$>PX^+b$9 ztCI+Gk8`dgQwYP(Kdmlx%M3GmgA)#R$N1iV(|7sAtb*TKdNBb}{}g!q+|LT%>Rb{S zAnNoe_kw}K71P$k^#Q6;LLWsevraQ?VhPqUcby`0sm{B3-T4g*T@CCxRBk?IX#bL$ z`cdnKO`1%<QmniEf#{CQ{EA_ZH*m5{-7|X?%lZq8R-8HfTCkftp?BrVRX;iA%~Np- z@Li!lKcHd0>7F)qcaAG6-mm3WB?(`M$*Ogk(^0QlEqZG@+Y}!5O^u~G-{x<e7?359 zBEKOknd4%?RqtQZxNKa$DE;PIw8`d|<E!YUr7NG`h;N-gF?v<*iLbXsPXve7d$b$= z@=X_g@{dWJ(`)M`9TlT##?fiA-OncOVAwdtPJr={;#T{W{e^{7qFh6c>lw1$S2A7h z>9JwkQw`<cat|Cot<*Vuf=T<Qsifm?)3`eY)gEFuTSR%I)+~<;_~Ll5XTtece9ad) z%45HJJiB|7Nm^;|?80}ErhAi)H9yTc9+mo2+tlt<{G~rrejRX=b>&sq+i*18UQus# z&9s%`n|I9dEBaW_D)cnWR>Ez{fyhd!Uxqzl+kN&;pO9HC=e%M0#NUAnWT&o7Sh;5F z)Qw-X7}zI@q%chtO=IfiWQ>(RdBWpOh~!1n!-_eg96feEtmmbA+T{N|U!s)n#jh&9 zx$7Hym~uu}{*kcQ4?QvSlIDmgaLu$hw)m&Ow8NPj`(62uG%v|lO)!gIS(f_r;NmB4 z{E~|#uXii&xO`mAQC{)W%ag8EHA;#9RvCt^pVYbPrl)A}uF_`Ro6cR+XC03_-E^nB z=vuSm4bxW>>Lac!dh=wL&i)%WZhPAuXt00BwPn8R(QOlc7Su1<<z}rN;>G)--y=o! z>dkTi)y+TtGe~8+E_(P{YuzbZuM0~Zf1Fvt+n*Zc&lxVFG{IuNVxeccBeNju(xb0d zK2Kc!NVvc2@bUWO*LEw#7dQDh9@(rn_0?>Le~*`$Cm0DRuPU9s>V^0QOU19#t_SMe zm2+-t?cu4=|HQLtQu~dK%Z`21nYz`-aPh0t%lZ$r@6r9xb0hp@WR&!duY$ULm)#bI ze{wjO&BA$j(gf4GD;nAV6z%Iz9O@BnbNaJT!sGDwjlR3)t{2&0boQQK!zGa;*K@r8 z2wGh`&n%$1JpH56Vg=PTOBBBgI{r52YT3fNL2=czySt~jYHNER5&YK{$8c<2hl*Q< zvQ)&e-C6-#bzB1)a`sErKb&@D!2_rFD@v=`8aS?e@Sako7kluQ7vKFW3xv;}`xC;- z@+X07n@-Yhhdq2RF35b7JK?&pr72sZ&5K9wVlMwh9X9<R*$OAmd=lDsO#Wf<rUedD z`Hm@UIB{|6lafBWqsCTA-<~axTOe6{fkTwru+)C@e}=_ei>ErjStDg<%qrsaH8N&O z(_+D%Ha&?Ay0;saPq{r|UelHxzWPq4ZX$6<FKL^7<7R3-`ciu84+jsfs9Rl+zp{2n zSe$xQFJTg7+8t(O=r`wy0Go}%j+Jho6dTQNX8$`WB_glK%KvYH^nZq()tl-LwAyRd zSQj3=5U9Zxc4S%VDRFtl41>!{<QW=%3CeJ^vmBLTHjB<^+Hpl<Z@5DHlbpp98y!@1 z*F5>;GyOxem3OigZ{IX0u@%`a+$kw*L)>0I@s(;ZaSnR+O00O};u-UmWZGD`s&;zj z7P4>PZ(ib5X1jAw@K-Hf71t%Mc0ZOBMn)~NJ8E8_KWn|ZM!rWSk7JQk@P-AebqfzP z9OQ})mGiQiw*JJOP}Rx*E+*u@vFM#5@L}$hDSLJ<dHuqx|DWZ9{jUTj-nQSMbWx)4 zAB&S8tNE0lhCj4Y!*m$G1{^RKj1GSy-utJ!^gqK2<Npj@vHL^ZEA}T}o4#w7&zv2Z zClUh~I;-`$&iZQwE}ZaJ&Bn@pv%%U^)5CX1&Xw=X%RIsPbJ?o>sVk)3<lN4z)Dqig zbj$6Xfp|>2;xvY%Z{(U1B+LFC4r_R`QLX7)<s+pZM?ynY>wmfR$3JLqHEVq%-|iUG ztQr<=H0`In#|GZ4rJkX@hUMFSGVE=?@$&6Y2Ggm>DtMpH+G1p?CadgX$Mi6g^*~C9 zmd3W5oexgwXiM*E3J%;6r5w)oB`cBj$l_3&!Vhn5M(DKtV7;BZN?U))FSU6ta)MDo z>bC_P!j(Eg>UR~#H2gY#V27H}3YM;qKKF|nUh0<Z)Uey<;Ff>m#?6z-*`b03#R4fg zH~X}rBL8&p2u?IJRSP&KW_LVqzQi=wdQ}Vm2dYy9SQmYZX;s<2=!DVxP^RquHw790 z88ZJfylu(b@b5II|8Iuw{TnyPKRIqRsgLtdhx`ZCzyBGgEWhMx+{GQvptN+}gMCj| zx~3h>6ysX%SvSR5l5_o}Ki#)Fr|>_CbpCD7{?~Q>KhEn@|4d_8{*p1r@tSCGo90oL zms&ABca8lgcldAg-@D;T5!3Y}?p4{D2WN7(w6EIdRhSU6%hy23B5zfjmWZ5x=;F*W z*SoE&_&OYxDej-><(2pJS8(ztsrY4LmfR0N6$QQyF>2FIUlEl3M1q+!gw34w(R3T@ z2^x7pe4AG-c`ddfCjE)w`;cFLSG70l{!M?i`jdHF{P7<%*v_3zRW>*=L0p654bMUa z!?@^<?3EsgtcP-ce9}3hmHCf3b5TTyXlzWyr@yo8<XlTlpGdnuGU}hSm1D6@K<EaW z13vwW!nSm5Zq~T*wWCpK-8zeVoxw9+8Z7wJeMaP1*wmYS)4xvtv42zh4*jIl%I=C6 zr31UxuHWeCf32)%-dww*X<Umn%ta?CU0l*<d_^I4|F`lL|BmY2{C7NSXLW(`wSR}h z!}d-+V1G1Zen)ljpPaH9g)=LU{%2?sD6c=X=~1@ohJVKdMPr3FH~ePp{wg*jir=gK z%}Vhet+0K9KO(+y%DC2V6j*nXbI++Q4B`_MI!jcqu-5i*u}`pUeDk4AD|Y+z8yd!! zi`ohWochIL5~EuWT50Ovxo2s(%f;zG!y%17+|xI;p5M6VArs@2(oIcLj5f(zcO|me ztebagit3t^E4}UuKia5j=K6O>hgALz_VA#k##eKG7j`E9XDHg^`BbltUyy5K(E^{d zzif7_EKToWJa@X&MMF#F@Z_y7EmKALez={92nh|86HMqc5jsE7&eh;WcOieI_swU5 zyZBNU{XISFU4Y1<Uk3}-e|7CvSKYCxtmo7j7pazQ;>`Z4`}~jTU30DOGuK@qnV)1f z(JVG$_VhrvwnaxI`4g7bFIn+Rx4Gz&@y&0EP7EikBy!em3+A}AbfWO9_#3kS8Qz<S z3cAT%dK*yoFeFm7^34klUf*eT3mWU3{yzEB>}&tvny55a;)4z;-`2Y>B`cEnBa|kD zzwtW6e{+|B<BB@gBcDwhv(~m3XrB=CC|3OA_FP9<b&ZZ%e{%mf?~hN`ZJyi9v@KBW zxT5WMfr)}u4_ej;n!WasxjxOoBx7&)(P{EGdQPp~e}hBniHdc(<cDVd#Jd+=9TE}_ zHoxJDIuf8Xt@$PYe+K8?q&=(WpZky#v}%9q#{J)vgg$SYB=Yx(B5zpN&hSN_7czWp z6V!>g;+eZC+KXA?hp54n*>VOgPF7Q847T53+4+gb_l9S1S<ITO1v?t8wHHq~c;$}m zG@H(tM&J4F310gS?os_aE6g>{LG#1{Ns-*d?xfbA3`qh(F9Q~IY-$xXT=b@}Un$CC z>F<^uJa3j5+*IDOs%x>r`;EsA{flAuxUVe0@xx%!wx>P&Z)L4dU48gOPxKSxwcjE= zO!@vZG$<xVt~>aC=7sog8r%O}%y<7**WIYPMJmLu`**{QPg*~wMR_xw@M<m4T@@HI zz4VH~)Vb5ea(!f#Qw@LeWEtNOt^G4QX;Gq=bH>VJ8dF~+zk2e7vFokTjQ<RqBDgdD zT=^Du{<i7b>0jIJlbO1gv}#@wxU&CO_iwh7m1QOxOlJ&gd;F%DrONs)xW=THQ^aU` zkUylhCE?c1RcjV4Wi8)#z*g?~(&b6nX+p;o8(r*wvmJWzpW#XF-;U}hUTa+++!R?g zJxr%HJv3+4Egp|IY!lvm5c{zGt5@<~Z#f@}pH~y+E$hF;y0o;alRN9!u`Qccv@tw> zlF7JjRiiIghvCYqXy;cV$s*Q9T@O2!ojckb&6H%@9yH<0?1ZYa3fab|cbIN<a<yd5 zbhS-BIQvq{wtzc^;S*K|2$oBp2w(qaI%}3z^o8W$=^mYpQ}h2ba30S7DRRl$Rebrs zi$Q-{r<tACtMl{}2z;eH^UZ>zHM4wvoU%9?FBWm*ugjE2iL3r3ojoMq|956={iKU} zqPM);Pi!&yqtvuh^kJ@2fDx<r##L(%RSB+ZbDXsQ9Y?QhhndEywa32Y9PB!+DN<iF z?_uxJMy(Z3j?F4knjl%=bzy;}a3Jpw*O$VdqVC@|iD(ZF->lsApW()_ytmd2(<{D( z7fsJ-`RXty#>DxEeDQ;mF$tRwY2IqRKC#Uz&dXy#@u&FjzeMVGIT&meVlojkwegy6 zt+7q|lT?203FYi%TF+i-C_YTm$T6H2F~xI>wC<<iH`ct4Rd-zeGaLyJYSQ_pA0MzW z{@<0=Q~vBI-q#ny_>95M&m<@E*Y}_L39bJbzL_MkN}g!W-&84i;Y>1ToVUlsj6-76 z{xh8TmHZ?pNBP8$vYIHjJC3}^IFgOt=<y!nO>a`aw(!Bs)d_ljNmk2M!?&zn&cf@M zazruef!VED3sW^2JIhkNU80?&4((jj|68HCkz3Ry;iC8yMYBDn5qoYl_=e5kzU%7Y z*>nD2@ud^XrzrG0->mdDY3JuCjejCx{>Qs>=b88o;eU#lj#fyd^F;M|H_7TfWaQxd z&tQ7!%Gwg{Kb^hL-|VdJPjSA;|3qf*bfwc`@soef;8=S6E7J`X<~=t~2g=6Y@Jh>> z)9`e&f1cUJ4W%8cD&_Z0`{x+7@8Al@e_R@}g*)DUj(#P3V_8?ktG#=h3NMHju+LDQ zd?{)6w<zx0n$GSz)6Tt45W8jP8dMk(Z2d%aLrTa54pEK5(uS#QI=kbVboM9|#fJ(+ zi8}3OaBBP8wCj4nyQ`;DRcchz!b`<V3oI<T%R;^_JNcg>mi3d!#-*!X>w8?E%%1t^ z!TYl}lN}g7g)h1DpP}gb7xsT%mhAfsPORfU-DIG|u|{Z{^7`MJK0<po@p{TjW@efC zzj9mu*DGVjP7@WrgK}Y7DtDWC%=AuoDgRoLS+4E-p>s=TnQ4PhG)HPgk<)_v2@JXi zw7H)o@#@@*s}2mf_{(SBe}*eJmi%W3I<FTg+k7|1`}$wkyXGI7Ux_c#cL;Nd_H=ye z_^mco`;ETghbbO{TeaUT3%Oct`16&L%kowM+jCdkAG7poGV8ziH)F$vk3k>US6|XN zU%7Mp>kqvF9vgNfUwUxM@weW)`%i9k*DEy$|7dfJ-*~zI$!5*fEBDO)&9+qjNi9Ro z?Czaw<!@ArYn4phu<l?|r4+C4cE*JGBdgQ@B#Y@k6v!1+I@7Y|&9UEZMsJtjNGb5s zvyr$O9`q=EyXG|g8=0&>&hRLH<2!k|V1<0OdbevugZTz6VGfG}qK~Ir?+QF}sN<^P zsvwI%zP>wwa`U`JSC`7)75c+@Oe;nsVNJ40?17$tExYe@FhALop(e6=3wOflzvprd zWmNOh|1C~&F8dU}Tst>_A^hmcti_+%*W^Y$iK`QdJ22g2YWUf2Nsm@clh(05@;<}$ zz1SSahjnK>KQtE2JNi>^wQRLbvVZ!69ZZ=UlJ1=^DN>3xXxi22;+5JTH0f_!NlNY~ zj)Pi@Q=Hi2Z@P0ibnQDih5JkUZpRm#&Kr_##ALI&mp<gW@uy=e+ojN%vL%s)+qApB zRU19k->+P#?k)J2;qV)y<$s;B461ddo0PaG1e(V=o|l{uDZ?6aXts}S#5(Uao^ogV zRtr2esg`W#kSk}~GSNwX<!n2FO8(W7EE8WXW_CWL;<v%>xUsn3ofn55J6872aayYw zyX>?r2lJw(=az(DaJfHm+Q)zuOLy+<`j))$r_T42|3MoIrDRvs8^pP0a_i09r1hA` zv$e~avzmiJ$eH)We}*R^6{i|%=U>pBW_##y_VI}<BJ*5$SLTPNo&Fu{>awSkVd|S- zy$7Ppbl+@^XgzT7-{n_pPW(NT>g8LX@OIt(lX+YJGZZWmTB$7R-+nSn$F_gUmOk#! z^9#~%7XJNnUUh4C@Cx7RUkOp$G@I|tyXw}lZ7ahbDKE1Ko+C@`6Q+Er<O(Y2<eup@ zb)VaZ)&^<uqO3`4XGA+|EZOR4^0zTsQr>yeIWr-xoAJfp9=#J~xuDF}WX-2)m7C6# z;JU>}w0T*5l4y%e->C_!tc!b2t-0wN{>>t&!ZmTpPMeq=d)Tkle+dYBb<I_K_nR0? z#>cAbQxD!)S!1coFZZl5nsZCrAH}RiF&DN<3qM#jMe|8==!SdeGy1>u-L^mAu(9bf ze``@sXi{|hjl7j#S+n?WSasAVv331B?&T<2|JFV}Nk{96uqA`u&6ff%`#$ApzFIJE z`YrWGkJK*g7rb)lO9Q8W&?ief4Pmxd@8dt^*9JySUs^bAL4f?Lz;3CYGzL3w$2AHY zGxP#pTBdn3PWEeAyW+%_Ptsji^kyu&{=4`1l?%6pc1%f_zMA(1&&Cz4r-ag2uLvYQ zGOf0qesop9okeY8%pYd9vfuCvujyX-&Mi{?n)+$0njR%xC*8SS3yYrwPY6^0D&VyL zL@$f0^CF|8%thyxZ+NrS>9DoVr`S{ei4u&LR09^@aM;gn&9>k}n%O0$RlB*KPgtXL z_QXE1gi52;y&uzE*A%QfKT$fUrumZNH>oVI3%b7NH`s`#>`?q@d-#*smUmK3f4z@h zb%?svyMDXuG^MG>gq#c-HhQpW#d&4#JNx$B?NouaJEK2EcTJym^jpNI$cUq>s|5?} zxdbJ6L`3}g1(wwvY;f6YZZu_wQ_{D`M*ZKOYB0XmS+XETGrCi3*>k1<op6q4{ipiw zO$u1ZEInoO6QL7{4~^th9asb<Z0nU?Pn5DuI{AC*lgJGk+ZHA|IY_m!{}!8&7tm{> z|M#?|G+(_^0oP*g`J2wv9}}D)`AK2bjMk7{3w(Zc&d)h6u++&p)2YWkm3Ptf8?N5b zZylUo+I^5eD9G#fCPMAE*3J;6EScgvGu?vXl~2|@S+wb{mT}~3g%J0fCE>d5oF4-Z zRvP{}6}?mUI7i%>FGY1px!&eUi=KFhCcnv5EDY0owCasgV@<>UH0hHc45x|;SY9cM z6fSpBeNeyUS-{P}Ms`M#={`EAZi^r4iIi2HQmyf=e4U|Lq|Vw&N7WL(7>n$#W>8*j z({)XE<C0M0-oH~@m^=c#980(B<t<I$eltF%rnl!}))Ze(Bi`oHgF)SyGfOtC;F}n_ z>6A^w)#H2y74q+N6`Otw&stW@VUeiTpXM!}rI}ML9_XKJob`9MX5EHGbK+01)pj=i z{b1pIVxig_iH5T+F(Q{1=gF^dJ+ePRY>o0K_RQR$EH8IY-Ov8!Y*$NxsX~Kv*NL}D zVxLTYRf`8$f6`dB%pqPokIj#n%`~VzqBGCwxBRhHab0Rff-=9www{uTS@~m!-R}Pk zZv+&5|DEpC4Jqla_{LPFqj14(e_>Yk8xFbM(mIEK>pN_iuq9l{WRuPodrt=6hn##% zDwawd`RC94Q!c8}X=`uT=gqf;ZiI`J1>F<wWVookq(bDkhTWvzK5My)+8UcOEEE|m z<-Sce_Sm|k?_-eE<-cwYUO)BNm0mMTvq?3uwLe*+{huK@YVp@5gZcj%Gz~rqJ`Ak0 z|7LkSVY9rzF8kjs$+|~f^fESN-Pqsh9Q{%zc*BKei*w#noKKuKyVbQ!f8&N(O&g~z zGKl*8Nw3E(;)M1FerrA3BTP5hrn0MQ2)s19VYKb1rnXuBn^PHoXPGo-&7VJEf?e-Z z|2rRkv&GcwEs|OnVKe1ih8E9>sR81GN8I1ANV+@4vp+axFDtlr&f*DTrD+ab{~4Z` zg?wAe)upfa+AYVX)4STbZqi}a{|p;zrlvgHr2pk~)6)qN8<&V3=Gz;xHS}}n4~G_( zuq}z3UKs?N^``plSoTT%)v{Hc>Gv*uj$6gx?0kRI0eO{oKXX#-6jpKitX{F)T4146 zR@h<}1_h=Bt$*&mrE@vz6WH^%E$wQ4%)p-f<~R2@`^A5c*LsV*Kk2x7XPI=8ONf?@ zt9Pu!geS`%vHi6>c1`PWWM=24k5kguypruZs<%^SRaa{t%dRsWl~ea7g`e5EbKC0Q z8ZK<LF8^}$lpe1w|0W{k@ij0xwSU8>3Blc<n|(H%SQzLWFzs?t#IDFc37svwj=SIJ zs1{cC^b|5bv9WfVZXj=`hqnDLh4~kHN>hHO99i8Iru|CT^^|;P)0(YvXSkF)PdG3n zbX};75Mq!h{X4bEUa@OtXTp1h34Tpa1Fj~23TV8xe?zR)Z?CnhO|A64iZJA{ZNIe8 z^7!TuO`)}!UEZ6orD|@HoVzHjyUKu5+FDkvbHb^NZM@t5s#$q;FeX}@xyI|HmA&|% zoA#8QWkrAgGYB)D7U)>Tdid|@4RJ?L$H*tfMk(#IPc+;5>qzV)Sp$V<2gL&p%FSwC zzH#Y)hM<05W!A(T{xq}c0a<4jO?YtVO#)wVrB0d8mtzm&&b*X)k>$m$xi+^$^z($w z{|uZ#R$j9Xzv1AnH2TkQU_ouiT{+hci5dSH1kAej)%QiG&6u@aHX<ig`y+>t{+lhX zKm1Q5bb1@<FHZ4#JyC5ZlgO0a`5U4SoT_bkY^mGsyeZV{Pf<2gecBN_agEdGX54EQ z4fb68Q=|T)>xSpw)Q|XoDv4w*`_Is!=e%P@L%^ZHg6X=FFVgN#(SM_4|C#65ri-_} zRSKzVZYYWIXXv{2Pw8tBLpaCEr7dZ?4bi;1Pq=fs?oE2OO7o*!wMOJILnrx2J*~ZI z)=#YV|7TbecIu;@zy;prn{F;s=dpgWEk$~&c<H5>*MGY+xo)ns6c_idPfaW3jFx)w z=HGR`LtS$&GYCAq-fNu8`&)DMk2^kY?Qdk3|9kKz{tdhDs!Ll$KZ-3@eD-6(^MKbn zQ}(|Tyyz=n-zl=nG0iVYyrN^>#K`Fa3~rAYgKta=7kjZHJ7>bVN0J<=rwq?d{#N}Z z>`jcuf(;M)udMz0Mt&jdo8(73{xdL&pHSoatGHp2%hxhDQ|CnvjHMH=C-H4w^}sCB zc>hP!h(IT$Jsp~9>TWeUD>I7@JbdGz^jnW{%~Y*TE9X4USv}Rqby9cyLzy}ICMRCz zo0ZHvRpik96N(CVH*C83#<%?^pWp%am4!a_4!64(-kWONzO_^?|F&@HgGq-ER`Z$6 z_b{*TTgb&#c7m71XlB|Lm#;0}^Es{De3rlYwByQ3HzgsFcE8)=Wj}f^*6VCJ^usYs zF6Kh4(w7CV7d3^pM6qrV%zhZSF{a^q>a|ce-*bnQ{c@Fc{cl)!rAVz3i{%gFzH&8C zhsko*_UOHxT=ze;-VLbVnZ#>W|LahOu+m}oBc7EtQ$GGVqi!?v+Pn?kfy{FXyDJzn znhLL~D8#CZ@yEI@UD2NUYfi(W+k2<*&YqU#d?Goy==On>l)zu9FL$Z_5WVrEyT@yd za;)0R?$x5v%xe6JDS<ODd#EtjG)?#s6MpE1Wck0tG9~6Wix?jm2k1vcthk+W+45e` z0mipZYMr;HguQ;wVfyDc+tvEK`uABnx3*q7z3Jd5iFZpm?ptbX4bJQocj9>a@96{6 zqU9Bbu0MHmE&6YR_~cchpDbnfOPJ@sl;zTjJ9HvrTF8MK4i>>YOU=@v>0VPAZuv;F z7MOZ6`ZhM@W++XXq1DAYU&8#LopW}4^5Xc7G7O@k3uI5N{3W5x&*vrK`p%hwCHj(9 ztN#rd4pUX}e;!hacV;~kYf;v1PZHaDV@2$NxDS3Z+hUh&veyYIR|?2-T#$P#ScyL= zYiVi=|3v$RKUw{zpY*ex%02PH(eq!KP5%nLNcoVsJ0xjxqS(h7a`uOgUae+L7JEI% z$tV712v>nYzKgnn*9`9x2d?LvKVBBxHzoJYZqZK*-tO+@7kXhWt{x`AwkS<XfT=Y` z>s#)MNeo31SL)M$6~(OFW#J+jlwUjj$3C}NFI>Y5HC}a8HQW$=l*H;Dmavpt-GY(x zcIqzo_dXF-V$;_g>;K*RxIZi2;!4ZfMXxH9#hz_r>o{!wrgXQej7DjHl+mB|Y)02o zj;PH=Mxys89l5vq$#?eOjdSYn+*drnvis$?<-c}#G0VSMS+-`6{X#a8np7Xg>u=n9 zSDi4(D4c)DiFqTx!<(hm+%g@KC+2)pEPW;F_CRaa!C!$I^A@nlPSbwFJ-cOv>)GZ% z&5cJT{f!J5OaAn}xujwGF`V^puI$ycQwdj&OWsKOCLJoZYKoJ>L7@X;d=6o6kGOvN zGc_YM`ps$)oiy$;t%hAEmPNgNv#xGpQ<<iV=f*eU6Aha$@MOP|&<b6?aruLtsX8)E zS-L6AO^jmO>by5kdas=HfNeVOtaEehPXDw%8+6s0$8Ashbm5>K6Bhn$-X9Tjv}`xW zR$U$aP{yeRHy8eAkm|p&<Vl45q=R)wGku*4-F`kk82stj1$!N*>R)rN)b?Jfz2jrO z#p%g|nzQ+FYiyR<WbNN*+S0fye?n5-GLvla{|q-;u5L0e-E!{qgN2uD{l7h49Qb#- z&}+fOm|d+KRxv$@VcpQpC);ZqBOtZKL}|a|0`KDqaUAcTgy&u7Ol!D*%d+&M8S5ra zu~jFuPa9n8`>Wc^UHwV?W;65hH#=jz|E_0GQ<3!9bob=)Pq9yL=N(zw@cBlA==_Ke z-@e%#{BdgHYLOedPfsoOcyRwsK<?j`8ikEc93T9gCw{nb>Do-k(0>z5en@yN{J|)` z=$wA)KBvoSdB=_mKNfhf>!i!FZiVQ8XOk9i@0o7$#7C;vL!8OUs*-K)oSbIy)r%OW zPHPde;t6Fxah5%OC*Q0?3diR56h)f%thr{ytFmGGGKv2Tq1C2=k9<yPZ%ozx&3J-w z#?cKEZbx-KPT=IY(xu2EyGZ)w-$uzi-E~u}V^%H*H1Fwc418-Rp^)C<wV_`lEAH81 z)pc)}^t9hB`DFGo*zfo$>G%&@dMC`gC?ncaeWWYOwKe?a%_(938LrB2wV!l3{vH20 zWmV1JatG&m6&~!+-RdlAmL()6QT=zprtPfVZ@A7_-EqBW!ufZa_sN3?l!Dk*tK~R7 zEONwIm)w};rv1c@_4t+aFE_kG*G@hmHaUfb^(s%0&GjW!dksxXW%|x6SrxWvf=1Mg zY2Le!$(0)Ha0!U9cAB#@oHgxO^PiA7{e}Z=+p?SM?yz*pZM0Ka6<U$naWkw@!ESG_ zW5gRz=~?%Mno1>>-1x$A&?>>{&yBzCU5Wfhwne8T9Fa*rnO?s-VSZZ53+b#!o7YXO z58zP>S^Z_2Qb6^S3l4IE0?uYL97DGSRal)C?OvVu?a+1A#Q{+ryj})uovnIDTW4^s zSeUcvmG!k9vF=~Bql6l|<To-b&;G_M5N@|9<-FP^-uazJ4{m02%{$h2cD-tjM8K+P zzuK5vT>MzP>Qd)remUsdvXkjpSc>tIoNK2W54PR8q7key+xTW<!0c~b_k`~$>aKI! zGr#4kFpILnjrtvzZWg}D=IQ-1x6QSnD^Gr#wXM^I2)C=(v$VPEjxMnJ6u#rB(ASPQ z+pgCg<`Fjv53Go~BIrN4qqy$Wx7a$h+L!*D_AKn^%A3o(VyaiwZ%xLfmqkArC~&=! zbIr34R9`6=70J~0b(*TDptPIOQs$#meOGfvgdOjD=RJF!`|iyfotxwi$p5x<H2)Sq zm;dJHS^66~y>upKbT~6KuuW{ziDW%+CtvEyZbw$vLSO3w+s+XCBLZP|hKo=6>gBj; z-E@DmtnfcWX1qgA*805-J+~9v*;O<2zbWr-<UAzy?2Dd^$oyo(q-?1PcW3=tA6d$? z=qFP`c>09bT0319{1lFrSCFzlpj)!-Cri#pR{1zL1?~Rk?8%2U^CyJ6Zc=0F->~7v z;uW7Fr}x+&T@_<uJN<O86W8-=s#(FsN$Yg9g`|2LPIKRE&x-P%yRv~bTj*$^*P}Di z{nh{2I~(>)`@GRUL2q6BN0FctJ*%RwxTnM(l$JC2An3hKS@3Gee}<;j$1L9nP7G%8 zyS|~q;hX)1`5O|hSl^ImVG5hz)T0={l@h*X&2tGEhZ?tynI|T7)_$^>^YyXp&Regd zii|(1Hd!*xu*sZsR&$!O`)cmL)Amkzc$@3uU)QYKsbX7=pWX4?6mmR%g{sG~1??X> z?qAUf;a%p#aDwak_9vlEU(M6(PTjr5ryCl0b?wafu-HA{F1)Q_6<rj2qS%G+E)QRq z`=Ov3%_lC0IIjIxGM1LiJ^7^l!h09yz_LFbA}r~*+?O(*3`q$V{}^m?b)rLv`b;&Z zm!@K#>BmpEtg%ljjxq}iO;A4R+nT>b+qw3eY~T;&-tZ^i7jgC{Ow&3%cZzSoC+lT` z)dBB1|1MGqlbX9iJwRxhP_iC}CBrK2c2&jQg2CcRbEE~cJ|5ZTu=d;H5bihY{xF>4 zPT0mPs;zvcOd@m6#hG_EJ&)|KKe$CcslH?3&LnZ>6*t=zmdc%8pYrSH4TY??Mys1N zPpF3cP+dH2+8tjfgUcOV4`w}TJlH1OBJw-X@z&n?g8baID=+?;QpUXLiHe%t=?yF_ znt$e&W;<E!<j=C(y-Qd1pF`5YBh3z;QZEwb6*V+=Zx+@&V$rs2gTbW7!GF{PKW{rF zdT3P&<9`MY_eGJ*MFRFm-w@o_!602Yi=8L@5L3VFe+HheDZ)v8QOiusyLWub_*pD* z@muKQ*y&&DPVZ&gq+K<qZ@N>!n;o9KKaTe5pRjIj<lj&ru6!xzLRxd;vZXH;>@fex zt5<aCgZqn*F;5<UW4QV5O4zG?1{WE5qV6r<%%3~upNGyg=FZT9#G)<6EIy{9yKi)a z|2p5pXE622iL@15zE!>)@)Jc@?Oe8?P0Fiz?RM@u-@`!<qIrcrn%!5Oz4n-?fY5P; z8D;4?pKO~9wg+wK6Bg59Jim$0p;OAk$HDA@Ht(rlhn{9kjJEnDwdj}og!&bGHrBaq z%zKy=EXpx~@8PBk4mWyl==bctA-{oT_ugrHlk0-&`hQz!wr@Bl5%J2L;aX(*rn$`e ze~zmgbX+Uv7j6lkpcmAzlJ(C;4gQG3UGvVrc3TjXzj>C!rLqMVxdP(@FNDe&IIQAn zI=Rfvz3!;%<QMfylM@9>`18#9Uk2WqxaH)NMYGON4Bj3TH95dWt8hY{w}9Q8u8y>d zKE9{>C!Njro@P+LqVwN`s?(C$90vnl&DcHV8w+3K$%JVBWcxc}pgQK-e}=;S@i&u_ zt)#_2<lk4@pgNmp>E0dE`zHpzJk=j_GwR6EFn-ncKwtL_y`PFhzcl3P9}-*iizi^~ z{Wlx`Gkoih=HF^mVDymJ^@;1m8%py#><>J1W@+On<5>8S*KNPjhal~o9WuLlW&h0P zt@ECiEX$hAAK&S;yCcG!*JEx|;_H8lu5FV)8B{i-Rd8)dXZ?fD_X)RyAIh`XPwL$} zP3QF0&swgLCnB{rCK;}c_xQJd($j?6R^2}iuUpr6axI>)>tCk+RQ7;5XJ7mOsaH|T z6Pc#}(Pz^w`{ZErCoT&1o->L<Uh3F(U3xG*b%S==gw+%6TK;y}X9YPbp7FSBbxgX4 zwNUCEtHVOkC){=)yw5##e5Yj5$79=h(L~kaXz~a5=gt!<7wfO%|J$3t^_v7Qi~C-i z-z<H;t#+ntjrmI){C{uQCC-zbx@5_}tZzy$l4j-x?6}o>o87a{k!4j&>Ceyzr)L*9 zCW}b#^VwOSenLIzQf_HCkG!PgKT);|6Sp$z2~3Zj{^38v%Kr?XHRd`0b(-==?wIt% z6X{!T2&{U$_zf%Xtep>x_N#WiyL4c+dQiY|!TJO@=Y?7qN^LuwCVuLFS1h+IZqv%s z$3l|g+Ct;L8CnR6n0uytZk;n_@}>u?PUqY)n57`&@!i|~glMnx;mq1~N9_gv=}*WL z+Mhh-P4t8q*WQ^)O?EB}`pPd~Bu6Zp#?jrkd2;eh)7w4*jExOR>kPDBZI{^nEs05h z`_>zVwHr8e%lY{QLv5NCvOAt!kbB^?`-Z7oBTwWW41H2OWmQeWRc_(^b&^H<w_Az- z)QxmHJkkD+-KF~EUza~|p84m$^q^Le(yJT$qjkPXuhG6)eN49RIQx+;-ERHU_4aSq zWNw<)@@mVZjUkp2th4WR=oK2A+PI;bBS-Y<Cm!}dmWC4VojJRTGz*pP|8fw&WZ|`W zb48+vyr-!2zQ5CySMbee=2Vdrw08Ye#9<b8?2<qO!*(5;*+F|}dKED=F6w`?+Rr^) zz_;w1gz;CsyM~_@N?dZ(FJREve?nONuh*{qSAJdnGi8lIkc?Bs6D4UgZN`^r$0ncM zp|s@Ik7hB6l3ppTb&t4%u5rAS<_QTA`*-T%R4J<??8%Xf_W4(cOjvbvwo$8m`tO9s zsQa%Bn_M64@~D^2Onjv6{X{spCZV)gw6~k}<}p?_qnx=y(lHGgg`Kj$IhsoyrfL_r zc-&^0Ar~Vi-uQ%@=gqsB-?*=w{uFmn>ZZ`MtHJ-i2~226u{yO)V_K2IYwg+09Ldf~ zGMPdJ9I=d7HX2llJ&fPH;*{5y)?`Kh$X`xcEA!QEmt+~LEYfz3oU^EOir9<3oAKXN zOq1X2Ioi5L{GoBj{Y`5f%PPF4q+aE@obg9N&he+v()c&OH-B;KJ$pJe^NE&L(4L(w zfBIU5UFT~GJMCnuYSM3Fev{!5;(TuEe+FgCD^ocBx+jUAxUa*;uPOY`N$^klhBemu zrB4b1_qpr)7)oALj*GvM>cx?}cIv(D;ZoD(mFjPwV933)alM%B{!3Q5CV$-;mcFe! zR1m1z|4(V{xv&b34(XfeNn*T$4ni#pPpE$qT<Ud^dy#&=S4MNcTT9u7Ykzy1bC*xP z?XyDbtz+d>Wd%pwSqJ<YzcFli>sX^CIC)VfTW_C%9Vd&%ZLOda3x3a7+Aw2kjI1cf z%CKh(cK$n&abv~A#ZM2|uR9WOZ>#9TCpS$xUGt23lO8O#j+}K#CR30#C6AHs_=;Jp z-EZd2mvUlJd?IgErlWZ1{D$9G7;iVe^w|`wF|YZ=&3PeH_ndT@sxLZWYD#U#0sYCk zTQs&jKe63wSwwR2f<%tSMW3EBBsSgqRHNT6<uEx?&h2TXVC<yD^VJNO2|V4jnai91 zNuJuGqO^-<Een;bRH_30p1h{3$@iZjX|uc;!_-)h*RE5JX+(JUy*<tNk|p|3jC@pg zzztia_(`18{w2sAt15EnkoGvs`qoP!E8n&Kf}df7Xn4|s1PA#k1vAe2yjNvz+%(6! z=$nKqchk3)yh)-rZ|H`&a!FtH<6uwZjTckWSTA9gv0%l<iem!yKNmiEpS~%XW0QVj z=(otI2v0rEPbCYdehOG?=fWW#+Vqx<{pS2-B5e6AXY(Dd9(m(FKaEqrJ#EVMjnOjQ zt-n1JGXFEIc-xRuTK!aLdGWea%N&z!K8rJT%vr%_wZ|x+Wa0+ZhiMm!e(Uer7Np?$ zjg|2~LsC?hvM*EIvI$>ivS!_!^lN3h*6&YMmD4lwH)<pbf$Eeb{d}8g&zacHJy~YA zO|I$nM1jDf1=7D6RL}G5VqN&3q2QO|>%^$U9sciv`=3tyvHCZs?^P$RJ@Z>)E{L;i zxqp$XmA8^pimN&Kw2=Y>@2cQ+r!VgO+3@T9uI{)4Hci{i$`n~v`^LWsbgWW8xwEMM zWPga#fyT_hCz}oI6WHuhzqXb(X{|f)dQalLD@uDrrhjx6x+L%*^=$ewiKRCf1(QVc zg(qh2-K5MU>YpT%act8KXWuC&!nIVVK3KpiSj%A=_>J-QNe3;dQ>zL@TetN+-@H@v z$3(Z-{ZF<upVPT??&v|2ly?GUavQ{cxK#y~JvbQXq^_-38EEHNGrOqHFkaz<np#*i zE4%Y2llxpYJwb1#e(mqyD7?RsYtf!V@_{Y_RXRbTG85P51#&Yy==4zh)5+_;WOK$; z4Y}(IQin6&lnbu=+aV$BAOEMz@%4X(H$iiDFf9G&E4cMF|GQVl|C|)(xjcL+bkS;B z#mc&QUPe70LXO+Z>=HITyi&IRwQiSc3;!pM!mK!>(+-YhtZjcIPFh}UcCYt1;QF^K z_rO<^%f`VQZ2g~jZ~g0FVt*z4pc%h}_PeF|3iB1J?Ux)DaNp-X<?U8+?)(J749<Ta zPCrX&I;C}Dal-qAxiQ`+_OJiJmjBf56nDa(DHgW71AVh|wGz`i=5${Cr_8<bA>$hf zqXyO)kDXZf9n~W`)@fX9>U3Lk;}h2kv4p?1-8pYhH_T{tTA`d}y|#guS&ws#XoRe) zSny4zOZ<iPD+R=ZPM1#mbuetPtHkl-lY!xr&K9lzJ2h}6!}^<_EF2tGW~cA{W}LEf z^Bo;;m5_xJx?YJt0_0q`-C24~_6_s4!zs3^`h5!f-R)HsZ>A_*Q;hvLSwQBBh{Hqs zTN9?cmY)oI{z*naX2rsce?LW|<dk1lB(2rZVzGU5WUJr_S+2vjof@(KT$f**x1wu) zhDzo(rcW{rH8(So1O6>tE><h>bMhyJzo|>L84mnsNK&ak;?w@eHDJP?DaVd<rY`-H zd^-HM%&PTomMuHlu}L{xNxbl!V^#Y?t^E5F?`=|Gx~!3<)qJ|i#+z^Q)iU-EO%W~4 z-jDw?Y|wvnka<$X%A)@a;-Y^X3pFeQ!tSWKXl#E|K4p4It4?v=6t9I<^Gappbt5;n zD!w$kvG3f3faJ1(6)Vg_X0Fp($0~9{A-zzCLt%9S=Z6Ci)dL!{PjH<xytF6voD18N z)h~`6nYl+}n!NZi%g~rEsmnJetP$s&?ssN8dm=+d(kY>aKeL%09ZZV#UhpkZ=%3mq zQJ#A}Cn6(r+xP5@Ox|?2(ORI=@`#;5N(>9fH@&`N8YV@&m-l&V8J_ezJwqVNikJ5j z_l4G$;#n3u?z6JzWe3JjkY<Q*slE00@P^;(3@?VyVEAWoKwDzZk%u#CTkQI#*13gU z*9yEGKf#^t*~Dm$sBQ8etC_5s!phXj|HwHNPF(zC>rSn`J3o2Np2|>EqOB_8w`oiL z4&RE25`IS<#5v}2PdyqE-~Oq>%Q4Bh?nsA`+Io3ajTJvNdgCXsivIJn{LhfuYOePv z;?2Q1nS8C<W(CtYzDZ6yw#T5STIjRn748Q9cPld8H)~uKzj1ZS{D^9uf-+T)ABHPu zzSb7~rMm9!f_&zSqLU7AL^;iITX{r@-9xlmfXB=B@e{3E+bu$}f=`rH>ok@ID^@vK z+Iw`Etl;PV`esqjQ6~n`Zr-TP(?!KzPwKC3wC6q<?y*Mu$`Lu=E>UJ5>rZBVf)zp= znAb40W;yq7oc)p8-CxnM%_a0u@|)P3!5cp`zcM*t{zhQwu>%n^HfFkglRNP5;F)lN zpp7T&wu&q4E@fG&y?L|n!X?u_@MI^4{!82YZ_V2HFaH@D8yL>mIdx67ZAjbt#$QKO zzx>VH$bds@Pf7nw2%8XNaWmk0`~$`NpPX!xIRkSY3l<#S;HdRm@Wdqt`4h~46;GJH z%C~aaee`IrfSQH-cHu{Y%%2QHzv_PzcXFyfF>Ctt{|tpWRsVcL?zgyJw|^h3qoEg) z)wy7E_T`gF`(Ns7O@5N|%<7={rTE1hJ@?ZdY~1&@^?+^GI|GjOHv$$eah+6gRIx+D z;n%U%znyKqE$6T0m?F4s-{IV{M&Tt5x&GfZFFg{q6zr7OW}Mg_-T9&Sd1{|yop(|M z{}K09;qhtCXD8(HY3W~Crn>srC;eBC;wS3t_srO+_jhWj@1wObu5Uf|v}d-@*|%oN zo8M(jt;ZOSKFY~_QhwFYtzDgSn%1}Atu31An)BZq%x?JpTd=Ogx9TfP(U-k7ZJQa7 zg+6Fq?y_(F`ZqFdXE{#mx25S;xV)N`?%LA2Rp_1f6z;#ixAGNKoL}q4nx<HZ1icD+ zop)Gh|I#UmZg1>bDqa2^IrM!A|4NSsVe(0)B|9Xo8M4@yOydzVO_!haRP;x~^FPZO zv=oF^zfrjr@rvu+1E$3Ltkdhx$1tV84cXSak40bWZJBxal-UioN8S`i96Y}4g#RVY zHGvhMjPGd7Rez^&aWi*Yy`b=kn=Crc$L0l_a{gzi)O>ei%H2yGXBoPbOL$f!$HXo9 z6us*DbfZ)EuCT@nHcwNMZCIieuyOvT^XsPbzu-H5sMYZsTQHA$Drd*ag(56R8Q;{J z<vPDC)LCx(?)W>g=*aMcTfAjf<;4fQK4BxiQ}jq(lVa5M4GnMkqf$*`r?PH)w2tA{ z?9hpB!5k41x!Q5lZ%z+b@!9N2@6M%fRxI(&J?Y+YXxXi{ol+}Tr#n<R%wwDOtt4$) zwe{AI4X+hX-nwAOV6ahOk_U&U=Z5E}XC3jk?|A&5A@KEohC|H$e-;M&f8sHzSM5^V zc=5q@jT72V!Q4`+_V!5*;k#{gMPl`0muo4++RRtHvG7rRM#ZGh{vAroEp@ckS?y$5 z{_l8$oS3!1-=^rdr<<xy9Sgbq#;d#Z#$Env#$EOkJsb`#{Wecrf6J|%I~J*Qt|(UO z+J9ut?eddBTUP9T@SCHpJEnJL`iWDL-;y5Qnl5(Wl^3(A5Kl~keV%g3q#5RZpGtHl z%1q?ns;lJfVq3DcuvKdNl7z_E9r8!FGjkqa;*!p*UigClM)0zEeqF*Aho|$~>^4ib zm=UAxy1@UT5|7ufkSj-Jl6y8!*SqPZl)T{0(vNkge0JTR*vg;1Q8Rg=X3oVO?;O=n zCRasF;j*69>X6I$Mr|rrce%e}+>H+%+u69Tw<)ElWmyN+>ghKAXXq3AQ0?@k)TcZ% zJmUD{E1I)57YQy%{yI&VsXwVV_R_5Gz&DXn2hwk>y?#ZRSI0iL=uxK3^eImc&DnT; zx9GBrnw1aU@H!T<MTSmV!Q>+RP1>{6d}FJf_w)lRcQYC}H~9<gx_s2tsz<bRzEX$o zZ`sIw2M<Vd&tm^Q&+y-*%l{dSV*fKd=(qoT^jZ9?$cD~8jC_}KFS4^_rbOy=Ogd8* zael*_<%y@`pYZ<J@V7;J;jRjY*DGDOHct8zDphzWR#7|E?U32&Ztg36Z||_yv3eVS zOaF0pyWUluoq>CQGV-w6w8T7=Pdk6cX~io}-X#kTG+&#Sx}tw&x!{k)fb?%HQ~y0r zzclaFr|3y@B&ND8Kbfw&phVAjZNe;_Dv6mjvtk5J?O=HJpvmquyQWo&!{jqNET=za zv#Z(=wPw+bUq`bZ_iPfZNs{Vha9GV3ld>`=kk7m5W<<WV^jfdTNqaVw3A}0f9KQHd z)V2HH^|>lI7OfMv{kS}J)@zr2MOj~k9M1+Z=`Fm|ds#!$Mxim*$^Q4PD?3!*6u$lI z`z}{xSJaoeZ+=dhwYPt2&y?8=ljbv|h~N0nup(@W@k`$Muj*E3*+sn->^OX@x9vZ} z6Ng2jVX95nMMSh}Le9*Xs=P*F=hLIj2@V;bZxmVy&JFp<wNGaIgxlTUm}R|MR<By( zoqr<i-XXqEBA*t9&lkM6v2OF%c@ykYZ4!S?F<S90YpN*cz5ZU8NX@T3oliE#|C*cr ztHsYN&a=fU`;Fc=?r-4%_x`rctrU2>{A9}F>6+X2-k8R9LR}$GKsL0#P1N&=*~4WG ziaxp3qQ-9)#+2-Hv1zV<u-vv){>0LpcjlriJ!ZG*Z`j+eE<QVy<KZQvSL+z(NwwsB z52)W6;Jn2l(lqm<Nh!<Hj{gjyk{o}gm#FA0sB(I5cTl8Wfi<H;Ye@-X%+&u36Q=xG zmp|EBBSHH04XZ2H*LDWh%B$aRNa2bV3}p%1SQP!GNs9Te!216TE7nGB&{&<qmn!8b zV16ul;)geDXMR$MdFK{4rBX!a{Jx`3>rcGv*rpL9TIb3bn=tcEm<~6S9-Bc6!y6W# zY^N&%2NK+v&M7c|ipfy!-usjFc)Y@?<xdRmALY2V?C*+uCyzb<Jk#~s>q`rBv_F+D z`tY0M#gmQpmt<Hy96kT`>PR>8-qO#qU;Ac9&5?;)vX<?gxzlF4Y^G%4bq<H{Ype<z zzeOzau2(J+nQ_!@XJ(pZv_RZCucwy<64$u}Z7vMn(swLNruS2-RK#4Jq*7<T%v(A| zDS9$oTem(bemPfLb6?Csk-t;cyD(gx_#x!$7j<6u_+Mv2-aXs=*mA;~n-M=0wtf=* z&mgcR())&v(tidvwq8Z$>l0gktxWmjp*)+b=_jlH1euTKAC<BMo)l@feyMSCYpV0z zn*GFB?QzrTv%O9V%a7>(@Oi|$@Y)2^rQJ6()Zc72oZGo|OY781zSi|O{a9u9|5Yek zF*PA|-J}O$lNf%sKD>5l#!ZD!3r(D-bZRlTBxt-lwypn!m)dN#f*S{apLp<2<c_zO zvyi)w*Jd;QYn{nwb|{7Hj(T$RKu6iG#LG9#ce8V*-)LO_=0RDIcmBr)F8yx|HLg=% zR=G{!k7{v{bw25k!X^GGrr=I;`eQlXxVS5_uHm1UjCHq9;Lv<z6e=flre$?E_x(T9 zE$kL9yT7sZfND}C*WyXPlFu57eNunoX3{iw+OFsI35#z(bz(4+?!PUdUnKaZs)t+s zg#XM^^Qo~+N<7S8bww^boBmkiV}S79X>$9O3?DwJQre})zGe^G{0P;u-P+mS9v@mg z86y65u5^n1wnW8gQhFfQ+Z!s^Y7hUm|Ie^j==bH;gChSK7D>kzbfz}U3|M1g?3uKA zLjNtNwV@i`>l5>4R%@+d4w<l_PUu6Kpv0GL_a{wvFPN%w&&q}IG)sk=lZd8G!~Wi` z^TJQ!4*ZszSgzSB&bQR>m-<HLrsr>>-OfK0^3(ozy6?sEPx9Qn^J@1Uxb;pXMN7Jv zBXaUL4ksD2{u>kAcbi4k_P(j8)H7KpCcuAl)1Re*Z@t>K9N+j=cL~Ffvi?mQlQzqH zNW{xex_xWPiK$xiyt&)>uI@=NyqNh~_sxS8j+d={6XuykpIEW>+v$XfON)fPe)8y6 zO5DzISRco&yRml0^x6}B^<OPk?!V!E>4At>uh?Y%Crn3fTvv+TbapC-|AwU-K0OXq z+5eZr#(&3J9w~<PC#MB7ZS{`R^<Q+L>Y!};&8dC|e{<SbI)uh~RmOZZ`?C8~w3_3R z(<jt^{}xzq@y({q6GM`hC$N|=3T_Y;5aVpj7W!$>tr{>v@9+`FA001DZMn=OzrNNz zpvltLlgc$iX|{&j`b}3C2{MJhN#3+h*dgS^^dAC@8Fh!>{<&epDAggE+j;U;M93}m z(i^w#&N#`@wWofg;lz+T@|TZ=&ui~<yTq`f?|aj6R-47aG4loHc(LDX<&~SLR;}Ch zyK8Em5?9rma~l`D$u0}=JEJ=9(1VRvPo?aOPyQ0MLqyQ}joDg`D--LEe-cPq`)98C zzom~gbU6Pu@37x^V5e^A)EClvdO;Tasjs;EC9gK>NEGaif0HC;wx`*)EA6&(TxZ5@ zt|@X{-*?n%A8fQXkuG9jU9P6PW!IZMd}cz|x|eRSWb~V;DExC}Mc5Y)WqqbolUKeJ zsoT(XO3OOJFJ=*E2y1O)RIdELj^mv{9~nOdq|My0IbESWNv!Xb<r~hVt@%nOJD=EH zY(Eun^TyxI&g_o16)S#~*)xmQKiDGhNq6&vg3S{An=Q5$9LnhUb!Ve+jF)2CH%t3X zqBA69H~kB__cr9<IetO4ZL@Y9dm7`V?Da8`yFTF2i<#fN7E~N#*(kF##>~u3;#jyx z$s3-m7>SxzE#q0oCGxC89HW#%1aBOZ$}()38$W4@mYGYZv_^uSgSY-7o^NlO)a@Tm zi;d7<@`|lH{l*O8iJbbm3-_MWTQvJh@Ea$^e}PH&m3Ut#Ipzw-%BNpT;B9-fG;!{? z8PneEm72~Hap-Q=E_KEmcQ#J@x3NSeJIc=Jtj;}^KhqpNBC~{LzHVB3Yfr=3iY|u_ zwzC7KW=c9*sO+5W?IgX#jFr_^)mAYf#g{c-;S>AHwljk157{RE@ZTvEQypFPExz5` z^8m*OwF4iW=Kp6{xgq|S3tQBQAk{nU2gRQM@!AypQ{#ZcEe@7~gZ~*Cgqmk+6~*uW zw3Jcir(UdBFi%b0@c{QnX4ls*S-aX^X}<i8OEWf4W&NgLoFK2Zaf*vmi=e6?$JJiX zhPR(&LnIa%`zszVeUhl<cWmE8-qIazVWLUDS=LH8FdbTQdVON)&HagtL8sU^{B1d( z$FaTa=qBcqd5iUL#tY<r@Y=D%G2kYPx<|-r-+K9n!M@R^hZZegk#SV*hIYb4Z^Ps1 zs@2;R6SAsiObuPxothKvy2RcqIdHo~THRsQ?MYi=Z}_JruBn)qFzxN^oi>#s&z|In znAfW<GMt_3P`dPp38%K#`HkI&H2c$7zlHktY$$jcn8kZy^@oQ^*~&*#Rr+<BqxW5$ zzl@V@$@<myLR{_FmboQzE!b?n>bF!`d_d_V(T&TE0))Q?P8Ag>H^1TJ7<E7S4)6R8 zt5^L{6s(JLdlR+l;VQWvXF>fAy>(aZe}9rn2+&WA|J%a6Wa=LI!^U3cH!r-}$iKpT z!_+*bU1mH{^(XF6+HqyE`<H2oHa~URErfoA+}!YMO2tvFeSw#@Kh#_Gvt{j8JGaaH z68p_}iuuV;I(MMlW&O$0Fy?FO$JM^YOAGB=mt&vwYChlTx$jly=PS-Qk-@abf5EAZ z+?VdztG*98c~(GkMh<&=h|j#kE6OrtrmPB++Bot2EtQ_-91T5-)vjupin>TFo>;PC z_dhB9iQ;U>yr+d#s4Q^2+rE85|5cad^B>}W^lq5OH9xgm$5ivP@TvJqGY(z7@U_J# zN~h!Ie}>JD86{J%wH#vk%{wdZVC+SPkX3Qcc_A?Zx*QjzMcF$FrzIZ{zhRQixFsR- zphqm@!{Gl6IW7CNe<*S8YdGEIF5PQk7vpBN*lk&(L4?oESc`)@oZiU?T)ydf@oy*N z^67dG{+nAPDh@o*Wj&kd*YRlY%NsXCF6`|)SXp$EJ?-d8&r}Xw<t4!~6K-6V>pD}= z#Kzw167Zj4_Z-8&Ny+~ia%{zaH|~}=_(|Yb>l#a)cN1Cmx=VMu?^KAtqtKjIqPInT zLv_eMFQvvOUem7eIP$*?bm9NvJ@G$7$CXw8oJBT8IT*;lI`KB5c4gRqhDjw0xwg%J z%JhZ1L8E@-oRHLwnToQvxpU?x?OuM!Mo#W@@b%j>gRFElSVh-3KMYx#Vy&0?WYu$p z7qN#nev>|}+}`1w)4O2)JD0U9Pa52wc=*nS?Hkq}7F))3I3o58(|?AbOI_2LQpDGJ z*$cWBOHG}&#`PO-Yi)0A|B7ibOLeYH{1zM3e1p?!y<WBpOOahR+sU`ZYKy$L%)B*c zN8gV#kCMKf*<3AqHN<eo)TNs^)b0HBPH<{jmR&i+uwaMJDx(fjhW!$)>S7mLgRS*D z-40cpZb@BrYZIGuR@tJ<vH@-PGM6mnJ#6kF7!lLIoxevT)IK7M<8L3g`y1|pvx)jI zB~CMG#d0r<KfyoMbpv0(4Y>pJ`d-}Fsu{AVWJ~;p2jMBaSyESp6*T3aaap>^tvWjG zLXz)%$tCjN`3=_Jcp;*3GUEAbe&+ZaM;E_)G$Ht_L~px<SX0XhGi8VU`zOcR{d3rU zHcHSjGVuE3O-DrjG=FxBU#O$alePG(<P=%=jSp77*>X<Q_IJdc-IKi69oiV5py~Zn zMoFKQ`Bt0GhELoct=@hcIG0xPEs9Zin%rU#on*9dN9Sg-(CK9gMy;PXMT$2bJ7{V( zbL|tJ1eu+_?5YbdEnRRrEoN6+)2V*~JGoo-xisBqPV<&rIsKb9^Q6`?#<1ci_K&n( z4>yE}?pQA|o#VKXL{2I58g;GR8pjmAE$7!${`}N!%Y_ZO9;?k3mxND9iLf-y(0iv> zQFXLX;$+90<{+PYIZR50k;hFxiKz))>h(Ix+p?Q&)eQ!XIH88NKTTmhCU1WhzxLR| znX%`$ZjXqbD!bPEM;R3xtJ#g-?N3$y&u~rfa<In|mu*jqT9dlO3Oe^TzOp<f_+<GB z<(r&;THXD;Q?)-NeAe<w-pLxcapI-kpBlOCk{S9Pjhp)%8D9sk6wv;r_~6syh7Df( zH?7tA=klOTdd0tk4-7st*g1BE{++r`yP1pGz4p!L_RXfOO=j0(46+1HO|+HsKYr>) zZ|rZ8OS&!Lsw;H6*E(+$<H*vJzi`|s)+>i~-nvS~=^WEV%2a}<r0}#jEX?BA_;+O; zPjuZOI|GOR3@g`fthD@<{zPS!5o2PW{lwY#|EWr}J&S1-ykJtzo!${~Swkz}w6)QO z?0^k_r){##GBsB%*%;Wf)N3bqyMh*LM$fjxB4vz|lOv{_ouPN=U(PKL#o);a=hfmh zu6#>TWm4WXmG5kd+*QsklP`%gb(w0PxZzOcGU3nR4qJm)cJCA%1YATbnKGRAELy`; z=bWyu=GOL;Z_&vow+nx=M#?9x2|uj0;`iix{~6ercmDp*AY*8Gv_v8JkDzyOw7H{z z)Vz~V&I&%bF+0_vOfR{yAzpBeXo2^t53PJ_7boqTA{n3J7}V-4{KkR%mTgk|^dR;p zFZ2vP=IK^yK3u+9tK|E)Sg%GMNBiFkk_4_?tn;$S{-kuY^QzKz(bq!Z{u>e(R!h$R z^Gv2AwPiu2NJhYuoyVi53at3KRAEu&P49$Y&F$7ZP71rkS#%xUctW@Hqh`Z@h5(J* z-vaZ`DDPWc&8nS~cJ**cWVpk8nd#*=Myy}#!veQ`4_uo3n_-K+UeGbSH*>b?=tnh8 zT5@8&`w^d;H5@9->W(f_{AR`C#8{ya_|AyS?#b2n)<&jRj_R3NpO_e~>OMv4W{~g& z-}0N8ye>;-w56W@QY5;iNcEUY_#5AdgAu#CBV2CkUF!@;NLDnydCfGd&P{Xk<i9L# zYYcm`8~OWJEMfVfs<3KS;$Ign`;8GfJEY5hoO%;%#BKV{a5{6{vBd2>(^vnN47O=K zbYOpCQSOq?i^*jNt;%Dzwp2{q)7)ftXOrEudrpD*PY-4=|75tJpPDMfb=Kj+b}bh1 z8;*a%W%nMs(P8*$Do;$nQ<iHsy?6h$UU}ZU@lmL-*h3?>H6fRoh2&LU+8qf0TIaS_ z?IxRF(D}_l#~+Gm^qyTGuu3M(Yl29$a@Z>IoTn{U>w5(vFMU#8E%{a2c>2G?*CaR= z{W!ZfuH`>NtZJVAz2o8queyp1^Cnc<Z!DSVXSV3@tV^*Pd=gB)afhZUH;b&6k1Vzm z=ic)0iG#}DF5k71?hRKKoYc}bD)=U1y8Ih+7W?g<tn*J4qw7;w+Hvepn7nCK+>u?= z16mh#s3hG^V!poVQsl`l#^0u^H?{rYNO3sr{HgY<Mvd2bN3G>f0lE`&)~CN&V4C$P zV#Pv^OGa&He`~RGZ0csnPG7#^_NTZfx|YJFvNx8cu<i0%w7cQ_$(a&PE~mNG1ln>7 z#g?r;lH&cE@n2b%Y*}X#hpf_D%c2;*s~ZgV-zeC3D$2KO#dOh@tMUP1OT6EB-;Aov z6ck-kr}VSXq4;uP1lu($wVt+hD?L&^Y2}{CUm_ZRQuOqkXB&69MI7zBb~|;(`lCGo z?m~)kt1@!lPjv6QocfLZAyf1Z_bvX{m5z${tj_<aeWKzF+hqv`uAq9Q8E$cBvVwj& zUAAp#YM(0Wctq7=X%V+*wC<KT2A3d){|vz#tX`}iw1TUS7|eL#UUYrx3DFt%ZvAI4 zXs-OR!SEMT)aTNthk5oihiNHak_ni-He;&mp%{U)n{Gr-=vw@d>DN;UHY3Hi;>8aI zLZ#o_NdG$D`nL^3L)#o3Df{Fn|Bo;z2{JG-GcquPt|?|@WME)mU}R!o78GI;5LRFn zF>nwC-%rfM$jHR-rFO}gLk3LhK0eBJ_4f19x%R!TS|i5hw&!8X_X~B)EzaIvz3wtk znhNLc-Me`_LpE6`X8E($&#_T{B+vgR{aDo;2HW{=>5CW`+`2sP-c^ri;+*-y_d>~B zm2C%H@~@>;1sb@0QEa~;;Z~i-d+m3q$3~V7&*g>P&p!(g@Z7Pw+hWr!?VY~_*k<qE zZF1DqO{_KQ^_uMyYW9Em&#<79?Rl?f1dm<+;|VOPU30(g^3*xlT>9fKyXReF$0ozO zYW(NYH+i!7Rcg1SrKCI;zcFh~uT#{rjD)+B{Jla9b_r~h4ZQR;l;Pa|l$9%<9@^l1 z=i4_K%hc4oHM}B+U;OiYu~Do1rpj@JCjL$3js_DAdIYMB%P-8Fw^`zg#37{ywTUy$ z*CsVw{P3ejtnu-m7iDR#ejaC@_c3kRC}|n$nJsu?=5du20Vbuc6M7xfxD~l}nnrIi z^EqC3nEmcuHA7X8KZ0{^EDWtwcX@8aJm-)n^S!i`yLWlc_-}s6@ALPYbjhzv8lgT1 zEVM!#K2+InmMH!dwKMh6RpVOuq#VQ4LPxG`(_8cxzx2B<>ygI&ne*H~&ddh>V`-us zj4VmbKiLyy`jgVq*X_E<lHm}rwDS37zM}j^?(1bbXU@LV?x8lx?_ZQj085g@ael@x zwTWLiwN9K$^6swIi4HmScv`Q(bUpd<M3pUp%^%p;oOjEb)_!yL;tTAze%t+c7(B<W z@l{&!jDUp<4`o`EW^7)2Ic>Gj=}X&0?Ry1Qtnd5U5Tw)RaM$kqVy=d^%}u9suIZ*< z-XRq%V`%IxyqEL5ie#6$ZSyYaM41mFO~#xJc^%>NTwbr+TYTc1Tgu%(Ox`}<mj&%+ zU+45op(pH;<?{&(JuZFVuXCwT`^Wi*Ik@C)vP!}!2PXYhsuLIXzBXceW1{GmD80XR z<^-NYOXOV`7MyGTdOiB*{gbnz7u4pxY)gMAwCgX2?fY0EN7?rG`<nks-Hvr?{PBr< zBKw;<tuG&@emU6C#2@0F>}+hzV=(3Gf_Ia5@7^W7;o<i(lLSUC%hb$OwfsLbRXbH2 zS&Y@v($Z47R$XQh_SErv@6y3;Q#f%EYm9xrnvFo6=Y?9%kmD^5E`<$@n$wQ8@kiX- zJYk8%vP`@0NezqAzAl*DqjXTtLTTsBU+n8TRhLz9v9Nzid-qmn?Y_^(JoZx=rlsAC z_*-fCp!riRlfu{V<!lo6Y&y5jw(jL%;4?OG=8<paU;MIO!mr<@<HF$=hdG=$l^9=d zPW!rVia>(Que<kly<U4)H+Zq;UH0<C_G|AB9qkcdm0z!B6JgIXS)_@>bZ&w(=k8@1 zr>-7!T9lzvY#_|Za>&u(pNNTo6VCyY32A~Y21*=BRcuC6PcSeRCHUBNs?5Lb^|YYQ zyu_Ku?#sqhc{@w_{c1MylixUmaZF6J+VDp~^v~<HR~E0`V31I3B;lbliL?E~W=mnO zPpd8*6u<bzk%g5jtVDV(v*pQM9tC$NFL{%^d-rakkYjoO7;mJd+teJ8|MZEufkEL= z?F(&AcX!s)zqy>G?uXv|diFBYfup@$KAF4Njg1ZDe!Va(c=gsWbb0h%VFre#J;igX zE|piQSG`Y`+r@5d`M7COh~r=3{U78%?XzJL^0fQl$m7tMEX<&#CbGu0$M9&2z?p-; zRecf|nB;$SB!1zK)l7bGY`|oc=FGqNH4ih-v+SxP-xQh{UY<>?uber5;eQ70=7Ul~ zo_1GK1f32_dbGTn${;l1*QR(Dh9(mM7lSJG^*{I>iqd1X^I!NF^n6Kdd3Q!je4eGU z#aSLT2Zk3LQ@ZS5&uq$@d_6Yr?ZyNA9Ln=5pRycfU<-J7d(*AWi_<+KcbBILIC%>& zt@x5G8#vRvp5dWRtq%JOd84dfDrfJiOg48B@HunB%|QFa7Z0mifr<Qk?53qvF&i81 z?cBY4(<i@U5^QOVFKcrHpEmOd2qd+#T5gPWYB+t~rtxi?M*B6!nG-l1StK_01WB)L z_<HRhkNO3Lm3L<^nY?eqq0lKa)HtK_nlH{YPf&RGZvL^fG;e2(IFAFy#>NbHS8OS8 zU&|Vr&2cR9g(J`Nc^*j;P7KfFoiDWI-0Qr|!*ambQLf?nBzyLI2N~~PDlado%DAZX zE57z`-Tc6!Tk>n~-fPZ#_ip!phQ)v7U;O_2@7b}u#(d|0(pqW;g|8jgPTgJh>X?c^ z`E72cqhB`svfCn1UNZM}a+RQ?go0A(_3GXGZfP(yn+SLsTRxv6<-^^=ynDCA$_NJe zwcpox?wr`1k&s+vTwY!>p=7SwGJ(_f+DW&fx9xlzl=MrWD&gg!Lyj-kn3XNiw|Szn zt%F<kLdfKK-#!1lc@cS8mc69v-Y(s1FY>yXU-qr3*r?QV{@j@}sf8(lrU|yj?e8zl z-reAoIMtD7`-cUs9Mcy2F&Nf1@7<^}KkC9k(W~3N#r0|#r7wQrm^pK@`-_QOMXOHF zoN0BgQo-j*Sl|SGiwCUX0jorQ+cz+^Xdc#G@nY+y1O@}`Q|r>w65>3RIaY9_?r-F9 zS)1=ab3IRd_2y|Yp;{k16_y0{828Wgb77p$abV{g%^-VM1*<jBbV4*vg}U2JeLUyu z%sHF5ju?lmIk3d%iMp}pr92g9OJ?If%QI)rIn0@IXw|7BH<ngD4Ac@;*jVQqI#p^1 zGt<Y0hYp5U7OtP-%3$=#@#}ddfshprdqkfz8Z<4eRCY-6QFIg7;Cs&4*w`pP`o*uy zhDj3+&NzFa>h-3-(>HFJIkWlZ%oz&u&Blhd5rUNpF2zZ=uGRAP6|A>lIe$_{<makZ z!M3!t1Qr2@CgBSPOgxI=llHJ?ovoR$m_wlI-u5qvs*P-xcU3kNCY0nSyx-)Vqdjx} z1k301@1^NPJeYKgH7g+O<YC2Gw(nl5PWfj%uSi3?B`wWI`Qn^L_C-pE`PZgjYvGWX z%e#9Ki^lQ2hb2Tqo^w2((6)ZUijb|J8!et&ikhZY%5Clyo;h!O`L#D^?p_F;v9U=q zx>oe&?zgWr_(ZilHdi?A-dw)+-Y)gpcZV#W&rzQETGGLww~IAxbNu<|pMTE!`MAZ! zf5M0JpKl-iG0WH0w(<D+{`se$tq`3W8a^$KsWrv)&#d*+Wj3wJKQMD9C?C&kQ&Ct~ zC9uhCt+&&auUvKZ&+{esgsnD_cm5~6d-wI{<u?`DzSO2GmBnnV1C_&k>$U|JZhEeJ zTRiu!(`2PBDgsA$1uyw^SFq`j&*`B24OOq#-klX;9$ON%{d&tZort}G+G~ur9{siM z=;p<GJPvb9ug8{Nj}^OnZ@Y8pwSOD<Jla2`9sY5t>h-FN+8UC%`|htYDSV%;urc0W zjKi_(uGs5!-HVM&XC6Ip_=o!1d)pliJFIt|jaJ++Dbmw1R%C68je+EfQ@^vKtjb=m z+XX`9<>ijAms;<BUt(zR>+YBMec$I5-!L)Sx-S2do?C>(e3xsdGj~MsN6*`Qk8{rR z1)gfhIBZfrx;K}%<_4IpTEunKZFyu9Yl-WcNGX=p$3$9Kgk@S>Qk6JYt#_a3yeuKk z^1*tW=YPWT-o0zy<^N=7-L4ngV@r203JW`ZbJoeA=dpROT!TbPuRHvb?-i&%rZCBS zN@CVs-)r;rR%;*a7UGZCr{DkQwEgt@Zdp+V<)^W+(*G7|b6j2JW+s@h`Nj0Vd%Ag^ z&nqv#DLHfI%$erykE<@!E7TmVDG;7ldFCiX?h<aXMHeQN%xLx0N)Yh9P+rS_l0m>( zxAf1)=;dNTU#12$xM^i?TW_`d&#Aeb3@s67BD-!(>$Y24bpPA0jZgF$Bi|;J`#hgl z`FzfqGiScfocZ3^-s`kP$|3WmHmde|toe@1zAc#)ZfvxpVa3<IY_He-oBQ4B7yIjd zhu@sKc(^rH;m_KSYnM9t>c^yNK3G0!o+o?g);ZIP?sVvcznH<+{^ADj=KlGtPS4lg zRWFeN+c3Z9%=4*QJ}R4L&beYCurW2^P0iG`J2|v|{HfCoatbRxuV`0qKmUAV{F!Un z+~-vt+H&)rKG3>*J#BB;m9|o6t(ujaPkq|c%{+bWVaYyw#;eyD7zH+)7X8>TZ<qQt z!54hR_HOBG@3sGNh`jb(-hRTeT|6)6Y}zzo`SEz}Ki!Y|CBg#MPg^83zromeUgaSJ z-y4i=LOq@g90^JXzN^co=Gk=DY<wF1B!fjkIJxKKoQ@v(eK)(kmVQiE+UU9bSvbcT zx$XZf+|u}e^gr)^zW(#^&;J>Y%v1mA-lv(mPgE;3gf;8-%lq|Cp07`+%xEunytm!5 z@w>~J*DtOKdCl9!zQIROvU@d?Bi|u|z?N$~T*^#pX`(0iCZ3pjdWx&!(WWyciSs)D zGptLi`z(G!eC^!LWjSWGa>tWuH4OdQewE+cu<s`SLaWyco*hoVnDa|o?EJ#b8=n4Z zd2_?|Wr2&Cm_d_?;TOgk6aGnG_#>bEF(%`H?}gK8Qxpyx8yg${XW)-zj}E)K<>vk9 zH4!XII*N|7Z*G2(^XqTap}RSE8JY|oC0G;$jy8+w<??aNzP3>}L}7l!;i)_ZRY%!x zwu4Ok(Bs+r=0M<-8&Vu@X=&;IjDwXn?RWjxc7EaJ1;-?mCp<fxkQ(Uu@vPdiu)HZ} z4tVNFMoe<fv^*HHc2!nyjo;y~7j<n4PK94+VLfcbvG`Lh|G{teT%KxaiCm$#Od<~d zXJGvMEOE_``)c{iYrk4N&~x*jy>e<7*X^&no)^Thx}<0bT>tcw>k!M&586NfwAQqq zPLIuBbF?p0>%7FvCXQOkwc-~WIxZY$xqJ67!-a!l8pr)aSrpxM+O~V{|KYwhWUb@M zKfw>`Kc8>1aeT~WSLQ5eQ)PeR9(TQMjelQc<_4isQO4l-^YbdTS?;o5Y<aU|@|k<P zUN1A55HYjC*WgfM_lvVZ$;{^E?r+@MFCA5!all(F?1ka9{|wJVgINq^ZbfNH-PQ4* zbt+HJ{l<->vyP`Kh-ryw^77byXtI~y(>i^UbNczdO6{pS%#(J$n5!nSuSadOjLDt< z3|+_CFEnnymvl&w>+XMsxuG4YwW;SF{_>d4>eUZONjenu?AV44L0t<tR!a%*;#8B5 zzW9YFZHv^Tu0Mf~<vI75EnFq1f5wOBoy?>sZw{PVW~j7d(TT*_yVTOxJY_x;AkK34 zLef!=o@qZGA2%_$3j*I~&YY27z3<V-C;ZCqwymAZ+)@;vxXxHOTbRKms@H{MUyuFd zU!kHOUW5c`-#gl$Y_#b{B*VfN8wGPzo2w%x9P0^K9l?=*?A?pztB$WtC+^ibA6v5a z%eu4Y=XPdIobxO#E#X^z>~!NQ{V&ne9zM~ZVAEK!`{kFQ$Fq|szjV!5nUbOO%itfU zdhIK@eSHPKmnC-@G%~K>j(euHK6ugDyAczP_lm4eZTM$wtnk%SCs~_8u+rd{fzVZh zynWMb*Y5jXUha8UeqG}iPnCk@*S#~gL|qSkTE8H+^vs!4S5GBNdv-BBY)dgX{KAJL zFxjBdwZ=$7d8P0qqwPtnPxO52pC^>FMoFaV&Ps<x7aSzT(ge+y^t{ey3)D{LIdPa{ z&1%;)vF6u4ckkYn`(9qp#p>&QO@L|lX7dFFLQl6eXlo|lI=`A(EbZ<kAG?MC(IbXV zy@reDeO<J|&8g9;#DgvL@qC^iVio*<e(kBBDaO5;Gq&r@daKti#-*V(^`E-p=1*#} z;5d^Y;V7}HSu}D@Px(LQe+picmSnwkW~|)3A?#{fSWAK=BTvj!Ek~7q{u{+~v;wYm z&YQF6D5KNlTdb>&q=uxN^17k-OYH4iGnFX&!}(2&$>BevkD0Ju)Q(yab!r25LTklO zsf`iaCM}JO-?s6M?rYC8XU_a*==jn%z4lEyli{~bUF(*gHL+rvBl-n&Ec*e&2FVtQ zTBbD;=B}%BYz-9@9M*Ep3ge!2>6GW=#aR}umMJ1#ubR#)-etOGZWsT^j=5s$6&>^0 z*RGY72nd{)t*f`=Dm)ReU-@zUj2~+s&#L&(u#aKu)CN(l01f}CCE>BFzJx!Hj_8Rv zBkZirxo}sS-1d6u8{1!hS$BRx-S0P6#%7B?9#{2heR{ZAJK@*~1vVYlhtBaf9n0F^ zc2Dctrgd62){l`V!|M=Ji<W}IB(F_jU(CB|j31fzX#JG>p7iVP4TeCSysHN^5?ox@ zXqau@@u{xo=oThLC8frOL~fJ0cP~p!Q+MS5D)yK2_0r8R)(3xIAb7$rMnq&S+p^US z3rqz44jY^a<(4uG<vJ84njO<5ap8!BLa#)L{4$NLzMB|(?0mg1d=*tOd-raQ+?uXs zyR@ouRvfLmzu>H{|E$#uzpRNabP_0$)#00evR9&sL#OuP7sbScEiv1<|J_gBvfD!2 zym(&0dW+gLL6ON)HY;Ox|COA;s+8|mv~YRtYi7|#wXG~WN_8dL%}m#<TeoWGOqSp; zVkRD}c~QTuZrwLH9DHrL+&ccfDn=UuO%A@8dxJ48+46jqq~odsYy1s--@p7C{h#5= zJ*P^|iapU^^f=-wANP4&wmczpP$23}g6JxyrM&famIj9-0wqtciO>$b$!)dic)?wv z^+%`ddZAR<!J81NnXp89-R>8gTEC>-ICbK^Wy$k-l}8#5rM+uryw>}lL1as0;@_F8 zrA+vy{dN7%@IsvX=<A9d(f2+dSCKg4?WGaj$e?v?jmd;!<4H>+3lDM&aGbqhec7qe zE;pLtYvaTD&&@y2{`vffoz~R6Sk}^rYZ324wbuCk(of!bwY*f<*q|q1^Q1i!IS!<4 zQBQmEM>lJ!L|y+<!^Y4r?8a4ZqI7@vtJci_^7r3<r&BSP*6LedGIf0@=)RHTbOO(s z)j}E-3M?6h4sp6`mKx@YuYRw#^<QlKsZSc=t6Dzn|M~4dgWmb4<}ItQy_?~#=;3;N zE^|~3E7Llzg6yAvZdx)+_MABrc(RG@{q~tZF2B$WmdZNX{DCcvmAj>hYhtq0+&4R3 zOkL}E<bdTFfkU|oN9U~ZSb9pSTeU}$X+>+tk1ntD*snKt{FL*bwq1XU&6CfsKKoBu zerCyp+siNJU7gslGb&WOlk+nF0)y4+GDad=316o&#!hW~;r53^_;J$8z&@_2f!x*d zy>bobe9~UV&OGgEy2-M(OYw`Mn0wx?D=vPX4xvXIbQ7GS6nUg;6a6fh&Of*R95vIu zZ_Ac?>yw{7U$5JJ=ZR}~+E#m$(yi;nOQN^tUb9{%@UcNyv+KI^3)wRY2SShTb5>kq zk{_`mWZk=WFYLDO+Z}XyY0|NTuFzW-i|*+C`diodd*_UID;-uHIrUh~W^GJnGW!D0 z8H$@<X2oQG()%>~1YgbSJs+P;{G>2%`?}s`uigY)jETCY&G12P*P93(zV}~#)p83t ze2dJjE_Yv$$jfr(lUx(OPl>CH)Y*9biL0M}PGK)M(kMvyI_HyuTG}+RZo9^#Ya&vF zw(-2<ExP_|Y2(pe&W03WW8SoVYorUgbIKINwEjvsw&f+Am$I7jyocr2&7RW<Wyzd3 zXRw*bZAx?fa^ctAQbG9;(YfVc-k5!hO>_=)ns4(m(pgi|O1-??Q*L`z(7*mAh1n4t z8)r5hO^E%q=GU2<d$YW!PJaF`ZPBeu-8SW|lg_G3)Y)VvzFyZU-}v%%RBPI%R*UDB z%#xPpqjyCZs=Ry6#NyG=KKokd-py@dYY%={*%K8iGMU5JVU~aN?%fx(b-p*`@W{v< zs7imCBlfp$(Yamk*G=ry+PZ1Oo*&uytxpv~1so(RpHG-)bwlFai=?BwUN3s}@UW1l z^{yqt#{5qg%s5<LZt2jtwAt9|o~yV2$%zcDXA~N(UYNTTw+R~?mnXFZN3Lm<$WUXN zpvm&GEkCxb|I4pht5>@%Ig*XfE81w=Uw!)HKLcBnR)Ii|sxQ-}d)t^ds~uSIZbI6- zH3BnRJ<b)Z`n7dm)45$?L0p#UU$3vav|rRl`EgVm=S}I8(b5}EznPo<!uPVVk%q^_ z!)NuIgp?e764G8un#enq-c2x^HsOo=hx2VOlVdYQmxeCy{}=x8eBYOvfZa~^5BL`{ zD7J5DlGx0Ve_Sytjw@mIrTtzm1(%&wmP*~1Kl$#*<&~2oJ5oaq-BL_8zBzmM!e-Up zY{S`mg}AoYZWjB#+t}FLH<MW^cVTF1)2;U(Zy)h0+O54eSNLhJnM|rO2eYy53o8Yc zjc1NFN$^eb-%z^Pt<`DD!_ZI$eu-%>rMmUw1x4;A-`J+jadGydqqlDVIkjiieP_mb zXU?2Zu+5tvIaB-sYvp|(N8#%C`<GvOwl;FoMV$q~SvRwyg6_+%)==1}FBiJcJtML^ zv-x`igG0;AnN1u?4Qtk@9db}RvGwX>{e~L(5B$&NSwiJ3?Rq}mWN^=(doyaA$I-u^ zKh+D`xUN~RA(@sS^F;ac%o%PR6L=D5T84y}{;9L)Z$J2A%}?(~>Y5f+d(O+vmks;m z$Xa-N(~E;Mwl92B=fWc7sb0^`6M1>F+~zrEs{<be{@JyE{=c-3laD?7vj6DjBcDW1 z^i)M_e~LbrZ@4b))~w|TiTy0`$rq=d=Bj4dZJ#j7Ly2>L?-lFi9~2bY-k3-0ncq#H z{P6DA{|rHunWbAdWM*&OAHUez&}xI(d?$J5PdqG>`PbeROl%U0I51Z%>h-@``I8^_ z&(pkQI_tE^js5&q(*xG*em$vYVO_@7L!PQ96kb@rOct<}ob!=?Aq)ElzZVI&YUQ0W zRCn=Td;8Dz+tz!kJ=eBhKl({<&9Ym2rl+w-yx>}@Hb0HS-r=Az$2X<JLKX(BA2a@i z+Mn=e)Xo-r^!vibH!P~(u9kmQUf~wd$Z?s|>CBqGh>b~(!U?lq`)@W+3^Hb6|4^GP zs_@&u_ippGx0h~<{P;Fs?f1T|_uapo|El+|^}2kvgpP-|Gtb=%j(1<Ln{uFJlK(=n z%+#%Kd9T)A_*nDmE&CH^zV6KMsLM5tu69+?CNeWyY@FN;n3g(Ce8W0bw`0>~9o66O zU*1SKevR{btniBlM)h*XKkwe&tDUZTWh37r!^&^o36f1h3bt?ZQy3ZB<h^-R_E*(% z@MK(2TDq)4sD16xrE^w>h}N8~G5XIiZ&&^D*cBoC6`>bH7#4CEOC>U_P@LDDza{G2 znv2(s&8zry!tb0pb3pCQ4Ze5peyh*AG(~XI(aU<G1`1zyv)tf!zcDMqJbK~OT}ek= z*)JU^?H0Hjs}av?Q*=7Ot4?Xcgh_|AHckF(ox5Sz_PsAV8ki&|m5WA7XiqQp*`@Vq z)hTzIPXWvISc30gfBiMOZob3cI>)<rFC_F-EeQ-<dUQcZ*w2u#nG>p*jrlk8FW78( z;BH$gLqr-!gpi?VR=!lf(C?af?W3QB795$bd&P8#%I57~r7m7jI*>eX+pbe@bT_J& z-i%&<zFp2>+lB^?Q-|lw-Vyx#xV`-J(|wka_b){F$8w&xG|Kz@Y1!nY%C_Tc4(G00 z!@uY2-qPiuE~4N}bIWg`Ax&FbzO<k8I{%s9b>ilEOj`sRrZ1nTv;5E7aK>o{I+7A+ z4(<80P^UWCAX~jhM?qk+WI@lFgD)nOdw!icv*qCHbyu6eUr<;R>1^M1PgK-$XT!Fo zuJK7Jckg~n{9@0LW^nN50pkfGonCjnD(;_K!9Oc3al^fP9-l<#U3^w)mp}E1>8kg- z`laHN!dckub#6<n%=AnTW>K9nsr<IDdX;(=4{z^{x|7{ZMxO+(gjexxkn$Cq^z88G zl#SOk?_O1t{~=M!AIZMvMC~&TfrA`D3-*SGtvK}lOZ~$2+fUjBep<P2z50nyI-73a z*mXVV$N5M58){USt}^|!+4JjOlP9Z>uxN{g>8xGnsqT35Jlp>HGKD9&WM!q8yfztb zxz!t3R&GD*sqgL08#kRcR`_QBB=HN2-0@}Y7v{8{VbE}6Q2rija(y*xY2e3y6W%E3 zCT@(n<?6N7xKc@#XWG1Z2CvsO&d7fLBEL8~=0S((qRltr*ZqEBP;l_*e5WIm1eRtd zMa(yh?h7#b)V1sy&-!bOU4j4BXGdO?`Fwuke+DzAH2z2ig`U94rAez+E4W(*Upmn- z)A9bx=D294ANxe*n13AqdH&CS?c-u$&rej}{C!Q{e*QTzv!yMwE=^z4?X}5hvtMMS z@ddf**P7CblwG>Esk3^0SQXx|O}rsL>4H)DjaCO^WB!f*8I0JUIKJs&5{h1uGWFU% z;UBsW*0;vD%(Kl9ZFR0+%ENQ`_@X7B{xhtwS@^W#UhUSOA>v|8PbM6A_mXE#uU*sA zPpoIo%r{*dR-))X|Mb((nkQRNciT0cyE=1q!Zo=q8ZicLZAOJBSFZYhgh4})fe8ed z85zM-y`U*x0YN531p^^N2gg8WrGP|XBc~wfJTJ37!~1=uriY7j{xhgP(Gn79Q5G~^ z5u#(J)7>w0%GFnI?#E9y{lCPN1iCcVRXtyvw(INR_z&Ud3wA_lBul3%-OR|zNtXE6 zGs$SP;)RQ;i_^O_wp+ct6BBV+Ov7WRQ__h|JF^$pPQUffxA=bev{P=!zoZyDOPr1t zSP|&TZ97lf^{jlXb+_ATAy?jy$-PsL$4Z;zuda>$p|fx%|2q+jh4x9}>^zmWU0V!i zioZEpE%e2tU)3i}Mbk;3Wud90WaKovo|}`ug+#O-ElAeC>Ey9pEYP_v;&io;=8ODg zZFbXjQa?FO%YN{>ZP%L{lWy#1QRK3Tb^WHM$jNy$B|PoXW4B)=!Tq*pYorBZ$}bki zUNfBa<oMO>=7+Ig#l^yX{hkNzSXX5(YW8dU-TiIHvVsIAtlFvc*R`PF?35jfMlDwY zX6tEwxD#=&Up~ooT3~u-t)E%M(T?u)F5&L}6?^%555*l(Qx)gSSvN(|S<>y<vQypW zCW_ooBYm#B9(6q|am;Y>@zg(7g)26vuCq4D`Ol#CxF$>gabUgNvY+wR+N(}$1+*w~ z_!i%<+f|lvb8#)tb=~5H9|CLiOhu*M1suP0{A9S9;c4l|0mts!&VF|#FHhol+G4jK zuiK{VTm5Qfh~|F=+iP}FZ?4z+Jv#gO=H}R4Z~il={rJx?PwMTus%OuGYgR9={cV!} z;Qi{fv*q#55@&t=c4R-up8M@q`>93$*#3!5zq+|_-`SGrbyD-i&DS><y1s7vT~nd1 z5uD23{LoqAnBh^2bx)3{Uf*1_GvvatpE0IWJ3Bm_1ZE4gES<KrXVX$&p5(_#f{$Mm z{fuYXwe`@P`&P4m&NjWfE}WMqS>jajicSB7CC>VOzF&L%I`4=054%l*o@X!G5z(T^ z;j}R3_2cW@Ki2k{*T{1}bmeOO@OsswUhf)Bzf(dsdqq?<b}Z%XN$yuSQ9rlneym75 zm%z*#(@$FEhl6Xrel*L|{hC*Lp+zyUW5u1<twqbP?t2wnFSp~BmOzUl$NK(#cYO;s zZtUerezZ{P$5!#HvG2;w&j$yblGf8-$>H9$uWViJx18%%sfWbFdXJvlz4drZR{px3 zcYb`nE-O9zr^wECrP41~<SZA9dcJby(nHt7mhI!6`thsO`#YDUYgXkyiWV|c3*52p ziK0l1UdcXfiBr$3XFWK6K1O5T+H*VahwXU3bmNWV&KoaW&ucS0{4iOoB!Ag;Z)dmd z=3<H=uYzAXWq4%d<<!SaXj$l_>00C@(4y(;H09J6bDhG?Cl<AxohAC_$oileUEN)+ z!A^@78gc}*WH$-4Xk3XGKiE^VPJ1VZlZaxe#nw-2wrF^jX$h?ORJ(0QcK73TQSUvR zendSuW+ic^?fA{w@DEwik5^oLe6=>5dwq=Qm1Bkr^;17>+_?CdUc_<dr=6Xhb!}a3 zhKD6C91EA0=aTrP;UwtPUC^76-Q+%Tn&0vMoyi)mz4PpTE_8MM7+i2n&u5*PTK-B7 zpU)Z<J%O&i({++1j^)oiws2w3itDkypRUXLPE%A#QVi!xb^WvV%f;CGV4tn#FD}Ns za1s(|(c=<{SP`bk{osAqrn4V!+zE8;?Wv0v78d+BC-U)!QuC|vTvw0E@q{RvitV`Y zv?p2O*o+?=kF`HBJl6Yh-QQW}X0LP)xw_i%JueH4xBDgW_*8cLPq(8^POiN@HJLYB z)K&z{Sjq*8ekXx0T{)kPVm3Y-q<Z;|iv?-ayTv#E)=A#9^ojMRmX_||C+|#x1p{Wx z2{$vG`eDMZfR;L*<cEu9F1&E;{O5CbUbpSe?v`@i7<Q(}_3^@mE5a1zTf6O(Dsv^4 zF0p@hDy?@)WGc64mQGHoYiB1X$I^p0vuu`aKliW7NnqcOj1^aMt`^^U{ouZcvdEFe zCqn|=o-Vxc(Wc1$lhTFDi`~wOwJbU%l&17JeNvlIm;TcJr#s5*bWZkm{uXLEuTn8n z-EB?IrZ!{6<(rOPYEe^KxUnbs!HOknZx#m3UM$m-?X%u_`WG`R=@Uyg20otFZR4+e zG$UEcX75p+9Yxm{ZtAkxJ4I*j)K?O}B#v|U7RGi()(8tsXi?;xtsNtAtYX#_Ma~X4 z`!qH-CV{S(7k$dCq>_b&-8*+I<XotpX0b3-&cAhW+K!8XHCiQkTBZLPSdJO?zc~Hj z^oNtLdL~@SN!Hm?IsYYxo0?`|XUCq<;$->Q4=XmEJ$9;FSLD%op$RWa%*?Gd-F9Ag z>pec@m6rLzn)$E(D*sx)@b8qQy)%?q>WzOY|6G#vm%mj?`)2QpWQjY9CW})!oa8S~ zICji%;Y>;Amc27Ne|2lb==PLzu1F4;nabI*uyB9OeztbqJ`?jzOF6r=pBrv^wtL3$ z>)va7a*|)H*tv7X-h%5#uH>u}i%hkj9h2XC>}NphL9w0pLphvUTE&mMoi@pzynk}` z<d(C4u9<{f4=u>a$w_v$sl4vguiKNHlPnXidu->bpVGb4%>o1Kt<JnVv+<YF@fZ2G zB#s?3OR=n!R8~n%PVe869O}kd<;IjGEU;g(Ct1>Yn#GMPf$QeZmYsEDXLj3;oY4F0 zG<>TbtT_JR_=ltGo&K1Z{PPo;*yhILf64yE`bF~>3yUQ6&en;H?VPcHVI8;pLgk}< zFLF}F%{c;ExhDx0Z{+0edo;c7Z29Yj#TQmT3Ct<j_)SesO);c?xtw~po@8B@WU5F^ zc=9Yg%@4_GKG}D!yx6&}YOeId*jZ10-U<3C(lzDCzf--uJf8$we}ymBaXT)OQ!f5t zoy4(zjs0o%IR|TJq;5MSezWVhaC^i3i-E4^7CpM_D?LkRo%nfYpS{!HIK`A|I4!h2 z%FC1d!{Un~XP2J-jn<B~?#HPj`TL%A>v$}j5)-_Uvvbi+kGd|CoUMmz-mE+AI!i0} z^P<x_PJ;WEC>Ga5$pk#)T*%>+WfoXm7`VCic9&qmielH(feRH)A`31*-d7f$WfB>< z&-z8Z;78YAl70(k^714LMGK2>OnuoWvZPybWB<zDUZaIKCma1Sa#dFR+q;+7xvnk6 zWLx~g8S9e_7N)*9nUgB9=$Nre_>SCO-NW*(99O5PFaB^MV|%P9kB`&q5Jm1qr`y^L ze-`gp9GrGa<NCpJ>ld3I&Xg1t%h;yV6SXkpqL(h;v9?XpElUfMPvmKfM11^GH%(DJ zDfLT+hf}go@{ck_P7bGs89AA9`l+8+<m_)O=&BV9bV{?7FwtD&{=}qhMoW^uT1Huv z&5T)M@-G%0pYS5hEh4keX467tk)-aHiFIwqQcMD-OZD>d)aXA941CgN_~F9Lh<>)V z)3Mb*%$~bWKYsSYg$ox`k1mYu78Elx&eQpL(P?37e^0=QBS&X!{?DLx;rfM(52sEE zOkLDHMbWudEat-T{zIvJe|!J-$yUp}<gH3xpLF)kL4Eh`i@!9IA0~<O76m#>%{?T_ z_oy{mFlT>2i=wxYkx#Nm^5fLC-Vzs1xpsse{xc<K<LTKZ5i7jJ*^@H%J0}~tc}ntR zto47<qPb&Hd$RM1<gaF7i`~1WY^HvRw=FYVH@A~xUs<$}xYZQJfJHkZo#xJZdFSFj zu~Wk07n2M#4!HIjF4`5!;oIS661-_?h?<(R^Y?Qzc4%C$e(G`4qsC0>(bN8w{fj2< z@Y#OZ?a|Nr*&2(UE#=nzvT@<Y&B@uR8C$}-g`}mO1D}4Yn5`=+r}{2u(WB+D<`)Y- z>ffx<NNzJ-CI4{0`^_YQZh;+2JEJtV1ui;f7FhFQ$D%IjZebh46+2cW%Vf1qzv+CW zFzK(*Z$rZ*zb>bZDO+qJE=fy#dhBGTAFy+AyrhZx^^H@`dOz5AMA7JUtI1i{eO!V8 zzqIEq4o-gPvoJ0BFYAvw#ib>wKT-mdcS{@jJ0Hy1zwn>fLpd80GsCl=l7CDyoEH3Q zyY!=DhCQ`nXQg{f-tRAT<%lt}mXcFW?VRyXV*jFlJ>eVcwVh7Rc(UfOefp=r!v7hr zoR?ivpZcHS<TUx;iu;}0>N<~#g#>g<%U?2besC<suuojgXvgiBY4Of07VdO<Tw}CZ zvFBKKnr5}(`qW<<`=TX&tmSZ8CoM7YhlyF*zqWvWMV{<CCMhX~i|sG&nU!{4bXj`; zvb6h~)%H$*bKE4Uz5C*Cvv6*mGLwf=y`@22k8?J4z1Z}qcUo`Zx+6(Rs;@V4{S4=x zWq;*j^2QHWmcKc0;86I@&h{_)+J?u=bbRtw9DO_gtnQO~8PT80KNGe({hQZ)Us_n? z!X~Hmj?1Rv>!cpF=!H&L5qjCxt^34vXBmsMABH`-Mf*f7?(<HUo?Wm?-(t~`BPu(x zq9u;?I{z~AIjbcVE$6d7`Dn(!{qEmRM^=fs=46x~TXfbrIL|D<t-C8W&e|lh=IdeC zO%rSPSwEQ3lHGgO^=R=Y&2vBM7rRR9*>%nJ?MaqNpL~Dumzx<kUIzSi6@8KV$w~8t z|IOYid$o4?=J~SHf<+HMB<I(NT-X`EX<qxchlZj&HA3H%j$D}X#KgqtZ`a<^*WHg@ z`C`Qs7tWSZ{**nfTS~gy)k@CeWX`g{eZ9vPa`?}Eb92$I)pJW@u1jfUY*SO`EV_Sm z;fGB>;<cZCiI}4$<P+x;nc@F)yL-2;$S-p#*`8V{vy5$uTr%tCp4Ah-(k(45anV_- zJ-O@o%6+Rf7N<J(PQP$m^weFc%}()2y8I_TR2$ZxTv+d(IgcYO;>>=we{K8Pf0%x$ z6j3ftE!woG?fB)iuBVG8v>rM&+tu&1&Au~1-&885z3|fcHD6p@%hc5TRKL=qnT3Hn zcdXneesWE({6k4eZk0EO&64{rOfo$B=IC0nBWlT$goI6UK1#_Sz49hzZA_4Ez%e_q zM`sJRWqh!?Sm?9!&YdNi*K@_<<9_PZ8O-Y`68d5zaZCQ?)N1=>K4%s09q-myd}5ng z%QnTDxjo4b7rMWgW7v}{lig})_+*Ps@XkAtD^{$?<W+q7=2NWxgN+}{45uFCh<D4s zWFvQc`ogDg@-JL6iktB9o6fwRV&|iGxlTzL#kIAVZ85WOdYLS7oPXZW&B|_V$EPnz zjq88;pW(^B_5T?r|E~XOzs>HW(eYcouE(~d%sW%$bi_+$$HuO0ImcBuvn91mF*z-z zSFUkqWz9Q*6*cQ8`9yGAB`s7=TlnO~$B@9q#lb5!o&8gL?#N%>o{WsoN&j{k{xLXO zW$4<;Dd&`QH1g4kWXYM6jNH86<ZOD>D?Rs1;G$*wVv93hoLpjMq7$(ql5@4j;<VRO zr&|9M6$^B(n>a21;<RL^gEuy|J!<P$G2ByDvFwN<hby<DNObQk^P3s#I|FM^Y^)NM zvcGUicV1TSlr_uhS1vl;^)u|*&3W-|k=0JW-9P`!oB8L1Q(T*w;R>I~R41nck;w~f zN_qPP`cK};GdI8J`t`c)*&5b|$)A$;b_)jP|CwpO@xhyqC!-CLPG&@kJ^MRVBbLKy ziXunMgqC?n)KoXKBu{*@C4Tdpu%xM7690PkwbnT;mf6?dXHwsG(`SjAhLcnOml!+l zH$lhrH=kA(NlN~rxZW*Xr)Z90hm){C%Rkn~&Xqhlxx73%CvznitAC5<niXSy_CvDN zi{eyeSNmi+jogS8dl&BU*|T!tPFJzC{|rm_J4H-wHp{qg|Mk$$JdK6EM-NLJH&K*o z(eGR(u*Q=kvRcSYy<?-9-QG|4!*<0=N~TZP@U7nF!p4xEd;VfkW=bs~5j|c`9~MTe zh|zFL+Of{ubmzvO{H@A0H%^%t_H5ng`iISMPj}p@-%`@{Z!&qOoGn;){axgyMW;2^ zii_lII`u6k%Em0UZQ@_U^5lP~lcJNHR*URu{}u9LPsF>^7oCKAdvfYr{eDDx?B%UJ zD)wl(+o`9;>3>hlzxdDK-t$*f!|8dU*YQ6W_ja2uIxiS@#<gB;=lfQ#jBPq@-`d^W zd;^|p+)U2-cyyj$cbAbXzw)uNcrA@Bc{wZgNxzH{XVK%6IL_hpIIrI%WnO##=A&XM zUyRfC>3$E%SibpW#>vfxoiZgZOzbjrQ}X$w^U=vCPU&Qa&!%Z@Gk@uPQ&H4wKX$6u zSGiVC;>Q*{jSy9Fk&qp0)`TP-nbs|Acr-G3Bln~1ece%VN_A)Q-TN|1GV0y(FUjc_ z)+g=V{PWt)KeMhmf7+6LW47#zlf8c>_NVE;`S`^qlqX~HmzeMy^B4BDnT2oa?dp<P z5q{A3%c4{5Y0lD8A!acub&_?GeA#V}uGaY0m{lx3d9hneDUx%cnOfkZvw^#9l9NwL z+Ao?h+0f(TC7T;9t=(551Aauz>@qwOsnxdF^{A-yJ3rA`GU2@EdvdPCTnt=vGkJgK zx?N9QH+4zQGBP@O<C1L8rW;GQ*}qyl<I&prr!O|2x-1+v%jloJbAGBw&!*(PN2ed^ z>eku6`EPaC<ELV#`}lUvl6bRq$IW#iS+cXbX3f{U|3~bx`|O4L7cPB~|4K+mNR;bT zZ(p}gq+z}M^Yq?F{cmS)>3=abaBi^u=hfn$QpHr%w_ZBlEhS~|a#~MIOUJk1%8zqL zIYJa8R+SzuuG#<p2!k?cNDRK~0kY|VS&)H6NPtyXLBv4Rfekzw#tho^AYspb`lV-@ zUB4ec|AT}>A@7`Z4BPwjVl8>PjeJz*skbgt5V+Nq*cMVXajxn0gFof?RgNFcI5jEl z?(FBs&-c%jx0OG;{*<F>U|h)8i}nj&{@vbudiSXX8g+g$7DoG-_1+y+-6NUKzW8$Y z!w(5Z&7K%<JEYC|?dhem>F@td-2PWFrNi;he}=OxydoQPKAu(6$*_^1__U{Hg4U5G zZ{NOs>$+I{Nd2k*4AcKJm~Pqnthq3iFUIul@A8DFlb_zbU176ofz}Fs_T_v+`*-i& z{o*O33%~nv_V$C#oIE!ePcFU@a8A%KvhGJ)m~YFL`u-A~&DnDrFS9THWTTS&xV!h+ z%$p{rTX!lnEz_Nwprj=kQe9rxv)lfWLAuQ+_Vy1p5}qIJ51lUI-xjgKy!rC;$a5zB zo6P<*tjIO_l;d%^Rbz=^+S{2a?May`hI7Ruj~({hsy2CgxT2%@^yzhC6J&huO!hdo zvYkQGWy2k*A|bD-hd94HddP71htcZ8FHY~?eR%qHXSQIjXY1a7DJ**T$HGR!=*|2p z%MF)KUMP4LtdOZJ=yXmpmP4tL=b&+v=TqNlccxX8xqX{*bjq~d`_^CX?cvTn`SI04 zPG!zR#ub?-Bpn$h)$^RXKE3>xec!Iv3vwoTvRm=^-ZU@&Ex)+=VEea%v~%9mc;~Ze zPEv0C<dd(VJ71wpDEXnSc80+LtyLQsmS(KvQ#srC@wGFfL_y-IduNSW4L802@M8vR zXlRl6<sYlo>{hqrbV<EC`RA%r7W@rig5_8L<u9Ji=E`~U&=&bOkt+SK!zRnbw=mc0 z-R$N#dX{Mihuj6lU7P#+QcosdYHMUjRMwgM?MlU=AE($t16>`m=T)xRq%|Wnd~T^T z2Se)3Q|q%<f4N~RCx7D4d^W*N(QGnyGK&P-xOG(iPK}FCIk@JLlfk3(V||tDvsP3+ zZ1jKDCC<7~opWQm`R8y2x%p=q*ne8?XYXx3`f2@o|DX4S_Vx2WspDU)Qu)-v;NiC} z27?Fb;ny`n*4sxNT)VC~Df)2de94!8LIY24GZM|XVLWMK>I8<vvwyCfz-1?Y_J+#c z`!D(`wQO?acsBX*?B4%*jm5nF&zm2domPIZokPNAk+{f-RQvpUYQLodJ}ULj+|Xk& z^W)5v=C@(yk3x^y1y2YGopbN3BYW?|gFjT{5B!~6D<&r+ncb6rdiU<#`|p~mKYDkL zF*GzXWc8+XE%F!a^vt|CRvqb+&AB=Kw8V{>ANTLxo#Y#`XfpfSW;TO$<;Fh8=f=O> zSXh7TO%un$hljiWsedv^4Q~i${o5cuFKhL@O70Dt7C-#9YSS@2I}Z=V<o+lNxy)^z zUy?=6_nLW_mzSsXNEA7QdVKv@SakEq?6u1$ZkYVdftmfM{&MzqK8^nj%s(Y;S20WI zKc4l}fgv=s_`JH>$&V-h3K_Z?81SlI5j5G9dr~*`;lXxsJBz#P->o`W@aXu$4Drfu zN;huRRvtT3EinITz`@_E*1Xu-&)+?zKK+wHdTeFcQR8_Qs}@c#uZs^4>g}-%of>i= zA)(+zx!>crd*+qC4b!WsW-2WDD;XMdIhkp7JL9&5INP~(D*3D5T(1oeo@TVu!f5p$ zzi^w@Co2P|hyJv0U|4@Nn4>jN=JVN5nSHxnuMV4#qtkrwhw_94hEr$m+W*0h=VGdb zK^-GYYO2vbp&5k*j~N^GiB1f3;TBr;P{ionLAH1A-o1PO!N#I!Re!tQ`->0$UQVej zFE1}onH0Tl*UOl>J+m+VP^r49XR)6D&5xZ6R&8y*{n7VkT3K>uyEva<&!uUe0&5*i zot`G1-oujm^j|*v1DWK6=JZ>uzEs$YI!ua4{dzsNBzpC>q`ReaTF>^(zQxvQSDHJi zO)e}nG&J(4yi|j{zTUy3AEsBQDoRZK&?cdrk=kY9!o<?UW8o<JW7YbqS6A-d{ZcUT z(L<Tfzt|b~XHPrLet3HM^H>=R0|xe%b15<xxtlqdIutiK-Cz){Ev=tw#lv}8?(?)I z$;po%9_Pp{_;IMArj+p()Bedn<R8?^Pkxwc8h15ZCH&c^V|FtB{!bn<b3D;yoK_S% z(O~w2gv0Hesy$2lV@vCJcB>>FvEpDnCEuixy3t}mJ69p+!5+;ewTrjS=1ENWUf%wf zzoE{*x3gh#d2Q*1yj|>{uRCm9_+!=Lr^TV?pDcDLl@7?-!lu9e^{+Ga!H#O1U)RdJ zf9Can{Lkd_e}?)08SMX6{fYds<;Py%bTRh_2|NZ5j~?#tepF$jRH*SxB;s+4{)7Jv z3lA9l^Y0PY_1}74u~Liu$2RrFA8IW_<N8l0J!XDr7g~J$niA*1z^;Ya8eQ^F4EMxH zy6Z*=zT}tas<@c!D*9Va{=|o0_3YP<D)Tq9w;%A1{ayZcWB<h;_D^i>gm&CGz9>f^ z??bw;#+-ALG$jgt)JTTLFN!|O%wbU=s{P_P>$ddk^Hdi8W4<L(BPSoNcX0Ex8yxBf zn?Dr2k$y4z^yzIU_R2TEG*7r1zWmsc<Hrx>z5Dfg+l}dk-}%meIlOhX(FWFxAN%It zPCVF9;mn{MWb^V_`JG&y*w&ls-|U(Bc;w`xKg4WzXJdYF@Q2chr#H>`VsA^F4>Njq za`&lKuh%v1POj;(RN5Eu>E+YOrQdk=hPlc$aP5n4);s?|%EH~IXZNyC#_60>HgEaO z9{PNKbdng$>_7Z$vG?M`%Zev)GEd^u(^$Yhz0#deX4Ui8&$VCwx@8*wMSk<tn9GZg zDL<ajH)&C3fA8$a*L`ZLGY_v_%fWnV)#;5tBy)enAAWemHqL83x1-*ks!zw4^Jw{d zaadNcrr!NoUgmLl3cHGED3>eG{<GmWpF=nlckA&_{m;-NkU3>_gR|Fr9)n|M6BT=T zI9W1lOUu)5zh2iCdHU1u_uCG4xHs(S-B6Ztt2--pZSJ%QKcv?@XA7>Mc=SU<Zf{-w zrQ*pyo=<g@O=K*3e<@#UgY@qGo~#?>-pu64R$TIL#q((?w|raAZ`dDRSsQyVG%V6G zE;N`el!GsL@#}qCE*xEVUw--83-z0hX$N{q9KN;cQ-|b5g`3Q$gCgc16u+3aCiT{H zpX;@tJq8zTC0XtlOkUUc=d4b&TK>*$e5Z5vJWu|0JI{B@{9mfKem}U~U0CLFKmY#s z)qw$fKDotSf7Jf;qt|?|E!BeV(mAI$%w|qZt=;^|@J~;@(&Q4(FaM5(hX0Jc|D>|K z{KuO0m8l623kw*;+2lQM*Y7Nwm3Bj@y^=fO_`$|lXI7rgI&1B}tUI>kZiIRHFAD>v zts%@SPi$H>#VqHf+1bPERdQZkYHNShlV#wfJ<scEXsFiJaGTGeE}`MuYnhwBu!e?) zh6)|+WE6G!9N+14C?eVO@q{ChDG`sQJ{>zG;bXMuFx!%k%XlXK4*PNE$*T1>pF=|* zCq3$VJ}<;$jp=clsXOl%Rd*aZ%XwA6#Gkq6>O4(`=kqF8ty;C})L-*QtC~I@jFAfs z4Gj<teaR=A*qan_NTA?{!IM{s(-eiL1z4*+o)_D!QY<-lZCT3H7@vqI*~|7{`_G`P zf3kntwVxuh8nkm;Hfw8(9g4i#?U9%ota5u&j?Ha8G1V~NnP&SpF0=NwG4}bGmyxUZ z;W=otNBoa%q2bH**?)j+oa)ZU(q(lh{}e-K!ImXrVR6y=j5(`b@7vte!aR|;EJHqW z@l3_ZkH0;d%q`?Cz-e@T+kSPvyKH)AC4VoU8~ii%`b<8R<7K`l)mp!PeR3f;<>b}& z!;hZF3WtV<*nhYh{%+H|U$5T1d3e;keEQS~mj!E9F+Y}0a20e(O}!s0!;q35t$y2j zk@%Hg$yU23o=-7IY!RKMnQ*1z#!sJ1o>Hq)CcJrVqs?$ZUgAH4%&ZB<ZzYvIjdXo^ zo$^4{2pIo*^`GIw!|dH(5`(<|&fuK%NY7?p^LN9VB*BGN{~6BRIv)NrI{c^K`cMBE z)IZhBfBMg$aaHPg^h=MxZ9akrKAl$i&yaZQ%1?>1(}ugtes|t9m|J7PJUxG{k*Q$M zBuSILRjOttLD{DT3|22|(-z`5WYn-~f!6Bpq46($7FIsc4Yf>TpTs95B~$bM&2OKz z8_M=CoVj6RvHFcN`z3FB*T4OD{tXBnzhPW^DB1j`@G|cSr+IE$?Uve*GI3>pc5r4} z$ifYqkMl^q2vAuiqQUt?;aKu~E57w6`CNw$e;jr{;2nG8+q?IF{eQG7_Z6@EZDjZS zi}J%mOY2UW%Rf1P+Wge~DY^Gwd75}V3}@$)$&c1Q{d(Q5-O5TCZAY@@HvU_?a-nCz zidfr@GN;Rn9cAp#?Rv!*bM}JDk?UnPi7NiwZlWPBiFfQpJih&B5Kq@;_$#mX*Z$Fc zZS}MA{~GsI{JH&S``^S*?bUBvA54Gy+d4ht+har7_|-4Dob2XYG~PWa^30MsDuzi% zf4yG6d0#h=p(~5V1zyM1YFjoO?`D2&6S~-HLxO{rjh(Qj3(J!fdB@$_2V0dNey*wU zT+j9SLe_J((C{};L+cl3pI)lA*kx6~l8mm2M}^#kUoW0~-t5wz#)d<=#WAm^xi&tq zdcEkE{h9r8{~081CHvIm|2e!`Y;sNXi)9-xq;!dEbW2967<;$`xT+Mp+}gG4Wp^{9 z-K{6BU5SUgCq6vb{-q%C*!fB4dyXVNINX{U^|7$`?%n(Uj0O85()-p;7hQbd{ARvG zd)}F)PdF};%D4a1e+K!Fdec8T3vk8sbiB2Fz4_#(kNfsq-g0wU<Tsaq+WLcH6E7HS zE;aF9XZq;6;I5NW#{?41FXSIt^59?(qmRXodiTS<v#Wj;xb5TTNVVXf{&VAhhMp5^ zKKid$VUl0|GGdYcs*DAKTW(z7^?wv=|MXw|dd3(I<tMB4way$A?cP!!k*2rN^wh;S zC#~MN6>eN4SkQ6E=*E)=2PEC6?W~iT&Up0r(IbbOztvdWc+u6v$78|C!`|C)_wGIZ zKZ(tM&zzNd-5a=O14C;1k&hm!=htjI@N1@GXCS+;an9dGj>=xYwKr@&yX*GFy#EY& z_b%M>pE$oF*X&79=EhII_E;?4<W}za?`n<u0>?u}IWZ2*4~{7FKU=j&Vbz1f?GkM~ zv2$k1J~2MNYxc*S%J_x<%6k=OzY*%Zo{?wvI&aI<tBX>M%&r}ouPA=X^;7+Yv`8UF zNzT?-*}D6?f2q!#8FA|7371OttLJTEd>3VFPgq*X*mf|jGg{11XVRLvD<w~!EG)7K zR8TY8;TjqmD0h8YLD%A`XS$V6^$PX!$npP~o~%7V@=SxK<Rv3(*%|QxnM*Px6MI$o z3X*Nsy$Nm9xx4vm`32c8MITbq9acP<zu}b1wo|uc+9vsLf5$2&u(0TyclX36NdY${ zeU#q4d-rL>1_i;EV7W$JWsmpj`TEB<e5ij?yZ=S+kFbd;oKmWH+k`kL`K8F*5$s?J zv=u8)OG`W4n$dOo-HNV*9VXH5=RZmLS^Vi@&4!;D<}L5H>YP>5S!g;v(DagOk7{yC zONxrIq?nG6WvEMqK_bg$&7KWUn<mTo(CEjSJXitoQ28;&7X*q1B+~Z<5IMF2?nL zF1e~?O7yMTAUE^sja5^xMN4>ZnZy~fAt#?t#)36aW`faa<8S@zt>2yrGYfHPjxvp8 z?kvbtJGLXhFobJWq5g!2qDIG()jx*1@Z{voikPPs#`5qOt5dMctxYfAWKQ)I&$2yh zx$E`n-Me@HXAoRsn%t78n$oFcSZnWp<zj7($m%ek4zX>Ss(SOx%*@*lH{3MiJQDwW zn$rF#w;ea$H94+Z$r9L_kTgsFiHB0zt@bqGxKpXA8AeU#wsYnmy*tU^aoXdTo1S|e znG`L~$s#5_@%&s?=Et>mp`oGtAD=up*58*BnySKh{92MhN1R%RyG)kW94`@tWjYZL z&1x+jWLlTZ-Jo^EX-;UbnQ@4l%UT6xm7bJG?vs3-SN&(mFg^0qWa8;{uMV7%H+`ah z?ewYBId{+Z$Fb@66t&6w<(VB=s_-X$>WQdTs}>pU7mYZ5=C<Z$!HH5PQQYke8iuX4 zSzUX~?5sMjO3O?0xAVy`e_~p%E#YbCc;cGsY(GJnH+R>}&-OWI6!`U^@SFb(7v;6( z�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 V?Nj@aZ~ied;-0?ftf&8P0szDVf>Qth literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/about/gallery-travaux.jpg b/packages/ui/src/public/img/about/gallery-travaux.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cbc83c94656e4ae600e72837c1d64ed48abb87e9 GIT binary patch literal 128247 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Т`E6!6$E=xfna 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%0A~H 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%0D0X-W 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 Y^3|xStz}kTD`a&A+)pxvr~khR00S8-qW}N^ literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/leaflet/fullscreen.png b/packages/ui/src/public/img/leaflet/fullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..7384960aeb574240163a493a151fead20dc0611a GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0y~yV31;9U@+leV_;yI@<yYBfq{Xg*vT`5gM)*kh9d>U z=PdAuEM{Qfy$-^RP8zc-7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3 z0U5i()5S3)qV?^xM7{<Ej@FH(8_PGnNs&4G?@CzTj9Z(O_Ra68?(|n$GGzt3v$&}E zu0tBEj2(Q5&n`@I|MI2NY>EEmYv=tuQZDk`ZE4!RAfJoT<JN2o=iA>WU%K0P>-DFq z>tD9Xyyww-;-vRw!36(RuYT=U3*A~$&ETRmYtx4_XEvtPfBe7VSfbFkcQ2++ex<WS zF6q{is5iT=#%?sRKYma4=aO4Jw#GMvqZsB+3)-@{rq7;%fq}u()z4*}Q$iB}?*4k( literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/leaflet/fullscreen@2x.png b/packages/ui/src/public/img/leaflet/fullscreen@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9fca7f875440b883c5bf0475b17681956291d3ee GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0y~yU@&1|V94NLV_;y|XL326fq{Xg*vT`5gM)*kh9jke zfq{Xuz$3DlfkApb2s6e>O_X6^V2~_vjVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw z{mw>;fq_xc)5S5QV$R!Jj(kl9A`BP%KPK5q7HpE^HJ`AeGibq8PviXF14|ZdEsL0@ zT2=J>JMWb=fw_()Y!@Y6%JppxmX>6AO)QqHtK8>XuACwe`_cHzx-Yi1-@dxf-v|}~ ztL0ty>wu(7I!NR4>muv^$z_%9edl&U!K(QM&m!x+dfT_>UCX+g>kl$wZZ;R#bg*iW zHBiRR=TpupSbd*!31raSm;O8RgS>)WdaT>eT0UR-ZR_g(fJ7gcBRk}xL%;rSk2-tN ztMoe$Na<Y165Vfe&INuux=XhDYnA@0{tH%fe^xB^pXF0K>&(+@(sQHcRQs2op8)a{ fiX~vD+cLz3#rG?|WuM8wz`)??>gTe~DWM4f*$}7% literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/leaflet/layers-2x.png b/packages/ui/src/public/img/leaflet/layers-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..200c333dca9652ac4cba004d609e5af4eee168c1 GIT binary patch literal 1259 zcmeAS@N?(olHy`uVBq!ia0y~yU@!q;4i*LmhWx_I2@DJ@n><|{Ln;`Pe)y|<v`zE6 z<`rfYVRE=E+<w8gO%1uyy^AaQX3k_eeugK>cT4BSrpMM7AKE|dn|XR+k!t#k(tv`Q zFW(sEd!8~#>$+9`f9l__#fF!KZ}B_rzo8eC{r}xGzO@x)!A}C+%Y(`<1s-2^LiGH- zNefThzU1_3Qe}!q>B&sRiQ8E#H9j`Wp1zeElOM1<_xPqG{7q&i{}sRA|NWDBa`yhi zf4~1}Z!&l?D{`K~v~Df`g0pk31-#L={QUP&^~BTfPt276eJZ4F#<Vr}OLp%G)4MzG ztF*A$PQ}~huWqeNiHx1TxHA3oIlcBTF`IT>OLLkrWm<1w?G}$K(_Zg>&?>%<J9lRg zyYMzcFSi*j)1qeYS!8_q{pX~Jy7=^EcOtWeIfdJV?C$K_6Kj{8z4Ghb4~I1F_fET& zw{rj8ZMBt$+BYdKbN!h<KUnP1jN|pUxOe_pe%tob6}#o1_=VGCiq2_yoBTWwG@GyM z>7rSDWy?-oPVGDw+3f6ddKzommMznMtmE1m^mE;|X)^@3r5^M>q%(7WwwkhRUVZzX zFui*B_UL;{ERE{7ySzCa{A5c-^`03^s-Cnw)fD`#!?J7Jk{=GMTBd1ws=RS{H7RMA z+lH2N3m&&zxMt!%-Q)BVRe@_$r#$1#RlV@>f}~i)v%B7(D}^uiKE0`=J9&~rL}git za^vjh=XaOCc>eeO>kuD~_nyZSSrR*<FYWAgIQoBI-h&knIdzX-mgYUg^u)JXtv{OM z;)gF;n!Nrz{CAiAUorp6!o_lB5s@D+EVEfuc<a=r;@RgOJ(Dk#=6_q~zW$Qo8Yi7s z)uvp1zGW@KT<V?DTnqa{uD&bRS?wjIFU{xFEG?*@<N9(*nwO>HoRZ?^jT=9HS|#-C z#I0=$9oqx1b}%c7@V%LR;e=gTTa&<X&yCs6&0BLj7F&Lu`gW0`c=5sX4V8Cho_(WK z_PkGOWzPIy{h|`hoiW@Jx&IYq6BX7t^}h7rov&K9bo1>Q*O*Q|E%7{caZdK)_+ZJf zZ?&H!g%0t3zQ`e9eahh1=NZBi3YOTd+htU}IKfpW%e~b`fYbPb(yyJ0eX|!$;Jmtc zpGlI(Uq{=OPOf@MjvXyZfAUxkxkT|?T2R1T7_4W$NpIDXdncV=-Og(5O3XcC)5tQ> zz+Ah^=e$i`pnF#TudS&IcRlWTsKE8W$-*hoo%u=2$;`|LE*k2wcM@{W?B28Hj1!|( z?&`3_D`smL6xn7gD*L#dPAd}*D+qeymA_@1k^7b7fk)o?9(Qdv5?I?{*Qdo6H_a$Z zWx4ILe&t;!1-}-TBu7TxOI@rh@5%8t*~M7);;#tq)bxD@K>`uh2LySGU20__qc2Mz zz5e8&(8Q{b_nT$qIxJK3ZwNANm$G;z+!`QW&+ygqZIXsCQ=*b?Q`wxE@t%9{h$R(y z`}7A0eZ8=B>r+-n=MV*-1+Ej;cKH>13)vbyyUbGSW~KP1V^g_>mQb1#clPCv9d}vs ze&jIq>z1(p^?bgvyl$yv;<GImc>Vr)mizp0?3uUtD~sA1FSi+%x^t@XE}h@-tYzk9 zqoeJq#fQ#h%zQM#GO;LXnVpKdkC%5qo68}Ws3tQNA+-xadlV-caB*y5$@Ne<GexZU bFaM^C#|uBoIzMG#U|{fc^>bP0l+XkKIZj$K literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/leaflet/layers.png b/packages/ui/src/public/img/leaflet/layers.png new file mode 100644 index 0000000000000000000000000000000000000000..1a72e5784b2b456eac5d7670738db80697af3377 GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0y~yV2}b~4i*Lm24?3LR|W>AdQTU}kP61$5aS9JMv;5A zx9={r3D-Qo$}jd-@Kme(q}h{gk8N9f^YEHSI?4X$wi&*^XXUqVf93n@6)G0|HB0O+ z{oGRd;!&;aKiPjre@~N1y8by_{oP(ApF5A&Z+bmlV3plXX<tV6s>Q4Q^(0Q+y~?G3 z!a`R6-Bzb}>nxoMS3g;|c>CL9(`O!9VDQ7}^1l9i({>+QJ4<j?!NqpV-Sa;@wm)9L zbG+W};oLQLYYrV1^t!pQta?($^m)^L_AF>%7S^9P-Qtwc)jUmWjVlF-6H4cVyjqg@ zMm}=+<NHe<rmnhce8Mbd!jG-nZgwp9eH?$nNd4G;o7_#iZUy~~QhhglrsB334FMJ* z@fHOR)*MUYCv`K|d2VYBZR;#rB;F=-*d<K!w$t?`)+^s$f27=VZ1;-!<_pwKXT?Na z`S#k+>(G^1+f9<przIIod+^~5gQ4n@DU+PNFYMtBp1uC$l$Ec<&bmmeC5dP)cb#%X zWm1x+m~m*&$s*s0vlsv9sGl=a%_P}kS>k%t3*NyNhGDITISixbZs=XtX?<#@#To^} zllR&yC7Q0b2+Ufee$_3@VyDHEwjITj6hhx>ORdzOd~VN~YpdKO9dmD=@;Ir&?!Ka0 ze9@!>sms1^+w^n(%oWF3dR*t__<cB{GU3onMYUCu%rn+=UUTl5zH-NW4=2O6pzP_Y z7hHoi48xY@9Es*O+;H#Xw8M!3ZQ9ay(f%eg*Oaydfb9LD>&0jzGw-8qqez~?-<4~x zU6bljyRxA4^qUU`2YDx)`}y=x*@+KtSBac>;qcY?zuAd~x7`1fA4n|jeLTA^%I{0R z&%u&I8&&`GCa_jieR-P2?K98qLyM^QzxM~_R<vo|Fy8)4-b`~5`=z_GeGCi?44$rj JF6*2UngI0JPVN8z literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/leaflet/marker-icon.png b/packages/ui/src/public/img/leaflet/marker-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..950edf24677ded147df13b26f91baa2b0fa70513 GIT binary patch literal 1466 zcmeAS@N?(olHy`uVBq!ia0y~yV31^BV9?}XV_;x7FuCa*0|RTLr;B4q1>@Rq<_XD> zB4=;4Zhd?AM&|77+xND~`rPKZmAu(>+oP1++ovkt{rkN7+x4_tFaL!ukK6nGo$YfQ z^*v9n8!cmLEqlSVG%sR-0gvk<o|O{2GFI&rF4N*=-oAoIIW+6=hwEB@1u{>$*DRbW z{m-p)*DZrjd!y_xaa_#o*4U(@uKo4!Pp!ij7T!1}%l>}rjh7!Q-(N81zW?~clRw*E z{?k)GYWmiy#bRlmL;oJl&J$aiudgm)F0-iHas2Qk`y1cI?%sa8bcrAT(b;!%I<0P9 z{GTy@w!r#Jyj6z3I9)}Su6`_XYb*QXS!FV5bHD9z{itSs)R*aqqTRyE=Ymg+ZNB$v zHnpZ&)$hNave^Ci{e>)>+mm|UX)=F2arlas*Y!VZ^`gp;W=x!PmHFb<*?e}lzMCE0 zvRk9d<U-#>-y7$jUC*^W@geu4@I-OlYNyz3uMQ~hJ@ZAvR^;ZhPs}lPSAO%o7BSQa zbpPGC@q~NNuAHs@aeMx#hPkYYE#J1MVCVaHeA;*K{uFcFvg=QSSx&=`UA`hqVtqd? zdYU5{zPVBEP0{7r*yQI8{Cgfe_xwDKZM9d}j|Vzyjy`R7nLK@io8wY#kL`E7<ZHiM z%i2}-*!_R$ze>Jf<68x9vugLJO(0z-KZ&Qdg!24aAb07_69#wwGGo2xYnJYN`~G6Y z{f5WJTvyi~d3Pw}=hJ5XJrB~|HdTa{+%+rHYo0wvW<#>j?DETdO_@vH{3w)qU%ji; z_NZx&{M3G{ii77TKhyiAxALr4;M%-PCKi?|B^8>h(u}9Bzu_-jd+e)R*D9HVSAKyF zecrkG`QJvbip||uzVh)2I2K)AknA*Z-`f1(ke>{yQhV!uK44yNk^b+!z|FQq$H>U% z4;rj)&CipZ6`-=U+SoNLchL;9^D}-vc+R=`7mwnv#>0hg<$|tQStOh|DXSMGs<Ytj z`x?t-4bL~rd(JeUU-;%g((k9u`VsaO9#ihFe%g6?*ZZ(1x__h(PrZ8MKmWO2qjEjn z+kfSD*M3Y??y;~}^!>-QM%v9#OT6aOo!0u!OS>mk{4v*^-gU{kUv-=DI!X3RTGs59 zrms7aq`qxvdDNrlbwOV>GmT$cCUm!OcDu!Xn-2~CQ?8YY{CTrg$>;Sw`KWyp56!-# zvTn<7$3qHR4xXKK)bzH)nQ1H9&39e2*J8I>_;hw(^Yq=jSu~fmADQ`g-w!kW*($3f zq`R`zS+DL4=#y?Q`_N(ZtLBi%<=QzX-b%(U=MFlvzxDbXmD0JBS)OidXsr40A^42_ zgQZVg7!FDwD~idOcvfy#ai6Y&gUYVfn=F;xwLJ0PR(xmSKH_ux;D=dz-;~^0xZPL! z1ozroz7KYO?cK)hC-BfMm|Z;L!tIi4FB=3m3Vm8)$!*y6sqlWqio>o2PxU5+TD=Tg zTYBn%ncKVvzMt<;x^8t&I-EsdU*;9>P2#^c<W8(9zWKyK=F!o}&oxcvzO0k~sWfr# zxH#p#g6GcWJgu#MTs=}B|A<_cKQTXqr9pZJ*SgY;D&`{Z<;7pP%bb(kzId5Z(Qoe9 z^oMseN~1k(j(c7ge=9F8q5Eh?@kj1Y%XFAHf_hdKEMHk@*tfPM_u;=l2kT#jyJlY8 zZ}(RI&JNastf#lms+in(IjgC5aYNY`WxkJ>g&*=|96!BiOWgcbr%qb!*P729?QZ?6 zRrA<$=6|mncDLWmyzk*<c4=;ub?n65{mk*{>RUeFH>vO3!Qi?h`T=KR)_2Cros(q` zrr!L0L#TAiV);U2p+@gxZ`B_y65O@-44>dO5ph1@TNmwv1>fy$%wBo$+&WgT#8pop z)W1KvrsG3JiO}O;u{)0M6cpu=b+0}4U()?P(=nGF;+fwCy{@FkvLxKGX3gAtJaCcS qX{9?EN|FMnBE=+YEB(x$$D3}plVUPRyu-l2z~JfX=d#Wzp$P!`FXGq$ literal 0 HcmV?d00001 diff --git a/packages/ui/src/public/img/logo-camino.svg b/packages/ui/src/public/img/logo-camino.svg new file mode 100644 index 000000000..2c0629f79 --- /dev/null +++ b/packages/ui/src/public/img/logo-camino.svg @@ -0,0 +1,11 @@ +<svg viewBox="0 0 720 128" xmlns="http://www.w3.org/2000/svg"> + <path d="M207.36 71.589c-4.704 0-8.064-3.6-8.064-8.4 0-4.752 3.36-8.4 8.016-8.4 2.784 0 4.992 1.344 6.336 3.216l3.888-2.976c-2.208-2.976-5.808-4.896-10.224-4.896-8.112 0-13.2 6-13.2 13.056 0 7.056 5.088 13.056 13.2 13.056 4.464 0 8.016-1.92 10.224-4.896l-3.888-2.976c-1.344 1.872-3.552 3.216-6.288 3.216zm21.648 4.416c3.024 0 6.048-1.296 7.728-3.456v2.736h4.944V59.301c0-5.328-3.6-9.168-10.128-9.168-4.32 0-7.776 1.824-9.936 4.704l3.696 2.832c1.392-1.968 3.456-3.168 6.096-3.168 3.12 0 5.328 1.824 5.328 4.8v1.248l-7.824 1.296c-5.136.864-7.968 3.504-7.968 7.152 0 4.272 3.264 7.008 8.064 7.008zm-3.072-7.2c0-1.824 1.248-3.12 4.272-3.648l6.528-1.104v4.176c-1.44 2.304-3.792 3.744-6.816 3.744-2.496 0-3.984-1.296-3.984-3.168zm23.472 6.48h4.944v-16.32c1.152-2.064 2.976-4.176 6.048-4.176 3.168 0 5.088 2.112 5.088 5.664v14.832h4.992V60.261c0-.48 0-.912-.048-1.344 1.296-2.304 3.168-4.128 6.048-4.128 3.12 0 5.088 2.112 5.088 5.664v14.832h4.992V60.261c0-6.672-3.888-10.128-8.928-10.128-4.176 0-6.576 1.968-8.448 4.368-1.536-2.88-4.32-4.368-7.632-4.368-3.216 0-5.472 1.344-7.2 3.216v-2.256h-4.944v24.192zm47.328-29.568c1.824 0 3.36-1.536 3.36-3.36 0-1.824-1.536-3.36-3.36-3.36-1.824 0-3.36 1.536-3.36 3.36 0 1.824 1.536 3.36 3.36 3.36zm-2.496 29.568h4.944V51.093h-4.944v24.192zm13.008 0h4.944v-16.32c1.248-2.112 3.216-4.176 6.528-4.176 3.456 0 5.568 2.304 5.568 6.144v14.352h4.992V60.741c0-7.008-4.08-10.608-9.408-10.608-3.456 0-5.856 1.392-7.68 3.312v-2.352h-4.944v24.192zm40.944-25.152c-7.824 0-13.152 5.904-13.152 13.056 0 7.152 5.328 13.056 13.152 13.056 7.872 0 13.152-5.904 13.152-13.056 0-7.152-5.28-13.056-13.152-13.056zm.048 21.456c-4.656 0-8.016-3.744-8.016-8.4 0-4.656 3.36-8.4 8.016-8.4 4.56 0 7.92 3.696 7.92 8.4 0 4.608-3.36 8.4-7.92 8.4z"/> + <path d="M368.736 75.861a3.544 3.544 0 003.552-3.552c0-1.92-1.584-3.552-3.552-3.552-2.016 0-3.6 1.632-3.6 3.552 0 1.968 1.584 3.552 3.6 3.552zm35.904-12.672c0-7.056-4.752-13.056-12.336-13.056-3.504 0-6.096 1.248-8.16 3.456V39.285H379.2v36h4.944v-2.496c2.064 2.208 4.656 3.456 8.16 3.456 7.584 0 12.336-6 12.336-13.056zm-12.96-8.4c4.656 0 7.776 3.648 7.776 8.4 0 4.752-3.12 8.4-7.776 8.4-3.12 0-5.76-1.44-7.536-4.08v-8.64c1.68-2.592 4.368-4.08 7.536-4.08zm41.232 16.56l-3.6-2.88c-1.488 2.016-3.936 3.312-6.864 3.312-4.656 0-7.872-2.736-8.208-8.016h17.856c.192-.72.336-1.824.336-2.976 0-6.144-4.32-10.656-10.992-10.656-7.68 0-12.288 5.808-12.288 13.056 0 7.056 4.944 13.056 13.296 13.056 4.512 0 8.208-1.872 10.464-4.896zm-11.52-17.088c3.744 0 6 2.736 6.096 5.808H414.48c.768-3.744 3.264-5.808 6.912-5.808zm18.864 12.624c0 5.904 2.976 8.88 8.64 8.88 1.872 0 3.216-.24 4.368-.72v-4.368c-.864.336-1.968.528-3.6.528-2.688 0-4.416-1.056-4.416-4.32V55.557h8.016v-4.464h-8.016v-6.048h-4.992v6.048h-4.56v4.464h4.56v11.328zm25.584 9.12c3.024 0 6.048-1.296 7.728-3.456v2.736h4.944V59.301c0-5.328-3.6-9.168-10.128-9.168-4.32 0-7.776 1.824-9.936 4.704l3.696 2.832c1.392-1.968 3.456-3.168 6.096-3.168 3.12 0 5.328 1.824 5.328 4.8v1.248l-7.824 1.296c-5.136.864-7.968 3.504-7.968 7.152 0 4.272 3.264 7.008 8.064 7.008zm-3.072-7.2c0-1.824 1.248-3.12 4.272-3.648l6.528-1.104v4.176c-1.44 2.304-3.792 3.744-6.816 3.744-2.496 0-3.984-1.296-3.984-3.168zm25.968 7.056a3.544 3.544 0 003.552-3.552c0-1.92-1.584-3.552-3.552-3.552-2.016 0-3.6 1.632-3.6 3.552 0 1.968 1.584 3.552 3.6 3.552zm7.44 3.744c0 4.944 4.608 7.68 12.048 7.68 7.344 0 12.432-3.936 12.432-9.168 0-4.368-3.12-7.584-9.36-7.584h-6.576c-1.296 0-1.824-.576-1.824-1.584 0-.72.432-1.44 1.2-2.064.912.192 1.872.336 2.928.336 6 0 9.6-3.888 9.6-8.592 0-1.152-.24-2.304-.672-3.312h4.752v-4.224h-8.928c-1.344-.624-2.928-.96-4.752-.96-5.904 0-9.504 3.84-9.504 8.496 0 2.688 1.2 5.136 3.312 6.72-1.872 1.296-2.784 2.832-2.784 4.752 0 1.248.528 2.544 1.584 3.456-2.256 1.68-3.456 3.6-3.456 6.048zm10.896-16.176c-3.12 0-4.944-2.064-4.944-4.8 0-2.688 1.824-4.704 4.944-4.704s4.944 2.016 4.944 4.704c0 2.736-1.824 4.8-4.944 4.8zm-6.192 15.504c0-1.728.96-3.024 2.688-4.08h7.248c3.696 0 4.896 1.632 4.896 3.696 0 2.832-2.784 4.704-7.584 4.704-4.56 0-7.248-1.632-7.248-4.32zm34.752-28.8c-7.824 0-13.152 5.904-13.152 13.056 0 7.152 5.328 13.056 13.152 13.056 7.872 0 13.152-5.904 13.152-13.056 0-7.152-5.28-13.056-13.152-13.056zm.048 21.456c-4.656 0-8.016-3.744-8.016-8.4 0-4.656 3.36-8.4 8.016-8.4 4.56 0 7.92 3.696 7.92 8.4 0 4.608-3.36 8.4-7.92 8.4zm35.712-6.672c0 4.176-2.256 6.672-5.952 6.672-3.792 0-6-2.496-6-6.672V51.093h-4.992v13.584c0 7.248 4.176 11.568 10.992 11.568 6.768 0 10.944-4.32 10.944-11.568V51.093h-4.992v13.824zm9.264-13.824l9.12 24.192h6.576l9.168-24.192h-5.376l-7.056 18.816-7.104-18.816h-5.328zm28.608 24.768a3.544 3.544 0 003.552-3.552c0-1.92-1.584-3.552-3.552-3.552-2.016 0-3.6 1.632-3.6 3.552 0 1.968 1.584 3.552 3.6 3.552zm7.344-24.768v4.464h4.56v19.728h4.992V55.557h8.016v-4.464h-8.016v-2.928c0-2.736 1.632-4.416 4.08-4.416 1.344 0 2.4.432 3.216 1.056l2.112-4.176c-1.392-.768-3.216-1.344-5.424-1.344-5.616 0-8.976 3.888-8.976 9.024v2.784h-4.56zm21.408 24.192h4.944V59.157c1.248-2.064 3.264-3.696 6.336-3.696 1.008 0 1.776.144 2.544.336v-4.848a7.212 7.212 0 00-2.112-.336c-2.976 0-5.088 1.344-6.768 3.216v-2.736h-4.944v24.192z" fill="#ccc"/> + <g> + <path d="M55.188 122.098c.398 0 .797.399.638 1.276l-2.154.479c.319-.957.957-1.755 1.516-1.755m1.116 3.509h-.399c-.558.559-1.116 1.117-1.674 1.117-.559 0-.878-.399-.878-1.117 0-.319 0-.638.08-.957l3.429-1.116c.718-1.595-.079-2.313-1.036-2.313-.957 0-3.509 2.712-3.509 5.104 0 1.037.558 1.675 1.276 1.675.717 0 1.914-.957 2.711-2.393m-.638-5.024l2.393-2.233v-.319h-1.276l-1.516 2.552h.399zm-7.417 1.595h1.117l-1.835 4.945c-.159.319 0 .717.319.797.08 0 .08 0 .16.08 1.435-.239 2.711-1.117 3.35-2.472h-.399c-.559.638-1.276 1.116-2.074 1.276l1.675-4.626h1.675l.239-.718h-1.675l.638-1.754h-.638l-1.196 1.754-1.356.16v.558zm-1.595-.239c.16-.479-.159-.718-.399-.718-1.196.16-2.233.957-2.631 2.153h.319c.319-.478.797-.877 1.355-1.036l-1.914 4.944c-.079.319.08.638.399.718h.08c.877 0 1.994-.957 2.472-2.153h-.319c-.319.478-.797.797-1.356 1.036l1.994-4.944zm.399-2.472c.478-.08.797-.399.797-.878 0-.398-.398-.797-.797-.797-.479 0-.798.319-.877.797 0 .479.398.878.877.878m-11.006 7.576c-.159.319-.079.718.24.877.079.08.239.08.319.08.398 0 .478-.08.638-.479l1.355-3.509c.638-.717 1.436-1.276 2.313-1.515.399 0 .319.319.08.718l-1.994 3.908c-.159.239-.08.638.16.797.079.08.239.08.319.08 1.196-.16 2.233-1.037 2.631-2.153h-.319c-.319.478-.797.797-1.355 1.036l1.754-3.509c.16-.398.319-.797.319-1.196.08-.478-.319-.877-.797-.957h-.16c-.797 0-1.675.957-2.711 2.153v-.957c0-.638-.24-1.196-.798-1.196-.478.08-.877.399-1.116.798.638 0 .957.957.478 1.993l-1.356 3.031zm0-4.307c.24-.797.08-1.515-.478-1.515-.558 0-.957.558-1.675 2.153v-.957c0-.638-.239-1.196-.797-1.196-.559 0-1.356 1.037-1.835 2.153h.319c.319-.478.638-.797.878-.797.239 0 .478.478 0 1.515l-1.356 2.951c-.16.319-.08.718.239.877.08.08.239.08.319.08.399 0 .479-.08.638-.479l1.356-3.509c.319-.478.718-.877 1.116-1.276h1.276zm-7.656-.638c.479 0 .878.399.718 1.276l-2.153.479c.319-.957.957-1.755 1.435-1.755m1.197 3.509h-.399c-.558.559-1.117 1.117-1.675 1.117s-.877-.399-.877-1.117c0-.319 0-.638.08-.957l3.429-1.116c.718-1.595-.08-2.313-1.037-2.313s-3.509 2.712-3.509 5.104c0 1.037.479 1.675 1.276 1.675.798 0 1.914-.957 2.712-2.393m-8.055-3.429h1.116l-1.834 4.945c-.16.319 0 .717.319.797.08 0 .08 0 .159.08a4.056 4.056 0 003.27-2.472h-.319c-.558.638-1.276 1.116-2.073 1.276l1.674-4.626h1.675l.24-.718h-1.675l.638-1.754h-.638l-1.197 1.754-1.355.16v.558zm-6.301 3.828c0-1.515 1.675-3.589 2.632-3.589h.558l-.957 2.632c-.558.718-1.435 1.595-1.834 1.595s-.399-.239-.399-.638m5.184-5.184h-.478l-.559.559h-.159c-2.871 0-5.264 3.19-5.264 5.502-.079.559.319.957.878 1.037h.159c.718 0 1.436-1.037 2.233-2.153v.319c-.08 1.196.319 1.834.877 1.834.559 0 1.356-1.116 1.835-2.153h-.319c-.319.478-.638.718-.878.718-.239 0-.478-.479 0-1.436l1.675-4.227zm-5.981 1.835c.239-.798.08-1.516-.558-1.516s-.878.559-1.675 2.154v-.957c0-.638-.16-1.197-.798-1.197s-1.276 1.037-1.754 2.154h.319c.319-.479.638-.798.877-.798s.479.479 0 1.515l-1.356 2.951c-.239.558 0 .957.559.957.558 0 .478-.08.638-.478l1.276-3.509c.319-.479.717-.878 1.196-1.276h1.276zm-9.57 4.944l.159-.319c-1.674-.319-1.834-.319-1.196-2.153l.638-1.755H6.3c.798 0 .878.319.718 1.197h.479l1.116-2.951h-.478c-.399.718-.718 1.196-1.675 1.196H4.705l.957-2.632c.24-.797.479-.957 1.595-.957h.798c1.116 0 1.276.319 1.276 1.436h.478l.319-1.994H3.27v.399c1.356.239 1.435.399.797 2.073l-1.435 4.068c-.638 1.754-.877 1.834-2.472 2.153v.319l4.705-.08zm33.655-20.974c.478 0 .877.319.638 1.196l-2.154.479c.399-.957 1.037-1.675 1.516-1.675m1.196 3.429h-.479c-.319.638-.957 1.037-1.674 1.117-.559 0-.878-.319-.878-1.117 0-.319.08-.638.16-.957l3.429-1.116c.638-1.595-.159-2.313-1.116-2.313-.957 0-3.43 2.711-3.43 5.104 0 1.116.479 1.675 1.276 1.675.798 0 1.914-.878 2.712-2.393m-.718-5.024l2.472-2.233v-.239h-1.355l-1.516 2.472h.399zm-7.417 1.595h1.117l-1.755 4.944c-.159.479 0 .878.479.878 1.435-.16 2.632-1.117 3.27-2.393h-.319c-.559.558-1.276 1.037-2.074 1.276l1.595-4.705h1.755l.159-.718h-1.595l.638-1.754h-.718l-1.116 1.754-1.436.239v.479zm-1.515-.239c.08-.479-.159-.718-.399-.718-1.276.159-2.312.957-2.711 2.153h.319c.319-.558.877-.877 1.435-1.037l-1.914 4.945c-.159.478.16.718.399.718 1.196-.16 2.153-1.037 2.552-2.154h-.319c-.319.559-.877.878-1.435 1.037l2.073-4.944zm.319-2.473c.399.08.718-.239.798-.638v-.159c0-.479-.319-.798-.798-.798-.478 0-.797.319-.797.798-.08.399.239.718.638.797h.159m-6.619 7.417l3.509-9.092h-.16l-2.153.24v.239l.399.319c.399.319.319.558-.08 1.515l-2.712 7.098c-.159.319 0 .718.319.798.08 0 .08 0 .16.079 1.196-.159 2.233-.957 2.552-2.153h-.319c-.319.558-.877.877-1.515 1.037m-6.54-.798c0-1.595 1.675-3.668 2.632-3.668h.558l-.957 2.711c-.558.638-1.435 1.516-1.914 1.516-.478 0-.319-.24-.319-.638m5.184-5.104h-.479l-.638.558h-.079c-2.871 0-5.264 3.19-5.264 5.503-.08.558.319.957.877 1.036h.08c.798 0 1.515-1.036 2.313-2.153v.399c-.08 1.116.239 1.754.877 1.754s1.276-1.116 1.834-2.153h-.319c-.398.479-.717.798-.957.798-.239 0-.398-.479 0-1.516l1.755-4.226zm-12.601 8.214c0-.638.638-1.037 1.516-1.436l1.355.479c.957.319 1.276.478 1.276.797 0 .319-1.036 1.037-2.392 1.037-1.356 0-1.755-.239-1.755-.877m2.552-3.988c-.398 0-.558-.398-.558-.797s.558-2.712 1.515-2.712c.957 0 .559.319.559.718 0 .399-.559 2.791-1.516 2.791m2.712 3.35c0-.798-.718-1.037-1.914-1.436-1.196-.398-1.436-.319-1.436-.638 0-.398.24-.717.638-.797 1.516-.08 2.632-1.276 2.712-2.791 0-.24-.08-.479-.16-.718h1.356l.239-.718h-2.153l-.877-.239c-1.515 0-2.791 1.276-2.871 2.791-.08.798.478 1.436 1.276 1.595-.798.399-1.196.798-1.196 1.276 0 .239.079.558.319.718-1.835.558-2.632 1.116-2.632 1.994 0 .877 1.116 1.276 2.472 1.276 1.356 0 4.227-1.276 4.227-2.313m-8.693-5.264c.798 0 .798.319.718 1.197h.478l1.037-2.951h-.478c-.399.638-.718 1.196-1.595 1.196H4.705l.957-2.472c.24-.877.479-1.037 1.595-1.037h.798c1.116 0 1.276.319 1.276 1.515h.478l.319-2.073H3.27v.399c1.356.239 1.435.398.797 2.073l-1.435 4.067c-.638 1.755-.877 1.914-2.472 2.154v.398h7.496l1.356-2.153h-.558c-.878.957-2.154 1.515-3.509 1.595-1.994 0-1.835-.08-1.117-1.994l.718-1.914H6.38zm.957-5.263l2.472-1.595v-.319H8.294l-1.356 1.914h.399zm30.385-11.405c.479 0 .877.319.638 1.197l-2.153.558c.399-1.037 1.037-1.755 1.515-1.755m1.196 3.43h-.478c-.399.638-.957 1.036-1.675 1.116-.558 0-.877-.319-.877-1.116 0-.798.08-.638.08-.957l3.509-1.117c.638-1.595-.16-2.313-1.117-2.313s-3.509 2.792-3.509 5.104c0 2.313.558 1.675 1.356 1.675.797 0 1.914-.877 2.711-2.392m-.717-5.025l2.392-2.233v-.239h-1.276l-1.515 2.472h.399zm-7.098 1.595h.877L30.146 96.1c-.16.239 0 .638.239.717.08.08.16.08.319.08 1.436-.239 2.632-1.116 3.27-2.392h-.319c-.558.638-1.356 1.036-2.153 1.276l1.674-4.706h1.755l.159-.638h-1.595l.559-1.834h-.638l-1.197 1.834-1.116.16v.478zm-.877.559c.239-.798.079-1.516-.559-1.516s-.877.559-1.674 2.233v-.957c0-.638-.16-1.276-.798-1.276s-1.356 1.117-1.834 2.154h.319c.399-.479.718-.718.957-.718s.399.399 0 1.435l-1.356 3.031c-.239.558 0 .877.558.877.319.08.559-.159.638-.399l1.276-3.509 1.117-1.355h1.356zm-7.657-.559c.479 0 .878.319.638 1.197l-2.153.558c.399-1.037 1.037-1.755 1.515-1.755m1.197 3.43h-.479c-.319.638-.957 1.036-1.675 1.116-.558 0-.877-.319-.877-1.116 0-.319.08-.638.16-.957l3.429-1.117c.638-1.595-.16-2.313-1.117-2.313s-3.429 2.792-3.429 5.104c0 2.313.479 1.675 1.276 1.675.798 0 1.914-.877 2.712-2.392m-8.454 1.435c-.319 0-.797-.319-.797-.638s.159-.478.319-.957l.558-1.435c.558-.718 1.515-1.516 1.994-1.516.478 0 .558.24.558.718 0 .479-1.276 3.828-2.632 3.828m3.908-4.386c0-1.037-.399-1.436-1.037-1.436-.638 0-1.754.957-2.552 2.074l2.074-5.423v-.16l-2.233.24v.239l.478.319c.399.319.239.638-.08 1.515l-2.312 5.742c-.16.399-.319.718-.399 1.117 0 .558.797 1.116 1.515 1.116.718 0 4.546-3.03 4.546-5.343m-6.779-.718c.16-.239.08-.558-.159-.638-.08 0-.16-.08-.24-.08-1.196.16-2.233 1.037-2.631 2.154h.319c.319-.479.797-.798 1.355-1.037l-1.914 4.944c-.079.319.08.638.399.718h.08c1.196-.159 2.153-1.037 2.472-2.153h-.319c-.319.478-.797.877-1.356 1.037l1.994-4.945zm.399-2.472c.478 0 .797-.319.797-.798 0-.478-.319-.797-.797-.797-.479 0-.798.319-.798.797 0 .479.319.798.798.798m-5.024-.798H3.27v.399c1.276.319 1.435.399.797 2.153l-1.435 4.068C1.994 95.86 1.755 96.02.16 96.259v.399h6.699l1.515-2.632h-.558c-.798.877-1.835 2.074-3.35 2.074-1.515 0-1.276-.16-.638-1.914l1.436-4.068c.638-1.754.877-1.834 2.392-2.153l.16-.399zM0 50.402V33.974h5.024c1.516-.08 3.031.319 4.307 1.276 1.037.877 1.675 2.233 1.595 3.589 0 .957-.239 1.834-.718 2.631a4.868 4.868 0 01-1.914 1.675l5.104 7.257H9.411l-4.387-6.619H3.35v6.619H0zm5.184-13.637H3.35v4.147h1.834c.638.08 1.196-.159 1.675-.558.398-.399.638-.957.638-1.515 0-.559-.24-1.117-.638-1.516-.479-.398-1.037-.558-1.675-.558zm10.288 13.637V33.974h9.649v2.791h-6.3v3.828h5.343v2.871h-5.343v4.067h6.3v2.871h-9.649zm6.3-17.864h-3.031l2.632-3.19h3.509l-3.11 3.19zm7.178 17.864V33.974h5.502a6.632 6.632 0 014.227 1.276c1.994 1.834 2.153 4.865.319 6.858-.08.08-.159.24-.319.319a6.257 6.257 0 01-4.227 1.356h-2.153v6.619H28.95zm5.582-13.637h-2.233v4.147h2.233c.638.08 1.196-.159 1.675-.558.399-.399.638-.957.638-1.515 0-.559-.239-1.117-.638-1.516-.479-.398-1.037-.558-1.675-.558zm18.183 7.497V33.974h3.35v9.969c.08 1.914-.558 3.668-1.834 5.104a7.31 7.31 0 01-9.73 0c-1.196-1.436-1.834-3.27-1.755-5.104v-9.969h3.35v10.288c-.08.957.239 1.834.877 2.552.638.638 1.515 1.036 2.393.957.957.079 1.834-.319 2.472-.957.638-.718.957-1.595.877-2.552zm7.497 6.14V33.974h4.705c1.436-.08 2.871.319 3.988 1.196 1.036.798 1.595 1.994 1.515 3.27 0 .638-.16 1.276-.479 1.834-.319.558-.717 1.037-1.276 1.356.798.319 1.516.957 1.994 1.675.479.638.718 1.435.718 2.233.08 1.435-.558 2.711-1.675 3.588-1.276.957-2.871 1.356-4.466 1.276h-5.024zm4.705-13.637h-1.356v3.669h1.356c.558 0 1.117-.16 1.515-.479.718-.718.718-1.994 0-2.711-.398-.319-.957-.479-1.515-.479zm.479 6.54h-1.835v4.226h1.835c.638.08 1.355-.159 1.834-.558.478-.399.718-.957.718-1.595s-.24-1.196-.718-1.595c-.558-.319-1.196-.558-1.834-.478zm9.33 7.097V33.974h3.35v13.398h6.3v3.03h-9.65zm12.601-16.428h3.35v16.429h-3.35zm21.772 16.03c.479.478 1.117.877 1.755 1.196.558.239 1.116.399 1.674.399h.559l.638-.16v2.871l-.798.24h-.957c-.877 0-1.834-.24-2.632-.559-.957-.398-1.754-.957-2.552-1.674l-1.914-1.675-1.116.159h-1.196a8.907 8.907 0 01-3.51-.718c-1.036-.478-1.993-1.036-2.791-1.834-1.515-1.675-2.392-3.828-2.392-6.141 0-2.312.877-4.466 2.392-6.14a8.1 8.1 0 012.791-1.835 8.923 8.923 0 013.51-.717c1.196 0 2.472.239 3.588.717 1.037.479 1.994 1.037 2.792 1.835 1.515 1.674 2.392 3.828 2.392 6.14 0 1.356-.319 2.632-.877 3.828-.558 1.197-1.356 2.233-2.393 3.031l1.037 1.037zm-6.539-2.233c1.435 0 2.791-.638 3.828-1.595.478-.559.797-1.117 1.116-1.755a6.167 6.167 0 000-4.466c-.239-.638-.638-1.196-1.116-1.754a6.387 6.387 0 00-1.675-1.197c-.718-.239-1.436-.398-2.153-.398-.718 0-1.436.159-2.074.398a4.078 4.078 0 00-1.675 1.197 5.064 5.064 0 00-1.116 1.754 6.156 6.156 0 000 4.466 5.078 5.078 0 001.116 1.755c.479.558 1.037.877 1.675 1.116a4.655 4.655 0 002.074.479zm21.692-3.509V33.974h3.349v9.969c.08 1.914-.558 3.668-1.834 5.104a7.31 7.31 0 01-9.73 0c-1.276-1.436-1.914-3.19-1.834-5.104v-9.969h3.35v10.288c-.08.957.319 1.914.957 2.552.638.638 1.515 1.036 2.392.957.957.079 1.834-.319 2.472-.957.638-.718.957-1.595.878-2.552zm7.496 6.14V33.974h9.57v2.791h-6.22v3.828h5.263v2.871h-5.263v4.067h6.22v2.871h-9.57zM0 75.285V58.856h9.57v2.791H3.35v3.828h5.343v2.871H3.35v6.939H0zm12.521 0V58.856h5.024c1.515-.08 3.031.319 4.307 1.276 1.036.877 1.674 2.233 1.595 3.589 0 .957-.24 1.834-.718 2.632a4.879 4.879 0 01-1.914 1.674l5.184 7.258h-3.988l-4.386-6.62H15.87v6.62h-3.349zm5.263-13.638H15.87v4.147h1.914c.559.08 1.197-.159 1.595-.558.399-.399.638-.957.638-1.515 0-.558-.239-1.117-.638-1.515a2.435 2.435 0 00-1.595-.559zm8.933 13.638l6.22-16.429h4.386l6.221 16.429h-3.589l-1.595-4.307h-6.539l-1.595 4.307h-3.509zm6.14-7.098h4.466l-2.233-6.221-2.233 6.221zm13.239 7.098V58.856h4.227l7.417 11.723V58.856h3.349v16.429h-4.306l-7.417-11.803v11.803h-3.27zm26.876-2.632c.877 0 1.754-.239 2.552-.638.718-.399 1.276-.957 1.755-1.595l2.631 1.994a7.747 7.747 0 01-2.392 2.153 8.952 8.952 0 01-3.19 1.116l-2.074 3.43h-2.951l2.074-3.509c-1.037-.16-2.074-.479-2.951-1.037-.797-.558-1.595-1.196-2.233-1.914a8.477 8.477 0 01-1.435-2.632 9.153 9.153 0 01-.479-2.951c0-2.312.877-4.466 2.393-6.14a8.08 8.08 0 012.791-1.835 8.919 8.919 0 013.509-.717c1.435 0 2.791.319 4.067.877a7.785 7.785 0 012.871 2.472l-2.631 1.994c-.479-.638-1.037-1.196-1.755-1.595-.798-.399-1.675-.638-2.552-.638-.718 0-1.436.159-2.074.399-.638.319-1.276.717-1.754 1.196-.399.558-.798 1.116-1.037 1.754a6.167 6.167 0 000 4.466c.239.638.638 1.197 1.037 1.755a5.064 5.064 0 001.754 1.116 4.655 4.655 0 002.074.479zm7.656 2.632l6.221-16.429h4.386l6.22 16.429h-3.509l-1.595-4.307h-6.539l-1.595 4.307h-3.589zm6.221-7.098h4.466l-2.233-6.221-2.233 6.221zm13.158-9.331h3.35v16.429h-3.35zm6.46 14.196l2.473-2.233a7.249 7.249 0 001.674 1.435c.559.399 1.276.558 1.994.558.558 0 1.117-.159 1.515-.478.399-.399.559-.877.559-1.436 0-.717-.479-1.435-1.197-1.674l-2.552-1.276c-.957-.399-1.834-1.037-2.631-1.675-.798-.877-1.197-1.994-1.117-3.11 0-.638.08-1.276.399-1.835a4.245 4.245 0 011.037-1.595 5.76 5.76 0 011.674-.957c.638-.319 1.436-.398 2.154-.398 1.116 0 2.233.239 3.269.717.957.559 1.755 1.197 2.473 2.074l-2.473 2.153a6.826 6.826 0 00-1.515-1.515c-.558-.319-1.116-.558-1.754-.558-.479 0-1.037.159-1.356.558-.399.319-.558.718-.558 1.196 0 .718.478 1.436 1.196 1.675l2.552 1.276c.957.399 1.834 1.037 2.632 1.754.797.798 1.276 1.914 1.196 3.111a8.719 8.719 0 01-.479 2.073 7.56 7.56 0 01-1.196 1.595 5.72 5.72 0 01-1.675.957c-.717.239-1.435.319-2.153.319a8.906 8.906 0 01-3.509-.718c-1.037-.478-1.914-1.196-2.632-1.993zm15.153 2.233V58.856h9.57v2.791h-6.3v3.828h5.343v2.871h-5.343v4.068h6.3v2.871h-9.57z"/> + <path d="M25.68 19.938l.718-.718c.398-.479.957-1.037 1.435-1.436l.479-.398c.079-.08.079-.08.079-.16l-.558.319s-.08 0 0-.08l.399-.319h-.08c-.558 0-1.037.24-1.356.638h-.159c-.638.24-1.117.798-1.755 1.037l-.797.319a2.27 2.27 0 01-1.037 0l-1.595.319-.798.319h-.079l-.319.319c-.24.16-.479.319-.718.558h-.08l-.718.718h-.079c.079 0 .079-.08.159-.159 0-.08 0-.08.08-.16s.159-.239.159-.319l.718-.478c-.08 0-.08 0-.08-.08h-.159c-.08.159-.16.319-.319.319 0-.08 0-.08.08-.08l.319-.239.478-.319h.08l-.718.319h-.08s0 .08-.079 0l.239-.239h.08c1.355-1.037 3.269-.798 4.864-1.356l.399-.239c.16-.08.319-.319.638-.399.319-.239.559-.638.718-1.037h-.08a4.733 4.733 0 01-1.834.399c-.877.319-1.914.478-2.871.478h.239c0-.079.08-.159.16-.239h.159c0-.08 0-.08.08-.08h.159c-.159-.159-.398.16-.638 0-.239-.159.08-.159.16-.239h.159c0-.08 0-.08.08-.159.638-.399 1.276-.638 1.834-1.037.559-.399-.159.159-.319.08-.159-.08 0-.16.08-.16.479-.159.957-.319 1.356-.558-.16 0-.319.159-.479 0h.24v-.16c0-.079 0-.079.079-.079h-.079l.239-.16h-.08a.726.726 0 01.558-.239c-.079-.08-.239 0-.239-.08s.08-.08.16-.08h-.16c-.08 0-.08 0-.08-.079 0-.08 0-.08.08-.08.16-.319.319-.718.399-1.037h-.08a4.532 4.532 0 01-1.754.877h-.24c-.239.08-.478.08-.717-.079l-.399-.319-1.117-.559c-1.036-.398-2.153-.717-3.269-.797.478-.16 1.036-.319 1.515-.399.718-.319 1.435-.399 2.153-.399-.159-.079-.319 0-.399 0-.638 0-1.276.08-1.834.24l-1.276.319c-.239.079-.399.398-.638.319v-.16c.399-.558.957-.957 1.595-1.037.718-.079 1.515-.079 2.233.08l1.675.319c.159 0 .239.319.399.399.159.08.478 0 .797.159.319.16-.08-.159 0-.239.08-.08.319 0 .558-.08.24-.079-.319-.558-.478-.877.319.319.638.558 1.037.798.239.159.718.239.638 0-.239-.479-.559-.878-.957-1.276v-.16h-.16v-.399c-.159-.079-.08-.239-.239-.319-.16-.079 0-.558-.08-.797s-.159-.479-.159-.718c-.16-.718-.319-1.356-.399-2.073-.08-.798.478-1.436.877-2.154a2.811 2.811 0 011.197-1.355c.159-.479.398-.957.797-1.356a2.83 2.83 0 011.276-.877L29.348 0h8.534l.159.16.638.319c.319.159.558.398.798.638.079.159.239.398.159.558-.08.159-.159.558-.319.638-.319.159-.638.159-.957.159l-.478-.159c.638.239 1.276.638 1.674 1.196l.399.16c-.08.079-.159.159-.08.239h.08c.239-.08.16-.479.479-.319.239.08.319.319.239.478 0 .08-.08.08-.08.16l-.478.399c-.08.079-.08.239 0 .319l.239.478.239.957c.239.638.319 1.276.319 1.914 0 .319-.159.638-.08.957l.479.957c.239.16.399.399.478.638.24.399.718.877.559 1.356-.16.478-.638.239-.957.478-.319.24 0 .559.159.718.16.16-.319.638-.558.798-.239.159.239.079.239.159s.319.319.16.558c-.16.24-.718.399-.399.798.319.399 0 .638-.08.877-.159.319-.399.558-.797.638-.24.16-.559.16-.798.08h-.239c-.718-.16-1.436-.239-2.153-.319l-.638.159-.479.479h-.239l-.319.478c0 .08 0 .08-.08.08l-.319.798c-.239.957-.159 1.834.08 1.993.239.16 1.435.479 2.313.957l1.036.479H20.735a18.484 18.484 0 012.791-1.436c.798-.319 1.516-.717 2.154-1.276m-6.54-3.03c-.08 0-.239.08-.239 0s.319-.239.558-.319c.239-.08.16-.16.239-.08l.319.16c-.239.239-.558.159-.877.239m-6.539-.957c.478-.638.957-1.356 1.355-2.153.479-.319.957-.638 1.436-1.037.638-.798 1.515-1.436 2.392-1.914.399-.08.798-.08 1.117.08-.16.159-.399.159-.558.239h-.08v-.16c-.399.479-1.037.718-1.356 1.276-.319.559-.399.957-.957 1.037-.558.08 0-.08-.08-.08-1.196.878-2.312 1.835-3.269 2.951m3.509-2.791c0 .08-.08.08-.08.159 0 .08-.08.16-.16.16h-.079c0-.16.159-.399.319-.319m1.993 6.3c0 .08-.079.08-.079.16 0 .079.079 0 .079.079l-.319.16c-.079 0-.079 0-.079.08h-.16c-.08.079-.319.079-.239 0l.319-.319c.08-.08.159-.08.159-.16h.319m-.717-.319l-.559.319-.558.239h-.08l-.398.319h-.24c0 .08 0 .08-.079.08h-.08c0 .08 0 .08-.08.08h-.08c-.079.08-.159.08-.159.159l-.239.24h-.24l.16-.16h.159c0-.08.08-.159.16-.159 0-.08 0-.08.08-.08.079-.08.079-.08.079-.16.08-.079.16-.159.16-.239l-.16.16c-.079 0-.079 0-.079-.08.079 0 .079 0 .079-.08h.08l.16-.239h.159v-.16c.479-.398 1.117-.319 1.675-.638s.478.08.638 0h.399l-1.037.718m.877-2.951c-.08-.079.08 0 .16-.159h-.319l-.718.239-.877.319a21.21 21.21 0 01-1.356.718c-.08 0-.08 0-.08-.08l.319-.239a5.373 5.373 0 011.196-1.117v-.159l.479-.479a.957.957 0 01.399-.398h-.16c-.159 0-.319.079-.478-.08l.239-.16h-.08c-.08-.159.08-.239.239-.239l.479-.159c-.319-.08-.638.079-.957-.08a1.972 1.972 0 011.116-1.276h.08c0 .239-.08.399-.319.399l1.037.319c0 .079 0 .079-.08.079s-.08 0-.08-.079c.16.159.479.079.638.239.16.159-.239 0-.319 0 1.276.399 2.712.638 3.828 1.515-.957.319-1.914.399-2.95.399h-.399c-.16 0-.319 0-.399.159h-.558" fill="#fff"/> + <path d="M25.68 19.938l.718-.718c.398-.479.957-1.037 1.435-1.436l.479-.398c.079-.08.079-.08.079-.16l-.558.319s-.08 0 0-.08l.399-.319h-.08c-.558 0-1.037.24-1.356.638h-.159c-.638.24-1.117.798-1.755 1.037l-.797.319a2.27 2.27 0 01-1.037 0l-1.595.319-.798.319h-.079l-.319.319-.718.558c-.08 0-.08 0-.08.08l-.718.638h-.079c.079 0 .079-.08.159-.159 0-.08 0-.08.08-.16s.159-.239.159-.319l.718-.478c-.08 0-.08 0-.08-.08h-.159c-.08.159-.16.319-.319.319 0-.08 0-.08.08-.08l.319-.239.478-.319h.08l-.718.319h-.08s0 .08-.079 0l.239-.239h.08c1.355-1.037 3.269-.798 4.864-1.356l.399-.239c.16-.08.319-.319.638-.399.319-.239.559-.638.718-1.037h-.08a4.733 4.733 0 01-1.834.399c-.877.319-1.914.478-2.871.478h.239c0-.079.08-.159.16-.239h.159c0-.08 0-.08.08-.08h.159c-.159-.159-.398.16-.638 0-.239-.159.08-.159.16-.239h.159c0-.08 0-.08.08-.159.638-.399 1.276-.638 1.834-1.037.559-.399-.159.159-.319.08-.159-.08 0-.16.08-.16.479-.159.957-.319 1.356-.558-.16 0-.319.159-.479 0h.24v-.16c0-.079 0-.079.079-.079h-.079l.239-.16h-.08a.726.726 0 01.558-.239c-.079-.08-.239 0-.239-.08s.08-.08.16-.08h-.16c-.08 0-.08 0-.08-.079 0-.08 0-.08.08-.08.16-.319.319-.718.399-1.037h-.08a4.532 4.532 0 01-1.754.877h-.24c-.239.08-.478.08-.717-.079l-.399-.319-1.117-.559c-1.036-.398-2.153-.717-3.269-.797.478-.16 1.036-.319 1.515-.399.718-.319 1.435-.399 2.153-.399-.159-.079-.319 0-.399 0-.638 0-1.276.08-1.834.24l-1.276.319c-.239.079-.399.398-.638.319v-.16c.399-.558.957-.957 1.595-1.037.718-.079 1.515-.079 2.233.08l1.675.319c.159 0 .239.319.399.399.159.08.478 0 .797.159.319.16-.08-.159 0-.239.08-.08.319 0 .558-.08.24-.079-.319-.558-.478-.877.399.239.638.638 1.037.798.399.159.718.239.638 0-.239-.479-.559-.878-.957-1.276v-.16h-.16v-.399c-.159-.079-.08-.239-.159-.319-.08-.079-.08-.558-.16-.797s-.159-.479-.159-.718c-.16-.718-.319-1.356-.399-2.073-.08-.798.478-1.436.877-2.154a2.811 2.811 0 011.197-1.355c.159-.479.398-.957.797-1.356a2.83 2.83 0 011.276-.877L29.348 0H0v22.649h20.735a18.387 18.387 0 012.791-1.435c.798-.319 1.516-.718 2.154-1.276m-6.54-3.031c-.08 0-.239.08-.239 0s.319-.239.558-.319c.239-.08.16-.159.239-.08l.319.16c-.239.239-.558.159-.877.239m-6.539-.957c.478-.638.957-1.356 1.355-2.153.559-.319 1.037-.798 1.436-1.276.638-.798 1.515-1.436 2.392-1.914.399-.08.798-.08 1.117.08-.16.159-.399.159-.558.239h-.08v-.16c-.399.479-1.037.718-1.356 1.276-.319.559-.399.957-.957 1.037-.558.08 0-.08-.08-.08-1.196.878-2.312 1.835-3.269 2.951m3.509-2.791c0 .08-.08.08-.08.159 0 .08-.08.16-.16.16h-.079c0-.16.159-.399.319-.319m1.993 6.3c0 .08-.079.08-.079.16 0 .079.079 0 .079.079l-.319.16h-.239c-.08.08-.319.08-.239 0l.319-.319c.08-.08.159-.08.159-.16.08 0 .08 0 .08-.079h.239m-.717-.319l-.559.319-.558.239h-.08l-.398.319h-.24c0 .08 0 .08-.079.08h-.08c0 .079 0 .079-.08.079h-.08c-.079.08-.159.08-.159.16l-.239.239h-.24l.16-.159h.159c0-.08.08-.16.16-.16 0-.08 0-.08.08-.08.079-.079.079-.079.079-.159.08-.08.16-.16.16-.239l-.16.159c-.079 0-.079 0-.079-.08.079 0 .079 0 .079-.079h.08l.16-.24h.159v-.159c.479-.399 1.117-.319 1.675-.638s.478.08.638 0h.399l-1.037.718m.877-2.951c-.08-.08.08 0 .16-.16h-.319l-.718.24-.877.319c-.399.239-.878.478-1.356.717-.08 0-.08 0-.08-.079l.319-.24a5.392 5.392 0 011.196-1.116v-.16l.479-.478a.96.96 0 01.399-.399h-.16c-.159 0-.319.08-.478-.08l.239-.159h-.08c-.08-.16.08-.239.239-.239l.479-.16c-.319-.08-.638.08-.957-.08a1.975 1.975 0 011.116-1.276h.08c0 .24-.08.399-.319.399l1.037.319c0 .08 0 .08-.08.08s-.08 0-.08-.08c.16.16.479.08.638.239.16.16-.239 0-.319 0 1.276.399 2.712.638 3.828 1.516-.957.319-1.914.558-2.95.558h-.399c-.16 0-.319 0-.399.159h-.558" fill="#000091"/> + <path d="M62.126 0H37.882l.159.16.638.319c.319.159.558.398.798.638.079.159.239.398.159.558-.08.159-.159.558-.319.638-.319.159-.638.159-.957.159l-.478-.159c.638.239 1.276.638 1.674 1.196l.399.16c-.08.079-.159.159-.08.239h.08c.239-.08.16-.479.479-.319.239.08.319.319.239.478 0 .08-.08.08-.08.16l-.478.399c-.08.079-.08.239 0 .319l.239.478.239.957c.239.638.319 1.276.319 1.914 0 .319-.159.638 0 .957.08.319.239.638.399.957.239.16.399.399.478.638.319.399.718.877.559 1.356-.16.478-.638.239-.957.478-.319.24 0 .559.159.718.16.16-.319.638-.558.798-.239.159.239.079.239.159s.319.319.16.558c-.16.24-.718.399-.399.798.319.399 0 .638-.08.877-.159.319-.399.558-.797.638-.24.16-.559.16-.798.08h-.239c-.718-.16-1.436-.239-2.153-.319l-.638.159-.479.479h-.239l-.319.478c0 .08 0 .08-.08.08l-.319.798c-.239.957-.159 1.834.08 1.993.239.16 1.435.479 2.313.957l1.036.479h23.846V0z" fill="#e1000f"/> + <path d="M39.317 8.294h.399c-.08.399-.558.479-.877.798h-.08c-.16.079-.08.319-.239.319h-.399c.159.239.399.319.638.319l.159.159h.16v.239c-.16.16-.319.08-.479.16h.957c.24-.16 0-.558.16-.798.159-.239 0-.079-.08-.079s.16-.24.239-.24c.08 0 .24-.079.24-.159s-.16-.16-.08-.239c.08-.08.478-.399.399-.638-.08-.24-.399-.16-.638-.24-.24-.079-.479 0-.718.08l-.638.16-.798.398a2.13 2.13 0 01.957-.239c.24-.08.479-.08.718 0" fill="#9c9b9b"/> + </g> +</svg> diff --git a/packages/ui/src/public/img/logo-fabriquenumerique.svg b/packages/ui/src/public/img/logo-fabriquenumerique.svg new file mode 100644 index 000000000..52b675d1a --- /dev/null +++ b/packages/ui/src/public/img/logo-fabriquenumerique.svg @@ -0,0 +1,107 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 141.73 141.73"> + <style> + .st0{fill:#fff}.st1{fill:#556f7b}.st2{opacity:.55} + </style> + <path class="st0" d="M141.38 70.87c0 38.94-31.57 70.52-70.52 70.52S.35 109.81.35 70.87 31.92.35 70.87.35s70.51 31.57 70.51 70.52"/> + <path class="st1" d="M70.87 141.73C31.79 141.73 0 109.94 0 70.87 0 31.79 31.79 0 70.87 0s70.87 31.79 70.87 70.87c-.01 39.07-31.8 70.86-70.87 70.86M70.87.7C32.18.7.7 32.18.7 70.87s31.48 70.17 70.17 70.17 70.17-31.48 70.17-70.17C141.03 32.18 109.56.7 70.87.7"/> + <g class="st2"> + <defs> + <path id="SVGID_1_" d="M20.04 19.92H121.7v101.65H20.04z"/> + </defs> + <clipPath id="SVGID_2_"> + <use xlink:href="#SVGID_1_" overflow="visible"/> + </clipPath> + <path d="M20.12 67.84C21.73 39.82 45.74 18.4 73.77 20c28.02 1.6 49.44 25.62 47.84 53.65s-25.62 49.44-53.65 47.84c-28.02-1.61-49.44-25.62-47.84-53.65" clip-path="url(#SVGID_2_)" fill-rule="evenodd" clip-rule="evenodd" fill="#159bd8"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_3_" d="M20.04 29.22h51.03v87.68H20.04z"/> + </defs> + <clipPath id="SVGID_4_"> + <use xlink:href="#SVGID_3_" overflow="visible"/> + </clipPath> + <path d="M41.56 29.22c18.39 8.5 30.66 27.61 29.43 49.06-.92 16.09-9.23 29.99-21.43 38.62-18.4-8.5-30.66-27.6-29.44-49.06.92-16.08 9.23-29.99 21.44-38.62" clip-path="url(#SVGID_4_)" fill-rule="evenodd" clip-rule="evenodd" fill="#16428f"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_5_" d="M78.95 28.35h42.75v82.78H78.95z"/> + </defs> + <clipPath id="SVGID_6_"> + <use xlink:href="#SVGID_5_" overflow="visible"/> + </clipPath> + <path d="M79.03 65.84c.88-15.39 8.53-28.79 19.88-37.48 14.57 9.66 23.76 26.58 22.69 45.29-.88 15.4-8.53 28.79-19.89 37.48-14.55-9.66-23.75-26.58-22.68-45.29" clip-path="url(#SVGID_6_)" fill-rule="evenodd" clip-rule="evenodd" fill="#048d42"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_7_" d="M26.65 19.92h59.03v27.95H26.65z"/> + </defs> + <clipPath id="SVGID_8_"> + <use xlink:href="#SVGID_7_" overflow="visible"/> + </clipPath> + <path d="M85.68 22.12C76.43 38.4 58.51 48.93 38.56 47.79c-4.13-.24-8.12-.96-11.91-2.12C35.89 29.39 53.81 18.86 73.77 20c4.13.24 8.12.97 11.91 2.12" clip-path="url(#SVGID_8_)" fill-rule="evenodd" clip-rule="evenodd" fill="#83bc45"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_9_" d="M29.55 70.74h87.51v50.83H29.55z"/> + </defs> + <clipPath id="SVGID_10_"> + <use xlink:href="#SVGID_9_" overflow="visible"/> + </clipPath> + <path d="M29.55 100.34C38.03 81.9 57.16 69.6 78.64 70.83c15.96.91 29.77 9.1 38.42 21.15-8.48 18.43-27.61 30.74-49.1 29.51-15.96-.91-29.77-9.1-38.41-21.15" clip-path="url(#SVGID_10_)" fill-rule="evenodd" clip-rule="evenodd" fill="#0a67b1"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_11_" d="M64.89 19.92h56.52v45.77H64.89z"/> + </defs> + <clipPath id="SVGID_12_"> + <use xlink:href="#SVGID_11_" overflow="visible"/> + </clipPath> + <path d="M121.41 65.34c-2.9.34-5.87.44-8.88.26-25.21-1.44-45.07-21.02-47.64-45.34 2.9-.34 5.86-.43 8.88-.26 25.21 1.45 45.07 21.02 47.64 45.34" clip-path="url(#SVGID_12_)" fill-rule="evenodd" clip-rule="evenodd" fill="#d5da2c"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_13_" d="M26.65 19.92h82.43v43.04H26.65z"/> + </defs> + <clipPath id="SVGID_14_"> + <use xlink:href="#SVGID_13_" overflow="visible"/> + </clipPath> + <path d="M109.08 37.24c-8.69 15.89-26.78 26.54-47.12 25.67-14.18-.61-26.64-7.35-35.31-17.24C35.89 29.39 53.81 18.86 73.77 20c14.16.81 26.64 7.35 35.31 17.24z" clip-path="url(#SVGID_14_)" fill-rule="evenodd" clip-rule="evenodd" fill="#03a14f"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_15_" d="M20.04 29.22h23.39v55.25H20.04z"/> + </defs> + <clipPath id="SVGID_16_"> + <use xlink:href="#SVGID_15_" overflow="visible"/> + </clipPath> + <path d="M41.55 29.23a50.69 50.69 0 011.79 16.63c-.92 16.08-9.23 29.99-21.43 38.62a50.69 50.69 0 01-1.79-16.63c.92-16.09 9.23-30 21.43-38.62" clip-path="url(#SVGID_16_)" fill-rule="evenodd" clip-rule="evenodd" fill="#3dac48"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_17_" d="M69.15 70.39h52.54v51.18H69.15z"/> + </defs> + <clipPath id="SVGID_18_"> + <use xlink:href="#SVGID_17_" overflow="visible"/> + </clipPath> + <path d="M69.23 118.32c1.58-27.63 24.94-48.83 52.46-47.89 0 1.07-.02 2.14-.08 3.23-1.58 27.63-24.94 48.83-52.46 47.89 0-1.08.02-2.15.08-3.23" clip-path="url(#SVGID_18_)" fill-rule="evenodd" clip-rule="evenodd" fill="#1173ba"/> + </g> + <g class="st2"> + <defs> + <path id="SVGID_19_" d="M20.05 70.67h61.24v50.9H20.05z"/> + </defs> + <clipPath id="SVGID_20_"> + <use xlink:href="#SVGID_19_" overflow="visible"/> + </clipPath> + <path d="M20.05 71.74c4.28-.89 8.75-1.25 13.33-.99 26.72 1.53 47.43 23.43 47.91 49.75-4.28.89-8.75 1.25-13.32.99-26.72-1.53-47.43-23.43-47.92-49.75" clip-path="url(#SVGID_20_)" fill-rule="evenodd" clip-rule="evenodd" fill="#088ccd"/> + </g> + <g opacity=".35"> + <defs> + <path id="SVGID_21_" d="M50.67 33.57h70.47v85.77H50.67z"/> + </defs> + <clipPath id="SVGID_22_"> + <use xlink:href="#SVGID_21_" overflow="visible"/> + </clipPath> + </g> + <path class="st0" d="M70.83 121.81c15.86 0 30.02-7.26 39.34-18.64l-1.47-1.87s3.34-.51-.52-2.66c-3.86-2.15-3.86-2.25-4.73-2.86-.87-.61-3.11-.96-3.3-1.26-.19-.3 1.99-1.22-.34-1.97-2.33-.74-4.76-1.68-4.76-1.68s1.22-1.93-.23-2.65-2.92-.86-3.22-.67c-.3.19-.86-.81-1.34-1.31-.48-.5-1.75-.73-2.33-.64-.53.07-4.11-.08-4.92-.41.02.18.03.29.03.29l-.19-.4c.02.04.07.07.16.11-.11-1.13-.52-5.25-.5-6.09.02-.98.42-1.26.42-1.26s5.57.53 5.18-3.5c0 0-.55-1.48-.33-2.55 0 0 1-.56.27-1.44 0 0 .65-.5.3-1.88 0 0-.18-.59.03-1.17 0 0 2.14-.18 1.41-1.63-.48-.95-.57-.7-.75-1.29-.18-.59-1.02-2.28-1.2-3.06-.18-.79 1.03-2.23 1.05-2.91.02-.68-.83-2.27-1.01-2.96-.18-.69-1.02-2.47-1.18-3.65-.17-1.18-.7-3.35-1.08-3.75-.38-.4-.94-1.39-1.12-2.08-.18-.69-1.22-1.99-1.51-2.29-.29-.3-2.49-2.12-4.73-2.76-2.24-.64-2.82-.95-4.18-1.08-1.37-.13-2.15.04-2.05-.34.11-.39 1.38-.26 2.74-.03.39.06 1.73.66 3.34-.21 1.39-.75 2.63-3.36-1.3-6.79-3.93-3.43-8.88-1.1-9.97-.54-1.09.56 0-.1-2.67 1.21s-6.58 4.93-7.45 8.53c-.87 3.6-.09 3.62-.01 4.6.07.98-.15 2.15-1.06 3.5-.92 1.35-2.41 2.29-1.27 4.08 1.13 1.79.33 2.46-.18 3.33-.51.87-1.14 2.62.1 3.72 1.25 1.11 1.04 1.49 1.22 2.28.18.79.72 2.47 1 3.16s.07.98-.05 2.15c-.13 1.17-.91 1.35-1.03 2.23-.12.88-.01.59.88.12s-.71 1.16-.73 1.94c-.02.78.78.12.78.12s.06 1.47-.53 1.75c-.59.28.97.32 1.11-1.34.14-1.66 1.04 1.69-1.06 3.21-2.09 1.52 1.38-.46 1.38-.46l-.52 1.07s1.87-.35.38.69c-1.49 1.04-2.07.73-2.07.73s-2.11 2.1.05 2.06c2.15-.05.97.51 1.44 1.21s1.92 1.71 2.69 2.02c.78.31 5.02.56 5.02.56l-.42.91s-6.3-.04-8.56.4c-2.26.43-3.66 1.67-3.69 2.55s.06 1.37-.82 1.55c-.89.17-4.01 0-5.02 1.25-1.01 1.25-1.31 1.63-2.2 1.71-.88.08-2.08.83-2.19 1.61-.12.78-.24 1.95-1.25 2.91-1 .95-3.95 1.27-4.49 3.41-.45 1.77-.3 3.83-.89 6.02 9.17 9.32 21.96 15.09 36.1 15.09"/> + <path class="st1" d="M27.8 108.32l-1.44.42-.09-.12.64-1.35-1.26 1.06-.1-.12 1.53-1.29.1.12-.73 1.53 1.62-.48.1.12-1.53 1.29-.1-.12zm-.339 2.076l1.466-1.36.102.11-1.466 1.36zm2.279-.096l-1.24 1.21-.11-.1 1.43-1.4.1.1-.42 2.04 1.23-1.21.11.11-1.43 1.4-.11-.11zm1.93 1.55l.11.11-1.38 1.44-.11-.1zm-.03 2.72c-.22-.2-.31-.38-.32-.64l.15-.01c.01.25.09.39.26.56.24.21.48.23.66.04.08-.09.12-.18.11-.28-.02-.1-.03-.14-.14-.27l-.15-.18a.712.712 0 01-.17-.35c-.02-.13.03-.26.13-.38.22-.25.54-.25.83.01.18.17.26.32.28.55l-.14.01a.601.601 0 00-.24-.46c-.22-.19-.45-.19-.62 0a.31.31 0 00-.1.26c.01.09.07.2.14.29l.14.17c.12.14.16.23.18.34.02.14-.02.29-.13.4-.23.24-.56.22-.87-.06m1.73 1.48l-.12-.1 1.2-1.43-.46-.38.09-.1 1.03.86-.09.1-.46-.38zm2.45-.59l.96.74-.08.11-.84-.65-.48.62.72.55-.08.11-.72-.55-.49.64.84.65-.08.11-.96-.74 1.21-1.59zm.56-.33l.15.11-.04.49-.13-.1.02-.5zm1.15 2.95l-.45-.32-.53.75-.12-.09 1.16-1.63.62.44c.27.19.36.49.16.77-.17.25-.43.3-.69.17l-.14 1.03-.14-.1.13-1.02zm.57-.75l-.48-.34-.47.66.48.34c.21.15.43.15.59-.07.17-.23.09-.44-.12-.59m1.43.82l1.02.66-.08.11-.89-.58-.43.66.76.5-.07.11-.76-.49-.44.67.89.58-.07.11-1.02-.66zm3.06 3.98c-.16.05-.34.02-.53-.09l-.58-.33.98-1.74.59.33c.18.1.3.24.35.4.08.28-.09.55-.22.78-.13.24-.31.57-.59.65m.66-1.38c-.04-.16-.16-.27-.3-.35l-.42-.24-.85 1.51.42.24c.14.08.29.13.45.08.22-.07.38-.38.49-.57.12-.2.27-.45.21-.67m1.33.38l1.08.56-.06.12-.94-.49-.36.71.8.41-.06.12-.8-.41-.37.72.95.48-.06.12-1.09-.55zm3.12 1.52l.14.06-.75 1.71.98.43-.06.12-1.11-.49zm2.33 2.61l-.87-.34-.34.39-.15-.06 1.42-1.59.13.05-.05 2.13-.15-.06.01-.52zm-.77-.45l.78.31.04-1.25-.82.94zm3.53 1.93l-.14-.04.57-1.78-.56-.18.04-.13 1.28.41-.04.13-.57-.18zm2.45-.22l-.53-.15-.25.89-.15-.04.54-1.92.73.21c.31.09.5.34.4.67-.08.29-.31.42-.59.39l.21 1.02-.17-.05-.19-1.02zm.29-.9l-.57-.16-.22.78.57.16c.25.07.46 0 .53-.27.08-.27-.06-.44-.31-.51m2.24 2l-.91-.22-.28.43-.16-.04 1.18-1.77.13.03.25 2.12-.16-.04-.05-.51zm-.83-.34l.81.19-.13-1.24-.68 1.05zm2.47-.59l-.34 1.71-.14-.03.38-1.97.15.03.8 1.93.33-1.71.15.03-.38 1.97-.15-.03zm2.63 2.25c-.29-.04-.47-.15-.62-.36l.12-.09c.15.2.29.28.53.32.31.05.53-.07.57-.33.02-.12 0-.22-.07-.29-.07-.07-.11-.1-.27-.15l-.22-.07a.601.601 0 01-.33-.2c-.09-.1-.12-.23-.1-.39.05-.33.31-.51.69-.45.24.04.39.13.54.3l-.11.08a.651.651 0 00-.45-.26c-.29-.04-.48.09-.52.34-.02.11 0 .2.06.27a.7.7 0 00.28.17l.21.07c.18.05.26.1.33.18.09.1.14.25.11.41-.05.34-.33.51-.75.45m1.732.208l.237-1.986.15.018-.238 1.986zm1.888.202l-.15-.01.16-1.86-.6-.05.02-.14 1.34.12-.01.13-.6-.05zm1.69-1.88l.15.01-.12 2-.15-.01zm2.35 1.91c-.14.13-.31.2-.5.19s-.37-.08-.49-.22c-.18-.19-.18-.37-.16-.82.01-.45.02-.63.21-.8.14-.13.31-.2.51-.19.19 0 .37.08.49.22.18.19.18.36.16.82-.02.44-.03.62-.22.8m-.08-1.54c-.1-.1-.23-.16-.38-.16-.14 0-.28.05-.38.14-.15.14-.16.3-.17.72-.01.43 0 .58.14.73a.556.556 0 00.76.02c.15-.14.16-.3.17-.72.01-.43 0-.58-.14-.73m1.53 0l.03 1.74h-.15l-.04-1.99.15-.01 1.19 1.71-.03-1.73h.15l.03 2h-.15zm3.7-.39l1.21-.1.01.14-1.06.08.06.79.9-.07.01.13-.9.07.06.8 1.06-.08.01.13-1.21.1-.15-1.99zm.42-.23l.24-.43.19-.01-.26.43-.17.01zm2.6 1.96a.698.698 0 01-.52-.15c-.2-.16-.23-.34-.28-.78-.05-.45-.07-.63.09-.83.12-.15.28-.24.47-.26.36-.04.64.15.74.5l-.15.02c-.09-.27-.31-.42-.58-.38-.14.02-.27.08-.36.2-.13.16-.12.32-.07.74.05.43.08.58.24.7.11.09.25.13.39.11.27-.03.45-.22.47-.51l.15-.02c-.01.37-.24.62-.59.66m2.85-.61c-.11.15-.27.25-.46.28a.714.714 0 01-.53-.12c-.21-.15-.24-.33-.31-.77-.07-.45-.1-.62.06-.83.11-.15.27-.25.46-.28.19-.03.38.01.53.12.21.15.24.33.31.77s.09.62-.06.83m-.36-1.5a.569.569 0 00-.4-.09c-.14.02-.27.1-.35.21-.12.16-.1.32-.04.74.07.42.1.58.27.69.12.08.26.12.4.09.14-.02.26-.1.35-.21.12-.16.11-.32.04-.74s-.11-.57-.27-.69m1.31-.52l.15-.02.37 1.82 1.04-.21.02.13-1.18.24zm3.52 1.08c-.1.16-.25.27-.44.32a.65.65 0 01-.53-.08c-.22-.13-.27-.31-.37-.74-.11-.44-.14-.61-.01-.83a.722.722 0 01.98-.24c.22.13.26.31.37.74.09.43.13.61 0 .83m-.48-1.47a.493.493 0 00-.41-.06c-.14.04-.26.12-.33.24-.11.17-.08.33.02.74s.15.57.32.67c.12.07.27.09.4.06.14-.03.26-.12.33-.24.11-.17.08-.33-.02-.74-.09-.41-.14-.57-.31-.67m2.83.8c-.09.18-.25.31-.44.37-.18.05-.38.03-.54-.06-.23-.13-.28-.3-.4-.73-.13-.43-.17-.6-.05-.83.09-.16.24-.28.42-.33.33-.1.66.05.82.37l-.15.04c-.13-.25-.38-.36-.64-.28-.14.04-.25.13-.32.25-.1.18-.07.33.05.74.12.41.17.56.35.66.13.07.27.08.41.04.15-.04.28-.15.35-.3.05-.13.05-.25.01-.42l-.05-.17-.52.15-.04-.13.66-.19.09.31c.07.2.07.35-.01.51m.68-2.09l.15-.04.61 1.9-.15.05zm2.85 1c-.08.14-.21.24-.36.29a.72.72 0 01-.54-.02c-.23-.11-.3-.28-.45-.7-.15-.43-.21-.59-.1-.83.08-.17.22-.3.4-.36.18-.06.37-.05.54.03.23.11.3.28.45.7.14.39.2.57.12.77l.3.14-.06.13-.3-.15zm-.6-1.48a.53.53 0 00-.71.25c-.09.18-.04.34.1.74.14.4.21.55.39.63.13.06.27.07.41.02.12-.04.21-.12.28-.23l-.36-.17.06-.13.35.17c.04-.15-.01-.32-.13-.65-.14-.4-.21-.54-.39-.63m2.55.88c-.37.15-.74 0-.89-.36l-.51-1.25.14-.06.5 1.23c.13.31.4.43.7.31.3-.12.41-.4.29-.71l-.5-1.23.14-.06.51 1.25c.15.37-.01.73-.38.88m.89-2.57l1.11-.5.05.12-.96.44.33.72.82-.38.06.12-.83.38.34.73.96-.44.06.12-1.1.51zm3.12-1.5l1.07-.57.06.12-.93.5.37.69.8-.42.06.12-.8.42.38.71.94-.5.06.12-1.07.57zm3.39.41l-.13.07-.94-1.61-.51.3-.07-.12 1.16-.68.07.12-.52.3zm2.9-1.79c-.25.16-.45.2-.7.15l.03-.15c.25.05.4.01.61-.12.26-.18.34-.41.2-.63-.07-.1-.15-.16-.25-.17-.1-.01-.15 0-.3.07l-.22.1c-.14.07-.26.09-.38.08-.14-.01-.25-.09-.34-.22-.19-.28-.11-.59.21-.8.21-.14.38-.17.6-.14l-.03.14a.635.635 0 00-.51.11c-.24.16-.3.39-.16.6.06.1.14.15.23.16.09.01.21-.02.32-.06l.2-.09c.17-.08.26-.1.37-.09.14.01.27.09.36.23.21.28.11.6-.24.83m2.22-1.8a.71.71 0 01-.81.59c-.25-.04-.36-.19-.63-.55-.27-.37-.37-.51-.32-.77a.71.71 0 01.81-.59c.26.04.36.18.63.55.26.37.37.51.32.77m-.99-1.18a.529.529 0 00-.4.1c-.12.08-.19.21-.22.35-.03.2.05.33.3.68.25.35.35.47.55.5.14.02.28-.01.4-.1.12-.08.19-.21.22-.35.03-.2-.05-.34-.3-.68-.25-.35-.35-.47-.55-.5m.92-1.04l.12-.09 1.15 1.46.84-.65.08.1-.95.75zm1.67-1.34l.12-.1 1.28 1.54-.11.09zm3.08-.26c-.01.17-.1.33-.25.47l-.5.45-1.33-1.49.5-.45c.16-.14.32-.21.49-.2.29.02.49.26.67.46.18.2.43.47.42.76m-1.1-1.07c-.17-.01-.3.06-.42.17l-.36.32 1.15 1.29.36-.32c.12-.11.21-.24.22-.4.01-.23-.23-.48-.38-.65-.16-.17-.34-.39-.57-.41m2.55-.73l-.67.65.21.47-.12.11-.86-1.95.1-.09 1.92.93-.12.11-.46-.23zm-.73.52l.6-.58-1.12-.56.52 1.14zm.54-2.47l.11-.11 1.43 1.39-.1.11zm2.17-.74l-.37.41.68.62-.1.11-1.48-1.35.51-.56c.22-.24.52-.3.78-.06.22.2.24.46.09.7l1.01.26-.12.13-1-.26zm-.67-.66l-.4.44.6.54.4-.43c.17-.19.2-.41 0-.6-.21-.19-.43-.14-.6.05m.98-1.31l.78-.93.1.09-.68.81.6.51.58-.7.11.09-.58.69.62.52.68-.81.1.08-.78.93zM9.98 73.38l-1.38-.56-.01-.15 1.35-.66-1.65.05v-.16l2-.06V72l-1.52.74 1.56.63.01.15-2 .06v-.15zm.43 1.29l.01.15-2 .13-.01-.15zm-.16 1.47l-1.73.17-.02-.15 1.99-.19.02.15-1.62 1.31 1.73-.16.01.15-1.99.19-.01-.15zm.52 2.41l.02.15-1.98.26-.02-.15zm-1.74 2.1c-.05-.29.01-.49.16-.7l.12.09c-.15.2-.18.36-.15.6.05.31.23.48.49.44.12-.02.21-.07.26-.15.05-.08.06-.13.06-.3v-.24c0-.15.03-.28.09-.38.07-.12.18-.19.34-.21.33-.05.58.15.64.53.04.24 0 .41-.12.6l-.11-.08c.09-.13.15-.28.11-.51-.05-.29-.23-.43-.48-.39-.11.02-.19.06-.24.14-.05.08-.07.2-.08.31v.22c0 .19-.02.28-.08.37-.07.12-.2.21-.36.23-.34.06-.59-.15-.65-.57m.41 2.23l-.03-.15 1.83-.35-.11-.58.13-.03.26 1.32-.14.03-.11-.59zm2.27 1.11l.27 1.18-.13.03-.24-1.04-.77.18.2.88-.13.03-.2-.88-.79.18.24 1.04-.13.03-.27-1.18 1.95-.45zm.65.11l.04.19-.34.36-.04-.16.34-.39zm-.99 3l-.14-.53-.89.24-.04-.15 1.93-.53.2.74c.09.32-.03.6-.37.7-.29.08-.52-.04-.64-.3l-.77.71-.05-.18.77-.7zm.92-.21l-.16-.57-.78.21.16.57c.07.25.24.39.51.32.26-.07.34-.28.27-.53m.58 1.52l.36 1.16-.13.04-.31-1.01-.76.24.27.86-.13.04-.27-.86-.77.24.32 1.01-.13.04-.36-1.16zm-.2 5.03c-.16-.07-.27-.21-.35-.4l-.24-.63 1.87-.71.24.63c.07.2.08.38.01.53-.12.26-.42.36-.67.46-.25.1-.59.24-.86.12m1.4-.64c.07-.15.05-.31-.01-.46l-.17-.45-1.62.61.17.45c.06.15.14.28.29.35.21.09.53-.04.74-.12.22-.08.5-.17.6-.38m.77 1.16l.48 1.11-.13.06-.41-.98-.73.31.35.83-.12.05-.35-.83-.75.31.42.98-.13.05-.47-1.11zm1.41 3.16l.07.14-1.67.82.46.95-.12.06-.53-1.09zm.11 3.51l-.44-.82-.51.08-.08-.14 2.11-.3.06.12-1.41 1.6-.08-.14.35-.4zm-.3-.85l.4.74.84-.93-1.24.19zm1.46 3.86a.708.708 0 01-.09-.53c.06-.25.21-.35.59-.58.39-.24.54-.33.79-.27.18.04.34.16.44.32.19.31.13.64-.14.89l-.08-.13c.21-.2.25-.45.11-.68a.534.534 0 00-.33-.24c-.2-.05-.34.03-.7.25-.36.22-.49.32-.54.51-.03.14-.01.28.07.4.14.23.39.31.66.22l.08.13c-.34.11-.67.01-.86-.29m1.75 2.32a.729.729 0 01-.45-.3.718.718 0 01-.11-.53c.05-.25.2-.36.57-.61.38-.25.52-.35.78-.3.18.04.34.14.45.3.11.16.14.35.11.53-.05.25-.2.35-.57.6-.38.26-.53.36-.78.31m1.21-.95a.54.54 0 00-.42-.63c-.2-.04-.34.04-.69.28-.36.24-.48.33-.52.53a.54.54 0 00.42.63c.2.04.34-.04.69-.28s.48-.34.52-.53m.86 2.56l-.62-.84-.76.55-.08-.12 1.61-1.18.09.12-.75.55.62.84.74-.54.09.12-1.61 1.18-.09-.13zm1.63.41l.75.95-.11.08-.66-.83-.62.49.56.71-.1.08-.56-.71-.63.5.66.83-.11.08-.75-.95 1.57-1.23zm.43.22l.49-.04.12.15-.51.02-.1-.13zm-.26 3.17a.85.85 0 01-.23-.68l.15.01c-.02.25.03.4.19.58.21.24.45.29.65.12.09-.08.14-.17.14-.27s-.02-.15-.11-.29l-.12-.2a.702.702 0 01-.12-.37c0-.14.06-.26.18-.36.26-.22.57-.18.82.12.16.19.21.35.21.58l-.14-.01a.641.641 0 00-.17-.49c-.19-.22-.42-.25-.62-.08-.09.08-.13.16-.13.25s.04.21.1.31l.11.19c.1.16.13.25.13.36 0 .14-.06.28-.18.38-.26.23-.59.17-.86-.15m1.167 1.313l1.479-1.346.1.11-1.478 1.347zm1.813 1.667a.66.66 0 01-.49-.22.738.738 0 01-.2-.5c.01-.26.13-.39.46-.7.33-.31.46-.43.72-.42.19 0 .36.08.49.22s.2.32.2.5c-.01.26-.13.38-.46.69-.33.31-.46.44-.72.43m1.03-1.15c0-.14-.05-.28-.15-.38a.58.58 0 00-.37-.17c-.2 0-.32.1-.63.39-.31.3-.42.41-.42.61 0 .14.05.28.15.38.1.1.23.16.37.17.2 0 .32-.1.63-.39.31-.29.41-.41.42-.61m1.08 1.08l-1.2 1.25-.11-.11 1.39-1.44.1.11-.37 2.05 1.21-1.25.11.1-1.39 1.44-.11-.1zm2.62 4.47a.688.688 0 01-.5-.19l-.51-.44 1.3-1.52.51.44c.16.14.25.29.26.46.02.29-.19.52-.36.73-.18.21-.42.5-.7.52m.91-1.23c-.01-.17-.11-.29-.23-.4l-.37-.32-1.12 1.32.37.31c.12.1.26.18.43.16.23-.02.45-.29.59-.46.15-.17.34-.38.33-.61m1.24.63l.95.75-.08.11-.84-.66-.49.62.72.56-.09.11-.71-.56-.5.63.84.66-.09.11-.95-.75zm.97 3.29a.832.832 0 01-.38-.61l.15-.02c.04.25.13.39.32.53.26.19.51.18.66-.03.07-.1.1-.19.08-.29a.54.54 0 00-.17-.26l-.17-.17c-.11-.11-.18-.21-.2-.33-.03-.13 0-.26.09-.39.2-.27.51-.3.82-.08.2.15.29.29.34.51l-.14.02a.644.644 0 00-.28-.44c-.24-.17-.47-.14-.62.06-.07.09-.09.18-.07.27.02.09.09.19.17.28l.15.15c.14.13.19.21.21.32.04.14.01.29-.09.42-.2.28-.53.3-.87.06m2.93 2l-.13-.09 1.02-1.56-.5-.32.07-.12 1.13.74-.07.11-.5-.33zm2.38-.87l1.04.63-.06.11-.92-.54-.4.67.77.47-.07.11-.77-.46-.42.69.91.55-.07.11-1.04-.62zm2 2.4l-.48-.26-.44.81-.13-.07.96-1.75.67.37c.28.16.41.44.24.75-.14.26-.39.34-.66.25l-.02 1.04-.16-.08.02-1.06zm.48-.8l-.52-.28-.39.71.52.28c.23.12.45.1.58-.14.14-.25.04-.45-.19-.57m1.66 1.92l-.49-.25-.41.82-.14-.07.9-1.79.68.34c.29.14.43.42.27.74-.13.27-.38.36-.65.28l.02 1.04-.16-.08-.02-1.03zm.46-.82l-.53-.27-.36.72.53.26c.23.12.45.08.58-.17.11-.23.01-.43-.22-.54m1.53.58l.14.06-.84 1.82-.14-.06zm.88 2.59l-.14-.06.73-1.72-.54-.23.05-.13 1.24.53-.06.13-.55-.24zm2.52.81a.72.72 0 01-.54.01.677.677 0 01-.39-.37c-.1-.24-.04-.4.12-.82.16-.42.23-.58.47-.69.17-.08.36-.08.54-.01.18.07.32.2.39.37.1.24.04.4-.12.82-.17.42-.24.58-.47.69m.44-1.48a.548.548 0 00-.3-.28.53.53 0 00-.41.01c-.19.08-.25.22-.41.62-.15.4-.2.55-.12.73.06.13.17.23.3.28.13.05.28.05.41-.01.19-.08.25-.22.41-.62.16-.4.2-.55.12-.73m1.39.22l.15.05-.67 1.88-.14-.05zm1.57 1.66l-.53-.17-.28.88-.14-.05.61-1.9.73.23c.31.1.49.35.38.68-.09.29-.32.41-.6.37l.18 1.03-.17-.05-.18-1.02zm.32-.89l-.56-.18-.25.77.56.18c.25.08.46.01.54-.25.09-.26-.04-.44-.29-.52m1.6.35l1.16.32-.03.13-1.02-.28-.21.76.87.24-.04.13-.87-.24-.21.77 1.02.29-.04.13-1.17-.33zm2.16 2.65c-.29-.07-.45-.19-.59-.41l.13-.08c.13.22.26.3.5.36.31.07.53-.03.6-.28.03-.12.02-.22-.04-.3-.06-.08-.1-.11-.26-.17l-.22-.09c-.14-.06-.25-.13-.31-.22-.08-.11-.1-.24-.07-.4.08-.33.36-.48.73-.39.24.06.38.16.51.34l-.12.07a.61.61 0 00-.43-.29c-.28-.07-.49.04-.55.29-.03.11-.01.21.04.28.06.07.16.14.26.19l.2.08c.18.07.25.12.32.21.09.11.12.26.08.42-.08.33-.37.48-.78.39m3.33-1.36l1.19.21-.02.14-1.05-.19-.13.78.89.16-.03.13-.89-.16-.14.8 1.05.18-.03.14-1.19-.21zm2.4 2.42l-.15-.02.26-1.84-.59-.09.02-.13 1.33.19-.02.13-.59-.08zm4.05.26c-.13.11-.3.16-.51.14l-.67-.06.17-1.99.67.06c.21.02.37.09.48.22.18.22.15.53.13.8-.03.28-.05.65-.27.83m.02-1.53c-.1-.13-.26-.18-.42-.19l-.48-.04-.15 1.72.48.04c.16.01.32-.01.44-.12.17-.15.19-.5.21-.72.03-.22.07-.51-.08-.69m1.4-.2l1.21.06-.01.14-1.06-.05-.04.79.91.04-.01.13-.9-.04-.04.81 1.06.05-.01.13-1.21-.06zm2.67 2.11c-.3-.01-.48-.09-.66-.27l.11-.11c.18.18.32.24.56.25.32.01.52-.14.52-.4 0-.12-.03-.22-.11-.28-.07-.06-.12-.09-.29-.11l-.23-.04a.596.596 0 01-.35-.15.468.468 0 01-.15-.37c.01-.34.25-.54.63-.54.25 0 .4.07.57.23l-.1.1a.644.644 0 00-.48-.19c-.29-.01-.47.15-.47.4 0 .11.03.2.1.26s.18.11.3.13l.22.04c.19.03.28.07.35.14.11.09.17.23.17.39-.01.32-.27.53-.69.52m3.72-1.01l-.55.03.04.92-.15.01-.09-2 .76-.04c.33-.01.58.16.6.51.01.3-.16.5-.44.56l.53.9-.18.01-.52-.9zm0-.94l-.59.03.04.81.59-.03c.26-.01.44-.15.42-.43-.02-.28-.21-.4-.46-.38m1.61-.23l1.21-.11.01.14-1.06.09.07.78.9-.07.01.13-.9.08.07.8 1.06-.09.01.14-1.21.1zm2.2-.21l.15-.02.22 1.85 1.06-.13.01.14-1.2.14zm3.33 1.06l-.92.15-.1.51-.16.03.42-2.09.13-.02 1.04 1.86-.16.03-.25-.47zm-.89.01l.83-.13-.6-1.1-.23 1.23zm2.58.18l-.15.03-.35-1.83-.58.11-.03-.13 1.32-.25.03.13-.59.11zm1.12-2.26l.15-.04.43 1.96-.15.03zm2.78 1.19c-.1.16-.25.27-.43.32s-.37.02-.54-.08c-.22-.13-.27-.31-.38-.74-.11-.44-.15-.61-.02-.83.1-.16.25-.27.43-.32.18-.05.37-.02.53.08.22.13.27.3.38.74.12.43.17.61.03.83m-.49-1.46a.581.581 0 00-.41-.06c-.14.04-.26.12-.33.24-.1.17-.08.33.03.74.1.41.15.56.33.67.12.07.27.09.41.06s.26-.12.33-.24c.1-.17.08-.33-.03-.74-.11-.42-.16-.57-.33-.67m1.48-.41l.49 1.67-.14.04-.57-1.92.15-.04 1.59 1.34-.49-1.67.15-.04.56 1.92-.14.04zm3.39.77c-.28.1-.48.08-.72-.03l.07-.14c.23.11.39.12.61.04.3-.1.44-.31.35-.56-.04-.11-.1-.19-.19-.23-.09-.03-.14-.04-.31-.01l-.23.04c-.15.03-.28.02-.38-.02a.453.453 0 01-.27-.3c-.11-.32.05-.6.41-.72.23-.08.4-.07.61.02l-.06.13c-.15-.07-.3-.1-.52-.02-.28.1-.39.3-.31.54.04.11.1.18.18.21.08.03.21.04.32.02l.22-.04c.19-.04.28-.03.38.01.13.05.24.16.29.31.12.33-.05.62-.45.75m3.61-1.89l-.87.35.02.52-.15.06-.07-2.13.13-.05 1.44 1.58-.15.06-.35-.39zm-.88.21l.78-.31-.83-.94.05 1.25zm2.49-.37l-1.41-1.56.15-.07 1.22 1.36-.2-1.82.15-.06.21 2.1zm.69-2.51l1.09-.53.06.12-.95.46.34.71.81-.4.06.12-.81.4.35.72.96-.46.06.12-1.09.53zm3.46.5a.68.68 0 01-.54.05c-.25-.07-.33-.23-.54-.63-.21-.4-.29-.56-.22-.8.05-.18.18-.33.34-.42.32-.17.64-.09.88.19l-.14.07c-.18-.22-.44-.28-.68-.15-.13.07-.22.18-.26.32-.06.19.01.34.21.71.2.38.29.51.48.57.14.04.28.03.41-.04.24-.13.33-.37.25-.65l.13-.07c.11.37-.01.69-.32.85m1.64-3.25l.13-.08.98 1.6.9-.56.07.12-1.03.63zm1.82-1.13l1.01-.67.08.11-.89.59.44.66.75-.5.08.11-.76.5.45.67.88-.58.08.11-1.02.67zm3.4.12c-.24.17-.44.21-.7.17l.02-.15c.25.04.4 0 .6-.14.26-.19.33-.42.18-.64-.07-.1-.15-.16-.25-.17-.1 0-.15 0-.3.08l-.21.11c-.14.07-.26.1-.38.09a.438.438 0 01-.34-.21c-.2-.27-.13-.58.19-.81.2-.14.37-.18.6-.16l-.02.14a.626.626 0 00-.5.13c-.24.17-.29.4-.14.61.07.09.15.15.24.15.09.01.21-.02.32-.07l.19-.1c.17-.09.26-.11.37-.1.14.01.27.08.37.21.19.29.11.61-.24.86m2.91-2.21c-.15.12-.33.18-.52.15-.26-.03-.37-.17-.65-.51-.28-.35-.39-.49-.37-.75.02-.19.11-.35.26-.47.28-.23.62-.21.9.03l-.12.1c-.22-.18-.48-.19-.69-.02-.11.09-.18.22-.2.36-.02.2.07.33.34.66s.38.45.58.47c.14.01.28-.03.39-.12.21-.17.26-.43.13-.68l.12-.09c.16.31.1.65-.17.87m2.08-2.03c-.01.19-.1.36-.24.48-.14.13-.32.19-.51.17-.26-.02-.38-.15-.67-.49-.3-.34-.41-.48-.39-.73.01-.19.1-.36.24-.48a.65.65 0 01.51-.17c.26.02.38.15.67.49.3.34.41.48.39.73m-1.1-1.08a.56.56 0 00-.39.13c-.11.09-.18.22-.19.37-.01.2.08.33.36.65.28.32.39.43.59.45.14.01.28-.04.39-.13a.47.47 0 00.18-.36c.01-.2-.08-.33-.36-.65-.26-.33-.37-.44-.58-.46m.85-1.13l.11-.1 1.27 1.36.78-.73.09.1-.89.83zm1.54-1.47l.1-.11 1.33 1.31.74-.75.1.1-.85.86zm1.49-1.53l.82-.89.1.09-.72.78.58.54.61-.67.1.09-.61.67.59.55.72-.78.1.09-.82.89zm3.4-.77c-.13.15-.3.23-.48.25-.26.02-.4-.1-.74-.39-.34-.29-.48-.41-.5-.67-.01-.19.05-.37.17-.51.23-.27.57-.32.89-.14l-.1.12c-.25-.14-.51-.1-.68.11a.56.56 0 00-.13.39c.01.2.13.31.45.59.32.28.45.37.65.36.14-.01.27-.08.36-.19.18-.21.18-.47 0-.7l.1-.11c.24.28.24.62.01.89m1.43-1.76l-.09.12-1.46-1.17-.37.47-.11-.09.85-1.05.1.09-.37.46zm-.62-2.46l.09-.12 1.6 1.2-.09.13zm2.62-.19l-2.01-.63.09-.13 1.74.55-1.08-1.46.09-.13 1.25 1.7zm-.673-2.524l.084-.125 1.66 1.116-.084.124zm2.683-.456l-.08.12-1.58-.99-.32.5-.11-.07.72-1.14.11.07-.32.51zm-.84-2.85l-.22-.44.1-.16.21.47-.09.13zm-.06.48l.61-1.05.12.07-.54.92.68.4.46-.78.12.07-.46.78.7.41.54-.92.11.07-.61 1.05-1.73-1.02zm3.12-1.4c-.14.26-.3.39-.55.46l-.04-.14c.24-.07.36-.18.48-.39.15-.28.11-.53-.12-.65a.367.367 0 00-.3-.04c-.09.04-.13.07-.23.2l-.14.19c-.09.12-.19.2-.3.24-.13.05-.26.04-.4-.04-.3-.16-.37-.47-.19-.81.12-.22.25-.32.46-.4l.04.13c-.15.05-.28.13-.39.34-.14.26-.08.48.14.6.1.06.19.07.28.03.09-.03.18-.11.25-.2l.13-.17c.11-.15.19-.21.29-.25.13-.05.28-.05.42.03.3.17.36.5.17.87m1.58-3.19l-.07.13-1.69-.79-.25.54-.12-.06.57-1.21.12.05-.25.54zm-1.19-2.24l.47-1.12.13.05-.42.98.73.31.35-.83.13.05-.36.83.75.32.41-.98.13.05-.48 1.12zm2.1-2.31l-.2.52.86.33-.05.14-1.87-.71.27-.71c.12-.31.38-.47.71-.35.28.11.4.34.34.62l1.04-.12-.06.17-1.04.11zm-.87-.37l-.21.55.76.29.21-.55c.09-.24.04-.46-.22-.56-.26-.1-.44.02-.54.27m1.68-1.9l-.18.52.87.3-.04.15-1.9-.64.24-.72c.1-.31.36-.48.69-.37.28.1.41.33.36.61l1.03-.16-.06.17-1.01.14zm-.88-.33l-.19.56.77.26.19-.56c.08-.25.02-.46-.24-.55-.27-.09-.45.04-.53.29m.363-1.607l.043-.144 1.915.577-.043.144zm2.437-1.233l-.04.15-1.8-.49-.16.58-.13-.04.36-1.3.13.04-.16.58zm.46-2.6a.708.708 0 01-.22.97c-.22.14-.4.1-.83 0-.44-.1-.61-.15-.75-.37a.708.708 0 01.22-.97c.22-.13.39-.1.83.01.44.1.61.14.75.36m-1.53-.23a.534.534 0 00-.18.73c.11.17.26.22.67.32.41.1.57.12.74.01.12-.07.21-.19.24-.33s.01-.28-.06-.4c-.11-.17-.26-.22-.67-.32-.41-.09-.56-.12-.74-.01m1.22-1.89l-.1.54.9.17-.03.15-1.96-.38.14-.75c.06-.32.29-.53.63-.46.3.06.45.27.44.55l1-.3-.03.17-.99.31zm-.92-.22l-.11.58.79.15.11-.58c.05-.25-.04-.46-.32-.51-.27-.05-.42.11-.47.36m.146-1.64l.024-.148 1.975.317-.024.149zm1.834-2.08l-.12.93.46.24-.02.16-1.89-.99.02-.14 2.08-.47-.02.16-.51.11zm-.25.86l.11-.83-1.22.26 1.11.57zm-1.11-2.26l.01-.15 1.86.17.1-1.05.13.01-.11 1.21zm.18-2.13l.07-1.21.14.01-.06 1.06.78.04.06-.9.13.01-.05.9.8.05.07-1.06.13.01-.07 1.21zm2.14-2.66c-.01.3-.09.48-.28.66l-.1-.11c.18-.18.24-.32.25-.56.01-.32-.14-.52-.4-.52-.12 0-.22.03-.28.1-.06.08-.09.12-.11.29l-.04.23c-.03.15-.08.27-.15.35-.09.1-.21.15-.37.15-.34-.01-.54-.25-.53-.63.01-.25.08-.4.23-.57l.1.1a.69.69 0 00-.2.48c-.01.29.15.47.4.47.12 0 .2-.03.26-.1s.11-.18.13-.29l.04-.22c.03-.19.07-.27.14-.35.09-.11.23-.17.39-.17.33.01.53.27.52.69M9 61.09l1.54.26.55-3.27 1.93.32-.55 3.27 3.4.57-.36 2.17-8.81-1.48 1-5.99 1.94.33zm9.71-9.78l-1.39-.03-.88 2.6 1.12.84-.74 2.17-7.42-5.94.54-1.6 9.5-.22-.73 2.18zm-5.81-.12l2 1.52.5-1.47-2.5-.05zm9.57-7.82l-1.88 3.4-7.81-4.32 1.79-3.24c.9-1.62 2.29-1.99 3.64-1.24.89.49 1.04 1.38 1.07 1.71.37-.21 1.14-.63 2.23-.03 1.49.83 1.73 2.32.96 3.72m-6.25-3.09l-.66 1.2 1.27.7.66-1.2c.29-.53.05-.87-.26-1.04-.3-.17-.72-.18-1.01.34m3.05 1.56l-.72 1.3 1.37.76.72-1.29c.29-.53.03-.9-.3-1.08-.33-.2-.78-.22-1.07.31m9.24-7.1l-3.58-.87-.47.57 2.58 2.1-1.39 1.7-6.93-5.63 2.23-2.75c1.25-1.54 3.01-1.48 4.15-.55.94.77 1.06 1.83.89 2.6l4.11.85-1.59 1.98zm-6.09-3.55l-.78.96 1.4 1.14.78-.96c.38-.47.26-1.02-.1-1.31-.36-.29-.92-.3-1.3.17m3.834-7.03l1.61-1.485 6.056 6.562-1.609 1.485zm15.206-.2l-.96-.18c-.24.5-.62.93-1.19 1.32-.9.62-1.72.76-2.62.59-1.31-.24-1.99-1.29-2.75-2.4-.76-1.1-1.51-2.11-1.27-3.42.17-.91.59-1.62 1.48-2.24.9-.62 1.72-.76 2.62-.59 1.31.24 1.99 1.29 2.75 2.4.63.92 1.26 1.78 1.31 2.8l.91.17-.28 1.55zm-5.25-4.89c-.26-.08-.61-.05-.94.18-.33.23-.49.55-.5.82-.01.33.05.65.98 1.99.93 1.34 1.19 1.51 1.51 1.61.25.08.62.06.95-.17.05-.04.09-.06.14-.11l-.78-.14.28-1.55.59.11c-.15-.26-.36-.62-.71-1.11-.93-1.35-1.21-1.53-1.52-1.63m11.66 1.18c-1.69.77-3.59.26-4.4-1.52l-2.4-5.28 2-.91 2.38 5.23c.34.75.95 1 1.61.7.66-.3.9-.93.56-1.69l-2.38-5.23 2-.91 2.4 5.28c.8 1.78-.08 3.56-1.77 4.33m6.27-2.56l-2.23-8.65 5.88-1.51.49 1.89-3.76.97.37 1.45 3.21-.83.49 1.89-3.21.83.39 1.52 3.76-.97.48 1.9zM69.41 7.41l-.13 7.77-.68-.01.16-8.93.67.01 5.02 7.83.14-7.74.68.01-.16 8.93-.68-.01zm12.96 9.07c-1.76-.37-2.74-1.83-2.39-3.54l1.24-5.91.66.14-1.22 5.82c-.3 1.45.42 2.6 1.83 2.9 1.41.3 2.53-.47 2.84-1.92l1.22-5.82.66.14-1.24 5.91c-.35 1.71-1.85 2.65-3.6 2.28m16.28-2.27l-4.9 4.53-.63-.26-.11-6.7-2.92 6.75-.62-.27 3.54-8.19.62.27.13 7.55 5.52-5.12.62.27-3.54 8.2-.62-.27zm6.55 1.9l4.48 3.05-.34.5-3.92-2.67-1.99 2.91 3.34 2.27-.34.5-3.34-2.27-2.03 2.98 3.92 2.67-.34.5-4.48-3.05 5.04-7.39zm2.11.4l2.04-.84.69.47-2.14.78-.59-.41zm5.41 11.69l-1.77-1.71-2.86 2.95-.49-.47 6.21-6.41 2.44 2.36c1.04 1.01 1.25 2.38.17 3.5-.93.96-2.1 1.02-3.15.3l-1.32 4.46-.57-.55 1.34-4.43zm3.06-2.9l-1.89-1.83-2.51 2.59 1.89 1.83c.83.8 1.81.96 2.67.07.86-.89.67-1.86-.16-2.66m-1.25 11.058l7.038-5.496.418.536-7.038 5.496zm6.03 8.042c-.66-.26-1.22-.75-1.57-1.36-.43-.74-.54-1.58-.33-2.39.3-1.11.98-1.53 2.72-2.53 1.75-1.01 2.44-1.4 3.55-1.1.81.21 1.48.73 1.91 1.47.43.74.54 1.58.33 2.39-.3 1.12-.97 1.52-2.72 2.54-1.58.92-2.33 1.34-3.27 1.16l-.38 1.44-.62-.16.38-1.46zm6.02-3.81c.16-.62.07-1.26-.25-1.81s-.83-.96-1.45-1.12c-.87-.23-1.51.08-3.16 1.03-1.65.96-2.23 1.35-2.46 2.23-.16.62-.07 1.26.25 1.81.28.49.69.85 1.22 1.05l.46-1.71.62.16-.45 1.7c.69.06 1.38-.31 2.76-1.11 1.64-.96 2.22-1.35 2.46-2.23m-3.36 11.57c-.6-1.69.13-3.3 1.77-3.88l5.68-2.03.23.64-5.6 2c-1.39.5-2 1.71-1.51 3.07.49 1.36 1.72 1.92 3.12 1.42l5.6-2 .23.64-5.68 2.03c-1.65.58-3.24-.2-3.84-1.89m10.94 5.62l.9 5.34-.59.1-.79-4.68-3.47.59.66 3.98-.59.1-.67-3.98-3.55.59.78 4.68-.59.09-.89-5.34z"/> +</svg> diff --git a/packages/ui/src/public/img/logo-rf.svg b/packages/ui/src/public/img/logo-rf.svg new file mode 100644 index 000000000..18a47ef6f --- /dev/null +++ b/packages/ui/src/public/img/logo-rf.svg @@ -0,0 +1,9 @@ +<svg viewBox="0 0 128 96" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"> + <g fill-rule="nonzero"> + <path d="M41.391 91.574c.299 0 .598.299.478.957l-1.615.359c.239-.718.718-1.316 1.137-1.316m.837 2.632h-.299c-.419.418-.837.837-1.256.837-.419 0-.658-.299-.658-.837 0-.24 0-.479.06-.718l2.572-.838c.538-1.196-.06-1.734-.778-1.734s-2.632 2.034-2.632 3.828c0 .777.419 1.256.957 1.256.539 0 1.436-.718 2.034-1.794m-.478-3.769l1.794-1.674v-.24h-.957l-1.137 1.914h.3zm-5.563 1.197h.837l-1.375 3.708c-.12.239 0 .538.239.598.06 0 .06 0 .119.06 1.077-.179 2.034-.837 2.513-1.854h-.299c-.419.478-.957.837-1.556.957l1.256-3.469h1.257l.179-.539h-1.256l.478-1.316h-.478l-.897 1.316-1.017.12v.419zm-1.196-.18c.119-.359-.12-.538-.299-.538a2.395 2.395 0 00-1.974 1.615h.239c.239-.359.598-.658 1.017-.778l-1.436 3.709c-.059.239.06.478.299.538h.06c.658 0 1.496-.718 1.854-1.615h-.239c-.239.359-.598.598-1.017.778l1.496-3.709zm.299-1.854c.359-.06.598-.299.598-.658 0-.299-.299-.598-.598-.598-.359 0-.598.239-.658.598 0 .359.299.658.658.658m-8.254 5.682c-.12.239-.06.539.179.658.06.06.179.06.239.06.299 0 .359-.06.479-.359l1.017-2.632c.478-.538 1.076-.957 1.734-1.136.299 0 .239.239.06.538l-1.495 2.931c-.12.179-.06.479.119.598.06.06.18.06.239.06.898-.12 1.675-.778 1.974-1.615h-.239c-.239.359-.598.598-1.017.778l1.316-2.632c.12-.299.239-.598.239-.897.06-.359-.239-.658-.598-.718h-.119c-.599 0-1.256.718-2.034 1.615v-.718c0-.478-.179-.897-.598-.897-.359.06-.658.299-.838.598.479 0 .718.718.359 1.495l-1.016 2.273zm0-3.23c.179-.598.059-1.136-.359-1.136-.419 0-.718.419-1.256 1.615v-.718c0-.478-.18-.897-.599-.897-.418 0-1.016.777-1.375 1.615h.239c.239-.359.478-.598.658-.598.179 0 .359.359 0 1.136l-1.017 2.213c-.12.239-.06.539.18.658.059.06.179.06.239.06.299 0 .359-.06.478-.359l1.017-2.632c.239-.359.538-.658.838-.957h.957zm-5.743-.478c.359 0 .658.299.539.957l-1.615.359c.239-.718.718-1.316 1.076-1.316m.898 2.632h-.299c-.419.418-.838.837-1.256.837-.419 0-.658-.299-.658-.837 0-.24 0-.479.059-.718l2.572-.838c.539-1.196-.059-1.734-.777-1.734S19.2 92.95 19.2 94.744c0 .777.359 1.256.957 1.256s1.436-.718 2.034-1.794m-6.041-2.572h.837l-1.376 3.708c-.119.239 0 .538.239.598.06 0 .06 0 .12.06a3.039 3.039 0 002.452-1.854h-.239c-.419.478-.957.837-1.555.957l1.256-3.469h1.256l.18-.539h-1.256l.478-1.316h-.478l-.898 1.316-1.016.12v.419zm-4.726 2.871c0-1.137 1.256-2.692 1.974-2.692h.419l-.718 1.974c-.419.538-1.077 1.196-1.376 1.196-.299 0-.299-.179-.299-.478m3.888-3.888h-.359l-.418.419h-.12c-2.153 0-3.948 2.392-3.948 4.127-.06.418.24.717.658.777h.12c.538 0 1.076-.777 1.675-1.615v.239c-.06.898.239 1.376.658 1.376.418 0 1.016-.837 1.375-1.615h-.239c-.239.359-.478.539-.658.539-.179 0-.359-.359 0-1.077l1.256-3.17zm-4.486 1.376c.18-.599.06-1.137-.419-1.137-.478 0-.657.419-1.256 1.615v-.718c0-.478-.119-.897-.598-.897-.478 0-.957.778-1.316 1.615h.24c.239-.359.478-.598.658-.598.179 0 .358.359 0 1.136l-1.017 2.213c-.18.419 0 .718.418.718.419 0 .359-.06.479-.359l.957-2.631c.239-.359.538-.658.897-.957h.957zm-7.177 3.708l.119-.239c-1.256-.24-1.375-.24-.897-1.615l.479-1.316h1.375c.598 0 .658.239.539.897h.358l.838-2.213h-.359c-.299.538-.538.897-1.256.897H3.529l.718-1.974c.179-.598.359-.717 1.196-.717h.598c.838 0 .957.239.957 1.076h.359l.239-1.495H2.452v.299c1.017.179 1.077.299.598 1.555l-1.076 3.051c-.479 1.315-.658 1.375-1.854 1.614v.24l3.529-.06zM28.89 79.97c.359 0 .658.239.478.897l-1.615.359c.299-.718.778-1.256 1.137-1.256m.897 2.572h-.359c-.239.479-.718.778-1.256.837-.419 0-.658-.239-.658-.837 0-.239.06-.478.12-.718l2.572-.837c.478-1.196-.12-1.735-.838-1.735s-2.572 2.034-2.572 3.828c0 .838.359 1.256.957 1.256s1.436-.657 2.034-1.794m-.538-3.768l1.854-1.675v-.179h-1.017l-1.136 1.854h.299zm-5.563 1.196h.837l-1.316 3.709c-.119.358 0 .657.359.657 1.077-.119 1.974-.837 2.453-1.794h-.24c-.418.419-.957.778-1.555.957l1.197-3.529h1.315l.12-.538H25.66l.478-1.316H25.6l-.837 1.316-1.077.179v.359zm-1.136-.179c.059-.359-.12-.539-.3-.539-.957.12-1.734.718-2.033 1.615h.239c.239-.418.658-.658 1.077-.777l-1.436 3.708c-.119.359.12.538.299.538.897-.119 1.615-.777 1.914-1.615h-.239c-.239.419-.658.658-1.077.778l1.556-3.708zm.239-1.855c.299.06.538-.179.598-.478v-.12c0-.359-.239-.598-.598-.598s-.598.239-.598.598c-.06.299.179.539.478.598h.12m-4.965 5.563l2.632-6.819h-.12l-1.615.18v.179l.3.24c.299.239.239.418-.06 1.136l-2.034 5.323c-.12.24 0 .539.239.598.06 0 .06 0 .12.06.897-.119 1.675-.717 1.914-1.615h-.239c-.24.419-.658.658-1.137.778m-4.904-.598c0-1.197 1.256-2.752 1.973-2.752h.419l-.718 2.034c-.418.478-1.076 1.136-1.435 1.136s-.239-.179-.239-.478m3.887-3.828h-.358l-.479.419h-.06c-2.153 0-3.947 2.392-3.947 4.127-.06.418.239.717.658.777h.059c.599 0 1.137-.777 1.735-1.615v.299c-.06.838.179 1.316.658 1.316.478 0 .957-.837 1.376-1.615h-.24c-.299.359-.538.598-.717.598-.18 0-.299-.358 0-1.136l1.315-3.17zm-9.45 6.161c0-.479.479-.778 1.136-1.077l1.017.359c.718.239.957.359.957.598s-.777.778-1.794.778-1.316-.18-1.316-.658m1.914-2.991c-.299 0-.419-.299-.419-.598s.419-2.034 1.137-2.034.418.239.418.539c0 .299-.418 2.093-1.136 2.093m2.034 2.512c0-.598-.539-.777-1.436-1.076-.897-.3-1.076-.24-1.076-.479 0-.299.179-.538.478-.598 1.136-.06 1.974-.957 2.034-2.094 0-.179-.06-.358-.12-.538h1.017l.179-.538h-1.615l-.658-.18c-1.136 0-2.093.957-2.153 2.094-.06.598.359 1.076.957 1.196-.598.299-.897.598-.897.957 0 .18.06.419.239.538-1.375.419-1.974.838-1.974 1.496s.838.957 1.855.957c1.016 0 3.17-.957 3.17-1.735m-6.52-3.948c.598 0 .598.24.538.898h.359l.778-2.213h-.359c-.299.478-.538.897-1.196.897H3.529l.718-1.854c.179-.658.359-.778 1.196-.778h.598c.838 0 .957.239.957 1.136h.359l.239-1.555H2.452v.299c1.017.18 1.077.299.598 1.556l-1.076 3.05c-.479 1.316-.658 1.436-1.854 1.615v.299h5.622l1.017-1.615H6.34c-.658.718-1.615 1.137-2.632 1.196-1.495 0-1.375-.059-.837-1.495l.538-1.436h1.376zm.718-3.947l1.854-1.196v-.24H6.221L5.204 76.86h.299zm22.789-8.553c.358 0 .658.239.478.897l-1.615.418c.299-.777.778-1.315 1.137-1.315m.897 2.572h-.359c-.299.478-.718.777-1.256.837-.419 0-.658-.239-.658-.837 0-.599.06-.479.06-.718l2.631-.838c.479-1.196-.119-1.734-.837-1.734s-2.632 2.093-2.632 3.828c0 1.734.419 1.256 1.017 1.256.598 0 1.436-.658 2.034-1.794m-.539-3.769l1.795-1.674v-.18h-.957l-1.137 1.854h.299zm-5.323 1.197h.658l-1.376 3.768c-.119.179 0 .478.18.538.06.06.119.06.239.06a3.321 3.321 0 002.452-1.794h-.239c-.419.478-1.017.777-1.615.957l1.256-3.529h1.316l.12-.479h-1.197l.419-1.376h-.478l-.898 1.376-.837.12v.359zm-.658.418c.18-.598.06-1.136-.419-1.136-.478 0-.657.418-1.256 1.675v-.718c0-.479-.119-.957-.598-.957-.478 0-1.017.837-1.375 1.615h.239c.299-.359.538-.539.718-.539.179 0 .299.299 0 1.077l-1.017 2.273c-.18.419 0 .658.418.658.24.06.419-.12.479-.299l.957-2.632.837-1.017h1.017zm-5.742-.418c.359 0 .658.239.479.897l-1.615.418c.299-.777.777-1.315 1.136-1.315m.897 2.572h-.359c-.239.478-.717.777-1.256.837-.418 0-.658-.239-.658-.837 0-.24.06-.479.12-.718l2.572-.838c.478-1.196-.12-1.734-.837-1.734-.718 0-2.572 2.093-2.572 3.828 0 1.734.359 1.256.957 1.256s1.435-.658 2.033-1.794m-6.34 1.076c-.239 0-.598-.239-.598-.478 0-.24.12-.359.239-.718l.419-1.077c.419-.538 1.136-1.136 1.495-1.136.359 0 .419.179.419.538 0 .359-.957 2.871-1.974 2.871m2.931-3.29c0-.777-.299-1.076-.778-1.076-.478 0-1.316.718-1.914 1.555l1.556-4.067v-.12l-1.675.179v.18l.359.239c.299.239.179.479-.06 1.137l-1.735 4.306c-.119.299-.239.538-.299.838 0 .418.598.837 1.137.837.538 0 3.409-2.273 3.409-4.008m-5.084-.538c.119-.179.06-.419-.12-.478-.06 0-.119-.06-.179-.06-.897.119-1.675.777-1.974 1.615h.239c.239-.359.598-.598 1.017-.778l-1.435 3.709c-.06.239.059.478.299.538h.059a2.255 2.255 0 001.855-1.615h-.24c-.239.359-.598.658-1.016.778l1.495-3.709zm.299-1.854c.359 0 .598-.239.598-.598s-.239-.598-.598-.598-.598.239-.598.598.239.598.598.598m-3.768-.598h-3.41v.299c.957.239 1.077.299.598 1.615l-1.076 3.05c-.479 1.256-.658 1.376-1.854 1.555v.299h5.024L6.28 70.52h-.418c-.598.658-1.376 1.555-2.512 1.555-1.137 0-.957-.12-.479-1.436l1.077-3.05c.478-1.316.658-1.376 1.794-1.615l.12-.299zM0 37.802V25.48h3.768c1.137-.059 2.273.24 3.23.957.778.658 1.256 1.675 1.196 2.692 0 .718-.179 1.376-.538 1.974a3.657 3.657 0 01-1.435 1.256l3.828 5.443H7.058l-3.29-4.965H2.512v4.965H0zm3.888-10.228H2.512v3.11h1.376c.478.06.897-.12 1.256-.419.299-.299.478-.717.478-1.136 0-.419-.179-.837-.478-1.136-.359-.3-.778-.419-1.256-.419zM11.604 37.802V25.48h7.237v2.094h-4.725v2.871h4.007v2.153h-4.007v3.051h4.725v2.153h-7.237zm4.725-13.398h-2.273l1.974-2.393h2.632l-2.333 2.393zM21.712 37.802V25.48h4.127a4.978 4.978 0 013.17.957c1.496 1.376 1.615 3.649.24 5.144-.06.06-.12.18-.24.24a4.695 4.695 0 01-3.17 1.016h-1.615v4.965h-2.512zm4.187-10.228h-1.675v3.11h1.675c.479.06.897-.12 1.256-.419.299-.299.479-.717.479-1.136 0-.419-.18-.837-.479-1.136-.359-.3-.777-.419-1.256-.419zM39.536 33.196V25.48h2.513v7.477c.059 1.436-.419 2.751-1.376 3.828a5.482 5.482 0 01-7.297 0c-.897-1.077-1.376-2.452-1.316-3.828V25.48h2.512v7.716c-.06.718.179 1.376.658 1.914.478.479 1.136.778 1.794.718.718.06 1.376-.239 1.855-.718.478-.538.717-1.196.657-1.914zM45.159 37.802V25.48h3.529c1.076-.059 2.153.24 2.991.898.777.598 1.196 1.495 1.136 2.452 0 .478-.12.957-.359 1.376-.239.418-.538.777-.957 1.016.598.24 1.137.718 1.495 1.257.359.478.539 1.076.539 1.674.06 1.077-.419 2.034-1.256 2.692-.957.718-2.154 1.017-3.35.957h-3.768zm3.529-10.228h-1.017v2.751h1.017c.419 0 .837-.119 1.136-.359.539-.538.539-1.495 0-2.033-.299-.24-.717-.359-1.136-.359zm.359 4.905h-1.376v3.17h1.376c.478.059 1.017-.12 1.375-.419.359-.299.539-.718.539-1.196 0-.479-.18-.898-.539-1.197-.418-.239-.897-.418-1.375-.358zM56.045 37.802V25.48h2.512v10.049h4.725v2.273h-7.237zM65.495 25.48h2.512v12.321h-2.512zM81.824 37.503c.359.359.838.658 1.316.897.419.179.838.299 1.256.299h.419l.478-.12v2.154l-.598.179h-.717c-.658 0-1.376-.179-1.974-.419-.718-.299-1.316-.717-1.914-1.256l-1.436-1.256-.837.12h-.897c-.898 0-1.795-.18-2.632-.538-.778-.359-1.495-.778-2.094-1.376a6.84 6.84 0 01-1.794-4.606 6.84 6.84 0 011.794-4.605 6.076 6.076 0 012.094-1.376 6.678 6.678 0 012.632-.538c.897 0 1.854.179 2.691.538.778.359 1.496.778 2.094 1.376a6.84 6.84 0 011.794 4.605 6.726 6.726 0 01-.658 2.871 6.074 6.074 0 01-1.794 2.273l.777.778zm-4.904-1.675c1.076 0 2.093-.478 2.871-1.196.359-.419.598-.838.837-1.316a4.621 4.621 0 000-3.35c-.179-.478-.478-.897-.837-1.316a4.837 4.837 0 00-1.256-.897c-.539-.179-1.077-.299-1.615-.299-.539 0-1.077.12-1.556.299a3.07 3.07 0 00-1.256.897 3.813 3.813 0 00-.837 1.316 4.621 4.621 0 000 3.35c.179.478.479.957.837 1.316.359.418.778.658 1.256.837a3.496 3.496 0 001.556.359zM93.189 33.196V25.48h2.512v7.477c.06 1.436-.419 2.751-1.376 3.828a5.482 5.482 0 01-7.297 0c-.957-1.077-1.435-2.392-1.376-3.828V25.48h2.512v7.716c-.059.718.24 1.436.718 1.914.479.479 1.137.778 1.795.718.717.06 1.375-.239 1.854-.718.478-.538.718-1.196.658-1.914zM98.811 37.802V25.48h7.178v2.094h-4.666v2.871h3.948v2.153h-3.948v3.051h4.666v2.153h-7.178zM0 56.464V44.142h7.178v2.094H2.512v2.871H6.52v2.153H2.512v5.204H0zM9.391 56.464V44.142h3.768c1.136-.06 2.273.239 3.23.957.777.658 1.256 1.675 1.196 2.692 0 .717-.179 1.375-.538 1.973a3.663 3.663 0 01-1.436 1.257l3.888 5.443h-2.991l-3.289-4.965h-1.316v4.965H9.391zm3.947-10.228h-1.435v3.11h1.435c.419.06.898-.12 1.197-.419.299-.299.478-.718.478-1.136 0-.419-.179-.838-.478-1.137a1.83 1.83 0 00-1.197-.418zM20.037 56.464l4.666-12.322h3.29l4.665 12.322h-2.692l-1.196-3.23h-4.905l-1.196 3.23h-2.632zm4.606-5.324h3.35l-1.675-4.665-1.675 4.665zM34.572 56.464V44.142h3.17l5.563 8.793v-8.793h2.512v12.322h-3.23l-5.563-8.853v8.853h-2.452zM54.729 54.49c.658 0 1.316-.18 1.914-.479.538-.299.957-.718 1.316-1.196l1.974 1.495a5.808 5.808 0 01-1.795 1.615 6.713 6.713 0 01-2.392.838l-1.555 2.572h-2.213l1.555-2.632c-.778-.12-1.555-.359-2.213-.778-.599-.418-1.197-.897-1.675-1.435a6.336 6.336 0 01-1.077-1.974 6.874 6.874 0 01-.359-2.213c0-1.735.658-3.35 1.795-4.606a6.086 6.086 0 012.093-1.376 6.703 6.703 0 012.632-.538c1.077 0 2.093.239 3.05.658a5.86 5.86 0 012.154 1.854l-1.974 1.496c-.359-.479-.778-.898-1.316-1.197-.598-.299-1.256-.478-1.914-.478-.538 0-1.077.12-1.555.299-.479.239-.957.538-1.316.897-.299.419-.598.838-.778 1.316a4.631 4.631 0 000 3.35c.18.478.479.897.778 1.315.359.359.837.658 1.316.838a3.492 3.492 0 001.555.359zM60.471 56.464l4.665-12.322h3.29l4.666 12.322H70.46l-1.196-3.23h-4.905l-1.196 3.23h-2.692zm4.665-5.324h3.35l-1.675-4.665-1.675 4.665zM75.006 44.142h2.512v12.321h-2.512zM79.85 54.789l1.855-1.675c.359.419.777.778 1.256 1.077.418.299.957.418 1.495.418.419 0 .837-.119 1.137-.359.299-.299.418-.657.418-1.076a1.35 1.35 0 00-.897-1.256l-1.914-.957c-.718-.299-1.376-.778-1.974-1.256-.598-.658-.897-1.496-.837-2.333 0-.479.06-.957.299-1.376.179-.478.419-.837.777-1.196a4.325 4.325 0 011.256-.718c.479-.239 1.077-.299 1.615-.299.838 0 1.675.18 2.453.538.718.419 1.316.898 1.854 1.556l-1.854 1.615a5.11 5.11 0 00-1.137-1.137c-.418-.239-.837-.419-1.316-.419-.358 0-.777.12-1.016.419-.299.239-.419.538-.419.897 0 .539.359 1.077.897 1.256l1.914.957c.718.299 1.376.778 1.974 1.316.598.598.957 1.436.897 2.333a6.532 6.532 0 01-.359 1.555 5.643 5.643 0 01-.897 1.196 4.29 4.29 0 01-1.256.718 5.022 5.022 0 01-1.615.239 6.685 6.685 0 01-2.632-.538c-.777-.359-1.435-.897-1.974-1.495zM91.215 56.464V44.142h7.178v2.094h-4.726v2.871h4.008v2.153h-4.008v3.05h4.726v2.154h-7.178z"/> + <path d="M19.26 14.953l.538-.538a9.13 9.13 0 011.077-1.077l.359-.299c.059-.06.059-.06.059-.119l-.418.239s-.06 0 0-.06l.299-.239h-.06c-.419 0-.778.179-1.017.478h-.119c-.479.18-.838.598-1.316.778l-.598.239c-.24.06-.539.06-.778 0l-1.196.239-.598.24h-.06l-.239.239c-.18.12-.359.239-.539.419h-.06l-.538.538h-.06c.06 0 .06-.06.12-.12 0-.06 0-.06.06-.119.06-.06.119-.18.119-.24l.539-.358c-.06 0-.06 0-.06-.06h-.12c-.06.119-.119.239-.239.239 0-.06 0-.06.06-.06l.239-.179.359-.24h.06l-.539.24h-.059s0 .06-.06 0l.179-.18h.06c1.017-.777 2.452-.598 3.649-1.017l.299-.179c.119-.06.239-.239.478-.299.239-.179.419-.479.539-.778h-.06c-.419.18-.898.299-1.376.299-.658.24-1.436.359-2.153.359h.179c0-.059.06-.119.12-.179h.119c0-.06 0-.06.06-.06h.12c-.12-.12-.299.12-.479 0-.179-.12.06-.12.12-.179h.12c0-.06 0-.06.059-.12.479-.299.957-.479 1.376-.778.419-.299-.12.12-.239.06-.12-.06 0-.119.06-.119.359-.12.717-.24 1.016-.419-.119 0-.239.12-.358 0h.179v-.12c0-.06 0-.06.06-.06h-.06l.179-.119h-.059a.54.54 0 01.418-.18c-.059-.059-.179 0-.179-.059 0-.06.06-.06.12-.06h-.12c-.06 0-.06 0-.06-.06s0-.06.06-.06c.12-.239.239-.538.299-.777h-.06a3.415 3.415 0 01-1.316.658h-.179a.585.585 0 01-.538-.06l-.3-.24-.837-.418c-.777-.299-1.615-.539-2.452-.598.359-.12.777-.24 1.136-.299.539-.24 1.077-.299 1.615-.299-.119-.06-.239 0-.299 0a5.09 5.09 0 00-1.376.179l-.957.239c-.179.06-.299.299-.478.239v-.119c.299-.419.718-.718 1.196-.778.538-.06 1.137-.06 1.675.06l1.256.239c.12 0 .179.24.299.299.12.06.359 0 .598.12s-.06-.12 0-.179c.06-.06.239 0 .419-.06.179-.06-.239-.419-.359-.658.239.239.478.419.778.598.179.12.538.179.478 0-.179-.359-.419-.658-.718-.957v-.12h-.119v-.299c-.12-.06-.06-.179-.18-.239-.119-.06 0-.419-.06-.598-.059-.18-.119-.359-.119-.538-.12-.539-.239-1.017-.299-1.556-.06-.598.359-1.076.658-1.615.179-.418.478-.777.897-1.016.12-.359.299-.718.598-1.017.239-.299.598-.538.957-.658L22.011 0h6.4l.12.12.478.239c.24.12.419.299.598.478.06.12.18.299.12.419s-.12.419-.239.479c-.239.119-.479.119-.718.119l-.359-.119c.479.179.957.478 1.256.897l.299.119c-.059.06-.119.12-.059.18h.059c.18-.06.12-.359.359-.239.18.059.239.239.18.358 0 .06-.06.06-.06.12l-.359.299c-.06.06-.06.18 0 .239l.179.359.18.718c.179.479.239.957.239 1.436 0 .239-.12.478-.06.717l.359.718c.18.12.299.299.359.479.179.299.538.658.419 1.016-.12.359-.479.18-.718.359-.239.18 0 .419.12.539.119.119-.24.478-.419.598-.18.119.179.06.179.119 0 .06.24.24.12.419s-.538.299-.299.598c.239.299 0 .479-.06.658-.12.239-.299.419-.598.479-.179.119-.419.119-.598.059h-.18c-.538-.119-1.076-.179-1.615-.239l-.478.12-.359.359h-.179l-.24.359c0 .059 0 .059-.059.059l-.24.599c-.179.717-.119 1.375.06 1.495.18.119 1.077.359 1.735.718l.777.358H15.551a13.888 13.888 0 012.094-1.076c.598-.239 1.136-.538 1.615-.957m-4.905-2.273c-.06 0-.179.06-.179 0s.239-.18.418-.239c.18-.06.12-.12.18-.06l.239.119c-.179.18-.419.12-.658.18m-4.905-.718c.359-.478.718-1.017 1.017-1.615.359-.239.718-.478 1.077-.777.478-.598 1.136-1.077 1.794-1.436.299-.06.598-.06.838.06-.12.12-.299.12-.419.179h-.06v-.119c-.299.359-.777.538-1.017.957-.239.418-.299.718-.717.777-.419.06 0-.059-.06-.059-.897.657-1.735 1.375-2.453 2.213m2.632-2.094c0 .06-.06.06-.06.12s-.059.119-.119.119h-.06c0-.119.12-.299.239-.239m1.496 4.725c0 .06-.06.06-.06.12s.06 0 .06.06l-.24.119c-.059 0-.059 0-.059.06h-.12c-.06.06-.239.06-.18 0l.24-.239c.06-.06.119-.06.119-.12h.24m-.539-.239l-.418.239-.419.18h-.06l-.299.239h-.179c0 .06 0 .06-.06.06h-.06c0 .06 0 .06-.06.06h-.06c-.06.06-.119.06-.119.119l-.18.18h-.179l.119-.12h.12c0-.06.06-.119.12-.119 0-.06 0-.06.059-.06.06-.06.06-.06.06-.12.06-.06.12-.12.12-.179l-.12.119c-.06 0-.06 0-.06-.06.06 0 .06 0 .06-.059h.06l.12-.18h.119v-.119c.359-.299.838-.24 1.256-.479.419-.239.359.06.479 0h.299l-.778.538m.658-2.213c-.059-.06.06 0 .12-.119h-.239l-.539.179-.658.239c-.299.18-.657.359-1.016.539-.06 0-.06 0-.06-.06l.239-.18a4.01 4.01 0 01.897-.837v-.12l.359-.358c.06-.12.18-.24.299-.3h-.119c-.12 0-.24.06-.359-.059l.179-.12h-.06c-.059-.12.06-.179.18-.179l.359-.12c-.24-.06-.479.06-.718-.06.12-.419.419-.777.837-.957h.06c0 .18-.06.299-.239.299l.777.239c0 .06 0 .06-.059.06-.06 0-.06 0-.06-.06.119.12.359.06.478.18.12.12-.179 0-.239 0 .957.299 2.034.478 2.871 1.136-.718.24-1.435.299-2.213.299h-.299c-.12 0-.239 0-.299.12h-.419" fill="#fff"/> + <path d="M19.26 14.953l.538-.538a9.13 9.13 0 011.077-1.077l.359-.299c.059-.06.059-.06.059-.119l-.418.239s-.06 0 0-.06l.299-.239h-.06c-.419 0-.778.179-1.017.478h-.119c-.479.18-.838.598-1.316.778l-.598.239c-.24.06-.539.06-.778 0l-1.196.239-.598.24h-.06l-.239.239-.539.419c-.06 0-.06 0-.06.059l-.538.479h-.06c.06 0 .06-.06.12-.12 0-.06 0-.06.06-.119.06-.06.119-.18.119-.24l.539-.358c-.06 0-.06 0-.06-.06h-.12c-.06.119-.119.239-.239.239 0-.06 0-.06.06-.06l.239-.179.359-.24h.06l-.539.24h-.059s0 .06-.06 0l.179-.18h.06c1.017-.777 2.452-.598 3.649-1.017l.299-.179c.119-.06.239-.239.478-.299.239-.179.419-.479.539-.778h-.06c-.419.18-.898.299-1.376.299-.658.24-1.436.359-2.153.359h.179c0-.059.06-.119.12-.179h.119c0-.06 0-.06.06-.06h.12c-.12-.12-.299.12-.479 0-.179-.12.06-.12.12-.179h.12c0-.06 0-.06.059-.12.479-.299.957-.479 1.376-.778.419-.299-.12.12-.239.06-.12-.06 0-.119.06-.119.359-.12.717-.24 1.016-.419-.119 0-.239.12-.358 0h.179v-.12c0-.06 0-.06.06-.06h-.06l.179-.119h-.059a.54.54 0 01.418-.18c-.059-.059-.179 0-.179-.059 0-.06.06-.06.12-.06h-.12c-.06 0-.06 0-.06-.06s0-.06.06-.06c.12-.239.239-.538.299-.777h-.06a3.415 3.415 0 01-1.316.658h-.179a.585.585 0 01-.538-.06l-.3-.24-.837-.418c-.777-.299-1.615-.539-2.452-.598.359-.12.777-.24 1.136-.299.539-.24 1.077-.299 1.615-.299-.119-.06-.239 0-.299 0a5.09 5.09 0 00-1.376.179l-.957.239c-.179.06-.299.299-.478.239v-.119c.299-.419.718-.718 1.196-.778.538-.06 1.137-.06 1.675.06l1.256.239c.12 0 .179.24.299.299.12.06.359 0 .598.12s-.06-.12 0-.179c.06-.06.239 0 .419-.06.179-.06-.239-.419-.359-.658.299.179.478.478.778.598.299.12.538.179.478 0-.179-.359-.419-.658-.718-.957v-.12h-.119v-.299c-.12-.06-.06-.179-.12-.239s-.06-.419-.12-.598c-.059-.18-.119-.359-.119-.538-.12-.539-.239-1.017-.299-1.556-.06-.598.359-1.076.658-1.615.179-.418.478-.777.897-1.016.12-.359.299-.718.598-1.017.239-.299.598-.538.957-.658L22.011 0H0v16.987h15.551a13.802 13.802 0 012.094-1.077c.598-.239 1.136-.538 1.615-.957m-4.905-2.273c-.06 0-.179.06-.179 0 0-.059.239-.179.418-.239.18-.06.12-.12.18-.06l.239.12c-.179.179-.419.12-.658.179m-4.905-.717c.359-.479.718-1.017 1.017-1.615.419-.24.778-.598 1.077-.957.478-.598 1.136-1.077 1.794-1.436.299-.06.598-.06.838.06-.12.12-.299.12-.419.179h-.06v-.119c-.299.359-.777.538-1.017.957-.239.418-.299.718-.717.777-.419.06 0-.059-.06-.059-.897.657-1.735 1.375-2.453 2.213m2.632-2.094c0 .06-.06.06-.06.12s-.059.119-.119.119h-.06c0-.119.12-.299.239-.239m1.496 4.725c0 .06-.06.06-.06.12s.06 0 .06.06l-.24.119h-.179c-.06.06-.239.06-.18 0l.24-.239c.06-.06.119-.06.119-.119.06 0 .06 0 .06-.06h.18m-.539-.239l-.418.239-.419.179h-.06l-.299.239h-.179c0 .06 0 .06-.06.06h-.06c0 .06 0 .06-.06.06h-.06c-.06.06-.119.06-.119.12l-.18.179h-.179l.119-.119h.12c0-.06.06-.12.12-.12 0-.06 0-.06.059-.06.06-.06.06-.06.06-.12.06-.059.12-.119.12-.179l-.12.12c-.06 0-.06 0-.06-.06.06 0 .06 0 .06-.06h.06l.12-.179h.119v-.12c.359-.299.838-.239 1.256-.479.419-.239.359.06.479 0h.299l-.778.539m.658-2.213c-.059-.06.06 0 .12-.12h-.239l-.539.179-.658.24c-.299.179-.657.359-1.016.538-.06 0-.06 0-.06-.06l.239-.179c.239-.299.538-.598.897-.838v-.119l.359-.359c.06-.12.18-.239.299-.299h-.119c-.12 0-.24.06-.359-.06l.179-.12h-.06c-.059-.119.06-.179.18-.179l.359-.12c-.24-.059-.479.06-.718-.059a1.48 1.48 0 01.837-.957h.06c0 .179-.06.299-.239.299l.777.239c0 .06 0 .06-.059.06-.06 0-.06 0-.06-.06.119.119.359.06.478.179.12.12-.179 0-.239 0 .957.299 2.034.479 2.871 1.137-.718.239-1.435.418-2.213.418h-.299c-.12 0-.239 0-.299.12h-.419" fill="#000091"/> + <path d="M46.594 0H28.411l.12.12.478.239c.24.12.419.299.598.478.06.12.18.299.12.419s-.12.419-.239.479c-.239.119-.479.119-.718.119l-.359-.119c.479.179.957.478 1.256.897l.299.119c-.059.06-.119.12-.059.18h.059c.18-.06.12-.359.359-.239.18.059.239.239.18.358 0 .06-.06.06-.06.12l-.359.299c-.06.06-.06.18 0 .239l.179.359.18.718c.179.479.239.957.239 1.436 0 .239-.12.478 0 .717.06.24.18.479.299.718.18.12.299.299.359.479.239.299.538.658.419 1.016-.12.359-.479.18-.718.359-.239.18 0 .419.12.539.119.119-.24.478-.419.598-.18.119.179.06.179.119 0 .06.24.24.12.419s-.538.299-.299.598c.239.299 0 .479-.06.658-.12.239-.299.419-.598.479-.179.119-.419.119-.598.059h-.18c-.538-.119-1.076-.179-1.615-.239l-.478.12-.359.359h-.179l-.24.359c0 .059 0 .059-.059.059l-.24.599c-.179.717-.119 1.375.06 1.495.18.119 1.077.359 1.735.718l.777.358h17.884V0z" fill="#e1000f"/> + <path d="M29.488 6.221h.299c-.06.299-.419.358-.658.598h-.06c-.119.06-.06.239-.179.239h-.299a.544.544 0 00.478.239l.12.12h.119v.179c-.119.12-.239.06-.358.12h.717c.18-.12 0-.419.12-.598.12-.18 0-.06-.06-.06s.12-.179.18-.179c.059 0 .179-.06.179-.12s-.12-.12-.06-.18c.06-.059.359-.299.299-.478-.06-.18-.299-.12-.478-.18-.18-.059-.359 0-.539.06l-.478.12-.598.299c.239-.12.478-.179.718-.179a.827.827 0 01.538 0" fill="#9c9b9b"/> + </g> +</svg> diff --git a/packages/ui/src/router/index.js b/packages/ui/src/router/index.js new file mode 100644 index 000000000..fea6502be --- /dev/null +++ b/packages/ui/src/router/index.js @@ -0,0 +1,308 @@ +import { createRouter, createWebHistory } from 'vue-router' +import store from '../store' + +const Titre = () => import('../components/titre.vue') +const Titres = () => import('../components/titres.vue') +const Demarches = () => import('../components/demarches.vue') +const Travaux = () => import('../components/travaux.vue') +const Utilisateur = () => import('../components/utilisateur.vue') +const Utilisateurs = () => import('../components/utilisateurs.vue') +const Entreprise = () => import('../components/entreprise.vue') +const Entreprises = () => import('../components/entreprises.vue') +const Administration = () => import('../components/administration.vue') +const Administrations = () => import('../components/administrations.vue') +const Meta = () => import('../components/meta.vue') +const MetaTitre = () => import('../components/meta-titre.vue') +const MetaDemarche = () => import('../components/meta-demarche.vue') +const MetaEtape = () => import('../components/meta-etape.vue') +const MetaActivite = () => import('../components/meta-activite.vue') +const Metas = () => import('../components/metas.vue') +const Activite = () => import('../components/activite.vue') +const Activites = () => import('../components/activites.vue') +const Glossaire = () => import('../components/glossaire.vue') +const Error = () => import('../components/error.vue') +const UserPasswordInit = () => import('../components/user/password-init.vue') +const UserAdd = () => import('../components/user/add.vue') +const Definition = () => import('../components/glossaire/definition.vue') +const Contacts = () => import('../components/content/contacts.vue') +const About = () => import('../components/content/about.vue') +const Accessibilite = () => import('../components/content/accessibilite.vue') +const Contribution = () => import('../components/content/contribution.vue') +const MentionsLegalesCGU = () => + import('../components/content/mentions-legales-cgu.vue') +const Cgu1 = () => import('../components/content/cgu-1-0-0.vue') +const StatistiquesGlobales = () => + import('../components/statistiques/globales.vue') +const Statistiques = () => import('../components/statistiques.vue') +const StatistiquesGuyane = () => import('../components/statistiques/guyane.vue') +const StatistiquesGranulatsMarins = () => + import('../components/statistiques/granulats-marins.vue') +const TitreCreation = () => import('../components/titre-creation.vue') +const Etape = () => import('../components/etape.vue') +const EtapeEdition = () => import('../components/etape-edition.vue') +const ActiviteEdition = () => import('../components/activite-edition.vue') +const Journaux = () => import('../components/journaux.vue') + +const routes = [ + { + path: '/titres', + name: 'titres', + component: Titres + }, + { + path: '/titres/creation', + name: 'titre-creation', + component: TitreCreation + }, + { + path: '/titres/:id', + name: 'titre', + component: Titre + }, + { + path: '/demarches', + name: 'demarches', + component: Demarches + }, + { + path: '/travaux', + name: 'travaux', + component: Travaux + }, + { + path: '/etapes/:id', + name: 'etape', + component: Etape + }, + { + path: '/etapes/creation', + name: 'etape-creation', + component: EtapeEdition + }, + { + path: '/etapes/:id/edition', + name: 'etape-edition', + component: EtapeEdition + }, + { + path: '/utilisateurs', + name: 'utilisateurs', + component: Utilisateurs + }, + { + path: '/utilisateurs/:id', + name: 'utilisateur', + component: Utilisateur + }, + { + path: '/entreprises', + name: 'entreprises', + component: Entreprises + }, + { + path: '/entreprises/:id', + name: 'entreprise', + component: Entreprise + }, + { + path: '/administrations', + name: 'administrations', + component: Administrations + }, + { + path: '/administrations/:id', + name: 'administration', + component: Administration + }, + { + path: '/metas', + name: 'metas', + component: Metas + }, + { + path: '/metas/titre', + name: 'meta-titre', + component: MetaTitre + }, + { + path: '/metas/demarche', + name: 'meta-demarche', + component: MetaDemarche + }, + { + path: '/metas/etape', + name: 'meta-etape', + component: MetaEtape + }, + { + path: '/metas/activite', + name: 'meta-activite', + component: MetaActivite + }, + { + path: '/metas/:id', + name: 'meta', + component: Meta + }, + { + path: '/activites', + name: 'activites', + component: Activites + }, + { + path: '/activites/:id', + name: 'activite', + component: Activite + }, + { + path: '/activites/:id/edition', + name: 'activite-edition', + component: ActiviteEdition + }, + { + path: '/glossaire', + name: 'glossaire', + component: Glossaire, + children: [ + { + path: ':slug', + name: 'definition', + component: Definition + } + ] + }, + { + path: '/contacts', + name: 'contacts', + component: Contacts + }, + { + path: '/a-propos', + name: 'a-propos', + component: About + }, + { + path: '/accessibilite', + name: 'accessibilite', + component: Accessibilite + }, + { + path: '/contribution', + name: 'contribution', + component: Contribution + }, + { + path: '/mentions-legales-cgu', + component: MentionsLegalesCGU + }, + { + path: '/cgu/1-0-0', + name: 'cgu-1-0-0', + component: Cgu1 + }, + { + path: '/mot-de-passe', + name: 'mot-de-passe', + component: UserPasswordInit + }, + { + path: '/email', + beforeEnter: (to, from, next) => { + store.dispatch('utilisateur/emailUpdate', { + emailToken: to.query.token + }) + next('/') + } + }, + { + path: '/creation-de-compte', + name: 'account-creation', + component: UserAdd + }, + { + path: '/statistiques', + name: 'statistiques', + component: Statistiques, + children: [ + { + path: 'guyane', + name: 'statistiques-guyane', + component: StatistiquesGuyane + }, + { + path: 'globales', + name: 'statistiques-globales', + component: StatistiquesGlobales + }, + { + path: 'granulats-marins', + name: 'statistiques-granulats-marins', + component: StatistiquesGranulatsMarins + } + ] + }, + { path: '/journaux', name: 'journaux', component: Journaux }, + // url /stats : demande de Samuel + // pour avoir une uniformité entre toutes les start-ups + { + path: '/stats', + redirect: 'statistiques' + }, + { + name: 'homepage', + path: '/', + redirect: { name: 'titres' } + }, + { + path: '/:pathMatch(.*)*', + name: 'erreur', + component: Error, + props: { + message: { + type: 'error', + value: 'Page introuvable' + } + } + } +] + +const history = createWebHistory() + +const router = createRouter({ routes, history }) + +router.isReady().then(async () => { + const ticket = + router.currentRoute.value.query.authentification === 'cerbere' && + router.currentRoute.value.query.ticket + + if (ticket) { + const query = { ...router.currentRoute.value.query } + + delete query.ticket + delete query.authentification + delete query.TARGET + + await router.replace({ query }) + await store.dispatch('user/cerbereLogin', { ticket }) + } else { + await store.dispatch('user/identify') + } +}) + +router.beforeEach(async (to, from, next) => { + if (store.state.menu.component) { + store.commit('menuClose') + } + + next() +}) + +router.afterEach((to, from) => { + // si on enlève l’erreur dans le beforeEach, cela va enlever l’erreur et tenter d’afficher l’ancien composant qui va + // potentiellement regénérer une erreur. Il faut donc attendre que la route soit changée pour l’enlever. + if (store.state.error && to.name !== from.name) { + store.dispatch('errorRemove') + } +}) + +export default router diff --git a/packages/ui/src/shim-vue.d.ts b/packages/ui/src/shim-vue.d.ts new file mode 100644 index 000000000..14edcf025 --- /dev/null +++ b/packages/ui/src/shim-vue.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import { defineComponent } from 'vue' + const Component: ReturnType<typeof defineComponent> + export default Component +} diff --git a/packages/ui/src/stats/bootstrap.js b/packages/ui/src/stats/bootstrap.js new file mode 100755 index 000000000..01c906398 --- /dev/null +++ b/packages/ui/src/stats/bootstrap.js @@ -0,0 +1,25 @@ +export default function (options) { + const { host, trackerFileName } = options + const filename = `${host}/${trackerFileName}.js` + + const scriptPromise = new Promise((resolve, reject) => { + const script = document.createElement('script') + script.async = true + script.defer = true + script.src = filename + + const head = document.head || document.getElementsByTagName('head')[0] + head.appendChild(script) + + script.onload = resolve + script.onerror = reject + }) + + scriptPromise.catch(error => { + console.info( + `Warning: ${error.target.src}. If the file exists, you may have a tracking blocker enabled.` + ) + }) + + return scriptPromise +} diff --git a/packages/ui/src/stats/custom-variables.js b/packages/ui/src/stats/custom-variables.js new file mode 100644 index 000000000..1442ca4fa --- /dev/null +++ b/packages/ui/src/stats/custom-variables.js @@ -0,0 +1,34 @@ +const visitUser = matomo => user => { + if (user) { + if (user.administrations && user.administrations.length) { + user.administrations.forEach(administration => { + matomo.setCustomVariable( + 1, + 'administrationId', + administration.id, + 'visit' + ) + }) + } + + if (user.entreprises && user.entreprises.length) { + user.entreprises.forEach(entreprise => { + matomo.setCustomVariable(1, 'entreprisesIds', entreprise.id, 'visit') + }) + } + + if (user.permission) { + matomo.setCustomVariable(5, 'permissionId', user.permission.id, 'visit') + } + } +} + +const pageTitre = matomo => titre => { + if (titre) { + matomo.setCustomVariable(1, 'domaineId', titre.domaine.id, 'page') + matomo.setCustomVariable(2, 'typeId', titre.type.type.id, 'page') + matomo.setCustomVariable(3, 'statutId', titre.statut.id, 'page') + } +} + +export { visitUser, pageTitre } diff --git a/packages/ui/src/stats/index.js b/packages/ui/src/stats/index.js new file mode 100755 index 000000000..71f332802 --- /dev/null +++ b/packages/ui/src/stats/index.js @@ -0,0 +1,84 @@ +import bootstrap from './bootstrap' +import { visitUser, pageTitre } from './custom-variables' + +const defaultOptions = { + requireConsent: false, + disableCookies: true, + trackInitialView: true, + trackerFileName: 'piwik', + enableHeartBeatTimer: false, + enableLinkTracking: false, + heartBeatTimerInterval: 60 +} + +const install = (app, setupOptions = {}) => { + const options = Object.assign({}, defaultOptions, setupOptions) + + bootstrap(options) + .then(() => { + const matomo = window.Piwik.getTracker( + `${options.host}/${options.trackerFileName}.php`, + options.siteId + ) + + matomo.customVariableVisitUser = visitUser(matomo) + matomo.customVariablePageTitre = pageTitre(matomo) + + // bind matomo to Vue + app.config.globalProperties.$matomo = matomo + + if (options.requireConsent) { + matomo.requireConsent() + } + + if (options.enableHeartBeatTimer) { + matomo.enableHeartBeatTimer() + } + + if (options.disableCookies) { + matomo.disableCookies() + } + + if (options.enableLinkTracking) { + matomo.enableLinkTracking(options.enableLinkTracking) + matomo.setDownloadExtensions('csv|odt|xlsx|geojson') + } + + if (options.router) { + options.router.afterEach((to, from) => { + // Unfortunately the window location is not yet updated here + // We need to make our own ulr using the data provided by the router + const loc = window.location + + // Protocol may or may not contain a colon + let protocol = loc.protocol + if (protocol.slice(-1) !== ':') { + protocol += ':' + } + + const url = protocol + '//' + loc.host + to.path + matomo.setCustomUrl(url) + + matomo.customVariableVisitUser(options.store.state.user.element) + matomo.trackPageView(name) + + if (to.name !== from.name) { + // nombre d'affichage de la page + // titre, titres, entreprises, activites, demarches, utilisateurs + matomo.trackEvent(`page-${to.name}`, `page-${to.name}_acceder`) + + if (to.name === 'titre') { + // nombre d'affichage de la page 'titres' + let action = `page-titre-from-${from.name}` + action += from.query.vue ? `-${from.query.vue}` : '' + + matomo.trackEvent('page-titre', action, to.params.id) + } + } + }) + } + }) + .catch(e => {}) +} + +export default install diff --git a/packages/ui/src/store/__mocks__/titre-etape.js b/packages/ui/src/store/__mocks__/titre-etape.js new file mode 100644 index 000000000..1929b24f4 --- /dev/null +++ b/packages/ui/src/store/__mocks__/titre-etape.js @@ -0,0 +1,208 @@ +const titreEtapeMetas = { + geoSystemes: [ + { id: 'ifr', nom: 'Ifremer' }, + { id: 'dge', nom: 'DGEC' } + ], + unites: [], + devises: [], + substances: [], + entreprises: { + elements: [ + { id: 'ent-1', nom: '1' }, + { id: 'ent-2', nom: '2' } + ] + }, + demarche: { + id: 'demarche-id', + type: { nom: 'nom de la démarche' }, + titre: { nom: 'nom du titre', domaine: { id: 'm' } } + } +} + +const titreEtapeMetasRes = { + etapesTypes: [ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } + ], + geoSystemes: [ + { id: 'ifr', nom: 'Ifremer' }, + { id: 'dge', nom: 'DGEC' } + ], + unites: [], + devises: [], + substances: [], + entreprises: [ + { id: 'ent-1', nom: '1' }, + { id: 'ent-2', nom: '2' } + ], + demarche: { + id: 'demarche-id', + type: { nom: 'nom de la démarche' }, + titre: { nom: 'nom du titre', domaine: { id: 'm' } } + } +} + +const titreEtapeMetasRes2 = { + geoSystemes: [ + { id: 'ifr', nom: 'Ifremer' }, + { id: 'dge', nom: 'DGEC' } + ], + unites: [], + devises: [], + substances: [], + entreprises: [ + { id: 'ent-1', nom: '1' }, + { id: 'ent-2', nom: '2' } + ], + demarche: { + id: 'demarche-id', + type: { nom: 'nom de la démarche' }, + titre: { nom: 'nom du titre', domaine: { id: 'm' } } + }, + etapesTypes: [] +} + +const titreEtapeEtapesTypes = [ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } +] + +const titreEtapeEdited = { + id: 'etape-id', + titreDemarcheId: 'demarche-id', + date: '2020-01-01', + duree: { ans: null, mois: null }, + amodiataires: [], + titulaires: [], + contenu: {}, + geoSystemeIds: [], + geoSystemeOpposableId: null, + groupes: [], + incertitudes: {}, + statutId: '', + substances: [], + documents: [], + justificatifs: [] +} + +const titreEtapeCreation = { + titreDemarcheId: 'demarche-id', + date: '2020-01-01', + duree: { ans: null, mois: null }, + amodiataires: [], + titulaires: [], + contenu: {}, + geoSystemeIds: [], + geoSystemeOpposableId: null, + groupes: [], + incertitudes: {}, + statutId: '', + substances: [], + documents: [], + justificatifs: [] +} + +const titreEtapeHeritage1 = { + id: 'etape-id', + titreDemarcheId: 'demarche-id', + date: '2020-01-02', + incertitudes: { + date: undefined + }, + statutId: '', + type: { + id: 'new-etape-type-id' + }, + dateDebut: undefined, + dateFin: undefined, + duree: { + ans: null, + mois: null + }, + surface: undefined, + amodiataires: [], + titulaires: [], + groupes: [], + substances: [], + geoSystemeIds: [], + geoSystemeOpposableId: null, + contenu: { + sectionId1: { elementId1: 'valeur', elementId2: 'valeur' }, + sectionId2: {} + }, + heritageProps: {}, + heritageContenu: { + sectionId1: { + elementId1: { etape: { id: 'etape-id' }, actif: true }, + elementId2: { etape: { id: 'etape-id' }, actif: false } + }, + sectionId2: { + elementId1: { etape: { id: 'etape-id' }, actif: true } + } + }, + documents: [] +} + +const titreEtapeHeritageRes1 = { + type: { + id: 'new-etape-type-id' + }, + heritageProps: {}, + heritageContenu: { + sectionId1: { + elementId1: { etape: { id: 'etape-id' }, actif: true }, + elementId2: { etape: { id: 'etape-id' }, actif: false } + }, + sectionId2: { + elementId1: { etape: { id: 'etape-id' }, actif: true } + }, + sectionId3: {} + }, + contenu: { + sectionId1: { elementId1: 'valeur', elementId2: 'valeur' } + } +} + +const titreEtapeHeritage2 = { + amodiataires: [], + date: '2020-01-01', + documents: [], + duree: { + ans: null, + mois: null + }, + geoSystemeIds: [], + geoSystemeOpposableId: null, + groupes: [], + heritageProps: {}, + incertitudes: {}, + statutId: '', + substances: [], + titreDemarcheId: 'demarche-id', + titulaires: [], + type: { + id: 'new-etape-type-id' + } +} + +const titreEtapeHeritageRes2 = { + type: { + id: 'new-etape-type-id' + }, + heritageProps: {}, + heritageContenu: {}, + contenu: {} +} + +export { + titreEtapeMetas, + titreEtapeEtapesTypes, + titreEtapeMetasRes, + titreEtapeMetasRes2, + titreEtapeEdited, + titreEtapeCreation, + titreEtapeHeritage1, + titreEtapeHeritageRes1, + titreEtapeHeritage2, + titreEtapeHeritageRes2 +} diff --git a/packages/ui/src/store/_liste-build.js b/packages/ui/src/store/_liste-build.js new file mode 100644 index 000000000..e5aa5e242 --- /dev/null +++ b/packages/ui/src/store/_liste-build.js @@ -0,0 +1,157 @@ +import { urlQueryParamsGet } from '../utils/url' +import { paramsBuild } from '../utils' + +const listeActionsBuild = (id, name, elements, metas) => ({ + async init({ state, commit, dispatch }, additionalParams = {}) { + try { + commit('loadingAdd', `${id}Init`, { root: true }) + + commit('additionalParamsSet', { additionalParams }) + if (metas) { + const data = await metas(additionalParams) + + commit('metasSet', data) + } + + if (!state.initialized) { + await dispatch('paramsFromQueryUpdate') + + commit('init') + } + + await dispatch('get') + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', `${id}Init`, { root: true }) + } + }, + + async get({ state, dispatch, commit }) { + try { + commit('loadingAdd', `${id}Get`, { root: true }) + + if (!state.initialized) return + + await dispatch('urlQueryUpdate') + + const p = paramsBuild( + state.definitions, + Object.assign({}, state.params.filtres, state.params.table) + ) + + const data = await elements({ ...p, ...state.additionalParams }) + + if (!data.elements.length && data.total) { + commit('paramsSet', { section: 'table', params: { page: 1 } }) + await dispatch('urlQueryUpdate') + await dispatch('routeUpdate') + return + } + + commit('set', data) + + dispatch( + 'messageAdd', + { + value: `mise à jour : ${name}`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', `${id}Get`, { root: true }) + } + }, + + async paramsSet({ state, commit, dispatch }, { section, params, pageReset }) { + if (section === 'table' && pageReset && state.params.table.page !== 1) { + params.page = 1 + } + + commit('paramsSet', { section, params }) + + await dispatch('get') + }, + + async routeUpdate({ dispatch }) { + const hasChanged = await dispatch('paramsFromQueryUpdate') + + if (hasChanged) { + await dispatch('get') + } + }, + + async paramsFromQueryUpdate({ rootState, state, commit }) { + let hasChanged = false + + const tableParams = urlQueryParamsGet( + state.params.table, + rootState.route.query, + state.definitions + ) + + if (Object.keys(tableParams).length) { + commit('paramsSet', { section: 'table', params: tableParams }) + hasChanged = true + } + + if (state.params.filtres) { + const filtresParams = urlQueryParamsGet( + state.params.filtres, + rootState.route.query, + state.definitions + ) + + if (Object.keys(filtresParams).length) { + commit('paramsSet', { section: 'filtres', params: filtresParams }) + hasChanged = true + } + } + + return hasChanged + }, + + async urlQueryUpdate({ state, dispatch }) { + if (state.params.filtres) { + const params = Object.assign(state.params.filtres, state.params.table) + + await dispatch( + 'urlQueryUpdate', + { params, definitions: state.definitions }, + { root: true } + ) + } + } +}) + +const listeMutations = { + reset(state) { + state.elements = [] + state.total = 0 + state.initialized = false + }, + + set(state, { elements, total }) { + state.elements = elements + state.total = total + }, + + paramsSet(state, { section, params }) { + Object.keys(params).forEach(id => { + state.params[section][id] = params[id] + }) + }, + + additionalParamsSet(state, { additionalParams }) { + state.additionalParams = additionalParams + }, + + init(state) { + state.initialized = true + } +} + +export { listeActionsBuild, listeMutations } diff --git a/packages/ui/src/store/_liste-build.test.js b/packages/ui/src/store/_liste-build.test.js new file mode 100644 index 000000000..e458827f2 --- /dev/null +++ b/packages/ui/src/store/_liste-build.test.js @@ -0,0 +1,272 @@ +import { listeActionsBuild, listeMutations } from './_liste-build.js' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +console.info = jest.fn() + +const listeElementsGet = jest.fn() +const listeMetasGet = jest.fn() + +describe('listes', () => { + let store + let actions + let mutations + let route + const liste = { namespaced: true } + + liste.actions = listeActionsBuild( + 'elements', + 'élements', + listeElementsGet, + listeMetasGet + ) + + liste.mutations = Object.assign({}, listeMutations, { + metasSet(state, metas) { + state.metas.types = metas + + const definition = state.definitions.find(p => p.id === 'typesIds') + definition.elements = metas.map(e => e.id) + } + }) + + beforeEach(() => { + liste.state = { + elements: null, + metas: { + types: [] + }, + definitions: [ + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + elements: ['nom', 'type', 'abreviation'] + }, + { id: 'ordre', type: 'string', elements: ['asc', 'desc'] }, + { id: 'typesIds', type: 'strings', elements: [] } + ], + params: { + table: { page: 1, intervalle: 200, ordre: 'asc', colonne: null }, + filtres: { typesIds: [] } + }, + initialized: false + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn() + } + + actions = { + apiError: jest.fn(), + messageAdd: jest.fn(), + urlQueryUpdate: jest.fn() + } + + route = { + namespaced: true, + state: { query: {} } + } + + // eslint-disable-next-line vue/one-component-per-file + const app = createApp({}) + + store = createStore({ + modules: { liste, route }, + mutations, + actions + }) + + app.use(store) + }) + + test('initialise une liste', async () => { + const types = [ + { id: 'ope', nom: 'Opérateur' }, + { id: 'dea', nom: 'Déal' } + ] + const apiMetasMock = listeMetasGet.mockResolvedValue(types) + + const apiMock = listeElementsGet.mockResolvedValue({ + elements: [{ id: 'el-1', nom: 'élement 1' }], + total: 1 + }) + + await store.dispatch('liste/init') + + expect(apiMetasMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalled() + expect(store.state.liste.metas).toEqual({ types }) + expect( + store.state.liste.definitions.find(d => d.id === 'typesIds') + ).toEqual({ id: 'typesIds', type: 'strings', elements: ['ope', 'dea'] }) + expect(store.state.liste.initialized).toBeTruthy() + expect(store.state.liste.elements).toEqual([ + { id: 'el-1', nom: 'élement 1' } + ]) + + await store.dispatch('liste/init') + + store.commit('liste/reset') + expect(store.state.liste.initialized).toBeFalsy() + expect(store.state.liste.elements).toEqual([]) + }) + + test("retourne une erreur si l'api renvoit une erreur", async () => { + const apiMetasMock = listeMetasGet.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('liste/init') + + expect(apiMetasMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(actions.apiError).toHaveBeenCalledTimes(1) + expect(store.state.liste.initialized).toBeFalsy() + + store.state.liste.initialized = true + const apiMock = listeElementsGet.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('liste/get') + + expect(apiMock).toHaveBeenCalled() + expect(actions.apiError).toHaveBeenCalledTimes(2) + }) + + test('modifie les paramètres de filtre', async () => { + const apiMock = listeElementsGet.mockResolvedValue({ + elements: [{ id: 'el-1', nom: 'élement 1' }], + total: 1 + }) + + store.state.liste.params.table.page = 2 + + await store.dispatch('liste/paramsSet', { + section: 'filtres', + params: { typesIds: ['dea'] } + }) + + expect(apiMock).not.toHaveBeenCalled() + expect(store.state.liste.params.filtres.typesIds).toEqual(['dea']) + + store.state.liste.initialized = true + + await store.dispatch('liste/paramsSet', { + section: 'table', + params: { ordre: 'desc' }, + pageReset: true + }) + + expect(apiMock).toHaveBeenCalled() + expect(store.state.liste.params.table).toEqual({ + page: 1, + intervalle: 200, + ordre: 'desc', + colonne: null + }) + expect(store.state.liste.elements).toEqual([ + { id: 'el-1', nom: 'élement 1' } + ]) + }) + + test("met à jour la liste si les paramètres d'url changent", async () => { + const apiMock = listeElementsGet.mockResolvedValue({ + elements: [{ id: 'el-1', nom: 'élement 1' }], + total: 1 + }) + + await store.dispatch('liste/routeUpdate') + + expect(apiMock).not.toHaveBeenCalled() + expect(store.state.liste.elements).toBeNull() + + store.state.route.query.page = '4' + store.state.route.query.typesIds = 'ope' + store.state.liste.initialized = true + await store.dispatch('liste/routeUpdate') + + expect(apiMock).toHaveBeenCalled() + + expect(store.state.liste.elements).toEqual([ + { id: 'el-1', nom: 'élement 1' } + ]) + }) +}) + +describe('listes sans metas', () => { + let store + let actions + let mutations + let route + const liste = { namespaced: true } + + liste.actions = listeActionsBuild('elements', 'élements', listeElementsGet) + + liste.mutations = Object.assign({}, listeMutations) + + beforeEach(() => { + liste.state = { + element: null, + definitions: [ + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + elements: ['nom', 'type', 'abreviation'] + } + ], + params: { + table: { page: 1, intervalle: 200, ordre: 'asc', colonne: null } + }, + initialized: false + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn() + } + + actions = { + apiError: jest.fn(), + messageAdd: jest.fn(), + urlQueryUpdate: jest.fn() + } + + route = { + state: { + query: {} + } + } + + // eslint-disable-next-line vue/one-component-per-file + const app = createApp({}) + + store = createStore({ + modules: { liste, route }, + mutations, + actions + }) + + app.use(store) + }) + + test('initialise une liste sans metas', async () => { + const apiMock = listeElementsGet.mockResolvedValue({ + elements: [{ id: 'el-1', nom: 'élement 1' }], + total: 1 + }) + + await store.dispatch('liste/init') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.liste.initialized).toBeTruthy() + expect(store.state.liste.elements).toEqual([ + { id: 'el-1', nom: 'élement 1' } + ]) + }) +}) diff --git a/packages/ui/src/store/administration.js b/packages/ui/src/store/administration.js new file mode 100644 index 000000000..89ec40c6e --- /dev/null +++ b/packages/ui/src/store/administration.js @@ -0,0 +1,300 @@ +import { + administration, + administrationMetas, + administrationModifier, + administrationTitreTypeUpdate, + administrationTitreTypeTitreStatutUpdate, + administrationTitreTypeEtapeTypeUpdate, + administrationActiviteTypeUpdate, + administrationActiviteTypeEmailUpdate, + administrationActiviteTypeEmailDelete, + administrationPermissionsMetas +} from '../api/administrations' + +const state = { + element: null, + metas: { + domaines: [], + types: [], + regions: [], + departements: [], + titresStatuts: [], + etapesTypes: [], + activitesTypes: [] + } +} + +const actions = { + async init({ commit }) { + try { + commit('loadingAdd', 'administrationInit', { root: true }) + const data = await administrationMetas() + commit('metasSet', data) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationInit', { root: true }) + } + }, + + async permissionsInit({ commit }) { + try { + commit('loadingAdd', 'administrationPermissionsInit', { + root: true + }) + + const data = await administrationPermissionsMetas() + commit('metasSet', data) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationPermissionsInit', { + root: true + }) + } + }, + + async get({ commit, dispatch }, id) { + try { + commit('loadingAdd', 'administration', { root: true }) + + const data = await administration({ id }) + + commit('set', data) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'administration', { root: true }) + } + }, + + async update({ commit, dispatch }, administration) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'administrationUpdate', { root: true }) + const data = await administrationModifier({ administration }) + + commit('popupClose', null, { root: true }) + await dispatch( + 'reload', + { name: 'administration', id: data.id }, + { root: true } + ) + dispatch( + 'messageAdd', + { value: `l'administration a été mise à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationUpdate', { root: true }) + } + }, + + async titreTypeUpdate({ commit, dispatch }, administrationTitreType) { + try { + commit('loadingAdd', 'administrationTitreTypeUpdate', { + root: true + }) + + const data = await administrationTitreTypeUpdate({ + administrationTitreType + }) + + await dispatch( + 'reload', + { name: 'administration', id: data.id }, + { root: true } + ) + dispatch( + 'messageAdd', + { value: `l'administration a été mise à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationTitreTypeUpdate', { + root: true + }) + } + }, + + async titreTypeTitreStatutUpdate( + { commit, dispatch }, + administrationTitreTypeTitreStatut + ) { + try { + commit('loadingAdd', 'administrationTitreTypeTitreStatutUpdate', { + root: true + }) + + const data = await administrationTitreTypeTitreStatutUpdate({ + administrationTitreTypeTitreStatut + }) + + await dispatch( + 'reload', + { name: 'administration', id: data.id }, + { root: true } + ) + dispatch( + 'messageAdd', + { value: `l'administration a été mise à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationTitreTypeTitreStatutUpdate', { + root: true + }) + } + }, + + async titresTypeEtapeTypeUpdate( + { commit, dispatch }, + administrationTitreTypeEtapeType + ) { + try { + commit('loadingAdd', 'administrationTitreTypeEtapeTypeUpdate', { + root: true + }) + + const data = await administrationTitreTypeEtapeTypeUpdate({ + administrationTitreTypeEtapeType + }) + + await dispatch( + 'reload', + { name: 'administration', id: data.id }, + { root: true } + ) + dispatch( + 'messageAdd', + { value: `l'administration a été mise à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationTitreTypeEtapeTypeUpdate', { + root: true + }) + } + }, + + async activiteTypeUpdate({ commit, dispatch }, administrationActiviteType) { + try { + commit('loadingAdd', 'administrationActiviteTypeUpdate', { + root: true + }) + + const data = await administrationActiviteTypeUpdate({ + administrationActiviteType + }) + + await dispatch( + 'reload', + { name: 'administration', id: data.id }, + { root: true } + ) + dispatch( + 'messageAdd', + { value: `l'administration a été mise à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationActiviteTypeUpdate', { + root: true + }) + } + }, + + async activiteTypeEmailUpdate( + { commit, dispatch }, + administrationActiviteTypeEmail + ) { + try { + commit('loadingAdd', 'administrationActiviteTypeEmailUpdate', { + root: true + }) + + const { id } = await administrationActiviteTypeEmailUpdate({ + administrationActiviteTypeEmail + }) + await dispatch('reload', { name: 'administration', id }, { root: true }) + dispatch( + 'messageAdd', + { value: `l'email a été ajouté pour notifications`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationActiviteTypeEmailUpdate', { + root: true + }) + } + }, + + async activiteTypeEmailDelete( + { commit, dispatch }, + administrationActiviteTypeEmail + ) { + try { + commit('loadingAdd', 'administrationActiviteTypeEmailDelete', { + root: true + }) + + const { id } = await administrationActiviteTypeEmailDelete({ + administrationActiviteTypeEmail + }) + await dispatch('reload', { name: 'administration', id }, { root: true }) + dispatch( + 'messageAdd', + { value: `l'email a été retiré`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'administrationActiviteTypeEmailDelete', { + root: true + }) + } + } +} + +const mutations = { + metasSet(state, data) { + Object.keys(data).forEach(id => { + if (id === 'administrationsTypes') { + state.metas.types = data[id] + } else if (id === 'statuts') { + state.metas.titresStatuts = data[id] + } else { + state.metas[id] = data[id] + } + }) + }, + + set(state, administration) { + state.element = administration + }, + + reset(state) { + state.element = null + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/administration.test.js b/packages/ui/src/store/administration.test.js new file mode 100644 index 000000000..e34274043 --- /dev/null +++ b/packages/ui/src/store/administration.test.js @@ -0,0 +1,427 @@ +import administration from './administration' +import { createApp } from 'vue' +import { createStore } from 'vuex' +import * as api from '../api/administrations' + +jest.mock('../api/administrations', () => ({ + administration: jest.fn(), + administrationMetas: jest.fn(), + administrationModifier: jest.fn(), + administrationPermissionsMetas: jest.fn(), + administrationTitreTypeUpdate: jest.fn(), + administrationTitreTypeTitreStatutUpdate: jest.fn(), + administrationTitreTypeEtapeTypeUpdate: jest.fn(), + administrationActiviteTypeUpdate: jest.fn() +})) + +console.info = jest.fn() + +describe("état de l'administration consultée", () => { + let store + let actions + let mutations + + beforeEach(() => { + administration.state = { + element: null, + metas: { + domaines: [], + types: [], + regions: [], + departements: [], + titresStatuts: [], + etapesTypes: [], + activitesTypes: [] + } + } + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + popupLoad: jest.fn(), + popupMessagesRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn(), + messageAdd: jest.fn() + } + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn() + } + store = createStore({ + modules: { administration }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test("obtient les données d'un administration", async () => { + const administration = { id: 71, nom: 'toto' } + const apiMock = api.administration.mockResolvedValue(administration) + await store.dispatch('administration/get', 71) + + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + expect(store.state.administration.element).toEqual(administration) + }) + + test("retourne une erreur de l'api dans l'obtention de l'administration", async () => { + const apiMock = api.administration.mockRejectedValue( + new Error("l'api ne répond pas") + ) + await store.dispatch('administration/get', 71) + + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + expect(actions.apiError).toHaveBeenCalled() + }) + + test("supprime les données d'administration", () => { + store.commit('administration/set', { id: 71, nom: 'toto' }) + store.commit('administration/reset') + + expect(store.state.administration.element).toBeNull() + }) + + test('récupère les métas pour éditer une administration', async () => { + const apiMock = api.administrationMetas.mockResolvedValue({ + administrationsTypes: [ + { id: 'admin-1', nom: 'Opérateur' }, + { id: 'admin-2', nom: 'Déal' } + ], + regions: [ + { id: 1, nom: 'région 1' }, + { id: 2, nom: 'région 2' } + ], + departements: [ + { id: 1, nom: 'département 1' }, + { id: 2, nom: 'département 2' } + ] + }) + + await store.dispatch('administration/init') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.administration.metas).toEqual({ + types: [ + { id: 'admin-1', nom: 'Opérateur' }, + { id: 'admin-2', nom: 'Déal' } + ], + regions: [ + { id: 1, nom: 'région 1' }, + { id: 2, nom: 'région 2' } + ], + departements: [ + { id: 1, nom: 'département 1' }, + { id: 2, nom: 'département 2' } + ], + domaines: [], + titresStatuts: [], + etapesTypes: [], + activitesTypes: [] + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la récupération des métas", async () => { + const apiMock = api.administrationMetas.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('administration/init') + + expect(apiMock).toHaveBeenCalled() + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('modifie une administration', async () => { + const apiMock = api.administrationModifier.mockResolvedValue({ + id: 71, + nom: 'nom admin' + }) + + await store.dispatch('administration/update', { id: 71, nom: 'nom admin' }) + + expect(apiMock).toHaveBeenCalledWith({ + administration: { nom: 'nom admin', id: 71 } + }) + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la modification d'une administration", async () => { + const apiMock = api.administrationModifier.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('administration/update', { id: 71, nom: 'nom admin' }) + + expect(apiMock).toHaveBeenCalledWith({ + administration: { nom: 'nom admin', id: 71 } + }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('récupère les métas pour éditer les permissions', async () => { + const apiMock = api.administrationPermissionsMetas.mockResolvedValue({ + domaines: [{ id: 'm', nom: 'minéraux et métaux' }], + statuts: [{ id: 'val', nom: 'valide' }], + etapesTypes: [{ id: 'dex', nom: 'décision expresse' }] + }) + + await store.dispatch('administration/permissionsInit') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.administration.metas).toEqual({ + types: [], + regions: [], + departements: [], + activitesTypes: [], + domaines: [{ id: 'm', nom: 'minéraux et métaux' }], + titresStatuts: [{ id: 'val', nom: 'valide' }], + etapesTypes: [{ id: 'dex', nom: 'décision expresse' }] + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la récupération des métas", async () => { + const apiMock = api.administrationPermissionsMetas.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('administration/permissionsInit') + + expect(apiMock).toHaveBeenCalled() + + expect(mutations.messageAdd).toHaveBeenCalled() + }) + + test('modifie les permissions (type de titres)', async () => { + const apiMock = api.administrationTitreTypeUpdate.mockResolvedValue({ + id: 71, + nom: 'nom admin' + }) + + await store.dispatch('administration/titreTypeUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + gestionnaire: true, + associee: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationTitreType: { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + gestionnaire: true, + associee: true + } + }) + + expect(actions.reload).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la modification des permissions (type de titre)", async () => { + const apiMock = api.administrationTitreTypeUpdate.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('administration/titreTypeUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + gestionnaire: true, + associee: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationTitreType: { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + gestionnaire: true, + associee: true + } + }) + + expect(actions.reload).not.toHaveBeenCalled() + expect(mutations.messageAdd).toHaveBeenCalled() + }) + + test('modifie les permissions (type de titres / statut de titre)', async () => { + const apiMock = + api.administrationTitreTypeTitreStatutUpdate.mockResolvedValue({ + id: 71, + nom: 'nom admin' + }) + + await store.dispatch('administration/titreTypeTitreStatutUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + titreStatutId: 'dex', + titresModificationInterdit: true, + demarchesModificationInterdit: true, + etapesModificationInterdit: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationTitreTypeTitreStatut: { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + titreStatutId: 'dex', + titresModificationInterdit: true, + demarchesModificationInterdit: true, + etapesModificationInterdit: true + } + }) + + expect(actions.reload).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la modification des permissions (type de titre / statut de titre)", async () => { + const apiMock = + api.administrationTitreTypeTitreStatutUpdate.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('administration/titreTypeTitreStatutUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + titreStatutId: 'dex', + titresModificationInterdit: true, + demarchesModificationInterdit: true, + etapesModificationInterdit: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationTitreTypeTitreStatut: { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + titreStatutId: 'dex', + titresModificationInterdit: true, + demarchesModificationInterdit: true, + etapesModificationInterdit: true + } + }) + + expect(actions.reload).not.toHaveBeenCalled() + expect(mutations.messageAdd).toHaveBeenCalled() + }) + + test("modifie les permissions (type de titre / type d'étape)", async () => { + const apiMock = + api.administrationTitreTypeEtapeTypeUpdate.mockResolvedValue({ + id: 71, + nom: 'nom admin' + }) + + await store.dispatch('administration/titresTypeEtapeTypeUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + etapeTypeId: 'dex', + lectureInterdit: true, + modificationInterdit: true, + creationInterdit: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationTitreTypeEtapeType: { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + etapeTypeId: 'dex', + lectureInterdit: true, + modificationInterdit: true, + creationInterdit: true + } + }) + + expect(actions.reload).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la modification des permissions (type de titre / type d'étape)", async () => { + const apiMock = + api.administrationTitreTypeEtapeTypeUpdate.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('administration/titresTypeEtapeTypeUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + etapeTypeId: 'dex', + lectureInterdit: true, + modificationInterdit: true, + creationInterdit: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationTitreTypeEtapeType: { + administrationId: 'dea-guyane', + titreTypeId: 'aex', + etapeTypeId: 'dex', + lectureInterdit: true, + modificationInterdit: true, + creationInterdit: true + } + }) + + expect(actions.reload).not.toHaveBeenCalled() + expect(mutations.messageAdd).toHaveBeenCalled() + }) + + test('modifie les restrictions (type des activités)', async () => { + const apiMock = api.administrationActiviteTypeUpdate.mockResolvedValue({ + id: 71, + nom: 'nom admin' + }) + + await store.dispatch('administration/activiteTypeUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'grp', + lectureInterdit: true, + modificationInterdit: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationActiviteType: { + administrationId: 'dea-guyane', + titreTypeId: 'grp', + lectureInterdit: true, + modificationInterdit: true + } + }) + + expect(actions.reload).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la modification des permissions (type de titre)", async () => { + const apiMock = api.administrationActiviteTypeUpdate.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('administration/activiteTypeUpdate', { + administrationId: 'dea-guyane', + titreTypeId: 'grp', + lectureInterdit: true, + modificationInterdit: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + administrationActiviteType: { + administrationId: 'dea-guyane', + titreTypeId: 'grp', + lectureInterdit: true, + modificationInterdit: true + } + }) + + expect(actions.reload).not.toHaveBeenCalled() + expect(mutations.messageAdd).toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/administrations.js b/packages/ui/src/store/administrations.js new file mode 100644 index 000000000..450826e88 --- /dev/null +++ b/packages/ui/src/store/administrations.js @@ -0,0 +1,54 @@ +import { administrations, administrationsMetas } from '../api/administrations' +import { listeActionsBuild, listeMutations } from './_liste-build.js' + +const state = { + elements: [], + total: 0, + metas: { + types: [] + }, + definitions: [ + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { id: 'colonne', type: 'string', values: ['nom', 'type', 'abreviation'] }, + { id: 'ordre', type: 'string', values: ['asc', 'desc'] }, + { id: 'typesIds', type: 'strings', values: [] }, + { id: 'noms', type: 'string' } + ], + params: { + table: { page: 1, intervalle: 200, ordre: 'asc', colonne: null }, + filtres: { noms: '', typesIds: [] } + }, + initialized: false +} + +const actions = listeActionsBuild( + 'administrations', + 'administrations', + administrations, + administrationsMetas +) + +const mutations = Object.assign({}, listeMutations, { + metasSet(state, data) { + const metas = { types: data } + Object.keys(metas).forEach(id => { + const paramsIds = ['typesIds'] + + state.metas[id] = metas[id] + + paramsIds.forEach(paramId => { + const definition = state.definitions.find(p => p.id === paramId) + + definition.values = metas[id].map(e => e.id) + }) + }) + } +}) + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/administrations.test.js b/packages/ui/src/store/administrations.test.js new file mode 100644 index 000000000..c1e57b404 --- /dev/null +++ b/packages/ui/src/store/administrations.test.js @@ -0,0 +1,46 @@ +import { createApp } from 'vue' +import { createStore } from 'vuex' +import administrations from './administrations' + +jest.mock('../api/administrations', () => ({ + administrations: jest.fn(), + administrationsMetas: jest.fn() +})) + +console.info = jest.fn() + +describe("liste d'administrations", () => { + let store + + beforeEach(() => { + administrations.state = { + metas: { types: [] }, + definitions: [{ id: 'typesIds', type: 'strings', values: [] }] + } + + store = createStore({ + modules: { administrations } + }) + + const app = createApp({}) + app.use(store) + }) + + test('enregistre les métas', () => { + store.commit('administrations/metasSet', [ + { id: 'ope', nom: 'opérateurs' }, + { id: 'dea', nom: 'déal' } + ]) + + expect(store.state.administrations.metas).toEqual({ + types: [ + { id: 'ope', nom: 'opérateurs' }, + { id: 'dea', nom: 'déal' } + ] + }) + + expect(store.state.administrations.definitions).toEqual([ + { id: 'typesIds', type: 'strings', values: ['ope', 'dea'] } + ]) + }) +}) diff --git a/packages/ui/src/store/definitions.js b/packages/ui/src/store/definitions.js new file mode 100644 index 000000000..6713311df --- /dev/null +++ b/packages/ui/src/store/definitions.js @@ -0,0 +1,79 @@ +import { + definitions, + domaines, + demarchesStatuts, + demarchesTypes, + etapesTypes, + etapesStatuts, + substancesLegales, + titresStatuts, + titresTypesTypes +} from '../api/metas' + +const definitionsIndex = { + domaines: domaines, + 'titre-minier': '', + 'autorisation-miniere': '', + 'demarches-statuts': demarchesStatuts, + 'demarches-types': demarchesTypes, + 'etapes-types': etapesTypes, + 'etapes-statuts': etapesStatuts, + 'substances-legales': substancesLegales, + 'titres-statuts': titresStatuts, + 'titres-types': titresTypesTypes +} + +const state = { + elements: [], + entrees: [] +} + +const actions = { + async get({ dispatch, commit }) { + commit('loadingAdd', 'definitions', { root: true }) + + try { + const data = await definitions() + + commit('set', data) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'definitions', { root: true }) + } + }, + + async entreesGet({ state, dispatch, commit }, slug) { + commit('loadingAdd', 'definition', { root: true }) + + try { + if (definitionsIndex[slug]) { + const data = await definitionsIndex[slug]() + commit('entreesSet', data) + } else { + commit('entreesSet', []) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'definition', { root: true }) + } + } +} + +const mutations = { + set(state, data) { + state.elements = data + }, + + entreesSet(state, data) { + state.entrees = data + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/definitions.test.js b/packages/ui/src/store/definitions.test.js new file mode 100644 index 000000000..8d534a4d4 --- /dev/null +++ b/packages/ui/src/store/definitions.test.js @@ -0,0 +1,152 @@ +import definitions from './definitions' +import * as api from '../api/metas' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/metas', () => ({ + definitions: jest.fn(), + domaines: jest.fn(), + demarchesStatuts: jest.fn(), + demarchesTypes: jest.fn(), + etapesTypes: jest.fn(), + etapesStatuts: jest.fn(), + substancesLegales: jest.fn(), + titresStatuts: jest.fn(), + titresTypesTypes: jest.fn() +})) + +console.info = jest.fn() + +describe('définitions du glossaire', () => { + let store + let actions + let mutations + + beforeEach(() => { + definitions.state = { + elements: [], + entrees: [] + } + + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + messageAdd: jest.fn() + } + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + popupMessagesRemove: jest.fn(), + popupMessageAdd: jest.fn(), + popupClose: jest.fn() + } + + store = createStore({ + modules: { definitions }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test('récupère les définitions', async () => { + const response = [ + { + id: 'aum', + nom: 'Autorisation minière', + table: null, + description: 'description aum', + elements: null, + couleur: null + }, + { + id: 'dom', + nom: 'Domaines miniers', + table: 'domaines', + description: 'description dom', + + elements: [ + { + id: 'm', + nom: 'minéraux et métaux', + table: null, + description: 'description m', + elements: null, + couleur: null + } + ], + couleur: null + } + ] + + const apiMock = api.definitions.mockResolvedValue(response) + + await store.dispatch('definitions/get') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.definitions.elements).toEqual(response) + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.definitions.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('definitions/get') + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur 404 si l'api retourne null", async () => { + const apiMock = api.definitions.mockResolvedValue(null) + await store.dispatch('definitions/get') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.definitions.elements).toEqual(null) + }) + + test('récupère les descriptions des domaines', async () => { + const response = [ + { + id: 'm', + nom: 'minéraux et métaux', + table: null, + description: 'description m', + elements: null, + couleur: null + } + ] + + const apiMock = api.domaines.mockResolvedValue(response) + + await store.dispatch('definitions/entreesGet', 'domaines') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.definitions.entrees).toEqual(response) + }) + + test('ne récupère pas de description sur la page principale ', async () => { + await store.dispatch('definitions/entreesGet', '') + expect(store.state.definitions.entrees).toEqual([]) + }) + + test('ne récupère pas de description pour "titre-minier"', async () => { + await store.dispatch('definitions/entreesGet', 'titre-minier') + expect(store.state.definitions.entrees).toEqual([]) + }) + + test("retourne une erreur de l'api lors de la récupération des domaines", async () => { + const apiMock = api.domaines.mockRejectedValue( + new Error("l'api ne répond pas") + ) + + await store.dispatch('definitions/entreesGet', 'domaines') + + expect(apiMock).toHaveBeenCalled() + + expect(actions.apiError).toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/document.js b/packages/ui/src/store/document.js new file mode 100644 index 000000000..61111996a --- /dev/null +++ b/packages/ui/src/store/document.js @@ -0,0 +1,173 @@ +import { + documentMetas, + documentCreer, + documentModifier, + documentSupprimer +} from '../api/documents' +import { uploadCall } from '../api/_upload' + +const state = { + metas: { + documentsTypes: [], + documentsVisibilites: [] + } +} + +const actions = { + async init({ commit }, options) { + try { + commit('loadingAdd', 'documentInit', { root: true }) + + const data = await documentMetas(options) + + commit('metasSet', data) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'documentInit', { root: true }) + } + }, + + async upsert({ commit, dispatch }, { document, route, action }) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + + const isTemporary = document.id === document.typeId + if (isTemporary) { + delete document.id + } + + document.fichier = true + + // Il faut envoyer les données de "document" sans sa propriété "fichierNouveau" + // pour ne pas téléverser le fichier via GQL. Mais transformer "document" ici altère + // le rendu de la UI. Elle pointe vers la référence de "document.fichierNouveau" + // pour afficher le nom du fichier. On en crée donc une copie. + const documentToSend = Object.assign({}, document) + delete documentToSend.fichierNouveau + + let uploadURL + let documentReturned + + if (document.fichierNouveau) { + uploadURL = await uploadCall(document.fichierNouveau, progress => { + commit('fileLoad', { loaded: progress, total: 100 }, { root: true }) + }) + } + + const nomTemporaire = uploadURL + ? uploadURL.substring(uploadURL.lastIndexOf('/') + 1) + : null + + const idOld = document.id + try { + if (!document.id) { + documentReturned = await documentCreer({ + document: { ...documentToSend, nomTemporaire } + }) + } else { + delete documentToSend.typeId + documentReturned = await documentModifier({ + document: { ...documentToSend, nomTemporaire } + }) + } + + dispatch( + 'messageAdd', + { value: `le document a été mis à jour`, type: 'success' }, + { root: true } + ) + + dispatch('refreshAfterUpsert', { + route, + idOld, + titreEtapeId: document.titreEtapeId, + document: documentReturned, + action + }) + + // Ne ferme la popup automatiquement que si tout s'est passé sans erreur + commit('popupClose', null, { root: true }) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('fileLoad', { loaded: 0, total: 0 }, { root: true }) + } + }, + + async refreshAfterUpsert( + { commit, dispatch }, + { route, idOld, titreEtapeId, document, action } + ) { + if (route) { + await dispatch('reload', route, { root: true }) + + if (route.name === 'titre') { + const section = route.section + let id + + if (section === 'etapes') id = titreEtapeId + + commit('titre/open', { section, id }, { root: true }) + } + } else if (action) { + const params = { ...action.params, document } + + if (idOld) { + params.idOld = idOld + } + + await dispatch(action.name, params, { root: true }) + } + }, + + async remove({ commit, dispatch }, { id, route }) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('loadingAdd', 'documentRemove', { root: true }) + if (route) { + commit('popupLoad', null, { root: true }) + } + + await documentSupprimer({ id }) + + if (route) { + commit('popupClose', null, { root: true }) + + dispatch( + 'messageAdd', + { value: `le document a été supprimé`, type: 'success' }, + { root: true } + ) + await dispatch('reload', route, { root: true }) + } + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'documentRemove', { root: true }) + } + } +} + +const mutations = { + metasSet(state, data) { + Object.keys(data).forEach(id => { + state.metas[id] = data[id] + }) + }, + + uploadProgress(state, progress) { + state.upload.progress = progress + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/document.test.js b/packages/ui/src/store/document.test.js new file mode 100644 index 000000000..a789fc367 --- /dev/null +++ b/packages/ui/src/store/document.test.js @@ -0,0 +1,278 @@ +import document from './document' +import * as api from '../api/documents' +import * as upload from '../api/_upload' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/documents', () => ({ + documentMetas: jest.fn(), + documentCreer: jest.fn(), + documentModifier: jest.fn(), + documentSupprimer: jest.fn() +})) + +jest.mock('../api/_upload', () => ({ + uploadCall: jest.fn() +})) + +console.info = jest.fn() + +describe('documents', () => { + let store + let actions + let mutations + + beforeEach(() => { + jest.resetAllMocks() + + document.state = { + metas: { documentsTypes: [] }, + preferences: { types: [] } + } + + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn(), + test: jest.fn() + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + apiError: jest.fn(), + popupLoad: jest.fn(), + popupMessagesRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn(), + fileLoad: jest.fn() + } + + store = createStore({ + actions, + mutations, + modules: { + document, + titre: { + namespaced: true, + mutations: { open: jest.fn() } + } + } + }) + + const app = createApp({}) + app.use(store) + }) + test('récupère les métas pour éditer un document', async () => { + const apiMock = api.documentMetas.mockResolvedValueOnce({ + documentsTypes: [ + { id: 'arr', nom: 'Arrêté' }, + { id: 'avi', nom: 'Avis' } + ] + }) + + await store.dispatch('document/init') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.document.metas.documentsTypes).toEqual([ + { id: 'arr', nom: 'Arrêté' }, + { id: 'avi', nom: 'Avis' } + ]) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.documentMetas.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('document/init') + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('ajoute un document', async () => { + let document = { + nom: 'champs', + typeId: 1, + fichier: true, + fichierNouveau: new Blob(), + nomTemporaire: null + } + const apiMock = api.documentCreer.mockResolvedValue({ + nom: 'champs' + }) + + await store.dispatch('document/upsert', { + document, + route: { name: 'titre', id: 'titre-id', section: 'etapes' } + }) + expect(upload.uploadCall).toHaveBeenCalled() + const sentDocument = { ...document } + delete sentDocument.fichierNouveau + expect(apiMock).toHaveBeenCalledWith({ document: sentDocument }) + + jest.resetAllMocks() + + await store.dispatch('document/upsert', { + document, + route: 'something' + }) + expect(upload.uploadCall).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ document: sentDocument }) + + jest.resetAllMocks() + + document = { + nom: 'champs', + typeId: 1, + fichier: true, + nomTemporaire: null + } + await store.dispatch('document/upsert', { + document, + route: { name: 'titre', id: 'titre-id', section: 'travaux' } + }) + expect(upload.uploadCall).not.toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ document }) + }) + + test("retourne une erreur si l'API retourne une erreur lors de l'ajout d'un document", async () => { + api.documentCreer.mockRejectedValueOnce(() => new Error('erreur api')) + await store.dispatch('document/upsert', { + document: { nom: 'champs', fichierNouveau: new Blob() } + }) + + expect(upload.uploadCall).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('met à jour un document', async () => { + let document = { + nom: 'champs', + id: 14, + typeId: 1, + fichier: true, + fichierNouveau: new Blob(), + nomTemporaire: null + } + const apiMock = api.documentModifier.mockResolvedValue({ + id: 14, + nom: 'champs' + }) + + await store.dispatch('document/upsert', { + document, + route: { name: 'titre', id: 'titre-id', section: 'etapes' } + }) + expect(upload.uploadCall).toHaveBeenCalled() + let sentDocument = { ...document } + delete sentDocument.fichierNouveau + delete sentDocument.typeId + expect(apiMock).toHaveBeenCalledWith({ document: sentDocument }) + + jest.resetAllMocks() + + await store.dispatch('document/upsert', { + document, + route: 'something' + }) + expect(upload.uploadCall).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ document: sentDocument }) + + jest.resetAllMocks() + + document = { + nom: 'champs', + id: 14, + typeId: 1, + fichier: true, + nomTemporaire: null + } + await store.dispatch('document/upsert', { + document, + route: { name: 'titre', id: 'titre-id', section: 'travaux' } + }) + expect(upload.uploadCall).not.toHaveBeenCalled() + sentDocument = { ...document } + delete sentDocument.typeId + expect(apiMock).toHaveBeenCalledWith({ document: sentDocument }) + }) + + test('ajoute un nouveau document si c’est un document temporaire', async () => { + const document = { + nom: 'champs', + typeId: 1, + fichier: true, + fichierNouveau: new Blob(), + nomTemporaire: null + } + const apiMock = api.documentCreer.mockResolvedValue({ + id: 14, + nom: 'champs' + }) + + await store.dispatch('document/upsert', { + document, + route: { name: 'titre', id: 'titre-id' } + }) + expect(upload.uploadCall).toHaveBeenCalled() + const sentDocument = { ...document } + delete sentDocument.fichierNouveau + expect(apiMock).toHaveBeenCalledWith({ document: sentDocument }) + }) + + test('applique une action au lieu d’être redirigé', async () => { + api.documentCreer.mockImplementationOnce(async () => { + await store.dispatch('document/refreshAfterUpsert', { + action: { name: 'test' } + }) + }) + + await store.dispatch('document/upsert', { + document: { id: 14, nom: 'champs', typeId: 1 }, + action: { name: 'test' } + }) + + expect(actions.test).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la mise à jour d'un document", async () => { + api.documentModifier.mockRejectedValue(new Error("erreur de l'api")) + await store.dispatch('document/upsert', { + document: { id: 14, nom: 'champs' } + }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('supprime un document', async () => { + const apiMock = api.documentSupprimer.mockResolvedValue(true) + await store.dispatch('document/remove', { + id: 62, + route: { name: 'titre', id: 'titre-id' } + }) + + expect(apiMock).toHaveBeenCalledWith({ id: 62 }) + expect(mutations.popupClose).toHaveBeenCalled() + await store.dispatch('document/remove', { + id: 62 + }) + + expect(apiMock).toHaveBeenCalledWith({ id: 62 }) + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la suppression d'un document", async () => { + const apiMock = api.documentSupprimer.mockRejectedValue( + new Error("erreur de l'api") + ) + await store.dispatch('document/remove', { id: 62 }) + + expect(apiMock).toHaveBeenCalledWith({ id: 62 }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/entreprise.js b/packages/ui/src/store/entreprise.js new file mode 100644 index 000000000..bb90007c1 --- /dev/null +++ b/packages/ui/src/store/entreprise.js @@ -0,0 +1,154 @@ +import { + entreprise, + entrepriseCreer, + entrepriseModifier, + entrepriseTitreTypeUpdate, + entreprisePermissionsMetas +} from '../api/entreprises' + +import router from '../router' + +const state = { + element: null, + metas: { + domaines: [] + } +} + +const actions = { + async permissionsInit({ commit }) { + commit('loadingAdd', 'entreprisePermissionsInit', { + root: true + }) + + try { + const data = await entreprisePermissionsMetas() + commit('metasSet', { domaines: data }) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'entreprisePermissionsInit', { + root: true + }) + } + }, + + async get({ commit, dispatch }, id) { + try { + commit('loadingAdd', 'entrepriseGet', { root: true }) + + const data = await entreprise({ id }) + + if (data) { + commit('set', data) + } else { + dispatch('pageError', null, { root: true }) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'entrepriseGet', { root: true }) + } + }, + + async add({ commit, dispatch }, entreprise) { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'entrepriseAdd', { root: true }) + try { + const data = await entrepriseCreer({ entreprise }) + + commit('popupClose', null, { root: true }) + + router.push({ name: 'entreprise', params: { id: data.id } }) + dispatch( + 'messageAdd', + { value: `l'entreprise a été créée`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'entrepriseAdd', { root: true }) + } + }, + + async update({ commit, dispatch }, entreprise) { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'entrepriseUpdate', { root: true }) + try { + const data = await entrepriseModifier({ entreprise }) + + commit('popupClose', null, { root: true }) + + await dispatch( + 'reload', + { name: 'entreprise', id: data.id }, + { root: true } + ) + + dispatch( + 'messageAdd', + { value: `l'entreprise a été mise à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'entrepriseUpdate', { root: true }) + } + }, + + async titreTypeUpdate({ commit, dispatch }, entrepriseTitreType) { + try { + commit('loadingAdd', 'entrepriseTitreTypeUpdate', { + root: true + }) + + const data = await entrepriseTitreTypeUpdate({ + entrepriseTitreType + }) + + await dispatch( + 'reload', + { name: 'entreprise', id: data.id }, + { root: true } + ) + dispatch( + 'messageAdd', + { value: `l'entreprise a été mise à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'entrepriseTitreTypeUpdate', { + root: true + }) + } + } +} + +const mutations = { + metasSet(state, data) { + Object.keys(data).forEach(id => { + state.metas[id] = data[id] + }) + }, + + set(state, entreprise) { + state.element = entreprise + }, + + reset(state) { + state.element = null + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/entreprise.test.js b/packages/ui/src/store/entreprise.test.js new file mode 100644 index 000000000..dd9cade03 --- /dev/null +++ b/packages/ui/src/store/entreprise.test.js @@ -0,0 +1,245 @@ +import { createApp } from 'vue' +import { createStore } from 'vuex' +import * as api from '../api/entreprises' +import entreprise from './entreprise' + +jest.mock('../router', () => ({ + push: () => {}, + replace: () => {} +})) + +jest.mock('../api/entreprises', () => ({ + entreprise: jest.fn(), + entrepriseCreer: jest.fn(), + entrepriseModifier: jest.fn(), + entreprisePermissionsMetas: jest.fn(), + entrepriseTitreTypeUpdate: jest.fn() +})) + +console.info = jest.fn() + +describe("état de l'entreprise sélectionnée", () => { + let store + let actions + let mutations + + beforeEach(() => { + entreprise.state = { + element: null, + metas: { + domaines: [] + } + } + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn() + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + popupLoad: jest.fn(), + popupMessagesRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn(), + messageAdd: jest.fn() + } + + store = createStore({ + modules: { entreprise }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test('obtient une entreprise', async () => { + const apiMock = api.entreprise.mockResolvedValue({ id: 71, nom: 'toto' }) + await store.dispatch('entreprise/get', 71) + + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + expect(store.state.entreprise.element).toEqual({ id: 71, nom: 'toto' }) + }) + + test("affiche une page d'erreur si l'id de l'entreprise retourne null", async () => { + const apiMock = api.entreprise.mockResolvedValue(null) + await store.dispatch('entreprise/get', 71) + + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + expect(actions.pageError).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api dans l'obtention de l'entreprise", async () => { + const apiMock = api.entreprise.mockRejectedValue( + new Error("l'api ne répond pas") + ) + await store.dispatch('entreprise/get', 71) + + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + + expect(actions.apiError).toHaveBeenCalled() + }) + + test("supprime les données d'entreprise", () => { + store.commit('entreprise/set', { id: 71, nom: 'toto' }) + store.commit('entreprise/reset') + + expect(store.state.entreprise.element).toBeNull() + }) + + test('ajoute une entreprise', async () => { + const apiMock = api.entrepriseCreer.mockResolvedValue({ + id: 71, + nom: 'toto' + }) + + await store.dispatch('entreprise/add', { + legalSiren: '123456789', + paysId: 'fr' + }) + + expect(apiMock).toHaveBeenCalledWith({ + entreprise: { + legalSiren: '123456789', + paysId: 'fr' + } + }) + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de l'ajout d'une entreprise", async () => { + const apiMock = api.entrepriseCreer.mockRejectedValue( + new Error('erreur api') + ) + await store.dispatch('entreprise/add', { + legalSiren: '123456789', + paysId: 'fr' + }) + + expect(apiMock).toHaveBeenCalledWith({ + entreprise: { + legalSiren: '123456789', + paysId: 'fr' + } + }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('modifie une entreprise', async () => { + const apiMock = api.entrepriseModifier.mockResolvedValue({ + id: 71, + nom: 'toto' + }) + + await store.dispatch('entreprise/update', { + legalSiren: '123456789', + paysId: 'fr' + }) + + expect(apiMock).toHaveBeenCalledWith({ + entreprise: { + legalSiren: '123456789', + paysId: 'fr' + } + }) + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la modification d'une entreprise", async () => { + const apiMock = api.entrepriseModifier.mockRejectedValue( + new Error('erreur api') + ) + await store.dispatch('entreprise/update', { + legalSiren: '123456789', + paysId: 'fr' + }) + + expect(apiMock).toHaveBeenCalledWith({ + entreprise: { + legalSiren: '123456789', + paysId: 'fr' + } + }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('récupère les métas pour éditer les permissions', async () => { + const apiMock = api.entreprisePermissionsMetas.mockResolvedValue([ + { id: 'm', nom: 'minéraux et métaux' } + ]) + + await store.dispatch('entreprise/permissionsInit') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.entreprise.metas).toEqual({ + domaines: [{ id: 'm', nom: 'minéraux et métaux' }] + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la récupération des métas", async () => { + const apiMock = api.entreprisePermissionsMetas.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('entreprise/permissionsInit') + + expect(apiMock).toHaveBeenCalled() + + expect(mutations.messageAdd).toHaveBeenCalled() + }) + + test('modifie les permissions (type de titres)', async () => { + const apiMock = api.entrepriseTitreTypeUpdate.mockResolvedValue({ + id: 71, + nom: 'nom admin' + }) + + await store.dispatch('entreprise/titreTypeUpdate', { + entrepriseId: 'entreprise-id', + titreTypeId: 'aex', + titresCreation: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + entrepriseTitreType: { + entrepriseId: 'entreprise-id', + titreTypeId: 'aex', + titresCreation: true + } + }) + + expect(actions.reload).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la modification des permissions (type de titre)", async () => { + const apiMock = api.entrepriseTitreTypeUpdate.mockRejectedValue( + new Error('erreur api') + ) + + await store.dispatch('entreprise/titreTypeUpdate', { + entrepriseId: 'entreprise-id', + titreTypeId: 'aex', + titresCreation: true + }) + + expect(apiMock).toHaveBeenCalledWith({ + entrepriseTitreType: { + entrepriseId: 'entreprise-id', + titreTypeId: 'aex', + titresCreation: true + } + }) + + expect(actions.reload).not.toHaveBeenCalled() + expect(mutations.messageAdd).toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/entreprises.js b/packages/ui/src/store/entreprises.js new file mode 100644 index 000000000..af73bdbd1 --- /dev/null +++ b/packages/ui/src/store/entreprises.js @@ -0,0 +1,43 @@ +import { entreprises } from '../api/entreprises' +import { listeActionsBuild, listeMutations } from './_liste-build' + +const state = { + elements: [], + total: 0, + definitions: [ + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + values: ['nom', 'siren'] + }, + { + id: 'ordre', + type: 'string', + values: ['asc', 'desc'] + }, + { id: 'noms', type: 'string' } + ], + params: { + table: { + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: null + }, + filtres: { noms: '' } + }, + initialized: false +} + +const actions = listeActionsBuild('entreprises', 'entreprises', entreprises) + +const mutations = Object.assign({}, listeMutations) + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/index.js b/packages/ui/src/store/index.js new file mode 100644 index 000000000..7d330dedd --- /dev/null +++ b/packages/ui/src/store/index.js @@ -0,0 +1,256 @@ +import { shallowRef } from '@vue/reactivity' +import { createStore } from 'vuex' +import { saveAs } from 'file-saver' + +import router from '../router' +import { urlQueryUpdate } from '../utils/url' + +import titre from './titre' +import titreDemarche from './titre-demarche' +import titreCreation from './titre-creation' +import titreEtape from './titre-etape' +import titreEtapeEdition from './titre-etape-edition' +import document from './document' +import titres from './titres' +import titresDemarches from './titres-demarches' +import utilisateur from './utilisateur' +import utilisateurs from './utilisateurs' +import entreprise from './entreprise' +import entreprises from './entreprises' +import administration from './administration' +import administrations from './administrations' +import metas from './metas' +import meta from './meta' +import user from './user' +import titreActivite from './titre-activite' +import titreActiviteEdition from './titre-activite-edition' +import titresActivites from './titres-activites' +import statistiques from './statistiques' +import definitions from './definitions' +import journaux from './journaux' + +const modules = { + titre, + titreDemarche, + titreCreation, + titreEtape, + titreEtapeEdition, + document, + titres, + titresDemarches, + utilisateur, + utilisateurs, + entreprise, + entreprises, + administration, + administrations, + meta, + metas, + user, + titreActivite, + titreActiviteEdition, + titresActivites, + statistiques, + definitions, + journaux +} + +const state = { + config: {}, + messages: [], + popup: { component: null, props: null, messages: [], loading: false }, + error: null, + menu: { component: null }, + loading: [], + fileLoading: { + loaded: 0, + total: 0 + } +} + +const actions = { + apiError({ commit }, error) { + if (error.message === 'aborted') return + + const id = Date.now() + + commit('messageAdd', { + id, + type: 'error', + value: `Erreur : ${error}` + }) + + setTimeout(() => { + commit('messageRemove', id) + }, 4500) + + console.error(error) + }, + + pageError({ commit }) { + commit('errorUpdate', { + type: 'error', + value: `Erreur: page introuvable` + }) + }, + + errorRemove({ state, commit }) { + if (state.error) { + commit('errorUpdate', null) + } + }, + + messageAdd({ commit }, message) { + const id = Date.now() + message.id = id + + commit('messageAdd', message) + + setTimeout(() => { + commit('messageRemove', id) + }, 4500) + }, + + menuToggle({ state, commit }, component) { + if (state.menu.component && state.menu.component.name === component.name) { + commit('menuClose') + } else if (state.menu.component) { + commit('menuClose') + commit('menuOpen', component) + } else { + commit('menuOpen', component) + } + }, + + async reload({ dispatch, rootState }, { name, id }) { + if (!id) { + router.push({ name }) + } else { + const idOld = rootState.route.params.id + + if (id !== idOld) { + router.replace({ name, params: { id } }) + } else { + await dispatch(`${name}/get`, id) + } + } + }, + + async downloadDocument({ dispatch }, document) { + if (document.fichierNouveau) { + saveAs(document.fichierNouveau) + dispatch('messageAdd', { + type: 'success', + value: `fichier téléchargé : ${document.fichierNouveau.name}` + }) + } else { + await dispatch('download', `/fichiers/${document.id}`) + } + }, + + async download({ dispatch, commit }, path) { + try { + saveAs(`/apiUrl${path}`) + + dispatch('messageAdd', { + type: 'success', + value: `fichier téléchargé` + }) + } catch (e) { + dispatch('apiError', `téléchargement : ${path}, ${e}`) + } finally { + commit('loadingRemove', 'fileLoading') + commit('fileLoad', { loaded: 0, total: 0 }) + } + }, + + async urlQueryUpdate({ rootState }, { params, definitions }) { + const { status, query } = urlQueryUpdate( + params, + rootState.route.query, + definitions + ) + + if (status === 'updated') { + router.push({ query }) + } else if (status === 'created') { + router.replace({ query }) + } + } +} + +const mutations = { + messageAdd(state, message) { + state.messages.push(message) + }, + + messageRemove(state, id) { + const index = state.messages.findIndex(m => m.id === id) + state.messages.splice(index, 1) + }, + + popupOpen(state, { component, props }) { + state.popup.component = shallowRef(component) + state.popup.props = props + state.popup.messages = [] + }, + + popupClose(state) { + state.popup.component = null + state.popup.props = null + state.popup.messages = [] + state.popup.loading = false + }, + + errorUpdate(state, error) { + state.error = error + }, + + menuOpen(state, component) { + state.menu.component = shallowRef(component) + }, + + menuClose(state) { + state.menu.component = null + }, + + popupLoad(state) { + state.popup.loading = true + }, + + popupMessagesRemove(state) { + state.popup.messages = [] + state.popup.loading = false + }, + + popupMessageAdd(state, message) { + state.popup.messages.push(message) + state.popup.loading = false + }, + + loadingAdd(state, name) { + state.loading.push(name) + }, + + loadingRemove(state, name) { + const index = state.loading.indexOf(name) + + if (index > -1) { + state.loading.splice(index, 1) + } + }, + + fileLoad(state, { loaded, total }) { + state.fileLoading.loaded = loaded + state.fileLoading.total = total + } +} + +export { state, actions, mutations } + +export default createStore({ + state, + actions, + mutations, + modules +}) diff --git a/packages/ui/src/store/index.test.js b/packages/ui/src/store/index.test.js new file mode 100644 index 000000000..0a947b9ba --- /dev/null +++ b/packages/ui/src/store/index.test.js @@ -0,0 +1,346 @@ +import { actions, mutations } from './index' +import { createApp } from 'vue' +import { createStore } from 'vuex' +import * as fileSaver from 'file-saver' +import * as router from '../router' + +jest.mock('file-saver', () => ({ saveAs: jest.fn() })) +jest.mock('./titre', () => ({ titre: jest.fn() })) +jest.mock('./titres', () => ({ titres: jest.fn() })) +jest.mock('./titre-demarche', () => ({ titreDemarche: jest.fn() })) +jest.mock('./titre-creation', () => ({ titreCreation: jest.fn() })) +jest.mock('./titre-etape', () => ({ titreEtape: jest.fn() })) +jest.mock('./titre-etape-edition', () => ({ titreEtape: jest.fn() })) +jest.mock('./document', () => ({ document: jest.fn() })) +jest.mock('./titres-demarches', () => ({ titresDemarches: jest.fn() })) +jest.mock('./utilisateur', () => ({ utilisateur: jest.fn() })) +jest.mock('./utilisateurs', () => ({ utilisateurs: jest.fn() })) +jest.mock('./entreprises', () => ({ entreprises: jest.fn() })) +jest.mock('./entreprise', () => ({ entreprise: jest.fn() })) +jest.mock('./administration', () => ({ administration: jest.fn() })) +jest.mock('./administrations', () => ({ administrations: jest.fn() })) +jest.mock('./user', () => ({ user: jest.fn() })) +jest.mock('./titre-activite', () => ({ titreActivite: jest.fn() })) +jest.mock('./titre-activite-edition', () => ({ + titreActiviteEdition: jest.fn() +})) +jest.mock('./titres-activites', () => ({ titresActivites: jest.fn() })) +jest.mock('./statistiques', () => ({ statistiques: jest.fn() })) +jest.mock('./definitions', () => ({ definitions: jest.fn() })) +jest.mock('./metas', () => ({ metas: jest.fn() })) +jest.mock('./meta', () => ({ meta: jest.fn() })) +jest.mock('./journaux', () => ({ journaux: jest.fn() })) + +jest.mock('../router', () => ({ + replace: jest.fn(), + push: jest.fn() +})) + +console.info = jest.fn() +console.error = jest.fn() +jest.useFakeTimers() + +describe("état général de l'application", () => { + let state + let store + let modules + + beforeEach(() => { + modules = { + titre: { + namespaced: true, + state: { element: null }, + actions: { + get: jest.fn() + } + }, + route: { + namespaced: true, + state: { + query: {} + } + } + } + + state = { + config: {}, + messages: [], + popup: { component: null, props: null, messages: [], loading: false }, + error: null, + menu: { component: null }, + loading: [], + loaded: false, + fileLoading: { + loaded: 0, + total: 0 + } + } + + store = createStore({ + modules, + state, + actions, + mutations + }) + + const app = createApp({}) + app.use(store) + + localStorage.clear() + }) + + test('ajoute un message', () => { + const message = { id: 42, message: 'message très important' } + store.commit('messageAdd', message) + + expect(state.messages).toEqual([message]) + }) + + test('met la popup en état de chargement', () => { + store.commit('popupLoad') + + expect(state.popup.loading).toBe(true) + }) + + test('supprime un message', () => { + const message = { id: 42, message: 'message très important' } + store.commit('messageAdd', message) + store.commit('messageRemove', 42) + + expect(state.messages).toEqual([]) + }) + + test('ferme la pop-up', () => { + const component = 'open' + const props = 'open' + store.commit('popupOpen', { component, props }) + store.commit('popupClose') + + expect(state.popup).toMatchObject({ + component: { _value: null }, + props: null, + messages: [], + loading: false + }) + }) + + test('ajoute un message de la pop-up', () => { + const message = 'message très important' + store.commit('popupMessageAdd', message) + + expect(state.popup.messages).toEqual([message]) + }) + + test('supprime les messages de la pop-up', () => { + const message = 'message très important' + store.commit('popupMessageAdd', message) + store.commit('popupMessagesRemove') + + expect(state.popup.messages).toEqual([]) + }) + + test("trace si un appel à l'api est en cours", () => { + store.commit('loadingAdd', 'nom1') + store.commit('loadingAdd', 'nom2') + store.commit('loadingRemove', 'nom2') + store.commit('loadingRemove', 'nom3') + + expect(state.loading).toEqual(['nom1']) + }) + + test("retourne une erreur de l'api", async () => { + Date.now = jest.fn(() => 1487076708000) + await store.dispatch('apiError', 'message') + + expect(state.messages).toEqual([ + { + id: 1487076708000, + type: 'error', + value: 'Erreur : message' + } + ]) + }) + + test('retourne une erreur 404', async () => { + await store.dispatch('pageError') + + expect(state.error).toEqual({ + type: 'error', + value: `Erreur: page introuvable` + }) + }) + + test("ne supprime pas d'erreur s'il n'y en a pas", async () => { + await store.dispatch('errorRemove') + + expect(state.error).toEqual(null) + }) + + test('supprime une erreur', async () => { + store.commit('errorUpdate', { id: 'erreur-test' }) + await store.dispatch('errorRemove') + + expect(state.error).toEqual(null) + }) + + test('ferme le menu', async () => { + store.state.menu.component = { name: 'menu' } + const component = { name: 'menu' } + + await store.dispatch('menuToggle', component) + + expect(state.menu.component).toBeNull() + }) + + test('ferme le menu et en ouvre un autre', async () => { + store.state.menu.component = { name: 'bonjour' } + const component = { name: 'hello' } + + await store.dispatch('menuToggle', component) + + expect(state.menu.component).toMatchObject({ _value: component }) + }) + + test('ouvre un nouveau menu', async () => { + const component = { name: 'hello' } + await store.dispatch('menuToggle', component) + + expect(state.menu.component).toMatchObject({ _value: component }) + }) + + test("recharge la page si l'id du titre n'a pas changé", async () => { + store.state.route.params = { id: 'titre-id' } + await store.dispatch('reload', { name: 'titre', id: 'titre-id' }) + + expect(modules.titre.actions.get).toHaveBeenCalled() + }) + + test("charge la nouvelle page si l'id du titre a changé", async () => { + store.state.route.params = { id: 'id-test' } + await store.dispatch('reload', { name: 'titre', id: 'titre-id-new' }) + + expect(router.replace).toHaveBeenCalled() + }) + + test("ne recharge pas la page si l'id n'a pas changé", async () => { + store.state.route.params = { id: 'id-test' } + await store.dispatch('reload', { name: 'titre', id: 'id-test' }) + + expect(router.replace).not.toHaveBeenCalled() + expect(modules.titre.actions.get).toHaveBeenCalled() + }) + + test("recharge la page si il n'y a pas d'id", async () => { + store.state.titre.element = { id: 'id-test', nom: 'marne' } + await store.dispatch('reload', { name: 'titres' }) + + expect(router.push).toHaveBeenCalled() + }) + + test("met à jour les paramètres d'url", async () => { + await store.dispatch('urlQueryUpdate', { + params: { typesIds: null }, + definitions: [{ id: 'typesIds', type: 'strings', elements: [] }] + }) + + expect(router.push).not.toHaveBeenCalled() + expect(router.replace).not.toHaveBeenCalled() + + await store.dispatch('urlQueryUpdate', { + params: { typesIds: ['pr', 'ar'] }, + definitions: [{ id: 'typesIds', type: 'strings', elements: [] }] + }) + + expect(router.replace).toHaveBeenCalledWith({ + query: { typesIds: 'pr,ar' } + }) + + store.state.route.query.typesIds = 'pr,ar' + + await store.dispatch('urlQueryUpdate', { + params: { typesIds: ['cx'] }, + definitions: [{ id: 'typesIds', type: 'strings', elements: [] }] + }) + + expect(router.push).toHaveBeenCalledWith({ + query: { typesIds: 'cx' } + }) + }) +}) + +describe("état général de l'application", () => { + let state + let store + + beforeEach(() => { + state = { + messages: [], + loading: [], + fileLoading: { + loaded: 0, + total: 0 + } + } + + localStorage.clear() + }) + + test('supprime un message', async () => { + const messageRemoveMock = jest.fn() + mutations.messageRemove = messageRemoveMock + store = createStore({ actions, state, mutations }) + const message = { id: 14, message: 'message important' } + await store.dispatch('messageAdd', message) + + const res = state.messages.pop() + expect(res.message).toEqual('message important') + expect(res.id).toBeLessThanOrEqual(Date.now()) + jest.advanceTimersByTime(4500) + // expect(setTimeout).toHaveBeenCalled() + // expect(setTimeout).toHaveBeenCalledWith(expect.any(Function), 4500) + expect(messageRemoveMock).toHaveBeenCalled() + }) + + test('télécharge un document du serveur', async () => { + const messageAddMock = jest.fn() + actions.messageAdd = messageAddMock + store = createStore({ state, actions, mutations }) + + await store.dispatch('downloadDocument', { id: 'toot' }) + + expect(fileSaver.saveAs).toHaveBeenCalledWith('/apiUrl/fichiers/toot') + expect(messageAddMock).toHaveBeenCalled() + expect(state.loading).toEqual([]) + }) + + test('télécharge un nouveau document depuis le navigateur', async () => { + const messageAddMock = jest.fn() + actions.messageAdd = messageAddMock + store = createStore({ state, actions, mutations }) + + await store.dispatch('downloadDocument', { + fichierNouveau: { name: 'document-titre' } + }) + + expect(fileSaver.saveAs).toHaveBeenCalled() + expect(messageAddMock).toHaveBeenCalled() + expect(state.loading).toEqual([]) + }) + + test('télécharge du contenu', async () => { + const messageAddMock = jest.fn() + actions.messageAdd = messageAddMock + store = createStore({ state, actions, mutations }) + + const section = 'titres' + const params = { typeIds: ['m', 'w'] } + + await store.dispatch('download', `/${section}?${params}`) + + expect(fileSaver.saveAs).toHaveBeenCalledWith( + `/apiUrl/${section}?${params}` + ) + expect(messageAddMock).toHaveBeenCalled() + expect(state.loading).toEqual([]) + }) +}) diff --git a/packages/ui/src/store/journaux.js b/packages/ui/src/store/journaux.js new file mode 100644 index 000000000..9c9e73054 --- /dev/null +++ b/packages/ui/src/store/journaux.js @@ -0,0 +1,24 @@ +import { journaux } from '../api/journaux' +import { listeActionsBuild, listeMutations } from './_liste-build' + +const state = { + elements: [], + total: 0, + definitions: [ + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { id: 'ordre', type: 'string', values: ['asc', 'desc'] }, + { id: 'recherche', type: 'string' }, + { id: 'titreId', type: 'string' } + ], + params: { + table: { page: 1, intervalle: 50 }, + filtres: { recherche: '' } + }, + initialized: false +} + +const actions = listeActionsBuild('journaux', 'journaux', journaux) +const mutations = Object.assign({}, listeMutations) + +export default { namespaced: true, state, actions, mutations } diff --git a/packages/ui/src/store/meta.js b/packages/ui/src/store/meta.js new file mode 100644 index 000000000..794a06350 --- /dev/null +++ b/packages/ui/src/store/meta.js @@ -0,0 +1,184 @@ +import metasIndex from './metas-definitions' +import { nextTick } from 'vue' + +const state = { + elementsIndex: {}, + elementsSelectedIndex: {} +} + +const idsFind = (element, definition) => + definition.ids + ? definition.ids.reduce((ids, id) => { + ids[id] = element[id] + + return ids + }, {}) + : { id: element.id } + +const getters = { + elements: state => id => state.elementsIndex[id], + elementSelected: state => id => state.elementsSelectedIndex[id] +} + +const actions = { + async get({ dispatch, commit, state }, id) { + try { + commit('loadingAdd', 'metaGet', { root: true }) + + if (metasIndex[id]) { + const definition = metasIndex[id] + const elements = await definition.get() + commit('set', { id, elements }) + + for (const colonne of definition.colonnes) { + if ( + colonne.type === 'entities' && + colonne.entities && + !state.elementsIndex[colonne.entities] + ) { + const entities = await metasIndex[colonne.entities].get() + + commit('set', { id: colonne.entities, elements: entities }) + } + } + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'metaGet', { root: true }) + } + }, + + async update({ dispatch, commit }, { id, element, partialElement }) { + try { + commit('loadingAdd', 'metaUpdate', { root: true }) + + if (metasIndex[id]) { + const definition = metasIndex[id] + const elements = await definition.update({ + element: { + ...partialElement, + ...idsFind(element, definition) + } + }) + + commit('set', { id, elements }) + dispatch( + 'messageAdd', + { + value: "l'élément a été mis à jour", + type: 'success' + }, + { root: true } + ) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'metaUpdate', { root: true }) + } + }, + + async create( + { dispatch, commit, state }, + { id, element, joinTable, foreignKey } + ) { + try { + commit('loadingAdd', 'metaCreate', { root: true }) + + if (metasIndex[joinTable]) { + const definition = metasIndex[joinTable] + const elements = await definition.create({ element }) + + commit('set', { id: joinTable, elements }) + + const elementSelected = state.elementsIndex[id].find( + e => e.id === element[foreignKey] + ) + + dispatch('elementSelect', { + id: joinTable, + element: elementSelected + }) + + dispatch( + 'messageAdd', + { + value: "l'élément a été créée", + type: 'success' + }, + { root: true } + ) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'metaCreate', { root: true }) + } + }, + + elementSelect({ commit }, { id, element }) { + commit('elementSelectedSet', { id, element: null }) + if (element) { + nextTick(() => { + commit('elementSelectedSet', { id, element }) + }) + } + }, + + async delete({ dispatch, commit }, { id, element }) { + commit('loadingAdd', 'metaDelete', { root: true }) + + try { + if (metasIndex[id]) { + const definition = metasIndex[id] + const elements = await definition.delete({ + element: { + ...idsFind(element, definition) + } + }) + + commit('set', { id, elements }) + commit('elementSelectedSet', { id, element: null }) + dispatch( + 'messageAdd', + { + value: "l'élément a été effacé", + type: 'success' + }, + { root: true } + ) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'metaDelete', { root: true }) + } + } +} + +const mutations = { + reset(state) { + state.elementsIndex = {} + state.elementsSelectedIndex = {} + }, + + set(state, { id, elements }) { + state.elementsIndex = { ...state.elementsIndex, [id]: elements } + }, + + elementSelectedSet(state, { id, element }) { + state.elementsSelectedIndex = { + ...state.elementsSelectedIndex, + [id]: element + } + } +} + +export default { + namespaced: true, + state, + actions, + mutations, + getters +} diff --git a/packages/ui/src/store/metas-definitions.js b/packages/ui/src/store/metas-definitions.js new file mode 100644 index 000000000..4e6a94159 --- /dev/null +++ b/packages/ui/src/store/metas-definitions.js @@ -0,0 +1,793 @@ +import { + definitions, + domaines, + titresTypesTypes, + titresStatuts, + demarchesTypes, + demarchesStatuts, + etapesTypes, + etapesStatuts, + phasesStatuts, + domaineModifier, + definitionModifier, + titreTypeTypeModifier, + titreStatutModifier, + demarcheTypeModifier, + demarcheStatutModifier, + phaseStatutModifier, + etapeTypeModifier, + etapeStatutModifier, + devises, + deviseModifier, + unites, + uniteModifier, + administrationsTypes, + administrationTypeModifier, + permissions, + permissionModifier, + documentsTypes, + documentTypeModifier, + referencesTypes, + referenceTypeModifier, + geoSystemes, + geoSystemeModifier, + titresTypes, + titreTypeModifier, + titreTypeCreer, + titreTypeSupprimer, + titresTypesTitresStatuts, + titreTypeTitreStatutCreer, + titreTypeTitreStatutSupprimer, + titreTypeTitreStatutModifier, + titresTypesDemarchesTypes, + titreTypeDemarcheTypeModifier, + titreTypeDemarcheTypeCreer, + titreTypeDemarcheTypeSupprimer, + titresTypesDemarchesTypesEtapesTypes, + titreTypeDemarcheTypeEtapeTypeModifier, + titreTypeDemarcheTypeEtapeTypeCreer, + titreTypeDemarcheTypeEtapeTypeSupprimer, + etapesTypesEtapesStatuts, + etapeTypeEtapeStatutModifier, + etapeTypeEtapeStatutCreer, + etapeTypeEtapeStatutSupprimer, + etapesTypesDocumentsTypes, + etapeTypeDocumentTypeModifier, + etapeTypeDocumentTypeCreer, + etapeTypeDocumentTypeSupprimer, + etapesTypesJustificatifsTypes, + etapeTypeJustificatifTypeModifier, + etapeTypeJustificatifTypeCreer, + etapeTypeJustificatifTypeSupprimer, + pays, + titresTypesDemarchesTypesEtapesTypesDocumentsTypes, + titreTypeDemarcheTypeEtapeTypeDocumentTypeCreer, + titreTypeDemarcheTypeEtapeTypeDocumentTypeModifier, + titreTypeDemarcheTypeEtapeTypeDocumentTypeSupprimer, + titresTypesDemarchesTypesEtapesTypesJustificatifsTypes, + titreTypeDemarcheTypeEtapeTypeJustificatifTypeCreer, + titreTypeDemarcheTypeEtapeTypeJustificatifTypeModifier, + titreTypeDemarcheTypeEtapeTypeJustificatifTypeSupprimer, + documentTypeCreer +} from '../api/metas' + +import { + activitesTypes, + activiteTypeModifier, + activitesStatuts, + activiteStatutModifier, + activitesTypesTitresTypes, + activiteTypeTitreTypeModifier, + activiteTypeTitreTypeCreer, + activiteTypeTitreTypeSupprimer, + activitesTypesDocumentsTypes, + activiteTypeDocumentTypeModifier, + activiteTypeDocumentTypeCreer, + activiteTypeDocumentTypeSupprimer, + activitesTypesPays, + activiteTypePaysModifier, + activiteTypePaysCreer, + activiteTypePaysSupprimer +} from '../api/metas-activites' + +const labelGet = entity => (entity ? `${entity.id} - ${entity.nom}` : '') + +const metasIndex = { + definitions: { + get: definitions, + update: definitionModifier, + nom: 'Définitions', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'nom', type: String }, + { id: 'slug', nom: 'slug', type: String }, + { id: 'description', nom: 'Description', type: String, optional: true }, + { id: 'ordre', nom: 'Ordre', type: Number } + ] + }, + domaines: { + get: domaines, + update: domaineModifier, + labelGet, + nom: 'Domaines', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'description', nom: 'Description', type: String }, + { id: 'ordre', nom: 'Ordre', type: Number } + ] + }, + 'titres-types-types': { + get: titresTypesTypes, + update: titreTypeTypeModifier, + labelGet, + nom: 'Types des titres', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'description', nom: 'Description', type: String, optional: true }, + { id: 'ordre', nom: 'Ordre', type: Number } + ] + }, + 'titres-types': { + get: titresTypes, + update: titreTypeModifier, + create: titreTypeCreer, + delete: titreTypeSupprimer, + labelGet: titreType => + `${titreType.id} - ${titreType.type.nom}- ${titreType.domaine.nom} `, + nom: 'Domaines | Types des titres', + colonnes: [ + { id: 'id', nom: 'Id' }, + { + id: 'domaineId', + nom: 'Domaine', + type: 'entities', + entities: 'domaines' + }, + { + id: 'typeId', + nom: 'Type', + type: 'entities', + entities: 'titres-types-types' + }, + { + id: 'contenuIds', + nom: "Type d'étape des propriétés", + type: 'json', + optional: true + } + ] + }, + 'titres-statuts': { + get: titresStatuts, + update: titreStatutModifier, + labelGet, + nom: 'Statuts des titres', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'description', nom: 'Description', type: String, optional: true }, + { + id: 'couleur', + nom: 'Couleur', + type: Array, + elements: ['warning', 'neutral', 'success'] + }, + { id: 'ordre', nom: 'Ordre', type: Number } + ] + }, + 'titre-types--titres-statuts': { + get: titresTypesTitresStatuts, + update: titreTypeTitreStatutModifier, + create: titreTypeTitreStatutCreer, + delete: titreTypeTitreStatutSupprimer, + nom: 'Types des titres | Statuts des titres', + colonnes: [ + { + id: 'titreTypeId', + nom: 'Type de titre', + type: 'entities', + entities: 'titres-types' + }, + { + id: 'titreStatutId', + nom: 'Statut de titre', + type: 'entities', + entities: 'titres-statuts' + }, + { id: 'publicLecture', nom: 'Public', type: Boolean, optional: true } + ], + ids: ['titreTypeId', 'titreStatutId'] + }, + 'demarches-types': { + get: demarchesTypes, + update: demarcheTypeModifier, + labelGet, + nom: 'Types des démarches', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'ordre', nom: 'Ordre', type: Number }, + { id: 'description', nom: 'Description', type: String, optional: true }, + { id: 'duree', nom: 'Durée', type: Boolean, optional: true }, + { id: 'points', nom: 'Points', type: Boolean, optional: true }, + { id: 'substances', nom: 'Substances', type: Boolean, optional: true }, + { id: 'titulaires', nom: 'Titulaires', type: Boolean, optional: true }, + { id: 'exception', nom: 'Exception', type: Boolean, optional: true }, + { + id: 'renouvelable', + nom: 'Renouvelable', + type: Boolean, + optional: true + }, + { id: 'travaux', nom: 'Travaux', type: Boolean, optional: true } + ] + }, + 'titres-types--demarches-types': { + get: titresTypesDemarchesTypes, + update: titreTypeDemarcheTypeModifier, + create: titreTypeDemarcheTypeCreer, + delete: titreTypeDemarcheTypeSupprimer, + nom: 'Types des titres | Types des démarches', + colonnes: [ + { + id: 'titreTypeId', + nom: 'Type de titre', + type: 'entities', + entities: 'titres-types' + }, + { + id: 'demarcheTypeId', + nom: 'Type de démarche', + type: 'entities', + entities: 'demarches-types' + }, + { id: 'dureeMax', nom: 'Durée maximale', type: Number, optional: true }, + { + id: 'delaiImplicite', + nom: 'Délai implicite', + type: Number, + optional: true + }, + { + id: 'delaiRecours', + nom: 'Délai de recours', + type: Number, + optional: true + }, + { id: 'legalRef', nom: 'Référence légale', type: String, optional: true }, + { + id: 'legalLien', + nom: 'Lien de la référence légale', + type: String, + optional: true + }, + { id: 'dateDebut', nom: 'Date de début', type: String, optional: true }, + { id: 'dateFin', nom: 'Date de fin', type: String, optional: true } + ], + ids: ['titreTypeId', 'demarcheTypeId'] + }, + 'demarches-statuts': { + get: demarchesStatuts, + update: demarcheStatutModifier, + nom: 'Statuts des démarches', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'description', nom: 'Description', type: String, optional: true }, + { + id: 'couleur', + nom: 'Couleur', + type: Array, + elements: ['warning', 'neutral', 'success', 'error'] + }, + { id: 'ordre', nom: 'Ordre', type: Number } + ] + }, + 'phases-statuts': { + get: phasesStatuts, + update: phaseStatutModifier, + nom: 'Statuts des phases', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { + id: 'couleur', + nom: 'Couleur', + type: Array, + elements: ['warning', 'neutral', 'success', 'error'] + } + ] + }, + 'etapes-types': { + get: etapesTypes, + update: etapeTypeModifier, + labelGet, + nom: 'Types des étapes', + colonnes: [ + { id: 'id', nom: 'Id' }, + { + id: 'parentId', + nom: 'Id du type de l’étape parent', + type: String, + optional: true + }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'description', nom: 'Description', type: String, optional: true }, + { id: 'ordre', nom: 'Ordre', type: Number }, + { id: 'sections', nom: 'Sections', type: 'json', optional: true }, + { id: 'legalLien', nom: 'Lien légal', type: String, optional: true }, + { + id: 'dateDebut', + nom: 'Date de début', + type: Date, + class: ['min-width-12'], + optional: true + }, + { + id: 'dateFin', + nom: 'Date de fin', + type: Date, + class: ['min-width-12'], + optional: true + }, + { + id: 'fondamentale', + nom: 'Fondamentale', + type: Boolean, + optional: true + }, + { id: 'unique', nom: 'Unique', type: Boolean, optional: true }, + { + id: 'acceptationAuto', + nom: 'Acceptation auto', + type: Boolean, + optional: true + }, + { + id: 'publicLecture', + nom: 'Lecture public', + type: Boolean, + optional: true + }, + { + id: 'entrepriseLecture', + nom: 'Lecture entreprises', + type: Boolean, + optional: true + } + ] + }, + 'titres-types--demarches-types--etapes-types': { + get: titresTypesDemarchesTypesEtapesTypes, + update: titreTypeDemarcheTypeEtapeTypeModifier, + create: titreTypeDemarcheTypeEtapeTypeCreer, + delete: titreTypeDemarcheTypeEtapeTypeSupprimer, + nom: 'Types des titres | Types des démarches | types des étapes', + colonnes: [ + { + id: 'titreTypeId', + nom: 'Type de titre', + type: 'entities', + entities: 'titres-types' + }, + { + id: 'demarcheTypeId', + nom: 'Type de démarche', + type: 'entities', + entities: 'demarches-types' + }, + { + id: 'etapeTypeId', + nom: "Type d'étape", + type: 'entities', + entities: 'etapes-types' + }, + { id: 'sections', nom: 'Sections', type: 'json', optional: true }, + { id: 'ordre', nom: 'Ordre', type: Number } + ], + ids: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId'] + }, + 'titres-types--demarches-types--etapes-types--documents-types': { + get: titresTypesDemarchesTypesEtapesTypesDocumentsTypes, + create: titreTypeDemarcheTypeEtapeTypeDocumentTypeCreer, + update: titreTypeDemarcheTypeEtapeTypeDocumentTypeModifier, + delete: titreTypeDemarcheTypeEtapeTypeDocumentTypeSupprimer, + nom: 'Types des titres | Types des démarches | Types des étapes | Types des documents', + colonnes: [ + { + id: 'titreTypeId', + nom: 'Type de titre', + type: 'entities', + entities: 'titres-types' + }, + { + id: 'demarcheTypeId', + nom: 'Type de démarche', + type: 'entities', + entities: 'demarches-types' + }, + { + id: 'etapeTypeId', + nom: "Type d'étape", + type: 'entities', + entities: 'etapes-types' + }, + { + id: 'documentTypeId', + nom: 'Type de document', + type: 'entities', + entities: 'documents-types' + }, + { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true }, + { id: 'description', nom: 'Description', type: String, optional: true } + ], + ids: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'] + }, + 'titres-types--demarches-types--etapes-types--justificatifs-types': { + get: titresTypesDemarchesTypesEtapesTypesJustificatifsTypes, + create: titreTypeDemarcheTypeEtapeTypeJustificatifTypeCreer, + update: titreTypeDemarcheTypeEtapeTypeJustificatifTypeModifier, + delete: titreTypeDemarcheTypeEtapeTypeJustificatifTypeSupprimer, + nom: 'Types des titres | Types des démarches | Types des étapes | Types des justificatifs', + colonnes: [ + { + id: 'titreTypeId', + nom: 'Type de titre', + type: 'entities', + entities: 'titres-types' + }, + { + id: 'demarcheTypeId', + nom: 'Type de démarche', + type: 'entities', + entities: 'demarches-types' + }, + { + id: 'etapeTypeId', + nom: "Type d'étape", + type: 'entities', + entities: 'etapes-types' + }, + { + id: 'documentTypeId', + nom: 'Type de justificatif', + type: 'entities', + entities: 'documents-types' + }, + { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true }, + { id: 'description', nom: 'Description', type: String, optional: true } + ], + ids: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'] + }, + 'etapes-statuts': { + get: etapesStatuts, + update: etapeStatutModifier, + labelGet, + nom: 'Statuts des étapes', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'description', nom: 'Description', type: String, optional: true }, + { + id: 'couleur', + nom: 'Couleur', + type: Array, + elements: ['warning', 'neutral', 'success', 'error'] + } + ] + }, + 'etapes-types--etapes-statuts': { + get: etapesTypesEtapesStatuts, + update: etapeTypeEtapeStatutModifier, + create: etapeTypeEtapeStatutCreer, + delete: etapeTypeEtapeStatutSupprimer, + nom: 'Types des étapes | Statuts des étapes', + colonnes: [ + { + id: 'etapeTypeId', + nom: "Type d'étape", + type: 'entities', + entities: 'etapes-types' + }, + { + id: 'etapeStatutId', + nom: "Statut d'étape", + type: 'entities', + entities: 'etapes-statuts' + }, + { id: 'ordre', nom: 'Ordre', type: Number } + ], + ids: ['etapeTypeId', 'etapeStatutId'] + }, + 'etapes-types--documents-types': { + get: etapesTypesDocumentsTypes, + update: etapeTypeDocumentTypeModifier, + create: etapeTypeDocumentTypeCreer, + delete: etapeTypeDocumentTypeSupprimer, + nom: 'Types des étapes | Types des documents', + colonnes: [ + { + id: 'etapeTypeId', + nom: "Type d'étape", + type: 'entities', + entities: 'etapes-types' + }, + { + id: 'documentTypeId', + nom: 'Type de documents', + type: 'entities', + entities: 'documents-types' + }, + { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true }, + { id: 'description', nom: 'Description', type: String, optional: true } + ], + ids: ['etapeTypeId', 'documentTypeId'] + }, + 'etapes-types--justificatifs-types': { + get: etapesTypesJustificatifsTypes, + update: etapeTypeJustificatifTypeModifier, + create: etapeTypeJustificatifTypeCreer, + delete: etapeTypeJustificatifTypeSupprimer, + nom: 'Types des étapes | Types des justificatifs', + colonnes: [ + { + id: 'etapeTypeId', + nom: "Type d'étape", + type: 'entities', + entities: 'etapes-types' + }, + { + id: 'documentTypeId', + nom: 'Type de justificatifs', + type: 'entities', + entities: 'documents-types' + }, + { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true }, + { id: 'description', nom: 'Description', type: String, optional: true } + ], + ids: ['etapeTypeId', 'documentTypeId'] + }, + devises: { + get: devises, + update: deviseModifier, + nom: 'Devises', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String } + ] + }, + unites: { + get: unites, + update: uniteModifier, + nom: 'Unités', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'symbole', nom: 'Symbole', type: String }, + { id: 'nom', nom: 'Nom', type: String }, + { + id: 'referenceUniteId', + nom: "Id de l'unité de référence", + type: String + }, + { + id: 'referenceUniteRatio', + nom: "Ratio de l'unité de référence", + type: Number + } + ] + }, + 'administrations-types': { + get: administrationsTypes, + update: administrationTypeModifier, + nom: 'Types des administrations', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'ordre', nom: 'Ordre', type: Number } + ] + }, + permissions: { + get: permissions, + update: permissionModifier, + nom: 'Permissions', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'ordre', nom: 'Ordre', type: Number } + ] + }, + 'documents-types': { + get: documentsTypes, + create: documentTypeCreer, + update: documentTypeModifier, + labelGet, + nom: 'Types des documents', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'description', nom: 'Description', type: String, optional: true } + ] + }, + 'references-types': { + get: referencesTypes, + update: referenceTypeModifier, + nom: 'Types des références', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String } + ] + }, + 'geo-systemes': { + get: geoSystemes, + update: geoSystemeModifier, + nom: 'Systèmes géographiques', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { id: 'ordre', nom: 'Ordre', type: Number }, + { + id: 'uniteId', + nom: "Id de l'unité", + type: Array, + elements: ['met', 'deg', 'gon'] + }, + { id: 'definitionProj4', nom: 'Définition proj 4', type: String } + ] + }, + pays: { + get: pays, + nom: 'Pays', + labelGet, + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String } + ] + }, + 'activites-types': { + get: activitesTypes, + update: activiteTypeModifier, + labelGet, + nom: 'Types des activités', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { + id: 'frequenceId', + nom: 'Id la fréquence', + type: Array, + elements: ['tri', 'ann', 'men'] + }, + { id: 'ordre', nom: 'Ordre', type: Number }, + { + id: 'description', + nom: 'Description', + type: String, + optional: true, + class: ['min-width-12'] + }, + { id: 'sections', nom: 'Sections', type: 'json', optional: true }, + { + id: 'dateDebut', + nom: 'Date de début', + type: Date, + class: ['min-width-12'] + }, + { id: 'delaiMois', nom: 'Délai', type: Number }, + { + id: 'satisfactionUrl', + nom: 'Url voxusagers', + type: String, + optional: true + } + ] + }, + 'activites-statuts': { + get: activitesStatuts, + update: activiteStatutModifier, + nom: 'Statuts des activités', + colonnes: [ + { id: 'id', nom: 'Id' }, + { id: 'nom', nom: 'Nom', type: String }, + { + id: 'couleur', + nom: 'Couleur', + type: Array, + elements: ['warning', 'neutral', 'success', 'error'] + } + ] + }, + + 'activites-types--titres-types': { + get: activitesTypesTitresTypes, + update: activiteTypeTitreTypeModifier, + create: activiteTypeTitreTypeCreer, + delete: activiteTypeTitreTypeSupprimer, + nom: 'Types des activités | Types des titres', + colonnes: [ + { + id: 'activiteTypeId', + nom: "Type d'activité", + type: 'entities', + entities: 'activites-types' + }, + { + id: 'titreTypeId', + nom: 'Type de titre', + type: 'entities', + entities: 'titres-types' + } + ], + ids: ['activiteTypeId', 'titreTypeId'] + }, + + 'activites-types--documents-types': { + get: activitesTypesDocumentsTypes, + update: activiteTypeDocumentTypeModifier, + create: activiteTypeDocumentTypeCreer, + delete: activiteTypeDocumentTypeSupprimer, + nom: 'Types des activités | Types des documents', + colonnes: [ + { + id: 'activiteTypeId', + nom: "Type d'activité", + type: 'entities', + entities: 'activites-types' + }, + { + id: 'documentTypeId', + nom: 'Type de document', + type: 'entities', + entities: 'documents-types' + }, + { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true } + ], + ids: ['activiteTypeId', 'documentTypeId'] + }, + + 'activites-types--pays': { + get: activitesTypesPays, + update: activiteTypePaysModifier, + create: activiteTypePaysCreer, + delete: activiteTypePaysSupprimer, + nom: 'Types des activités | Pays', + colonnes: [ + { + id: 'activiteTypeId', + nom: "Type d'activité", + type: 'entities', + entities: 'activites-types' + }, + { + id: 'paysId', + nom: 'Pays', + type: 'entities', + entities: 'pays' + } + ], + ids: ['activiteTypeId', 'paysId'] + }, + + titre: { + nom: 'Titre', + linkName: 'meta-titre' + }, + + demarche: { + nom: 'Démarche', + linkName: 'meta-demarche' + }, + + etape: { + nom: 'Étape', + linkName: 'meta-etape' + }, + + activite: { + nom: 'Activité', + linkName: 'meta-activite' + } +} + +export default metasIndex diff --git a/packages/ui/src/store/metas.js b/packages/ui/src/store/metas.js new file mode 100644 index 000000000..bb379130c --- /dev/null +++ b/packages/ui/src/store/metas.js @@ -0,0 +1,56 @@ +import metasIndex from './metas-definitions' + +const state = { + total: 0, + definitions: [ + { id: 'colonne', type: 'string', elements: ['id', 'nom'] }, + { id: 'ordre', type: 'string', elements: ['asc', 'desc'] } + ], + params: { + table: { ordre: 'asc', colonne: null } + } +} + +const actions = { + async paramsSet({ commit }, { section, params }) { + commit('paramsSet', { section, params }) + } +} + +const getters = { + elements(state) { + const elements = Object.keys(metasIndex).map(id => ({ + id, + nom: metasIndex[id].nom, + linkName: metasIndex[id].linkName + })) + + return state.params.table.ordre === 'desc' ? elements.reverse() : elements + } +} + +const mutations = { + reset(state) { + state.elements = [] + state.total = 0 + }, + + set(state, data) { + state.elements = data.elements + state.total = data.total + }, + + paramsSet(state, { section, params }) { + Object.keys(params).forEach(id => { + state.params[section][id] = params[id] + }) + } +} + +export default { + namespaced: true, + state, + getters, + actions, + mutations +} diff --git a/packages/ui/src/store/statistiques.js b/packages/ui/src/store/statistiques.js new file mode 100644 index 000000000..3e5fd27cd --- /dev/null +++ b/packages/ui/src/store/statistiques.js @@ -0,0 +1,42 @@ +import { + statistiquesGlobales, + statistiquesGuyane, + statistiquesGranulatsMarins +} from '../api/statistiques' + +const state = { + globales: {}, + guyane: {}, + granulatsMarins: {} +} + +const actions = { + async get({ commit, dispatch }, section) { + try { + commit('loadingAdd', 'statistiquesGet', { root: true }) + + let data + if (section === 'globales') { + data = await statistiquesGlobales() + } else if (section === 'guyane') { + data = await statistiquesGuyane() + } else if (section === 'granulatsMarins') { + data = await statistiquesGranulatsMarins() + } + + commit('set', { section: section, data }) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'statistiquesGet', { root: true }) + } + } +} + +const mutations = { + set(state, { section, data }) { + state[section] = data + } +} + +export default { namespaced: true, state, actions, mutations } diff --git a/packages/ui/src/store/statistiques.test.js b/packages/ui/src/store/statistiques.test.js new file mode 100644 index 000000000..638cea6f3 --- /dev/null +++ b/packages/ui/src/store/statistiques.test.js @@ -0,0 +1,127 @@ +import statistiques from './statistiques' +import * as api from '../api/statistiques' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/statistiques', () => ({ + statistiquesGlobales: jest.fn(), + statistiquesGuyane: jest.fn(), + statistiquesGranulatsMarins: jest.fn() +})) + +console.info = jest.fn() + +describe('page de statistiques', () => { + let actions + let mutations + let store + let statistiquesGlobales + let statistiquesGuyane + let statistiquesGranulatsMarins + + beforeEach(() => { + statistiquesGlobales = { + titresActivitesBeneficesEntreprise: 4800, + titresActivitesBeneficesAdministration: 2400, + nbSearchArray: [], + nbMajTitresArray: [], + nbAction: 60, + timeSession: '14min', + nbDonwload: 110, + nbDemarche: 400, + nbErreur: 210, + loaded: true + } + + statistiquesGuyane = { + exemple: 'truc' + } + + statistiquesGranulatsMarins = { + annees: [ + { + StatistiquesGranulatsMarinsAnnee: + 'StatistiquesGranulatsMarinsAnnee2006' + } + ], + surfaceExploration: 86383, + surfaceExploitation: 20454, + titresInstructionExploration: 0, + titresValPrw: 2, + titresInstructionExploitation: 2, + titresValCxw: 21 + } + + statistiques.state = { + globales: {}, + guyane: {}, + granulatsMarins: {} + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn() + } + actions = { + apiError: jest.fn() + } + store = createStore({ + modules: { statistiques }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test('récupère les statistiques globales', async () => { + const apiMock = + api.statistiquesGlobales.mockResolvedValue(statistiquesGlobales) + await store.dispatch('statistiques/get', 'globales') + + expect(mutations.loadingAdd).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(store.state.statistiques.globales).toEqual(statistiquesGlobales) + }) + + test('récupère les statistiques de guyane', async () => { + const apiMock = api.statistiquesGuyane.mockResolvedValue(statistiquesGuyane) + await store.dispatch('statistiques/get', 'guyane') + + expect(mutations.loadingAdd).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(store.state.statistiques.guyane).toEqual(statistiquesGuyane) + + await store.dispatch('statistiques/get', 'pour avoir 100% de coverage') + }) + + test('récupère les statistiques sur les granulats marins', async () => { + const apiMock = api.statistiquesGranulatsMarins.mockResolvedValue( + statistiquesGranulatsMarins + ) + await store.dispatch('statistiques/get', 'granulatsMarins') + + expect(mutations.loadingAdd).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(store.state.statistiques.granulatsMarins).toEqual( + statistiquesGranulatsMarins + ) + + await store.dispatch('statistiques/get', 'pour avoir 100% de coverage') + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.statistiquesGlobales.mockRejectedValue( + new Error('erreur api') + ) + await store.dispatch('statistiques/get', 'globales') + + expect(apiMock).toHaveBeenCalled() + expect(actions.apiError).toHaveBeenCalled() + expect(store.state.statistiques.loaded).toBeFalsy() + }) +}) diff --git a/packages/ui/src/store/titre-activite-edition.js b/packages/ui/src/store/titre-activite-edition.js new file mode 100644 index 000000000..388c41cbd --- /dev/null +++ b/packages/ui/src/store/titre-activite-edition.js @@ -0,0 +1,125 @@ +import { activite, activiteModifier } from '../api/titres-activites' +import { documentsRequiredAdd } from '../utils/documents' +import router from '../router' + +const state = { + element: null +} + +const actions = { + async init({ commit, dispatch }, id) { + commit('loadingAdd', 'activiteEditionInit', { root: true }) + + try { + const data = await activite({ id }) + + if (data) { + commit('set', data) + await dispatch('documentInit', state.element.documents) + } else { + dispatch('pageError', null, { root: true }) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'activiteEditionInit', { root: true }) + } + }, + + async update({ commit, dispatch, rootState }, activite) { + try { + commit('loadingAdd', 'activiteUpdate', { root: true }) + await activiteModifier({ + activite: { + id: activite.id, + contenu: activite.contenu, + documentIds: activite.documents + ?.filter(d => d.id !== d.type.id) + .map(({ id }) => id) + } + }) + + await router.back() + + await dispatch( + 'messageAdd', + { + value: `l'activité a été enregistrée`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'activiteUpdate', { root: true }) + } + }, + + async documentInit({ state, commit, rootGetters }, documents) { + const documentsTypes = state.element.type.documentsTypes + + const newDocuments = documentsRequiredAdd( + documents, + documentsTypes, + rootGetters['user/userIsAdmin'] + ) + + commit('documentsSet', newDocuments) + }, + + async documentAdd({ state, dispatch }, { document, idOld }) { + const documents = state.element.documents || [] + if (idOld) { + const index = documents.findIndex(({ id }) => id === idOld) + documents[index] = document + } else { + documents.push(document) + } + + await dispatch('documentInit', documents) + }, + + async documentRemove({ state, dispatch }, { id }) { + await dispatch( + 'documentInit', + state.element.documents.filter(d => d.id !== id) + ) + } +} + +const mutations = { + set(state, activite) { + activite.contenu = activite.sections?.reduce((sections, s) => { + sections[s.id] = s.elements.reduce((elements, e) => { + const value = + activite.contenu && + activite.contenu[s.id] && + activite.contenu[s.id][e.id] + + elements[e.id] = value || e.type !== 'checkboxes' ? value : [] + + return elements + }, {}) + + return sections + }, {}) + + state.element = activite + }, + + documentsSet(state, documents) { + state.element.documents = documents + }, + + reset(state) { + state.element = null + } +} + +export default { + namespaced: true, + actions, + mutations, + state +} diff --git a/packages/ui/src/store/titre-activite-edition.test.js b/packages/ui/src/store/titre-activite-edition.test.js new file mode 100644 index 000000000..9c9ce8424 --- /dev/null +++ b/packages/ui/src/store/titre-activite-edition.test.js @@ -0,0 +1,193 @@ +import titreActiviteEdition from './titre-activite-edition' +import * as api from '../api/titres-activites' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +import router from '../router' + +jest.mock('../router', () => ({ + back: jest.fn() +})) + +jest.mock('../api/titres-activites', () => ({ + activiteModifier: jest.fn(), + activite: jest.fn() +})) +console.info = jest.fn() + +describe("état d'une activité", () => { + let store + let mutations + let actions + + beforeEach(() => { + titreActiviteEdition.state = { element: null } + + actions = { + reload: jest.fn(), + messageAdd: jest.fn(), + pageError: jest.fn(), + apiError: jest.fn() + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn() + } + + store = createStore({ + modules: { + titreActiviteEdition, + titre: { + namespaced: true, + state: { element: { id: 5 } }, + mutations: {} + } + }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test('enregistre une activité sur un titre', async () => { + const apiMock = api.activiteModifier.mockResolvedValue({ + statut: { id: 'enc' } + }) + + await store.dispatch('titreActiviteEdition/update', { + id: 27, + contenu: [], + statut: { id: 'enc' }, + documents: [ + { id: 'toto', desc: 'desc', type: { id: 'aaa' } }, + { id: 'titi', type: { id: 'titi' } } + ] + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + activite: { + id: 27, + contenu: [], + documentIds: ['toto'] + } + }) + + expect(router.back).toHaveBeenCalled() + }) + + test("erreur dans l'api lors de l'enregistrement d'une activité", async () => { + const apiMock = api.activiteModifier.mockRejectedValue( + new Error("l'api ne répond pas") + ) + await store.dispatch('titreActiviteEdition/update', { + id: 27, + contenu: [], + statut: { id: 'dep' } + }) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + activite: { id: 27, contenu: [], documents: undefined } + }) + expect(actions.apiError).toHaveBeenCalled() + expect(actions.messageAdd).not.toHaveBeenCalled() + }) + + test('retourne une activité', async () => { + api.activite.mockResolvedValue({ + id: 27, + contenu: [], + statut: { id: 'dep' }, + sections: [] + }) + + await store.dispatch('titreActiviteEdition/init', 27) + + expect(store.state.titreActiviteEdition.element).toEqual({ + id: 27, + contenu: {}, + sections: [], + statut: { id: 'dep' } + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("affiche une page d'erreur si l'id de l'activité retourne null", async () => { + const apiMock = api.activite.mockResolvedValue(null) + await store.dispatch('titreActiviteEdition/init', 27) + + expect(apiMock).toHaveBeenCalledWith({ id: 27 }) + expect(actions.pageError).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api dans l'obtention de l'activité", async () => { + const apiMock = api.activite.mockRejectedValue( + new Error("l'api ne répond pas") + ) + await store.dispatch('titreActiviteEdition/init', 'activite-id') + + expect(apiMock).toHaveBeenCalledWith({ id: 'activite-id' }) + expect(actions.apiError).toHaveBeenCalled() + }) + + test("supprime les données d'activité", () => { + store.commit('titreActiviteEdition/set', { id: 71, nom: 'toto' }) + store.commit('titreActiviteEdition/reset') + + expect(store.state.titreActiviteEdition.element).toBeNull() + }) + + test('ajoute un nouveau document', async () => { + const type = { id: 'type-id', optionnel: false } + store.state.titreActiviteEdition.element = { + type: { id: 'gpr', documentsTypes: [type] } + } + + await store.dispatch('titreActiviteEdition/documentAdd', { + document: { id: 'document-id', type } + }) + + expect(store.state.titreActiviteEdition.element.documents).toHaveLength(1) + expect(store.state.titreActiviteEdition.element.documents[0].id).toEqual( + 'document-id' + ) + }) + + test('remplace un document existant par un nouveau', async () => { + const type = { id: 'type-id', optionnel: false } + store.state.titreActiviteEdition.element = { + documents: [{ id: 'document-id1' }], + type: { id: 'gpr', documentsTypes: [type] } + } + + await store.dispatch('titreActiviteEdition/documentAdd', { + document: { id: 'document-id2', type }, + idOld: 'document-id1' + }) + + expect(store.state.titreActiviteEdition.element.documents).toHaveLength(1) + expect(store.state.titreActiviteEdition.element.documents[0].id).toEqual( + 'document-id2' + ) + }) + + test('supprime un document', async () => { + const type = { id: 'type-id', optionnel: true } + store.state.titreActiviteEdition.element = { + documents: [{ id: 'document-id' }], + type: { id: 'gpr', documentsTypes: [type] } + } + + await store.dispatch('titreActiviteEdition/documentRemove', { + id: 'document-id' + }) + + expect(store.state.titreActiviteEdition.element.documents).toHaveLength(0) + }) +}) diff --git a/packages/ui/src/store/titre-activite.js b/packages/ui/src/store/titre-activite.js new file mode 100644 index 000000000..8749251ad --- /dev/null +++ b/packages/ui/src/store/titre-activite.js @@ -0,0 +1,101 @@ +import { + activite, + activiteDeposer, + activiteSupprimer +} from '../api/titres-activites' + +const state = { + element: null +} + +const actions = { + async get({ commit, dispatch }, id) { + commit('loadingAdd', 'activiteGet', { root: true }) + + try { + const data = await activite({ id }) + + if (data) { + commit('set', data) + history.replaceState({}, null, data.slug) + } else { + dispatch('pageError', null, { root: true }) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'activiteGet', { root: true }) + } + }, + + async remove({ commit, dispatch }, { id, route }) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'activiteRemove', { root: true }) + await activiteSupprimer({ id }) + + commit('popupClose', null, { root: true }) + + await dispatch('reloadRoute', route) + + dispatch( + 'messageAdd', + { value: `l'activité à été supprimée`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'activiteRemove', { root: true }) + } + }, + + async reloadRoute({ dispatch }, route) { + if (route?.id) { + await dispatch('reload', route, { root: true }) + } else { + await dispatch('reload', { name: 'activites' }, { root: true }) + } + }, + + async depose({ commit, dispatch }, { id, route }) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreActiviteDepose', { root: id }) + + await activiteDeposer({ id }) + + commit('popupClose', null, { root: true }) + + await dispatch('reloadRoute', route) + dispatch( + 'messageAdd', + { value: `la demande a été déposée`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreActiviteDepose', { root: true }) + } + } +} + +const mutations = { + set(state, entreprise) { + state.element = entreprise + }, + + reset(state) { + state.element = null + } +} + +export default { + namespaced: true, + actions, + mutations, + state +} diff --git a/packages/ui/src/store/titre-activite.test.js b/packages/ui/src/store/titre-activite.test.js new file mode 100644 index 000000000..7d261071c --- /dev/null +++ b/packages/ui/src/store/titre-activite.test.js @@ -0,0 +1,159 @@ +import titreActivite from './titre-activite' +import * as api from '../api/titres-activites' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/titres-activites', () => ({ + activiteSupprimer: jest.fn(), + activiteDeposer: jest.fn(), + activite: jest.fn() +})) +console.info = jest.fn() + +describe("état d'une activité", () => { + let store + let mutations + let actions + + beforeEach(() => { + titreActivite.state = { element: null } + + actions = { + reload: jest.fn(), + messageAdd: jest.fn(), + pageError: jest.fn(), + apiError: jest.fn() + } + + mutations = { + popupMessagesRemove: jest.fn(), + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn(), + popupLoad: jest.fn() + } + + store = createStore({ + modules: { + titreActivite, + titre: { + namespaced: true, + state: { element: { id: 5 } }, + mutations: { open: jest.fn() } + } + }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test('retourne une activité', async () => { + api.activite.mockResolvedValue({ + id: 27, + contenu: [], + statut: { id: 'dep' } + }) + + await store.dispatch('titreActivite/get', 27) + + expect(store.state.titreActivite.element).toEqual({ + id: 27, + contenu: [], + statut: { id: 'dep' } + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("affiche une page d'erreur si l'id de l'activité retourne null", async () => { + const apiMock = api.activite.mockResolvedValue(null) + await store.dispatch('titreActivite/get', 27) + + expect(apiMock).toHaveBeenCalledWith({ id: 27 }) + expect(actions.pageError).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api dans l'obtention de l'activité", async () => { + const apiMock = api.activite.mockRejectedValue( + new Error("l'api ne répond pas") + ) + await store.dispatch('titreActivite/get', 'activite-id') + + expect(apiMock).toHaveBeenCalledWith({ id: 'activite-id' }) + expect(actions.apiError).toHaveBeenCalled() + }) + + test("supprime les données d'activité", () => { + store.commit('titreActivite/set', { id: 71, nom: 'toto' }) + store.commit('titreActivite/reset') + + expect(store.state.titreActivite.element).toBeNull() + }) + + test('supprime une activité et redirige sur le titre', async () => { + api.activiteSupprimer.mockResolvedValue({ id: 71 }) + await store.dispatch('titreActivite/remove', { + id: 71, + route: { name: 'titre', id: 'titre-id' } + }) + + expect(actions.reload).toHaveBeenCalledWith(expect.anything(), { + name: 'titre', + id: 'titre-id' + }) + expect(api.activiteSupprimer).toHaveBeenCalled() + }) + + test('supprime une activité et redirige sur la liste des activités', async () => { + api.activiteSupprimer.mockResolvedValue({ id: 71 }) + + await store.dispatch('titreActivite/remove', { + id: 71 + }) + + expect(actions.reload).toHaveBeenCalledWith(expect.anything(), { + name: 'activites' + }) + + expect(api.activiteSupprimer).toHaveBeenCalled() + }) + + test("retourne une erreur si l'api ne répond pas lors de la suppression d'une activité", async () => { + api.activiteSupprimer.mockRejectedValue(new Error("l'api ne répond pas")) + await store.dispatch('titreActivite/remove', { + id: 71 + }) + + expect(api.activiteSupprimer).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('dépose une activité', async () => { + api.activiteDeposer.mockResolvedValue({ id: 12 }) + + await store.dispatch('titreActivite/depose', { + id: 12, + route: null + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test('dépose une activité retourne une erreur', async () => { + api.activiteDeposer.mockRejectedValue(new Error("l'api ne répond pas")) + + await store.dispatch('titreActivite/depose', { + id: 12, + route: null + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + expect(actions.messageAdd).not.toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/titre-creation.js b/packages/ui/src/store/titre-creation.js new file mode 100644 index 000000000..229b8f8db --- /dev/null +++ b/packages/ui/src/store/titre-creation.js @@ -0,0 +1,72 @@ +import { titreDemandeCreer } from '../api/titre-demande' +import router from '../router' +import { titreCreationMetas } from '../api/titres' + +const state = { + metas: { + referencesTypes: [] + } +} + +const actions = { + async init({ commit, dispatch }) { + commit('loadingAdd', 'titreCreationInit', { root: true }) + + try { + const data = await titreCreationMetas() + + commit('metasSet', { referencesTypes: data }) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titreCreationInit', { root: true }) + } + }, + + async save({ commit, dispatch }, titreDemande) { + try { + commit('loadingAdd', 'titreCreationAdd', { root: true }) + + if (titreDemande.references) { + titreDemande.references = titreDemande.references.filter( + reference => reference.nom + ) + } + + const data = await titreDemandeCreer({ titreDemande }) + + await router.push({ + name: 'etape-edition', + params: { id: data.titreEtapeId } + }) + + dispatch( + 'messageAdd', + { + value: 'la demande de titre a été créée', + type: 'success' + }, + { root: true } + ) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titreCreationAdd', { root: true }) + } + } +} + +const mutations = { + metasSet(state, data) { + Object.keys(data).forEach(id => { + state.metas[id] = data[id] + }) + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/titre-demarche.js b/packages/ui/src/store/titre-demarche.js new file mode 100644 index 000000000..541bf089e --- /dev/null +++ b/packages/ui/src/store/titre-demarche.js @@ -0,0 +1,105 @@ +import { + demarcheMetas, + demarcheCreer, + demarcheModifier, + demarcheSupprimer +} from '../api/titres-demarches' + +const state = { + metas: { + types: [] + } +} + +const actions = { + async init({ commit }, demarche) { + try { + commit('loadingAdd', 'titreDemarcheInit', { root: true }) + const data = await demarcheMetas(demarche) + + commit('metasSet', { types: data }) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreDemarcheInit', { root: true }) + } + }, + + async add({ commit, dispatch }, demarche) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreDemarcheAdd', { root: true }) + const data = await demarcheCreer({ demarche }) + + commit('popupClose', null, { root: true }) + await dispatch('reload', { name: 'titre', id: data.slug }, { root: true }) + dispatch( + 'messageAdd', + { value: `le titre a été mis à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreDemarcheAdd', { root: true }) + } + }, + + async update({ commit, dispatch }, demarche) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreDemarcheUpdate', { root: true }) + const data = await demarcheModifier({ demarche }) + + commit('popupClose', null, { root: true }) + await dispatch('reload', { name: 'titre', id: data.slug }, { root: true }) + dispatch( + 'messageAdd', + { value: `le titre a été mis à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreDemarcheUpdate', { root: true }) + } + }, + + async remove({ commit, dispatch }, id) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreDemarcheRemove', { root: true }) + const data = await demarcheSupprimer({ id }) + + commit('popupClose', null, { root: true }) + await dispatch('reload', { name: 'titre', id: data.slug }, { root: true }) + dispatch( + 'messageAdd', + { value: `le titre a été mis à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreDemarcheRemove', { root: true }) + } + } +} + +const mutations = { + metasSet(state, data) { + Object.keys(data).forEach(id => { + state.metas[id] = data[id] + }) + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/titre-demarche.test.js b/packages/ui/src/store/titre-demarche.test.js new file mode 100644 index 000000000..71facc886 --- /dev/null +++ b/packages/ui/src/store/titre-demarche.test.js @@ -0,0 +1,119 @@ +import titreDemarche from './titre-demarche' +import * as api from '../api/titres-demarches' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/titres-demarches', () => ({ + demarcheMetas: jest.fn(), + demarcheCreer: jest.fn(), + demarcheModifier: jest.fn(), + demarcheSupprimer: jest.fn() +})) + +console.info = jest.fn() + +describe('démarche', () => { + let store + let actions + let mutations + + beforeEach(() => { + titreDemarche.state = { + metas: { + types: [] + } + } + + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn() + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + apiError: jest.fn(), + popupLoad: jest.fn(), + popupMessagesRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn() + } + + store = createStore({ actions, mutations, modules: { titreDemarche } }) + + const app = createApp({}) + app.use(store) + }) + + test('récupère les métas pour éditer une démarche', async () => { + const apiMock = api.demarcheMetas.mockReturnValueOnce([ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } + ]) + + await store.dispatch('titreDemarche/init', { etape: {} }) + + expect(apiMock).toHaveBeenCalled() + expect(store.state.titreDemarche.metas.types).toEqual([ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } + ]) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.demarcheMetas.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('titreDemarche/init', { etape: {} }) + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('crée une démarche', async () => { + api.demarcheCreer.mockResolvedValue({ id: 52, nom: 'val' }) + await store.dispatch('titreDemarche/add', { id: 52, nom: 'val' }) + + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la création d'une démarche", async () => { + api.demarcheCreer.mockRejectedValue(new Error('erreur api')) + await store.dispatch('titreDemarche/add', { id: 52, nom: 'val' }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('met à jour une démarche', async () => { + api.demarcheModifier.mockResolvedValue({ id: 52, nom: 'val' }) + await store.dispatch('titreDemarche/update', { id: 52, nom: 'val' }) + + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la mise à jour d'une démarche", async () => { + api.demarcheModifier.mockRejectedValue(new Error("erreur de l'api")) + await store.dispatch('titreDemarche/update', { id: 52, nom: 'val' }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('supprime une démarche', async () => { + api.demarcheSupprimer.mockResolvedValue(52) + await store.dispatch('titreDemarche/remove', 52) + + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la suppression d'une démarche", async () => { + api.demarcheSupprimer.mockRejectedValue(new Error("erreur de l'api")) + await store.dispatch('titreDemarche/remove', 52) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/titre-etape-edition.js b/packages/ui/src/store/titre-etape-edition.js new file mode 100644 index 000000000..557c3a37d --- /dev/null +++ b/packages/ui/src/store/titre-etape-edition.js @@ -0,0 +1,434 @@ +import { + documentEtapeFormat, + etapeEditFormat, + etapePointsFormat +} from '../utils/titre-etape-edit' +import { etapeSaveFormat, pointsBuild } from '../utils/titre-etape-save' +import { etapeHeritageBuild } from '../utils/titre-etape-heritage-build' + +import router from '../router' + +import { + etape, + etapeCreer, + etapeHeritage, + etapeModifier, + titreEtapeEtapesTypes, + titreEtapeMetas +} from '../api/titres-etapes' +import { documentsRequiredAdd } from '../utils/documents' +import { + pointsImporter, + perimetreInformations, + titreEtapePerimetreInformations +} from '../api/geojson' + +const state = { + element: null, + metas: { + demarche: null, + etapesTypes: [], + devises: [], + unites: [], + geoSystemes: [], + substances: [], + entreprises: [], + documentsTypes: [], + sdomZonesDocumentTypeIds: [], + alertes: [] + }, + heritageLoaded: false, + loaded: false +} + +const getters = { + etapeType(state) { + if (state.element?.type) { + return state.metas.etapesTypes.find(et => et.id === state.element.type.id) + } + return null + }, + + documentsTypes(state) { + if (!state.element.type || !state.element.type.documentsTypes) { + return [] + } + + const documentsTypes = JSON.parse( + JSON.stringify(state.element.type.documentsTypes) + ) + + // si la démarche est mécanisée il faut ajouter des documents obligatoires + if (state.element.contenu && state.element.contenu.arm) { + documentsTypes + .filter(dt => ['doe', 'dep'].includes(dt.id)) + .forEach(dt => (dt.optionnel = !state.element.contenu.arm.mecanise)) + } + + if (state.metas.sdomZonesDocumentTypeIds?.length) { + documentsTypes + .filter(dt => state.metas.sdomZonesDocumentTypeIds.includes(dt.id)) + .forEach(dt => (dt.optionnel = false)) + } + + return documentsTypes + } +} + +const actions = { + async init({ commit, state, dispatch }, { titreDemarcheId, id }) { + try { + commit('loadingAdd', 'titreEtapeInit', { root: true }) + + if (id) { + const newEtape = await etape({ id }) + + if (!newEtape?.modification) { + throw new Error() + } + + commit('set', etapeEditFormat(newEtape)) + + commit('heritageLoaded', true) + + titreDemarcheId = state.element.titreDemarcheId + } else { + commit('set', etapeEditFormat({})) + } + + await dispatch('metasGet', { titreDemarcheId, id }) + + if (id) { + await dispatch('dateUpdate', { date: state.element.date }) + + const { documentTypeIds, alertes } = + await titreEtapePerimetreInformations({ + titreEtapeId: id + }) + + commit('metasSet', { + sdomZonesDocumentTypeIds: documentTypeIds, + alertes + }) + + await dispatch('documentInit', state.element.documents) + } + + commit('load') + } catch (e) { + dispatch('pageError', null, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeInit', { root: true }) + } + }, + + async metasGet({ commit, dispatch }, { titreDemarcheId, id }) { + try { + commit('loadingAdd', 'titreEtapeMetasGet', { root: true }) + + const metas = await titreEtapeMetas({ + titreDemarcheId, + id + }) + + commit('metasSet', metas) + } catch (e) { + dispatch('pageError', null, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeMetasGet', { root: true }) + } + }, + + async dateUpdate({ state, commit, dispatch }, { date }) { + try { + commit('loadingAdd', 'titreEtapeEtapesTypesGet', { root: true }) + const metas = await titreEtapeEtapesTypes({ + id: state.element?.id, + date, + titreDemarcheId: state.metas.demarche.id + }) + + commit('metasSet', { etapesTypes: metas }) + commit('dateSet', date) + } catch (e) { + dispatch('pageError', null, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeEtapesTypesGet', { root: true }) + } + }, + + async heritageGet({ commit, state, dispatch }, { typeId }) { + try { + commit('loadingAdd', 'titreEtapeHeritageGet', { root: true }) + commit('heritageLoaded', false) + + const data = await etapeHeritage({ + titreDemarcheId: state.metas.demarche.id, + date: state.element.date, + typeId + }) + + const apiEtape = etapeEditFormat(data) + const newEtape = etapeHeritageBuild(state.element, apiEtape) + + commit('heritageSet', { etape: newEtape }) + await dispatch('documentInit', state.element.documents) + + const { alertes } = await perimetreInformations({ + points: [], + titreId: state.metas.demarche.titre.id, + etapeTypeId: typeId + }) + commit('metasSet', { + alertes + }) + + commit('heritageLoaded', true) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeHeritageGet', { + root: true + }) + } + }, + + async documentInit({ state, getters, commit, rootGetters }, documents) { + if (!state.element.type) { + commit('documentsSet', []) + } else { + documents = documentsRequiredAdd( + documents, + getters.documentsTypes, + rootGetters['user/userIsAdmin'] + ) + + commit('documentsSet', documents) + } + }, + + async documentAdd({ state, dispatch }, { document, idOld }) { + document = documentEtapeFormat(document) + const documents = state.element.documents || [] + if (idOld) { + const index = documents.findIndex(({ id }) => id === idOld) + documents[index] = document + } else { + documents.push(document) + } + + await dispatch('documentInit', documents) + }, + + async documentRemove({ state, dispatch }, { id }) { + await dispatch( + 'documentInit', + state.element.documents.filter(d => d.id !== id) + ) + }, + + async upsert({ state, commit, dispatch }, { etape }) { + try { + commit('loadingAdd', 'titreEtapeUpdate', { root: true }) + + const etapeEditFormatted = etapeSaveFormat(etape) + etapeEditFormatted.titreDemarcheId = state.metas.demarche.id + + let data + if (etapeEditFormatted.id) { + data = await etapeModifier({ etape: etapeEditFormatted }) + } else { + data = await etapeCreer({ etape: etapeEditFormatted }) + } + + const tabId = + state.metas.demarche?.type?.travaux === true ? 'travaux' : 'demarches' + + const routerOptions = { + name: 'titre', + params: { id: data.slug } + } + + if (etape.id) { + routerOptions.hash = `#${etape.id}` + } + + await router.push(routerOptions) + + commit('titre/open', { section: 'etapes', id: etape.id }, { root: true }) + commit('titre/openTab', tabId, { root: true }) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeUpdate', { root: true }) + } + }, + + async pointsImport({ state, commit, dispatch }, { file, geoSystemeId }) { + try { + commit('loadingAdd', 'pointsImport', { root: true }) + + const { points, surface, documentTypeIds, alertes } = + await pointsImporter({ + file, + geoSystemeId, + titreId: state.metas.demarche.titre.id, + etapeTypeId: state.element.type.id + }) + const etape = etapePointsFormat(state.element, points) + // pour modifier la surface, on doit désactiver l’héritage + etape.heritageProps.surface.actif = false + etape.surface = surface + commit('set', etape) + + commit('metasSet', { + sdomZonesDocumentTypeIds: documentTypeIds, + alertes + }) + await dispatch('documentInit', state.element.documents) + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: `${points.length} points ont été importés avec succès`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'pointsImport', { root: true }) + } + }, + + async surfaceRefresh({ state, commit, dispatch }, etape) { + try { + commit('loadingAdd', 'surfaceRefresh', { root: true }) + + if ( + etape.geoSystemeIds && + etape.geoSystemeIds.length && + etape.groupes.length + ) { + const points = pointsBuild( + etape.groupes, + etape.geoSystemeIds, + etape.geoSystemeOpposableId || etape.geoSystemeIds[0] + ) + const { surface, documentTypeIds, alertes } = + await perimetreInformations({ + points, + titreId: state.metas.demarche.titre.id, + etapeTypeId: etape.type.id + }) + state.element.surface = surface + commit('set', state.element) + + commit('metasSet', { + sdomZonesDocumentTypeIds: documentTypeIds, + alertes + }) + await dispatch('documentInit', state.element.documents) + + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: `la surface a été recalculée à partir du périmètre`, + type: 'success' + }, + { root: true } + ) + } else { + dispatch( + 'messageAdd', + { + value: `la surface ne peut-être calculée car le périmètre est invalide`, + type: 'warning' + }, + { root: true } + ) + } + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'surfaceRefresh', { root: true }) + } + }, + + entrepriseDocumentAdd({ commit }, { entrepriseId, document }) { + commit('entrepriseDocumentAdd', { entrepriseId, document }) + } +} + +const mutations = { + load(state) { + state.loaded = true + }, + + set(state, etape) { + state.element = etape + }, + + dateSet(state, date) { + state.element.date = date + }, + + reset(state) { + state.element = null + state.metas = { + demarche: null, + etapesTypes: [], + devises: [], + unites: [], + geoSystemes: [], + substances: [], + entreprises: [], + documentsTypes: [], + sdomZonesDocumentTypeIds: [], + alertes: [] + } + state.heritageLoaded = false + state.loaded = false + }, + + heritageSet(state, { etape }) { + state.element = etape + }, + + heritageLoaded(state, loaded) { + state.heritageLoaded = loaded + }, + + metasSet(state, data) { + Object.keys(data).forEach(id => { + if (id === 'entreprises') { + state.metas[id] = data[id].elements + } else { + state.metas[id] = data[id] + } + }) + }, + + entrepriseDocumentAdd(state, { entrepriseId, document }) { + const entreprise = state.metas.entreprises.find( + ({ id }) => id === entrepriseId + ) + + entreprise.documents.push(document) + state.element.justificatifs.push({ id: document.id }) + }, + + documentsSet(state, documents) { + state.element.documents = documents + } +} + +export default { + namespaced: true, + state, + getters, + actions, + mutations +} diff --git a/packages/ui/src/store/titre-etape-edition.test.js b/packages/ui/src/store/titre-etape-edition.test.js new file mode 100644 index 000000000..53e66bb85 --- /dev/null +++ b/packages/ui/src/store/titre-etape-edition.test.js @@ -0,0 +1,358 @@ +import titreEtapeEdition from './titre-etape-edition' +import * as api from '../api/titres-etapes' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +import { + titreEtapeMetas, + titreEtapeMetasRes, + titreEtapeMetasRes2, + titreEtapeEdited, + titreEtapeHeritage1, + titreEtapeHeritageRes1, + titreEtapeHeritageRes2, + titreEtapeHeritage2, + titreEtapeEtapesTypes +} from './__mocks__/titre-etape' +import router from '../router' + +jest.mock('../router', () => ({ + push: jest.fn() +})) + +jest.mock('../api/titres-etapes', () => ({ + etape: jest.fn(), + etapeHeritage: jest.fn(), + titreEtapeMetas: jest.fn(), + titreEtapeEtapesTypes: jest.fn(), + etapeCreer: jest.fn(), + etapeModifier: jest.fn(), + etapeSupprimer: jest.fn() +})) + +console.info = jest.fn() + +describe('étapes', () => { + let store + let actions + let mutations + + beforeEach(() => { + titreEtapeEdition.state = { + element: null, + metas: { + demarche: {}, + etapesTypes: [], + devises: [], + unites: [], + geoSystemes: [], + substances: [], + entreprises: [] + }, + heritageLoaded: false, + loaded: false + } + + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn(), + dateUpdate: jest.fn() + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + apiError: jest.fn(), + popupLoad: jest.fn(), + popupMessagesRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn() + } + + store = createStore({ + actions, + mutations, + modules: { + titreEtapeEdition, + titre: { namespaced: true, mutations: { open: jest.fn() } } + } + }) + + const app = createApp({}) + app.use(store) + }) + + test('récupère les métas pour éditer une étape', async () => { + const apiMockMetas = api.titreEtapeMetas.mockResolvedValue(titreEtapeMetas) + const apiMockEtapesTypes = api.titreEtapeEtapesTypes.mockResolvedValue( + titreEtapeEtapesTypes + ) + const apiMockEtape = api.etape.mockResolvedValue({ + id: 'etape-id', + titreDemarcheId: 'demarche-id', + date: '2020-01-01', + modification: true + }) + + await store.dispatch('titreEtapeEdition/init', { + id: 'etape-id', + titreDemarcheId: 'demarche-id' + }) + + expect(apiMockMetas).toHaveBeenCalled() + expect(apiMockEtape).toHaveBeenCalled() + expect(apiMockEtapesTypes).toHaveBeenCalled() + expect(store.state.titreEtapeEdition.metas).toEqual(titreEtapeMetasRes) + expect(store.state.titreEtapeEdition.element).toEqual(titreEtapeEdited) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si on n'a pas les droits", async () => { + const apiMockEtape = api.etape.mockResolvedValue({ + id: 'etape-id', + titreDemarcheId: 'demarche-id', + date: '2020-01-01' + }) + + await store.dispatch('titreEtapeEdition/init', { + id: 'etape-id', + titreDemarcheId: 'demarche-id' + }) + + expect(apiMockEtape).toHaveBeenCalled() + expect(actions.pageError).toHaveBeenCalled() + }) + + test('récupère les métas pour créer une étape', async () => { + const apiMockMetas = api.titreEtapeMetas.mockResolvedValue(titreEtapeMetas) + + await store.dispatch('titreEtapeEdition/init', { + titreDemarcheId: 'demarche-id' + }) + + expect(apiMockMetas).toHaveBeenCalled() + expect(store.state.titreEtapeEdition.metas).toEqual(titreEtapeMetasRes2) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.titreEtapeMetas.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('titreEtapeEdition/init', { etape: {} }) + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(actions.pageError).toHaveBeenCalled() + }) + + test("récupère l'héritage d'une étape", async () => { + store.state.titreEtapeEdition.element = { + id: 'etape-id', + typeId: 'etape-type-id', + incertitudes: {}, + date: '2020-01-02', + titreDemarcheId: 'demarche-id' + } + + store.state.titreEtapeEdition.metas.demarche = { id: 'demarche-id' } + store.state.titreEtapeEdition.metas.etapesTypes = [ + { id: 'etape-type-id', documentsTypes: [], justificatifsTypes: [] } + ] + + const apiMock1 = api.etapeHeritage.mockResolvedValue(titreEtapeHeritageRes1) + await store.dispatch('titreEtapeEdition/heritageGet', { + typeId: 'etape-type-id' + }) + + expect(apiMock1).toHaveBeenCalled() + expect(store.state.titreEtapeEdition.element).toEqual(titreEtapeHeritage1) + + const apiMock2 = api.etapeHeritage.mockResolvedValue(titreEtapeHeritageRes1) + await store.dispatch('titreEtapeEdition/heritageGet', { + typeId: 'etape-type-id' + }) + + expect(apiMock2).toHaveBeenCalled() + expect(store.state.titreEtapeEdition.element).toEqual(titreEtapeHeritage1) + + store.state.titreEtapeEdition.element = { + date: '2020-01-01', + typeId: 'etape-type-id', + incertitudes: {}, + titreDemarcheId: 'demarche-id', + heritageProps: {} + } + + const apiMock3 = api.etapeHeritage.mockResolvedValue({ + type: { id: 'new-etape-type-id' } + }) + await store.dispatch('titreEtapeEdition/heritageGet', { + typeId: 'etape-type-id', + titreDemarcheId: 'demarche-id', + date: '2020-01-02' + }) + + expect(apiMock3).toHaveBeenCalled() + expect(store.state.titreEtapeEdition.element).toEqual({ + date: '2020-01-01', + incertitudes: { date: undefined }, + statutId: '', + titreDemarcheId: 'demarche-id', + type: { + id: 'new-etape-type-id' + }, + documents: [] + }) + + const apiMock4 = api.etapeHeritage.mockResolvedValue(titreEtapeHeritageRes2) + await store.dispatch('titreEtapeEdition/heritageGet', { + typeId: 'etape-type-id', + titreDemarcheId: 'demarche-id', + date: '2020-01-02' + }) + + expect(apiMock4).toHaveBeenCalled() + expect(store.state.titreEtapeEdition.element).toEqual(titreEtapeHeritage2) + }) + + test("retourne une erreur si l'API retourne une erreur lors de la récupération de l'héritage", async () => { + api.etapeHeritage.mockRejectedValue(new Error('erreur api')) + await store.dispatch('titreEtapeEdition/heritageGet', { + typeId: 'etape-type-id', + titreDemarcheId: 'demarche-id', + date: '2020-01-02' + }) + + expect(actions.apiError).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la récupération des etapesTypes", async () => { + api.titreEtapeEtapesTypes.mockRejectedValue(new Error('erreur api')) + await store.dispatch('titreEtapeEdition/dateUpdate', { + date: '2020-01-02' + }) + + expect(actions.pageError).toHaveBeenCalled() + }) + + test('créé une étape', async () => { + store.state.titreEtapeEdition.metas.demarche = { id: 'demarche-id' } + api.etapeCreer.mockResolvedValue({ id: 14, nom: 'champs', type: {} }) + await store.dispatch('titreEtapeEdition/upsert', { + etape: { + nom: 'champs', + incertitudes: {}, + type: {} + } + }) + + expect(router.push).toHaveBeenCalled() + + store.commit('titreEtapeEdition/reset') + + expect(store.state.titreEtapeEdition.element).toBeNull() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la création d'une étape", async () => { + api.etapeCreer.mockRejectedValue(new Error('erreur api')) + await store.dispatch('titreEtapeEdition/upsert', { + nom: 'champs', + incertitudes: {} + }) + + expect(actions.apiError).toHaveBeenCalled() + }) + + test('met à jour une étape', async () => { + store.state.titreEtapeEdition.metas.demarche = { id: 'demarche-id' } + api.etapeModifier.mockResolvedValue({ id: 14, nom: 'champs', type: {} }) + await store.dispatch('titreEtapeEdition/upsert', { + etape: { + id: 14, + nom: 'champs', + incertitudes: {}, + type: {} + } + }) + + expect(router.push).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la mise à jour d'une étape", async () => { + api.etapeModifier.mockRejectedValue(new Error("erreur de l'api")) + await store.dispatch('titreEtapeEdition/upsert', { + etape: { + id: 14, + nom: 'champs', + incertitudes: {} + } + }) + + expect(actions.apiError).toHaveBeenCalled() + }) + + test('ajoute un nouveau document', async () => { + const type = { id: 'type-id', optionnel: false } + store.state.titreEtapeEdition.element = { + documents: [], + type: { id: 'mfr', documentsTypes: [type] } + } + + store.state.titreEtapeEdition.metas = { + etapesTypes: [{ id: 'mfr' }] + } + await store.dispatch('titreEtapeEdition/documentAdd', { + document: { id: 'document-id', type } + }) + + expect(store.state.titreEtapeEdition.element.documents).toHaveLength(1) + }) + + test('remplace un document existant par un nouveau', async () => { + const type = { id: 'type-id', optionnel: false } + store.state.titreEtapeEdition.element = { + documents: [{ id: 'document-id1' }], + type: { id: 'mfr', documentsTypes: [type] } + } + + store.state.titreEtapeEdition.metas = { + etapesTypes: [{ id: 'mfr' }] + } + await store.dispatch('titreEtapeEdition/documentAdd', { + document: { id: 'document-id2', type }, + idOld: 'document-id1' + }) + + expect(store.state.titreEtapeEdition.element.documents).toHaveLength(1) + expect(store.state.titreEtapeEdition.element.documents[0].id).toEqual( + 'document-id2' + ) + }) + + test('supprime un document', async () => { + const type = { id: 'type-id', optionnel: false } + store.state.titreEtapeEdition.element = { + documents: [ + { id: 'document-id1', type, typeId: type.id }, + { id: 'document-id2', type, typeId: type.id } + ], + type: { id: 'mfr', documentsTypes: [type] } + } + + store.state.titreEtapeEdition.metas = { + etapesTypes: [{ id: 'mfr' }] + } + await store.dispatch('titreEtapeEdition/documentRemove', { + id: 'document-id2' + }) + + expect(store.state.titreEtapeEdition.element.documents).toHaveLength(1) + expect(store.state.titreEtapeEdition.element.documents[0].id).toEqual( + 'document-id1' + ) + }) +}) diff --git a/packages/ui/src/store/titre-etape.js b/packages/ui/src/store/titre-etape.js new file mode 100644 index 000000000..2456a84fd --- /dev/null +++ b/packages/ui/src/store/titre-etape.js @@ -0,0 +1,84 @@ +import { etape, etapeDeposer, etapeSupprimer } from '../api/titres-etapes' + +const stateInitial = { + element: null +} + +const state = JSON.parse(JSON.stringify(stateInitial)) + +const actions = { + async get({ commit, dispatch }, id) { + try { + commit('loadingAdd', 'titreEtapeGet', { root: true }) + + const newEtape = await etape({ id }) + + if (!newEtape) { + dispatch('pageError', null, { root: true }) + } + + commit('set', { etape: newEtape }) + history.replaceState({}, null, newEtape.slug) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeGet', { root: true }) + } + }, + + async depose({ commit, dispatch }, etapeId) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreEtapeDepose', { root: true }) + + const data = await etapeDeposer({ id: etapeId }) + + commit('popupClose', null, { root: true }) + await dispatch('reload', { name: 'titre', id: data.slug }, { root: true }) + dispatch( + 'messageAdd', + { value: `la demande a été déposée`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeDepose', { root: true }) + } + }, + + async remove({ commit, dispatch }, id) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreEtapeRemove', { root: true }) + const data = await etapeSupprimer({ id }) + + commit('popupClose', null, { root: true }) + await dispatch('reload', { name: 'titre', id: data.slug }, { root: true }) + dispatch( + 'messageAdd', + { value: `le titre a été mis à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreEtapeRemove', { root: true }) + } + } +} + +const mutations = { + set(state, { etape }) { + state.element = etape + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/titre-etape.test.js b/packages/ui/src/store/titre-etape.test.js new file mode 100644 index 000000000..529edd072 --- /dev/null +++ b/packages/ui/src/store/titre-etape.test.js @@ -0,0 +1,114 @@ +import titreEtape from './titre-etape' +import * as api from '../api/titres-etapes' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/titres-etapes', () => ({ + etape: jest.fn(), + etapeDeposer: jest.fn(), + etapeSupprimer: jest.fn() +})) + +console.info = jest.fn() + +describe('étapes', () => { + let store + let actions + let mutations + + beforeEach(() => { + titreEtape.state = { + element: null + } + + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn() + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + apiError: jest.fn(), + popupLoad: jest.fn(), + fileLoad: jest.fn(), + popupMessagesRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn() + } + + store = createStore({ + actions, + mutations, + modules: { + titreEtape, + titre: { namespaced: true, mutations: { open: jest.fn() } } + } + }) + + const app = createApp({}) + app.use(store) + }) + + test('retourne une étape', async () => { + const apiMock = api.etape.mockResolvedValue({ id: 83, nom: 'marne' }) + await store.dispatch('titreEtape/get', 83) + + expect(apiMock).toHaveBeenCalledWith({ id: 83 }) + expect(store.state.titreEtape.element).toEqual({ id: 83, nom: 'marne' }) + }) + + test("affiche une page d'erreur si l'id de l’étape retourne null", async () => { + const apiMock = api.etape.mockResolvedValue(null) + await store.dispatch('titreEtape/get', 27) + + expect(apiMock).toHaveBeenCalledWith({ id: 27 }) + expect(actions.pageError).toHaveBeenCalled() + }) + + test("retourne une erreur si de l'api ne répond pas lors d'une requête sur une étape", async () => { + api.etape.mockRejectedValue(new Error("erreur de l'api")) + await store.dispatch('titreEtape/get', 83) + + expect(store.state.titreEtape.element).toEqual(null) + expect(actions.apiError).toHaveBeenCalled() + }) + + test('dépose une étape', async () => { + const apiMock = api.etapeDeposer.mockResolvedValue(14) + await store.dispatch('titreEtape/depose', 14) + + expect(apiMock).toHaveBeenCalledWith({ id: 14 }) + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors du dépot d'une étape", async () => { + const apiMock = api.etapeDeposer.mockRejectedValue( + new Error("erreur de l'api") + ) + await store.dispatch('titreEtape/depose', 14) + + expect(apiMock).toHaveBeenCalledWith({ id: 14 }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('supprime une étape', async () => { + const apiMock = api.etapeSupprimer.mockResolvedValue(14) + await store.dispatch('titreEtape/remove', 14) + + expect(apiMock).toHaveBeenCalledWith({ id: 14 }) + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la suppression d'une étape", async () => { + const apiMock = api.etapeSupprimer.mockRejectedValue( + new Error("erreur de l'api") + ) + await store.dispatch('titreEtape/remove', 14) + + expect(apiMock).toHaveBeenCalledWith({ id: 14 }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/titre.js b/packages/ui/src/store/titre.js new file mode 100644 index 000000000..4b93c5ac1 --- /dev/null +++ b/packages/ui/src/store/titre.js @@ -0,0 +1,242 @@ +import { + titreMetas, + titre, + titreCreer, + titreModifier, + titreSupprimer +} from '../api/titres' + +import router from '../router' +import { utilisateurTitreAbonner } from '../api/utilisateurs-titres' + +const state = { + element: null, + metas: { + referencesTypes: [], + domaines: [], + administrations: [] + }, + opened: { + etapes: {}, + activites: {}, + travaux: {} + }, + tabId: 'demarches' +} + +const getters = { + tabId(state, getters) { + const tabIds = getters.tabs.map(({ id }) => id) + + if (!tabIds.includes(state.tabId)) { + return tabIds[0] + } + + return state.tabId + }, + + tabs(state, getters, rootState, rootGetters) { + const tabs = [{ id: 'demarches', nom: 'Droits miniers' }] + + if (state.element?.activites?.length) { + tabs.push({ id: 'activites', nom: 'Activités' }) + } + + if (getters.travaux.length || state.element?.travauxCreation) { + tabs.push({ id: 'travaux', nom: 'Travaux' }) + } + + if (rootGetters['user/userIsSuper']) { + tabs.push({ id: 'journaux', nom: 'Journaux' }) + } + + return tabs + }, + + demarches(state) { + return state.element?.demarches?.filter(d => !d.type.travaux) || [] + }, + + travaux(state) { + return state.element?.demarches?.filter(d => d.type.travaux) || [] + } +} + +const actions = { + async init({ commit }) { + try { + commit('loadingAdd', 'titreInit', { root: true }) + + const data = await titreMetas() + + commit('metasSet', { referencesTypes: data.referencesTypes }) + commit('metasSet', { administrations: data.administrations.elements }) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreInit', { root: true }) + } + }, + + async get({ commit, dispatch }, id) { + try { + commit('loadingAdd', 'titre', { root: true }) + + const data = await titre({ id }) + + if (data) { + commit('set', data) + // remplace l’id de l’url par le slug + history.replaceState({}, null, data.slug) + } else { + dispatch('pageError', null, { root: true }) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titre', { root: true }) + } + }, + + async add({ commit, dispatch }, titre) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreAdd', { root: true }) + + const data = await titreCreer({ titre }) + + commit('popupClose', null, { root: true }) + router.push({ name: 'titre', params: { id: data.slug } }) + dispatch( + 'messageAdd', + { + value: 'le titre a été créé', + type: 'success' + }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreAdd', { root: true }) + } + }, + + async update({ commit, dispatch }, titre) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'totreUpdate', { root: true }) + + const data = await titreModifier({ titre }) + + commit('popupClose', null, { root: true }) + await dispatch('reload', { name: 'titre', id: data.slug }, { root: true }) + dispatch( + 'messageAdd', + { value: 'le titre a été mis à jour', type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'totreUpdate', { root: true }) + } + }, + + async remove({ commit, dispatch }, id) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'titreRemove', { root: true }) + + await titreSupprimer({ id }) + + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: `le titre a été supprimé`, + type: 'success' + }, + { root: true } + ) + router.push({ name: 'titres' }) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'titreRemove', { root: true }) + } + }, + + async subscribe({ state, commit, dispatch }, { titreId, abonner }) { + try { + commit('loadingAdd', 'titreSubscribe', { root: true }) + + await utilisateurTitreAbonner({ titreId, abonner }) + + state.element.abonnement = abonner + commit('set', state.element) + + dispatch( + 'messageAdd', + { + value: `Vous êtes ${abonner ? 'abonné' : 'désabonné'} à ce titre`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titreSubscribe', { root: true }) + } + } +} + +const mutations = { + set(state, titre) { + state.element = titre + }, + + reset(state) { + state.element = null + }, + + metasSet(state, data) { + Object.keys(data).forEach(id => { + state.metas[id] = data[id] + }) + }, + + open(state, { section, id }) { + if (!state.opened[section][id]) { + state.opened[section][id] = true + } + + state.tabId = section + }, + + close(state, { section, id }) { + if (state.opened[section][id]) { + state.opened[section][id] = false + } + }, + + toggle(state, { section, id }) { + state.opened[section][id] = !state.opened[section][id] + }, + + openTab(state, tabId) { + state.tabId = tabId + } +} + +export default { + namespaced: true, + state, + actions, + mutations, + getters +} diff --git a/packages/ui/src/store/titre.test.js b/packages/ui/src/store/titre.test.js new file mode 100644 index 000000000..2f122f1da --- /dev/null +++ b/packages/ui/src/store/titre.test.js @@ -0,0 +1,224 @@ +import titre from './titre' +import * as api from '../api/titres' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../router', () => ({ + push: () => {} +})) + +jest.mock('../api/titres', () => ({ + titreMetas: jest.fn(), + titre: jest.fn(), + titreCreer: jest.fn(), + titreModifier: jest.fn(), + titreSupprimer: jest.fn(), + utilisateurTitreAbonner: jest.fn() +})) + +console.info = jest.fn() + +describe('état du titre sélectionné', () => { + let store + let actions + let mutations + + beforeEach(() => { + titre.state = { + element: null, + metas: { + referencesTypes: [], + domaines: [] + }, + opened: { + etapes: {}, + activites: { 'activite-id': false }, + travaux: {} + } + } + + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn() + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + popupLoad: jest.fn(), + popupMessagesRemove: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn() + } + + store = createStore({ + modules: { titre }, + actions, + mutations + }) + + const app = createApp({}) + app.use(store) + }) + + test('récupère les métas pour éditer un titre', async () => { + const apiMock = api.titreMetas.mockResolvedValueOnce({ + referencesTypes: [ + { id: 'ifr', nom: 'Ifremer' }, + { id: 'dge', nom: 'DGEC' } + ] + }) + + await store.dispatch('titre/init') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.titre.metas.referencesTypes).toEqual([ + { id: 'ifr', nom: 'Ifremer' }, + { id: 'dge', nom: 'DGEC' } + ]) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.titreMetas.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('titre/init') + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('retourne un titre', async () => { + const apiMock = api.titre.mockResolvedValue({ id: 83, nom: 'marne' }) + await store.dispatch('titre/get', 83) + + expect(apiMock).toHaveBeenCalledWith({ id: 83 }) + expect(store.state.titre.element).toEqual({ id: 83, nom: 'marne' }) + }) + + test("affiche une page d'erreur si l'id du titre retourne null", async () => { + const apiMock = api.titre.mockResolvedValue(null) + await store.dispatch('titre/get', 27) + + expect(apiMock).toHaveBeenCalledWith({ id: 27 }) + expect(actions.pageError).toHaveBeenCalled() + }) + + test("retourne une erreur si de l'api ne répond pas lors d'une requête sur un titre", async () => { + api.titre.mockRejectedValue(new Error("erreur de l'api")) + await store.dispatch('titre/get', 83) + + expect(store.state.titre.element).toEqual(null) + expect(actions.apiError).toHaveBeenCalled() + }) + + test('crée un titre', async () => { + api.titreCreer.mockResolvedValue({ id: 83, nom: 'marne' }) + await store.dispatch('titre/add', { id: 83, nom: 'marne' }) + + expect(mutations.popupClose).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la création dun titre", async () => { + api.titreCreer.mockRejectedValue(new Error('erreur api')) + await store.dispatch('titre/add', { id: 83, nom: 'marne' }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('met à jour un titre', async () => { + store = createStore({ modules: { titre }, actions, mutations }) + api.titreModifier.mockResolvedValue({ id: 83, nom: 'marne' }) + await store.dispatch('titre/update', { id: 83, nom: 'marne' }) + + expect(mutations.popupClose).toHaveBeenCalled() + expect(actions.reload).toHaveBeenCalled() + }) + + test("retourne une erreur si l'API retourne une erreur lors de la mise à jour d'un titre", async () => { + api.titreModifier.mockRejectedValue(new Error('erreur api')) + await store.dispatch('titre/update', { id: 83, nom: 'marne' }) + + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('supprime un titre', async () => { + const apiMock = api.titreSupprimer.mockResolvedValue(true) + await store.dispatch('titre/remove', 83) + + expect(apiMock).toHaveBeenCalledWith({ id: 83 }) + }) + + test("retourne une erreur si l'API retourne une erreur lors de la suppression d'un titre", async () => { + const apiMock = api.titreSupprimer.mockRejectedValue( + new Error("error de l'api") + ) + await store.dispatch('titre/remove', 83) + + expect(apiMock).toHaveBeenCalledWith({ id: 83 }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('supprime le titre courant', () => { + store.commit('titre/set', 83) + store.commit('titre/reset') + + expect(store.state.titre.element).toBeNull() + }) + + test('ouvre et ferme une section', () => { + store.commit('titre/open', { section: 'etapes', id: 'etape-id' }) + + expect(store.state.titre.opened.etapes['etape-id']).toBeTruthy() + + store.commit('titre/open', { section: 'etapes', id: 'etape-id' }) + + expect(store.state.titre.opened.etapes['etape-id']).toBeTruthy() + + store.commit('titre/close', { section: 'etapes', id: 'etape-id' }) + + expect(store.state.titre.opened.etapes['etape-id']).toBeFalsy() + + store.commit('titre/close', { section: 'etapes', id: 'etape-id' }) + + expect(store.state.titre.opened.etapes['etape-id']).toBeFalsy() + }) + + test("permute l'ouverture une section", () => { + expect(store.state.titre.opened.activites['activite-id']).toBeFalsy() + store.commit('titre/toggle', { section: 'activites', id: 'activite-id' }) + + expect(store.state.titre.opened.activites['activite-id']).toBeTruthy() + + store.commit('titre/toggle', { section: 'activites', id: 'activite-id' }) + + expect(store.state.titre.opened.activites['activite-id']).toBeFalsy() + }) + + test('une seule tab est visible par défaut', () => { + expect(store.getters['titre/tabs']).toMatchObject([{ id: 'demarches' }]) + }) + + test('la tab des activités est visible si il existe au moins une activité', () => { + store.state.titre.element = { activites: [{}], demarches: [] } + expect(store.getters['titre/tabs']).toMatchObject([ + { id: 'demarches' }, + { id: 'activites' } + ]) + }) + + test('la tab des travaux est visible si il existe au moins un travaux', () => { + store.state.titre.element = { + demarches: [{ type: { travaux: true } }] + } + expect(store.getters['titre/tabs']).toMatchObject([ + { id: 'demarches' }, + { id: 'travaux' } + ]) + }) +}) diff --git a/packages/ui/src/store/titres-activites.js b/packages/ui/src/store/titres-activites.js new file mode 100644 index 000000000..8b770cab0 --- /dev/null +++ b/packages/ui/src/store/titres-activites.js @@ -0,0 +1,126 @@ +import { activites } from '../api/titres-activites' +import { activitesMetas } from '../api/metas-activites' +import { listeActionsBuild, listeMutations } from './_liste-build' + +const state = { + elements: [], + total: 0, + metas: { + types: [], + annees: [], + statuts: [], + titresDomaines: [], + titresTypes: [], + titresStatuts: [] + }, + definitions: [ + { id: 'typesIds', type: 'strings', values: [] }, + { id: 'statutsIds', type: 'strings', values: [] }, + { id: 'annees', type: 'numbers', values: [] }, + { id: 'titresNoms', type: 'string' }, + { id: 'titresEntreprises', type: 'string' }, + { id: 'titresSubstances', type: 'string' }, + { id: 'titresReferences', type: 'string' }, + { id: 'titresTerritoires', type: 'string' }, + { id: 'titresTypesIds', type: 'strings', values: [] }, + { id: 'titresDomainesIds', type: 'strings', values: [] }, + { id: 'titresStatutsIds', type: 'strings', values: [] }, + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + values: ['titreNom', 'titulaires', 'annee', 'periode', 'statut'] + }, + { + id: 'ordre', + type: 'string', + values: ['asc', 'desc'] + } + ], + params: { + table: { + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: null + }, + filtres: { + typesIds: [], + statutsIds: [], + annees: [], + titresNoms: '', + titresEntreprises: '', + titresSubstances: '', + titresReferences: '', + titresTerritoires: '', + titresTypesIds: [], + titresDomainesIds: [], + titresStatutsIds: [] + } + }, + initialized: false +} + +const actions = listeActionsBuild( + 'titresActivites', + 'activités', + activites, + activitesMetas +) + +const mutations = Object.assign({}, listeMutations, { + metasSet(state, data) { + Object.keys(data).forEach(id => { + let metaId + let paramId + + if (id === 'activitesTypes') { + metaId = 'types' + paramId = 'typesIds' + } else if (id === 'activitesStatuts') { + metaId = 'statuts' + paramId = 'statutsIds' + } else if (id === 'activitesAnnees') { + metaId = 'annees' + paramId = 'annees' + } else if (id === 'domaines') { + metaId = 'titresDomaines' + paramId = 'titresDomainesIds' + } else if (id === 'types') { + metaId = 'titresTypes' + paramId = 'titresTypesIds' + } else if (id === 'statuts') { + metaId = 'titresStatuts' + paramId = 'titresStatutsIds' + } + + if (metaId) { + const param = state.definitions.find(p => p.id === metaId) + if (param && param.type && param.type === 'numbers') { + state.metas[metaId] = data[id].map(annee => { + return { id: annee, nom: annee } + }) + } else { + state.metas[metaId] = data[id] + } + } + + if (paramId) { + const definition = state.definitions.find(p => p.id === paramId) + if (definition && definition.type && definition.type === 'numbers') { + definition.values = data[id] + } else { + definition.values = data[id].map(e => e.id) + } + } + }) + } +}) + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/titres-activites.test.js b/packages/ui/src/store/titres-activites.test.js new file mode 100644 index 000000000..7f6a45ed0 --- /dev/null +++ b/packages/ui/src/store/titres-activites.test.js @@ -0,0 +1,105 @@ +import titresActivites from './titres-activites' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/titres-activites', () => ({ + activites: jest.fn() +})) + +jest.mock('../api/metas-activites', () => ({ + activitesMetas: jest.fn() +})) + +console.info = jest.fn() + +describe("état d'une activité", () => { + let store + + beforeEach(() => { + titresActivites.state = { + metas: { + types: [], + annees: [], + statuts: [], + titresDomaines: [], + titresTypes: [], + titresStatuts: [] + }, + definitions: [ + { id: 'typesIds', type: 'strings', values: [] }, + { id: 'statutsIds', type: 'strings', values: [] }, + { id: 'annees', type: 'numbers', values: [] }, + { id: 'titresTypesIds', type: 'strings', values: [] }, + { id: 'titresDomainesIds', type: 'strings', values: [] }, + { id: 'titresStatutsIds', type: 'strings', values: [] } + ] + } + + store = createStore({ + modules: { titresActivites } + }) + + const app = createApp({}) + app.use(store) + }) + + test('enregistre les métas', () => { + const activitesTypes = [ + { id: 'grp', nom: "rapport trimestriel d'activité" } + ] + const activitesAnnees = [2020, 2019] + const activitesStatuts = [ + { id: 'abs', nom: 'absent', couleur: 'error' }, + { id: 'enc', nom: 'en construction', couleur: 'warning' }, + { id: 'dep', nom: 'déposé', couleur: 'success' }, + { id: 'fer', nom: 'cloturé', couleur: 'neutral' } + ] + const domaines = [ + { id: 'm', nom: 'minéraux et métaux' }, + { id: 'w', nom: 'granulats marins' } + ] + const statuts = [ + { id: 'val', nom: 'valide', couleur: 'success' }, + { id: 'ech', nom: 'échu', couleur: 'neutral' } + ] + const types = [ + { id: 'cx', nom: 'concession', exploitation: true }, + { id: 'pr', nom: 'permis exclusif de recherches', exploitation: false } + ] + + store.commit('titresActivites/metasSet', { + activitesTypes, + activitesAnnees, + activitesStatuts, + domaines, + statuts, + types, + truc: {} + }) + + expect(store.state.titresActivites.metas).toEqual({ + types: activitesTypes, + annees: [ + { id: 2020, nom: 2020 }, + { id: 2019, nom: 2019 } + ], + statuts: activitesStatuts, + titresDomaines: domaines, + titresTypes: types, + titresStatuts: statuts + }) + + expect(store.state.titresActivites.definitions).toEqual([ + { id: 'typesIds', type: 'strings', values: ['grp'] }, + { + id: 'statutsIds', + type: 'strings', + values: ['abs', 'enc', 'dep', 'fer'] + }, + { id: 'annees', type: 'numbers', values: [2020, 2019] }, + { id: 'titresTypesIds', type: 'strings', values: ['cx', 'pr'] }, + { id: 'titresDomainesIds', type: 'strings', values: ['m', 'w'] }, + { id: 'titresStatutsIds', type: 'strings', values: ['val', 'ech'] } + ]) + }) +}) diff --git a/packages/ui/src/store/titres-demarches.js b/packages/ui/src/store/titres-demarches.js new file mode 100644 index 000000000..f472dd435 --- /dev/null +++ b/packages/ui/src/store/titres-demarches.js @@ -0,0 +1,159 @@ +import { demarchesMetas, demarches } from '../api/titres-demarches' +import { listeActionsBuild, listeMutations } from './_liste-build' + +const state = { + elements: [], + total: 0, + metas: { + types: [], + statuts: [], + etapesTypes: [], + titresTypes: [], + titresDomaines: [], + titresStatuts: [] + }, + definitions: [ + { id: 'typesIds', type: 'strings', values: [] }, + { id: 'statutsIds', type: 'strings', values: [] }, + { id: 'etapesInclues', type: 'objects', values: [] }, + { id: 'etapesExclues', type: 'objects', values: [] }, + { id: 'titresDomainesIds', type: 'strings', values: [] }, + { id: 'titresTypesIds', type: 'strings', values: [] }, + { id: 'titresStatutsIds', type: 'strings', values: [] }, + { id: 'titresNoms', type: 'string' }, + { id: 'titresEntreprises', type: 'string' }, + { id: 'titresSubstances', type: 'string' }, + { id: 'titresReferences', type: 'string' }, + { id: 'titresTerritoires', type: 'string' }, + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + values: [ + 'titreNom', + 'titreDomaine', + 'titreType', + 'titreStatut', + 'type', + 'statut', + 'reference' + ] + }, + { + id: 'ordre', + type: 'string', + values: ['asc', 'desc'] + } + ], + params: { + table: { + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: null + }, + filtres: { + typesIds: [], + statutsIds: [], + etapesInclues: [], + etapesExclues: [], + titresDomainesIds: [], + titresTypesIds: [], + titresStatutsIds: [], + titresNoms: '', + titresEntreprises: '', + titresSubstances: '', + titresReferences: '', + titresTerritoires: '' + } + }, + initialized: false +} + +const actions = listeActionsBuild( + 'titresDemarches', + 'démarches', + demarches, + demarchesMetas +) + +const mutations = Object.assign({}, listeMutations, { + reset(state) { + listeMutations.reset(state) + state.metas = { + types: [], + statuts: [], + etapesTypes: [], + titresTypes: [], + titresDomaines: [], + titresStatuts: [] + } + state.params = { + table: { + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: null + }, + filtres: { + typesIds: [], + statutsIds: [], + etapesInclues: [], + etapesExclues: [], + titresDomainesIds: [], + titresTypesIds: [], + titresStatutsIds: [], + titresNoms: '', + titresEntreprises: '', + titresSubstances: '', + titresReferences: '', + titresTerritoires: '' + } + } + }, + metasSet(state, data) { + Object.keys(data).forEach(id => { + let metaId + let paramsIds + + if (id === 'demarchesTypes') { + metaId = 'types' + paramsIds = ['typesIds'] + } else if (id === 'demarchesStatuts') { + metaId = 'statuts' + paramsIds = ['statutsIds'] + } else if (id === 'etapesTypes') { + metaId = 'etapesTypes' + paramsIds = ['etapesInclues', 'etapesExclues'] + } else if (id === 'statuts') { + metaId = 'titresStatuts' + paramsIds = ['titresStatutsIds'] + } else if (id === 'types') { + metaId = 'titresTypes' + paramsIds = ['titresTypesIds'] + } else if (id === 'domaines') { + metaId = 'titresDomaines' + paramsIds = ['titresDomainesIds'] + } + + if (metaId) { + state.metas[metaId] = data[id] + } + + if (paramsIds) { + paramsIds.forEach(paramId => { + const definition = state.definitions.find(p => p.id === paramId) + definition.values = data[id].map(e => e.id) + }) + } + }) + } +}) + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/titres-demarches.test.js b/packages/ui/src/store/titres-demarches.test.js new file mode 100644 index 000000000..47357ee50 --- /dev/null +++ b/packages/ui/src/store/titres-demarches.test.js @@ -0,0 +1,99 @@ +import titresDemarches from './titres-demarches' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/titres-demarches', () => ({ + demarchesMetas: jest.fn(), + demarches: jest.fn() +})) + +console.info = jest.fn() + +describe('liste des demarches', () => { + let store + + beforeEach(() => { + titresDemarches.state = { + metas: { + types: [], + statuts: [], + etapesTypes: [], + titresTypes: [], + titresDomaines: [], + titresStatuts: [] + }, + definitions: [ + { id: 'typesIds', type: 'strings', values: [] }, + { id: 'statutsIds', type: 'strings', values: [] }, + { id: 'etapesInclues', type: 'objects', values: [] }, + { id: 'etapesExclues', type: 'objects', values: [] }, + { id: 'titresDomainesIds', type: 'strings', values: [] }, + { id: 'titresTypesIds', type: 'strings', values: [] }, + { id: 'titresStatutsIds', type: 'strings', values: [] } + ] + } + + store = createStore({ + modules: { titresDemarches } + }) + + const app = createApp({}) + app.use(store) + }) + + test('enregistre les métas', () => { + const demarchesTypes = [{ id: 'oct', nom: 'octroi' }] + const demarchesStatuts = [ + { id: 'abs', nom: 'absent', couleur: 'error' }, + { id: 'enc', nom: 'en construction', couleur: 'warning' }, + { id: 'dep', nom: 'déposé', couleur: 'success' }, + { id: 'fer', nom: 'cloturé', couleur: 'neutral' } + ] + const domaines = [ + { id: 'm', nom: 'minéraux et métaux' }, + { id: 'w', nom: 'granulats marins' } + ] + const statuts = [ + { id: 'val', nom: 'valide', couleur: 'success' }, + { id: 'ech', nom: 'échu', couleur: 'neutral' } + ] + const types = [ + { id: 'cx', nom: 'concession', exploitation: true }, + { id: 'pr', nom: 'permis exclusif de recherches', exploitation: false } + ] + const etapesTypes = [{ id: 'dpu', nom: 'publication au Jorf' }] + + store.commit('titresDemarches/metasSet', { + demarchesTypes, + demarchesStatuts, + domaines, + statuts, + types, + etapesTypes, + truc: {} + }) + + expect(store.state.titresDemarches.metas).toEqual({ + types: demarchesTypes, + statuts: demarchesStatuts, + titresDomaines: domaines, + titresTypes: types, + titresStatuts: statuts, + etapesTypes + }) + + expect(store.state.titresDemarches.definitions).toEqual([ + { values: ['oct'], id: 'typesIds', type: 'strings' }, + { + values: ['abs', 'enc', 'dep', 'fer'], + id: 'statutsIds', + type: 'strings' + }, + { values: ['dpu'], id: 'etapesInclues', type: 'objects' }, + { values: ['dpu'], id: 'etapesExclues', type: 'objects' }, + { values: ['m', 'w'], id: 'titresDomainesIds', type: 'strings' }, + { values: ['cx', 'pr'], id: 'titresTypesIds', type: 'strings' }, + { values: ['val', 'ech'], id: 'titresStatutsIds', type: 'strings' } + ]) + }) +}) diff --git a/packages/ui/src/store/titres.js b/packages/ui/src/store/titres.js new file mode 100644 index 000000000..83b1d3572 --- /dev/null +++ b/packages/ui/src/store/titres.js @@ -0,0 +1,298 @@ +import { urlQueryParamsGet } from '../utils/url' +import { titresMetas, titresGeo, titres, titresGeoPolygon } from '../api/titres' +import { paramsBuild } from '../utils/' +import { listeMutations } from './_liste-build' + +const state = { + elements: [], + total: 0, + vueId: 'carte', + metas: { + domaines: [], + types: [], + statuts: [], + substancesLegales: [] + }, + definitions: [ + { id: 'typesIds', type: 'strings', values: [] }, + { id: 'domainesIds', type: 'strings', values: [] }, + { id: 'statutsIds', type: 'strings', values: [] }, + { id: 'substancesLegalesIds', type: 'strings', values: [] }, + { id: 'titresIds', type: 'strings', values: [] }, + { id: 'entreprisesIds', type: 'strings', values: [] }, + { id: 'references', type: 'string' }, + { id: 'territoires', type: 'string' }, + { id: 'page', type: 'number', value: 1, min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + values: [ + 'nom', + 'domaine', + 'type', + 'statut', + 'activitesTotal', + 'substances', + 'titulaires', + 'references' + ] + }, + { + id: 'ordre', + type: 'string', + values: ['asc', 'desc'] + }, + { id: 'perimetre', type: 'numbers' } + ], + urlDefinitions: [ + { id: 'zoom', type: 'number', min: 1, max: 18 }, + { id: 'centre', type: 'tuple' }, + { id: 'vueId', type: 'string', values: ['carte', 'table'] } + ], + params: { + table: { page: 1, intervalle: 200, ordre: 'asc', colonne: 'nom' }, + carte: { perimetre: [0, 0, 0, 0], zoom: null, centre: [] }, + filtres: { + typesIds: [], + domainesIds: [], + statutsIds: [], + substancesLegalesIds: [], + titresIds: [], + entreprisesIds: '', + references: '', + territoires: '' + } + }, + initialized: false +} + +const actions = { + async init({ state, commit, dispatch }) { + try { + commit('loadingAdd', 'titresInit', { root: true }) + + const data = await titresMetas() + + commit('metasSet', data) + + if (!state.initialized) { + await dispatch('paramsFromQueryUpdate') + + commit('init') + } + + if (state.vueId === 'table') { + await dispatch('get') + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titresInit', { root: true }) + } + }, + + async get({ state, dispatch, commit }) { + try { + commit('loadingAdd', 'titres', { root: true }) + + if (!state.initialized) return + + await dispatch('urlQueryUpdate') + + let data + + if (state.vueId === 'carte') { + const definitions = paramsBuild( + state.definitions, + Object.assign({}, state.params.filtres, state.params.carte) + ) + + if (state.params.carte.zoom > 7) { + data = await titresGeoPolygon(definitions) + } else { + data = await titresGeo(definitions) + } + } else { + const definitions = paramsBuild( + state.definitions, + Object.assign({}, state.params.filtres, state.params.table) + ) + data = await titres(definitions) + if (!data.elements.length && data.total) { + commit('paramsSet', { section: 'table', params: { page: 1 } }) + await dispatch('urlQueryUpdate') + await dispatch('routeUpdate') + return + } + } + + commit('set', Object.freeze(data)) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'titres', { root: true }) + } + }, + + async paramsSet({ state, commit, dispatch }, { section, params }) { + const newParams = Object.keys(params).reduce((acc, id) => { + if (state.params[section][id] !== params[id]) { + acc[id] = params[id] + } + + return acc + }, {}) + + if (Object.keys(newParams).length) { + commit('paramsSet', { section, params: newParams }) + + if ( + section === 'carte' && + !Object.keys(newParams).includes('perimetre') + ) { + return + } + + await dispatch('get') + } + }, + + async vueSet({ state, commit, dispatch }, vueId) { + if (vueId === state.vueId) return + + commit('set', { elements: [], total: 0 }) + commit('vueSet', vueId) + // vueId est 'carte' + // le composant `map.vue` émet un event `perimetre` + // qui met à jour les préférences utilisateurs + // et déclenche déjà un rechargement des titres + if (vueId === 'carte') return + + await dispatch('get') + }, + + async routeUpdate({ dispatch }) { + const hasChanged = await dispatch('paramsFromQueryUpdate') + + if (hasChanged) { + await dispatch('get') + } + }, + + async paramsFromQueryUpdate({ rootState, state, commit }) { + let hasChanged = false + + const vueParams = urlQueryParamsGet( + { vueId: state.vueId }, + rootState.route.query, + state.urlDefinitions.filter(p => p.id === 'vueId') + ) + + if (vueParams.vueId) { + commit('set', { elements: [], total: 0 }) + commit('vueSet', vueParams.vueId) + hasChanged = true + } + + if (state.vueId === 'carte') { + const carteParams = urlQueryParamsGet( + { + zoom: state.params.carte.zoom, + centre: state.params.carte.centre + }, + rootState.route.query, + state.urlDefinitions + ) + + if (Object.keys(carteParams).length) { + commit('paramsSet', { section: 'carte', params: carteParams }) + hasChanged = true + } + } + + if (state.vueId === 'table') { + const tableParams = urlQueryParamsGet( + state.params.table, + rootState.route.query, + state.definitions + ) + + if (Object.keys(tableParams).length) { + commit('paramsSet', { section: 'table', params: tableParams }) + hasChanged = true + } + } + + const filtresParams = urlQueryParamsGet( + state.params.filtres, + rootState.route.query, + state.definitions + ) + + if (Object.keys(filtresParams).length) { + commit('paramsSet', { section: 'filtres', params: filtresParams }) + hasChanged = true + } + + return hasChanged + }, + + async urlQueryUpdate({ state, dispatch }) { + const paramsVue = + state.vueId === 'carte' + ? { + zoom: state.params.carte.zoom, + centre: state.params.carte.centre + } + : state.params.table + + const params = Object.assign( + { vueId: state.vueId }, + state.params.filtres, + paramsVue + ) + + const definitions = [...state.definitions, ...state.urlDefinitions] + + await dispatch('urlQueryUpdate', { params, definitions }, { root: true }) + } +} + +const mutations = Object.assign({}, listeMutations, { + metasSet(state, data) { + Object.keys(data).forEach(id => { + let paramId + if (id === 'types') { + paramId = 'typesIds' + } else if (id === 'domaines') { + paramId = 'domainesIds' + } else if (id === 'statuts') { + paramId = 'statutsIds' + } else if (id === 'substancesLegales') { + paramId = 'substancesLegalesIds' + } else if (id === 'entreprises') { + paramId = 'entreprisesIds' + data[id] = data[id].elements + } + + if (paramId) { + state.metas[id] = data[id] + const definition = state.definitions.find(p => p.id === paramId) + + definition.values = data[id].map(e => e.id) + } + }) + }, + + vueSet(state, vueId) { + state.vueId = vueId + } +}) + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/titres.test.js b/packages/ui/src/store/titres.test.js new file mode 100644 index 000000000..ee66236c5 --- /dev/null +++ b/packages/ui/src/store/titres.test.js @@ -0,0 +1,358 @@ +import titres from './titres' +import * as api from '../api/titres' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/titres', () => ({ + titres: jest.fn(), + titresGeo: jest.fn(), + titresGeoPolygon: jest.fn(), + titresMetas: jest.fn() +})) + +console.info = jest.fn() + +describe('liste des titres', () => { + let actions + let mutations + let store + let titresCarte + let titresListe + let route + + beforeEach(() => { + titresCarte = ['pointe-a-pitre', 'marseille-sud', 'matignon', 'crique'] + titresListe = ['pointe-a-pitre', 'marseille-sud', 'matignon'] + + titres.state = { + elements: [], + total: 0, + vueId: 'carte', + metas: { + domaines: [], + types: [], + statuts: [] + }, + params: { + table: { + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: 'nom' + }, + carte: { zoom: null, centre: [], perimetre: [] }, + filtres: { + typesIds: null, + entreprises: 'fr-', + substances: null, + references: null, + territoires: null, + noms: 's', + domainesIds: ['c', 'w'], + statutsIds: ['val'] + } + }, + definitions: [ + { id: 'typesIds', type: 'strings', values: [] }, + { id: 'domainesIds', type: 'strings', values: [] }, + { id: 'statutsIds', type: 'strings', values: [] }, + { id: 'substances', type: 'string' }, + { id: 'noms', type: 'string' }, + { id: 'entreprises', type: 'string' }, + { id: 'references', type: 'string' }, + { id: 'territoires', type: 'string' }, + { id: 'page', type: 'number', value: 1, min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + values: ['nom', 'domaine', 'type', 'statut', 'activitesTotal'] + }, + { + id: 'ordre', + type: 'string', + values: ['asc', 'desc'] + } + ], + urlDefinitions: [ + { id: 'zoom', type: 'number', min: 1, max: 18 }, + { id: 'centre', type: 'tuple' }, + { id: 'vueId', type: 'string', values: ['carte', 'table'] } + ], + initialized: false + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn() + } + + actions = { + apiError: jest.fn(), + messageAdd: jest.fn(), + urlQueryUpdate: jest.fn() + } + + route = { + namespaced: true, + state: { + query: {} + } + } + + store = createStore({ + modules: { titres, route }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test('initialise le composant', async () => { + const apiMetasMock = api.titresMetas.mockResolvedValue({ + domaines: [ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } + ], + types: [ + { id: 'ifr', nom: 'Ifremer' }, + { id: 'dge', nom: 'DGEC' } + ], + statuts: [ + { id: 'fait', nom: 'fait' }, + { id: 'afa', nom: '` faire`' } + ], + truc: [{ id: 'id-truc' }] + }) + + const apiMock = api.titres.mockResolvedValue({ + elements: [{ id: 'titre-id', nom: 'Nom du titre' }], + total: 1 + }) + + await store.dispatch('titres/init') + + expect(apiMetasMock).toHaveBeenCalled() + expect(apiMock).not.toHaveBeenCalled() + expect(store.state.titres.metas).toEqual({ + domaines: [ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } + ], + types: [ + { id: 'ifr', nom: 'Ifremer' }, + { id: 'dge', nom: 'DGEC' } + ], + statuts: [ + { id: 'fait', nom: 'fait' }, + { id: 'afa', nom: '` faire`' } + ] + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(store.state.titres.initialized).toBeTruthy() + + store.state.titres.vueId = 'table' + + await store.dispatch('titres/init') + + expect(apiMock).toHaveBeenCalled() + + expect(store.state.titres.elements).toEqual([ + { id: 'titre-id', nom: 'Nom du titre' } + ]) + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.titresMetas.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('titres/init') + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(actions.apiError).toHaveBeenCalled() + expect(store.state.titres.initialized).toBeFalsy() + }) + + test('obtient la liste des titres dans la vue "carte"', async () => { + const apiMock = api.titresGeoPolygon.mockResolvedValue({ + elements: titresCarte, + total: 4 + }) + + store.state.titres.initialized = true + store.state.titres.params.carte.zoom = 8 + + await store.dispatch('titres/get') + + expect(apiMock).toHaveBeenCalledWith({ + noms: 's', + domainesIds: ['c', 'w'], + statutsIds: ['val'], + entreprises: 'fr-' + }) + expect(store.state.titres.elements).toEqual(titresCarte) + }) + + test('obtient la liste des titres dans la vue "carte" sans les périmètres', async () => { + const apiMock = api.titresGeo.mockResolvedValue({ + elements: titresCarte, + total: 4 + }) + + store.state.titres.initialized = true + store.state.titres.params.carte.zoom = 7 + + await store.dispatch('titres/get') + + expect(apiMock).toHaveBeenCalledWith({ + noms: 's', + domainesIds: ['c', 'w'], + statutsIds: ['val'], + entreprises: 'fr-' + }) + expect(store.state.titres.elements).toEqual(titresCarte) + }) + + test('obtient la liste des titres dans la vue "table"', async () => { + const apiMock = api.titres.mockResolvedValue({ + elements: titresListe, + total: 3 + }) + store.state.titres.initialized = true + store.state.titres.vueId = 'table' + + await store.dispatch('titres/get') + + expect(apiMock).toHaveBeenCalledWith({ + noms: 's', + domainesIds: ['c', 'w'], + statutsIds: ['val'], + entreprises: 'fr-', + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: 'nom' + }) + expect(store.state.titres.elements).toEqual(titresListe) + + store.commit('titres/reset') + expect(store.state.titres.elements).toEqual([]) + expect(store.state.titres.initialized).toBeFalsy() + }) + + test("retourne une erreur si l'api ne repond pas", async () => { + const apiMock = api.titresGeo.mockRejectedValue( + new Error("l'api ne répond pas") + ) + store.state.titres.initialized = true + + await store.dispatch('titres/get') + + expect(apiMock).toHaveBeenCalledWith({ + noms: 's', + domainesIds: ['c', 'w'], + statutsIds: ['val'], + entreprises: 'fr-' + }) + + expect(actions.apiError).toHaveBeenCalled() + }) + + test('change la vue et recharges les titres', async () => { + const apiTableMock = api.titres.mockResolvedValue({ + elements: [{ id: 'titre-id', nom: 'Nom du titre' }], + total: 1 + }) + const apiGeoMock = api.titresGeo.mockResolvedValue({ + elements: [{ id: 'titre-id-geo', nom: 'Nom du titre' }], + total: 1 + }) + + store.state.titres.elements = [{ id: 'titre-id-init', nom: 'Nom du titre' }] + + await store.dispatch('titres/vueSet', 'carte') + + expect(store.state.titres.elements).toEqual([ + { id: 'titre-id-init', nom: 'Nom du titre' } + ]) + + store.state.titres.initialized = true + + await store.dispatch('titres/vueSet', 'table') + + expect(apiTableMock).toHaveBeenCalled() + expect(store.state.titres.vueId).toEqual('table') + + expect(store.state.titres.elements).toEqual([ + { id: 'titre-id', nom: 'Nom du titre' } + ]) + + await store.dispatch('titres/vueSet', 'carte') + + expect(apiGeoMock).not.toHaveBeenCalled() + expect(store.state.titres.vueId).toEqual('carte') + expect(store.state.titres.elements).toEqual([]) + }) + + test("met à jour la liste si les paramètres d'url changent", async () => { + const apiTableMock = api.titres.mockResolvedValue({ + elements: [{ id: 'titre-id-table', nom: 'Nom du titre' }], + total: 1 + }) + const apiGeoMock = api.titresGeo.mockResolvedValue({ + elements: [{ id: 'titre-id-geo', nom: 'Nom du titre' }], + total: 1 + }) + + await store.dispatch('titres/routeUpdate') + + expect(apiTableMock).not.toHaveBeenCalled() + expect(store.state.titres.elements).toEqual([]) + + store.state.titres.initialized = true + route.state.query.vueId = 'table' + route.state.query.page = '4' + route.state.query.typesIds = 'cx' + await store.dispatch('titres/routeUpdate') + + expect(apiTableMock).toHaveBeenCalled() + + expect(store.state.titres.elements).toEqual([ + { id: 'titre-id-table', nom: 'Nom du titre' } + ]) + + expect(store.state.titres.params.table.page).toEqual(4) + + await store.dispatch('titres/routeUpdate') + + route.state.query.vueId = 'carte' + route.state.query.zoom = 2 + await store.dispatch('titres/routeUpdate') + + expect(apiGeoMock).toHaveBeenCalled() + + expect(store.state.titres.elements).toEqual([ + { id: 'titre-id-geo', nom: 'Nom du titre' } + ]) + }) + + test('initialise les paramètres de filtre', async () => { + const section = 'filtres' + const params = { domainesIds: 'h' } + await store.dispatch('titres/paramsSet', { section, params }) + + expect(store.state.titres.params.filtres.domainesIds).toEqual('h') + + await store.dispatch('titres/paramsSet', { section, params }) + + await store.dispatch('titres/paramsSet', { + section: 'carte', + params: { zoom: 5 } + }) + }) +}) diff --git a/packages/ui/src/store/user.js b/packages/ui/src/store/user.js new file mode 100644 index 000000000..d1091eef4 --- /dev/null +++ b/packages/ui/src/store/user.js @@ -0,0 +1,368 @@ +import { + moi, + utilisateurConnecter, + utilisateurCerbereTokenCreer, + utilisateurCerbereUrlObtenir, + utilisateurCreationMessageEnvoyer, + utilisateurCreer, + utilisateurMotDePasseMessageEnvoyer, + utilisateurMotDePasseInitialiser, + userMetas, + newsletterInscrire, + utilisateurDeconnecter +} from '../api/utilisateurs' + +import { permissionsCheck } from '../utils' +import tiles from '../utils/map-tiles' + +import router from '../router' + +const state = { + element: null, + metas: { + domaines: [], + version: null, + /* global npmVersion */ + // @ts-ignore + versionUi: `${npmVersion}`, + tiles, + entreprisesTitresCreation: [] + }, + preferences: { + carte: { tilesId: 'osm-fr', markerLayersId: 'clusters' } + }, + loaded: false +} + +const actions = { + async init({ commit, dispatch }) { + try { + commit('loadingAdd', 'userInit', { root: true }) + + const data = await userMetas({ titresCreation: true }) + + commit('metasSet', data) + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'userInit', { root: true }) + } + }, + + async identify({ commit, dispatch }) { + try { + commit('loadingAdd', 'userMoi', { root: true }) + const data = await moi() + + commit('set', data) + + await dispatch('init') + } catch (e) { + commit('reset') + } finally { + commit('loadingRemove', 'userMoi', { root: true }) + commit('load') + } + }, + + async login({ commit, dispatch }, { email, motDePasse }) { + try { + commit('loadingAdd', 'userLogin', { root: true }) + + commit('popupMessagesRemove', null, { root: true }) + + const utilisateur = await utilisateurConnecter({ email, motDePasse }) + + commit('set', utilisateur) + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: `bienvenue ${utilisateur.prenom} ${utilisateur.nom}`, + type: 'success' + }, + { root: true } + ) + + await dispatch('init') + dispatch('errorRemove', null, { root: true }) + } catch (e) { + commit('reset') + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'userLogin', { root: true }) + } + }, + async cerbereUrlGet({ commit }, url) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('loadingAdd', 'cerbereUrlGet', { root: true }) + + const data = await utilisateurCerbereUrlObtenir({ url }) + + return data + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'cerbereUrlGet', { root: true }) + } + }, + + async cerbereLogin({ commit, dispatch }, { ticket }) { + try { + commit('loadingAdd', 'userCerbereLogin', { root: true }) + + const utilisateur = await utilisateurCerbereTokenCreer({ ticket }) + + commit('set', utilisateur) + dispatch( + 'messageAdd', + { + value: `bienvenue ${utilisateur.prenom} ${utilisateur.nom}`, + type: 'success' + }, + { root: true } + ) + + await dispatch('init') + dispatch('errorRemove', null, { root: true }) + } catch (e) { + commit('reset') + } finally { + commit('loadingRemove', 'userCerbereLogin', { root: true }) + commit('load') + } + }, + + async logout({ commit, dispatch }) { + try { + commit('loadingAdd', 'userLogout', { root: true }) + + commit('popupMessagesRemove', null, { root: true }) + + await router.push({ name: 'homepage' }) + + await utilisateurDeconnecter() + + dispatch( + 'messageAdd', + { value: `vous êtes déconnecté`, type: 'success' }, + { root: true } + ) + + commit('menuClose', null, { root: true }) + commit('reset') + dispatch('errorRemove', null, { root: true }) + } catch (e) { + dispatch('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'userLogout', { root: true }) + } + }, + + async addEmail({ commit, dispatch }, email) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('loadingAdd', 'userAddEmail', { root: true }) + + await utilisateurCreationMessageEnvoyer({ email }) + + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: 'un email pour créer votre compte a été envoyé', + type: 'success' + }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'userAddEmail', { root: true }) + } + }, + + async add({ commit, dispatch }, { utilisateur, token }) { + try { + commit('loadingAdd', 'userAdd', { root: true }) + + const data = await utilisateurCreer({ utilisateur, token }) + + if (data) { + dispatch( + 'messageAdd', + { + value: `utilisateur ${data.prenom} ${data.nom} ajouté`, + type: 'success' + }, + { root: true } + ) + + await dispatch('login', { + email: data.email, + motDePasse: utilisateur.motDePasse + }) + + router.push({ name: 'titres' }) + } + } catch (e) { + dispatch('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'userAdd', { root: true }) + } + }, + + async passwordInitEmail({ commit, dispatch }, email) { + try { + commit('popupMessagesRemove', null, { root: true }) + commit('loadingAdd', 'utilisateurPasswordInitEmail', { root: true }) + + const data = await utilisateurMotDePasseMessageEnvoyer({ + email + }) + commit('popupClose', null, { root: true }) + dispatch('messageAdd', { value: data, type: 'success' }, { root: true }) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurPasswordInitEmail', { + root: true + }) + } + }, + + async passwordInit( + { commit, dispatch }, + { motDePasse1, motDePasse2, token } + ) { + try { + commit('loadingAdd', 'utilisateurPasswordInit', { root: true }) + + const utilisateur = await utilisateurMotDePasseInitialiser({ + motDePasse1, + motDePasse2, + token + }) + + dispatch( + 'messageAdd', + { + value: 'mot de passe mis à jour', + type: 'success' + }, + { root: true } + ) + + router.push({ name: 'titres' }) + + commit('set', utilisateur) + dispatch( + 'messageAdd', + { + value: `bienvenue ${utilisateur.prenom} ${utilisateur.nom}`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + dispatch('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurPasswordInit', { root: true }) + } + }, + + preferencesSet({ commit }, { section, params }) { + if (section === 'conditions') { + localStorage.setItem('conditions', params.value) + } else { + commit('preferencesSet', { section, params }) + } + }, + + async newsletterSubscribe({ commit, dispatch }, email) { + try { + commit('loadingAdd', 'newsletterSubscribe', { root: true }) + + const message = await newsletterInscrire({ + email + }) + + dispatch('messageAdd', { value: message, type: 'info' }, { root: true }) + } catch (e) { + dispatch('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'newsletterSubscribe', { root: true }) + } + } +} + +const getters = { + tilesActive(state) { + return state.metas.tiles.find( + ({ id }) => id === state.preferences.carte.tilesId + ) + }, + + preferencesConditions(state) { + if (state.element) { + return true + } + + const threedays = 1000 * 60 * 60 + + if ( + localStorage.getItem('conditions') && + Number(localStorage.getItem('conditions')) + threedays > + new Date().getTime() + ) { + return true + } + + return false + }, + + userIsAdmin(state) { + return permissionsCheck(state.element, ['super', 'admin', 'editeur']) + }, + + userIsSuper(state) { + return permissionsCheck(state.element, ['super']) + } +} + +const mutations = { + load(state) { + state.loaded = true + }, + + preferencesSet(state, { section, params }) { + Object.keys(params).forEach(id => { + state.preferences[section][id] = params[id] + }) + }, + + set(state, user) { + state.element = user + }, + + reset(state) { + state.element = null + state.metas.entreprisesTitresCreation = [] + state.metas.domaines = [] + }, + + metasSet(state, data) { + Object.keys(data).forEach(id => { + state.metas[id] = data[id] + }) + } +} + +export default { + namespaced: true, + state, + actions, + getters, + mutations +} diff --git a/packages/ui/src/store/user.test.js b/packages/ui/src/store/user.test.js new file mode 100644 index 000000000..bd7bd2cca --- /dev/null +++ b/packages/ui/src/store/user.test.js @@ -0,0 +1,461 @@ +import { createStore } from 'vuex' +import { createApp } from 'vue' +import * as api from '../api/utilisateurs' + +import user from './user' +import tiles from '../utils/map-tiles' + +jest.mock('../api/utilisateurs', () => ({ + utilisateurConnecter: jest.fn(), + utilisateurDeconnecter: jest.fn(), + utilisateurCerbereUrlObtenir: jest.fn(), + utilisateurCerbereTokenCreer: jest.fn(), + moi: jest.fn(), + utilisateurMotDePasseInitialiser: jest.fn(), + utilisateurMotDePasseMessageEnvoyer: jest.fn(), + utilisateurCreationMessageEnvoyer: jest.fn(), + utilisateurCreer: jest.fn(), + userMetas: jest.fn(), + newsletterInscrire: jest.fn() +})) + +console.info = jest.fn() + +jest.mock('../router', () => []) + +describe("état de l'utilisateur connecté", () => { + let store + let actions + let mutations + let userInfo + let map + let email + let motDePasse + let ticket + + beforeEach(() => { + email = 'rene@la.taupe' + motDePasse = 'mignon' + ticket = 'ti-cket' + + userInfo = { + id: 66, + prenom: 'rene', + nom: 'lataupe', + permission: 'admin', + entreprise: 'macdo', + email: 'rene@la.taupe' + } + + user.state = { + element: null, + metas: { + domaines: [], + version: null, + versionUi: null, + tiles + }, + preferences: { + carte: { tilesId: 'osm-fr' } + } + } + + actions = { + messageAdd: jest.fn(), + errorRemove: jest.fn(), + apiError: jest.fn() + } + + mutations = { + popupMessagesRemove: jest.fn(), + loadingAdd: jest.fn(), + popupClose: jest.fn(), + popupMessageAdd: jest.fn(), + loadingRemove: jest.fn(), + menuClose: jest.fn() + } + + map = { state: { tiles: [{ id: 'osm-fr' }, { id: 'geoportail' }] } } + + store = createStore({ + modules: { user, map }, + actions, + mutations + }) + + const app = createApp({}) + app.use(store) + }) + + test("initialise les métas de l'utilisateur connecté", async () => { + const apiMock = api.userMetas.mockResolvedValue({ + version: '1.1.1' + }) + + await store.dispatch('user/init') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.user.metas).toEqual({ + domaines: [], + version: '1.1.1', + versionUi: null, + tiles + }) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.userMetas.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('user/init') + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(actions.apiError).toHaveBeenCalled() + expect(store.state.user.metas.version).toBeNull() + }) + + test("identifie l'utilisateur si un token valide est présent", async () => { + const apiMock = api.moi.mockResolvedValue(userInfo) + + store = createStore({ modules: { user, map }, actions, mutations }) + + await store.dispatch('user/identify') + + expect(store.state.user.element).toEqual({ + id: 66, + prenom: 'rene', + nom: 'lataupe', + email: 'rene@la.taupe', + permission: 'admin', + entreprise: 'macdo' + }) + expect(apiMock).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api lors de l'obtention de l'utilisateur", async () => { + const apiMock = api.moi.mockRejectedValue(new Error("erreur dans l'api")) + store.commit('user/set', userInfo) + await store.dispatch('user/identify', { email, motDePasse }) + + expect(apiMock).toHaveBeenCalled() + expect(store.state.user.element).toBeNull() + }) + + test('connecte un utilisateur', async () => { + const apiMock = api.utilisateurConnecter.mockResolvedValue(userInfo) + + await store.dispatch('user/login', { email, motDePasse }) + + expect(apiMock).toHaveBeenCalledWith({ email, motDePasse }) + expect(mutations.popupClose).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + expect(store.state.user.element).toEqual({ + id: 66, + prenom: 'rene', + nom: 'lataupe', + email: 'rene@la.taupe', + permission: 'admin', + entreprise: 'macdo' + }) + }) + + test("retourne une erreur de l'api lors de la connection d'un utilisateur", async () => { + store.commit('user/set', userInfo) + const apiMock = api.utilisateurConnecter.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('user/login', { email, motDePasse }) + + expect(apiMock).toHaveBeenCalledWith({ email, motDePasse }) + expect(store.state.user.element).toBeNull() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test("obtient l'url de login Cerbère", async () => { + const url = encodeURIComponent('http://camino.test') + const returnUrl = `https://url-cerbere.tld/login?TARGET=${url}` + + const apiMock = + api.utilisateurCerbereUrlObtenir.mockResolvedValue(returnUrl) + + const cerbereUrl = await store.dispatch('user/cerbereUrlGet', url) + + expect(apiMock).toHaveBeenCalledWith({ url }) + + expect(cerbereUrl).toBe(returnUrl) + }) + + test("retourne une erreur de l'api lors de l'obtention de l'url Cerbère", async () => { + const url = 'http://camino.test' + const apiMock = api.utilisateurCerbereUrlObtenir.mockRejectedValue( + new Error("erreur dans l'api") + ) + + await store.dispatch('user/cerbereUrlGet', url) + + expect(apiMock).toHaveBeenCalledWith({ url }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('connecte un utilisateur avec Cerbère', async () => { + const apiMock = api.utilisateurCerbereTokenCreer.mockResolvedValue(userInfo) + + await store.dispatch('user/cerbereLogin', { ticket }) + + expect(apiMock).toHaveBeenCalledWith({ ticket }) + expect(actions.messageAdd).toHaveBeenCalled() + expect(store.state.user.element).toEqual({ + id: 66, + prenom: 'rene', + nom: 'lataupe', + email: 'rene@la.taupe', + permission: 'admin', + entreprise: 'macdo' + }) + }) + + test("retourne une erreur de l'api lors de la connection d'un utilisateur avec Cerbère", async () => { + store.commit('user/set', userInfo) + const apiMock = api.utilisateurCerbereTokenCreer.mockRejectedValue( + new Error("erreur dans l'api") + ) + + await store.dispatch('user/cerbereLogin', { ticket }) + + expect(apiMock).toHaveBeenCalledWith({ ticket }) + expect(store.state.user.element).toBeNull() + }) + + test('déconnecte un utilisateur', async () => { + const apiMock = api.utilisateurDeconnecter.mockResolvedValue() + + store.commit('user/set', userInfo) + await store.dispatch('user/logout') + + expect(apiMock).toHaveBeenCalled() + expect(mutations.menuClose).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + expect(store.state.user.element).toBeNull() + }) + + test('ajoute un email', async () => { + const apiMock = + api.utilisateurCreationMessageEnvoyer.mockResolvedValue(email) + await store.dispatch('user/addEmail', email) + + expect(apiMock).toHaveBeenCalledWith({ email }) + expect(mutations.popupClose).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api lors de l'ajout d'un email", async () => { + const apiMock = api.utilisateurCreationMessageEnvoyer.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('user/addEmail', email) + + expect(apiMock).toHaveBeenCalledWith({ email }) + expect(mutations.popupClose).not.toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('ajoute un utilisateur', async () => { + const loginMock = jest.fn() + user.actions.login = loginMock + store = createStore({ modules: { user, map }, actions, mutations }) + const apiMock = api.utilisateurCreer.mockResolvedValue(userInfo) + await store.dispatch('user/add', { utilisateur: userInfo, token: 'token' }) + + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: userInfo, + token: 'token' + }) + expect(actions.messageAdd).toHaveBeenCalled() + expect(loginMock).toHaveBeenCalled() + }) + + test("n'ajoute pas d'utilisateur", async () => { + const apiMock = api.utilisateurCreer.mockResolvedValue(null) + await store.dispatch('user/add', { utilisateur: userInfo, token: 'token' }) + + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: userInfo, + token: 'token' + }) + expect(actions.messageAdd).not.toHaveBeenCalled() + }) + + test("retourne une erreur api lors de l'ajout d'un utilisateur", async () => { + const loginMock = jest.fn() + user.actions.login = loginMock + store = createStore({ modules: { user, map }, actions, mutations }) + const apiMock = api.utilisateurCreer.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('user/add', { utilisateur: userInfo, token: 'token' }) + + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: userInfo, + token: 'token' + }) + expect(actions.messageAdd).toHaveBeenCalled() + expect(loginMock).not.toHaveBeenCalled() + }) + + test("crée l'email d'un utilisateur", async () => { + const apiMock = + api.utilisateurMotDePasseMessageEnvoyer.mockResolvedValue(userInfo) + await store.dispatch('user/passwordInitEmail', email) + + expect(apiMock).toHaveBeenCalledWith({ email }) + expect(mutations.popupClose).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur api dans la création de l'email de l'utilisateur", async () => { + const apiMock = api.utilisateurMotDePasseMessageEnvoyer.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('user/passwordInitEmail', email) + + expect(apiMock).toHaveBeenCalledWith({ email }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + expect(actions.messageAdd).not.toHaveBeenCalled() + }) + + test("initialise le mot de passe d'un utilisateur", async () => { + store = createStore({ modules: { user, map }, actions, mutations }) + const apiMock = + api.utilisateurMotDePasseInitialiser.mockResolvedValue(userInfo) + await store.dispatch('user/passwordInit', { + motDePasse1: motDePasse, + motDePasse2: motDePasse + }) + + expect(apiMock).toHaveBeenCalledWith({ + motDePasse1: motDePasse, + motDePasse2: motDePasse + }) + expect(actions.messageAdd).toHaveBeenCalledTimes(2) + }) + + test("retourne une erreur api dans la création du mot de passe de l'utilisateur", async () => { + const motDePasse1 = 'mignon' + const motDePasse2 = 'mignon' + const loginMock = jest.fn() + user.actions.login = loginMock + store = createStore({ modules: { user, map }, actions, mutations }) + const apiMock = api.utilisateurMotDePasseInitialiser.mockRejectedValue( + new Error("erreur dans l'api") + ) + const res = await store.dispatch('user/passwordInit', { + motDePasse1, + motDePasse2, + email + }) + + expect(apiMock).toHaveBeenCalledWith({ motDePasse1, motDePasse2 }) + expect(actions.messageAdd).toHaveBeenCalled() + expect(loginMock).not.toHaveBeenCalled() + expect(res).toBeUndefined() + }) + + test("initialise les preferences de l'utilisateur", async () => { + const section = 'conditions' + const value = 'conditionValue' + const params = { value } + await store.dispatch('user/preferencesSet', { section, params }) + + expect(localStorage.getItem('conditions')).toEqual(value) + }) + + test('initialise les preferences de filtre', async () => { + const section = 'carte' + const params = { tilesId: 'ign' } + await store.dispatch('user/preferencesSet', { section, params }) + + expect(store.state.user.preferences.carte.tilesId).toEqual('ign') + }) + + test('retourne le fond de carte actif', () => { + expect(store.getters['user/tilesActive']).toEqual({ + id: 'osm-fr', + name: 'OSM / fr', + type: 'tiles', + url: 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', + attribution: + '© Openstreetmap France | © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' + }) + }) + + test("retourne true si l'utilisateur est connecté", () => { + user.state.element = {} + store = createStore({ modules: { user } }) + + expect(store.getters['user/preferencesConditions']).toBeTruthy() + }) + + test('ne recupere pas les preferences sauvegardées: vieilles de plus de 3 jours', () => { + localStorage.setItem('conditions', '3') + expect(store.getters['user/preferencesConditions']).toBeFalsy() + }) + + test('recupere les preferences sauvegardées', () => { + localStorage.setItem('conditions', new Date().getTime().toString()) + expect(store.getters['user/preferencesConditions']).toBeTruthy() + }) + + test("initialise le statut de l'user sans entreprises", () => { + store.commit('user/set', { + id: 66, + prenom: 'rene', + nom: 'lataupe', + permission: 'admin' + }) + + expect(store.state.user.element).toEqual({ + id: 66, + prenom: 'rene', + nom: 'lataupe', + permission: 'admin' + }) + expect(store.state.user.element.entreprise).toBeUndefined() + }) + + test('inscrit un email à la newsletter', async () => { + const apiMock = api.newsletterInscrire.mockResolvedValue('succès') + + await store.dispatch('user/newsletterSubscribe', 'email@domain.tld') + + expect(apiMock).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api lors de l'inscription d'un email à la newsletter", async () => { + const apiMock = api.newsletterInscrire.mockRejectedValue( + new Error("erreur dans l'api") + ) + + await store.dispatch('user/newsletterSubscribe', 'shitty email') + expect(apiMock).toHaveBeenCalled() + }) + + test.each` + permissionId | isAdmin + ${'super'} | ${true} + ${'admin'} | ${true} + ${'editeur'} | ${true} + ${'entreprise'} | ${false} + ${undefined} | ${false} + `('ajoute des jours à une date', ({ permissionId, isAdmin }) => { + store.commit('user/set', { + id: 66, + prenom: 'rene', + nom: 'lataupe', + permission: { id: permissionId } + }) + expect(store.getters['user/userIsAdmin']).toEqual(isAdmin) + }) +}) diff --git a/packages/ui/src/store/utilisateur.js b/packages/ui/src/store/utilisateur.js new file mode 100644 index 000000000..9908ae3f4 --- /dev/null +++ b/packages/ui/src/store/utilisateur.js @@ -0,0 +1,266 @@ +import { + utilisateurMetas, + utilisateur, + utilisateurCreer, + utilisateurModifier, + utilisateurSupprimer, + utilisateurMotDePasseModifier, + utilisateurEmailMessageEnvoyer, + utilisateurEmailModifier +} from '../api/utilisateurs' + +import router from '../router' + +const state = { + element: null, + metas: { + permissions: [], + entreprises: [], + administrations: [] + }, + metasLoaded: false +} + +const actions = { + async init({ commit }) { + commit('loadingAdd', 'utilisateurInit', { root: true }) + + try { + const data = await utilisateurMetas() + + commit('metasSet', data) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurInit', { root: true }) + } + }, + + async get({ commit, dispatch }, id) { + commit('loadingAdd', 'utilisateur', { root: true }) + + try { + const data = await utilisateur({ id }) + + if (data) { + commit('set', data) + } else { + dispatch('pageError', null, { root: true }) + } + } catch (e) { + dispatch('apiError', e, { root: true }) + } finally { + commit('loadingRemove', 'utilisateur', { root: true }) + } + }, + + async add({ commit, dispatch }, utilisateur) { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'utilisateurAdd', { root: true }) + try { + const data = await utilisateurCreer({ utilisateur }) + + commit('popupClose', null, { root: true }) + + router.push({ name: 'utilisateur', params: { id: data.id } }) + dispatch( + 'messageAdd', + { + value: `l'utilisateur ${data.prenom} ${data.nom} a été ajouté`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurAdd', { root: true }) + } + }, + + async update({ commit, dispatch, rootState }, utilisateur) { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'utilisateurUpdate', { root: true }) + + try { + const data = await utilisateurModifier({ utilisateur }) + + commit('popupClose', null, { root: true }) + + if (utilisateur.id === rootState.user.element.id) { + commit('user/set', data, { root: true }) + } + + await dispatch( + 'reload', + { name: 'utilisateur', id: data.id }, + { root: true } + ) + dispatch( + 'messageAdd', + { value: `l'utilisateur a été mis à jour`, type: 'success' }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurUpdate', { root: true }) + } + }, + + async passwordUpdate( + { commit, dispatch }, + { id, motDePasse, motDePasseNouveau1, motDePasseNouveau2 } + ) { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'utilisateurPasswordUpdate', { root: true }) + + try { + await utilisateurMotDePasseModifier({ + id, + motDePasse, + motDePasseNouveau1, + motDePasseNouveau2 + }) + + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: `le mot de passe a été modifié`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurPasswordUpdate', { + root: true + }) + } + }, + + async emailVerification({ commit, dispatch }, { email }) { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'utilisateurEmailVerification', { root: true }) + + try { + await utilisateurEmailMessageEnvoyer({ + email + }) + + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: `un email de vérification vient de vous être envoyé`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurEmailVerification', { + root: true + }) + } + }, + + async emailUpdate({ commit, dispatch }, { emailToken }) { + commit('loadingAdd', 'utilisateurEmailModifier', { root: true }) + + try { + await utilisateurEmailModifier({ + emailToken + }) + + dispatch( + 'messageAdd', + { + value: `votre email a été modifié avec succés`, + type: 'success' + }, + { root: true } + ) + } catch (e) { + dispatch('messageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurEmailModifier', { + root: true + }) + } + }, + + async remove({ commit, dispatch, rootState }, id) { + commit('popupMessagesRemove', null, { root: true }) + commit('popupLoad', null, { root: true }) + commit('loadingAdd', 'utilisateurRemove', { root: true }) + + try { + const data = await utilisateurSupprimer({ id }) + + if (rootState.user.element.id === data.id) { + await dispatch('user/logout', null, { root: true }) + } + commit('popupClose', null, { root: true }) + dispatch( + 'messageAdd', + { + value: `l'utilisateur ${data.prenom} ${data.nom} a été supprimé`, + type: 'success' + }, + { root: true } + ) + + router.push({ name: 'utilisateurs' }) + } catch (e) { + commit('popupMessageAdd', { value: e, type: 'error' }, { root: true }) + } finally { + commit('loadingRemove', 'utilisateurRemove', { root: true }) + } + } +} + +const mutations = { + set(state, utilisateur) { + state.element = utilisateur + }, + + reset(state) { + state.element = null + }, + + metasReset(state) { + state.metas = { + permissions: [], + entreprises: [], + administrations: [] + } + state.metasLoaded = false + }, + + metasSet(state, data) { + Object.keys(data).forEach(id => { + if (id === 'entreprises' || id === 'administrations') { + state.metas[id] = data[id].elements + } else { + state.metas[id] = data[id] + } + }) + + state.metasLoaded = true + } +} + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/utilisateur.test.js b/packages/ui/src/store/utilisateur.test.js new file mode 100644 index 000000000..83d8ab3e6 --- /dev/null +++ b/packages/ui/src/store/utilisateur.test.js @@ -0,0 +1,428 @@ +import { createStore } from 'vuex' +import { createApp } from 'vue' +import * as router from '../router' +import * as api from '../api/utilisateurs' + +import utilisateur from './utilisateur' + +jest.mock('../api/utilisateurs', () => ({ + utilisateurMetas: jest.fn(), + utilisateur: jest.fn(), + utilisateurCreer: jest.fn(), + utilisateurModifier: jest.fn(), + utilisateurSupprimer: jest.fn(), + utilisateurMotDePasseModifier: jest.fn(), + utilisateurEmailMessageEnvoyer: jest.fn(), + utilisateurEmailModifier: jest.fn() +})) + +jest.mock('../router', () => ({ + push: jest.fn() +})) + +console.info = jest.fn() + +describe("état de l'utilisateur consulté", () => { + let store + let actions + let mutations + let user + + beforeEach(() => { + utilisateur.state = { + element: null, + metas: { + permissions: [], + entreprises: [], + administrations: [] + }, + metasLoaded: false + } + user = { + namespaced: true, + state: { + element: {} + }, + actions: { + logout: jest.fn() + }, + mutations: { + set: jest.fn() + } + } + + mutations = { + loadingAdd: jest.fn(), + loadingRemove: jest.fn(), + popupMessageAdd: jest.fn(), + popupClose: jest.fn(), + popupMessagesRemove: jest.fn(), + popupLoad: jest.fn() + } + + actions = { + pageError: jest.fn(), + apiError: jest.fn(), + reload: jest.fn(), + messageAdd: jest.fn() + } + + store = createStore({ + modules: { utilisateur, user }, + mutations, + actions + }) + + const app = createApp({}) + app.use(store) + }) + + test('récupère les métas pour éditer un utilisateur', async () => { + const apiMock = api.utilisateurMetas.mockResolvedValue({ + permissions: [ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } + ], + entreprises: { elements: ['ent-1'] }, + administrations: { elements: ['adm-1'] } + }) + + await store.dispatch('utilisateur/init') + + expect(apiMock).toHaveBeenCalled() + expect(store.state.utilisateur.metas).toEqual({ + permissions: [ + { id: 'w', nom: 'granulats' }, + { id: 'c', nom: 'carrières' } + ], + entreprises: ['ent-1'], + administrations: ['adm-1'] + }) + expect(mutations.loadingRemove).toHaveBeenCalled() + + store.commit('utilisateur/metasReset') + + expect(store.state.utilisateur.metasLoaded).toBeFalsy() + }) + + test("retourne une erreur si l'api ne répond pas", async () => { + const apiMock = api.utilisateurMetas.mockRejectedValue( + new Error("erreur de l'api") + ) + + await store.dispatch('utilisateur/init') + + expect(apiMock).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur si l'api répond null", async () => { + const apiMock = api.utilisateurMetas.mockResolvedValue(null) + + await store.dispatch('utilisateur/init') + + expect(apiMock).toHaveBeenCalled() + }) + + test('retourne un utilisateur', async () => { + const utilisateur = { id: 71, nom: 'toto', prenom: 'asticot' } + const apiMock = api.utilisateur.mockResolvedValue(utilisateur) + await store.dispatch('utilisateur/get', 71) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + expect(store.state.utilisateur.element).toEqual(utilisateur) + }) + + test("affiche une page d'erreur si l'id de l'utilisateur retourne null", async () => { + const apiMock = api.utilisateur.mockResolvedValue(null) + await store.dispatch('utilisateur/get', 27) + + expect(apiMock).toHaveBeenCalledWith({ id: 27 }) + expect(actions.pageError).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api dans l'obtention de l'utilisateur", async () => { + const apiMock = api.utilisateur.mockRejectedValue( + new Error("l'api ne répond pas") + ) + await store.dispatch('utilisateur/get', 71) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + + expect(actions.apiError).toHaveBeenCalled() + }) + + test("supprime les données d'utilisateur", () => { + store.commit('utilisateur/set', { id: 71, nom: 'toto', prenom: 'asticot' }) + store.commit('utilisateur/reset') + + expect(store.state.utilisateur.element).toBeNull() + }) + + test('ajoute un utilisateur', async () => { + const apiMock = api.utilisateurCreer.mockResolvedValue({ + id: 71, + nom: 'toto', + prenom: 'asticot' + }) + await store.dispatch('utilisateur/add', { + id: 71, + nom: 'toto', + prenom: 'asticot' + }) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: { id: 71, nom: 'toto', prenom: 'asticot' } + }) + expect(mutations.popupClose).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test('ajoute un utilisateur (erreur API)', async () => { + const apiMock = api.utilisateurCreer.mockRejectedValue( + new Error('erreur API') + ) + await store.dispatch('utilisateur/add', { + id: 71, + nom: 'toto', + prenom: 'asticot' + }) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: { id: 71, nom: 'toto', prenom: 'asticot' } + }) + }) + + test('modifie un utilisateur', async () => { + user.state.element = { id: 72 } + const apiMock = api.utilisateurModifier.mockResolvedValue({ + id: 71, + nom: 'Asticot', + prenom: 'Julien' + }) + await store.dispatch('utilisateur/update', { + id: 71, + nom: 'Asticot', + prenom: 'Julien' + }) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: { id: 71, nom: 'Asticot', prenom: 'Julien' } + }) + expect(actions.reload).toHaveBeenCalled() + expect(user.mutations.set).not.toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("modifie l'utilisateur actif", async () => { + user.state.element = { id: 71, nom: 'Ouistiti', prenom: 'Marcel' } + const apiMock = api.utilisateurModifier.mockResolvedValue({ + id: 71, + nom: 'Asticot', + prenom: 'Julien' + }) + await store.dispatch('utilisateur/update', { + id: 71, + nom: 'Asticot', + prenom: 'Julien' + }) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: { id: 71, nom: 'Asticot', prenom: 'Julien' } + }) + expect(actions.reload).toHaveBeenCalled() + expect(user.mutations.set).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test('modifie un utilisateur (erreur API)', async () => { + const apiMock = api.utilisateurModifier.mockRejectedValue( + new Error('erreur API') + ) + await store.dispatch('utilisateur/update', { + id: 71, + nom: 'toto', + prenom: 'asticot' + }) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + utilisateur: { id: 71, nom: 'toto', prenom: 'asticot' } + }) + expect(actions.reload).not.toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test('supprime un utilisateur', async () => { + const apiMock = api.utilisateurSupprimer.mockResolvedValue({ + id: 71, + nom: 'toto', + prenom: 'asticot' + }) + await store.dispatch('utilisateur/remove', 46) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ id: 46 }) + expect(user.actions.logout).not.toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + expect(router.push).toHaveBeenCalled() + }) + + test('supprime un utilisateur et le déconnecte', async () => { + const apiMock = api.utilisateurSupprimer.mockResolvedValue({ + id: 71, + nom: 'toto', + prenom: 'asticot' + }) + + user.state.element = { id: 71 } + await store.dispatch('utilisateur/remove', 71) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ id: 71 }) + expect(user.actions.logout).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api dans la suppression de l'utilisateur", async () => { + const apiMock = api.utilisateurSupprimer.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('utilisateur/remove', 46) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ id: 46 }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + }) + + test("modifie le mot de passe d'un utilisateur", async () => { + const apiMock = api.utilisateurMotDePasseModifier.mockResolvedValue({ + id: 46, + mdp: 'jour', + nom: 'jean', + prenom: 'peuplut' + }) + await store.dispatch('utilisateur/passwordUpdate', { + id: 46, + motDePasse: 'bon', + motDePasseNouveau1: 'jour', + motDePasseNouveau2: 'jour' + }) + + expect(apiMock).toHaveBeenCalledWith({ + id: 46, + motDePasse: 'bon', + motDePasseNouveau1: 'jour', + motDePasseNouveau2: 'jour' + }) + expect(mutations.popupClose).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api lors de la modification du mot de passe", async () => { + const apiMock = api.utilisateurMotDePasseModifier.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('utilisateur/passwordUpdate', { + id: 46, + motDePasse: 'bon', + motDePasseNouveau1: 'jour', + motDePasseNouveau2: 'jour' + }) + + expect(apiMock).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + id: 46, + motDePasse: 'bon', + motDePasseNouveau1: 'jour', + motDePasseNouveau2: 'jour' + }) + expect(mutations.popupMessageAdd).toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test('vérifie le nouvel email', async () => { + const apiMock = api.utilisateurEmailMessageEnvoyer.mockResolvedValue({}) + await store.dispatch('utilisateur/emailVerification', { + email: 'fakeEmail' + }) + + expect(mutations.loadingAdd).toHaveBeenCalled() + expect(apiMock).toHaveBeenCalledWith({ + email: 'fakeEmail' + }) + expect(mutations.popupClose).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalledWith(expect.any(Object), { + type: 'success', + value: 'un email de vérification vient de vous être envoyé' + }) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api lors de la vérification de son nouvel email", async () => { + const apiMock = api.utilisateurEmailMessageEnvoyer.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('utilisateur/emailVerification', { + email: 'fakeEmail' + }) + + expect(apiMock).toHaveBeenCalledWith({ + email: 'fakeEmail' + }) + + expect(mutations.loadingAdd).toHaveBeenCalled() + expect(mutations.popupMessageAdd).toHaveBeenCalledWith(expect.any(Object), { + type: 'error', + value: new Error("erreur dans l'api") + }) + expect(mutations.popupClose).not.toHaveBeenCalled() + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test('modifie son propre email', async () => { + const apiMock = api.utilisateurEmailModifier.mockResolvedValue({}) + await store.dispatch('utilisateur/emailUpdate', { + emailToken: 'fakeToken' + }) + + expect(apiMock).toHaveBeenCalledWith({ + emailToken: 'fakeToken' + }) + expect(mutations.loadingAdd).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalledWith(expect.any(Object), { + type: 'success', + value: 'votre email a été modifié avec succés' + }) + + expect(mutations.loadingRemove).toHaveBeenCalled() + }) + + test("retourne une erreur de l'api lors de la modification de son email", async () => { + const apiMock = api.utilisateurEmailModifier.mockRejectedValue( + new Error("erreur dans l'api") + ) + await store.dispatch('utilisateur/emailUpdate', { + emailToken: 'fakeToken' + }) + + expect(apiMock).toHaveBeenCalledWith({ + emailToken: 'fakeToken' + }) + + expect(mutations.loadingAdd).toHaveBeenCalled() + expect(actions.messageAdd).toHaveBeenCalledWith(expect.any(Object), { + type: 'error', + value: new Error("erreur dans l'api") + }) + expect(mutations.loadingRemove).toHaveBeenCalled() + }) +}) diff --git a/packages/ui/src/store/utilisateurs.js b/packages/ui/src/store/utilisateurs.js new file mode 100644 index 000000000..bef5a4041 --- /dev/null +++ b/packages/ui/src/store/utilisateurs.js @@ -0,0 +1,95 @@ +import { utilisateurs, utilisateurMetas } from '../api/utilisateurs' +import { listeActionsBuild, listeMutations } from './_liste-build' + +const state = { + elements: [], + total: 0, + metas: { + permission: [], + administration: [], + entreprise: [] + }, + definitions: [ + { id: 'noms', type: 'string' }, + { id: 'emails', type: 'string' }, + { id: 'permissionIds', type: 'strings', values: [] }, + { id: 'administrationIds', type: 'strings', values: [] }, + { id: 'entrepriseIds', type: 'strings', values: [] }, + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { + id: 'colonne', + type: 'string', + values: ['nom', 'prenom', 'email', 'permission', 'lien'] + }, + { + id: 'ordre', + type: 'string', + values: ['asc', 'desc'] + } + ], + params: { + filtres: { + noms: '', + emails: '', + permissionIds: [], + administrationIds: [], + entrepriseIds: [] + }, + table: { + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: null + } + }, + initialized: false +} + +const actions = listeActionsBuild( + 'utilisateurs', + 'utilisateurs', + utilisateurs, + utilisateurMetas +) + +const mutations = Object.assign({}, listeMutations, { + metasSet(state, data) { + Object.keys(data).forEach(id => { + let metaId + let paramId + if (id === 'permissions') { + metaId = 'permission' + paramId = 'permissionIds' + } else if (id === 'entreprises') { + metaId = 'entreprise' + paramId = 'entrepriseIds' + + // l'API renvoie les entreprises dans une propriété 'elements' + data[id] = data[id].elements + } else if (id === 'administrations') { + metaId = 'administration' + paramId = 'administrationIds' + + data[id] = data[id].elements + } + + if (metaId) { + state.metas[metaId] = data[id] + } + + if (paramId) { + const definition = state.definitions.find(p => p.id === paramId) + + definition.values = data[id].map(e => e.id) + } + }) + } +}) + +export default { + namespaced: true, + state, + actions, + mutations +} diff --git a/packages/ui/src/store/utilisateurs.test.js b/packages/ui/src/store/utilisateurs.test.js new file mode 100644 index 000000000..ee78a94d8 --- /dev/null +++ b/packages/ui/src/store/utilisateurs.test.js @@ -0,0 +1,99 @@ +import utilisateurs from './utilisateurs' +import { createApp } from 'vue' +import { createStore } from 'vuex' + +jest.mock('../api/utilisateurs', () => ({ + utilisateurs: jest.fn(), + utilisateurMetas: jest.fn() +})) + +console.info = jest.fn() + +describe('liste des utilisateurs', () => { + let store + + beforeEach(() => { + utilisateurs.state = { + metas: { + permission: [], + administration: [], + entreprise: [] + }, + definitions: [ + { id: 'permissionIds', type: 'strings', values: [] }, + { id: 'administrationIds', type: 'strings', values: [] }, + { id: 'entrepriseIds', type: 'strings', values: [] } + ] + } + + store = createStore({ + modules: { + utilisateurs, + titre: { + namespaced: true, + actions: { + openTab: jest.fn() + } + } + } + }) + + const app = createApp({}) + app.use(store) + }) + + test('enregistre les métas', () => { + const permissions = [ + { id: 'admin', nom: 'Admin' }, + { id: 'editeur', nom: 'Éditeur' } + ] + + const entreprisesElements = [ + { + id: 'fr-513863217', + nom: "SOCIETE GUYANAISE DES MINES D'OR (SOGUMINOR)" + }, + { id: 'fr-821136710', nom: 'SASU SOFERRO (SOFERRO)' } + ] + const entreprises = { + elements: entreprisesElements, + total: 4 + } + + const administrations = { + elements: [ + { + id: 'dre-nouvelle-aquitaine-01', + nom: "Direction régionale de l'environnement, de l'aménagement et du logement (DREAL) - Nouvelle-Aquitaine - Siège de Poitiers" + }, + { id: 'ope-onf-973-01', nom: 'Office national des forêts' } + ] + } + store.commit('utilisateurs/metasSet', { + permissions, + entreprises, + administrations, + truc: {} + }) + + expect(store.state.utilisateurs.metas).toEqual({ + permission: permissions, + entreprise: entreprises.elements, + administration: administrations.elements + }) + + expect(store.state.utilisateurs.definitions).toEqual([ + { id: 'permissionIds', type: 'strings', values: ['admin', 'editeur'] }, + { + id: 'administrationIds', + type: 'strings', + values: ['dre-nouvelle-aquitaine-01', 'ope-onf-973-01'] + }, + { + id: 'entrepriseIds', + type: 'strings', + values: ['fr-513863217', 'fr-821136710'] + } + ]) + }) +}) diff --git a/packages/ui/src/storybook.test.ts b/packages/ui/src/storybook.test.ts new file mode 100644 index 000000000..e52d0ec59 --- /dev/null +++ b/packages/ui/src/storybook.test.ts @@ -0,0 +1,23 @@ +import initStoryshots, { + Stories2SnapsConverter +} from '@storybook/addon-storyshots' +import { mount } from '@vue/test-utils' +import { resolve } from 'path' + +initStoryshots({ + suite: 'Automated Storybook Snapshots', + configPath: '.storybook', + stories2snapsConverter: new Stories2SnapsConverter({ + snapshotExtension: '.storyshot', + storiesExtensions: ['.js', '.ts', '.mdx'] + }), + test: ({ story, context, stories2snapsConverter }) => { + const snapshotFileName = resolve( + stories2snapsConverter.getSnapshotFileName(context) + ) + + const storyElement = story.render() + const wrapper = mount(storyElement) + expect(wrapper.element).toMatchSpecificSnapshot(snapshotFileName) + } +}) diff --git a/packages/ui/src/styles/buttons.css b/packages/ui/src/styles/buttons.css new file mode 100644 index 000000000..baf2e8363 --- /dev/null +++ b/packages/ui/src/styles/buttons.css @@ -0,0 +1,95 @@ +/* + Buttons +------------------------------- +*/ + +:root { + --transition: opacity 0.25s, background-color 0.25s, border 0.25s, + box-shadow 0.25s, fill 0.25s; +} + +@button default { + button-border-width: 0; + button-color: var(--color-text) var(--color-bg) var(--color-bg); + button-background: var(--color-alt) var(--color-neutral) var(--color-neutral); + button-class: active disabled true; +} + +.btn { + button: default; +} + +.btn-primary { + button-border: var(--unit-px) var(--dsfr-bf500) var(--color-neutral) + var(--dsfr-color-hover); + button-color: var(--color-bg) var(--color-bg) var(--color-bg); + button-background: var(--dsfr-bf500) var(--color-neutral) + var(--dsfr-color-hover); + button-class: active disabled true; + border-radius: var(--unit-xs); + padding: var(--unit-s); + width: 100%; +} + +.btn-secondary { + button-border: var(--unit-px) var(--dsfr-bf500) var(--color-neutral) + var(--dsfr-color-hover); + button-color: var(--dsfr-bf500) var(--dsfr-bf500) var(--dsfr-bf500); + button-background: var(--color-bg) var(--color-neutral) var(--color-alt); + button-class: active disabled true; + border-radius: var(--unit-xs); + padding: var(--unit-s); + width: 100%; +} + +.btn-border { + button-border: var(--unit-px) var(--color-alt) var(--color-neutral) + var(--color-neutral); + button-color: var(--color-text) var(--color-bg) var(--color-bg); + button-background: var(--color-bg) var(--color-neutral) var(--color-neutral); + button-class: active disabled true; +} + +.btn-tab { + button-border: var(--unit-px) var(--color-alt) var(--color-neutral) + var(--color-neutral); + button-color: var(--color-text) var(--color-bg) var(--color-bg); + button-background: var(--color-transparent) var(--color-neutral) + var(--color-neutral); + button-class: active disabled; +} + +.btn-alt { + button-color: var(--color-text) var(--color-bg) var(--color-bg); + button-background: var(--color-transparent) var(--color-neutral) + var(--color-neutral); + button-class: active disabled false; +} + +.btn-flash { + button-color: var(--color-bg) var(--color-bg) var(--color-bg); + button-background: var(--color-neutral) var(--color-inverse) + var(--color-neutral); + button-class: active disabled false; +} + +.btn-menu { + button-color: var(--color-text) var(--color-neutral) var(--color-inverse); + button-background: var(--color-transparent) var(--color-transparent) + var(--color-transparent); + button-class: active disabled true; +} + +.btn, +.btn-alt, +.btn-border, +.btn-menu, +.btn-flash, +.btn-tab { + transition: var(--transition); + font-weight: 700; +} + +.btn-icon { + line-height: 1rem; +} diff --git a/packages/ui/src/styles/camino.css b/packages/ui/src/styles/camino.css new file mode 100644 index 000000000..65e445a5b --- /dev/null +++ b/packages/ui/src/styles/camino.css @@ -0,0 +1,393 @@ +:root { + --color-domaine-c: #b88847; + --color-domaine-f: #4a515d; + --color-domaine-g: #c94f17; + --color-domaine-h: #c2266a; + --color-domaine-i: #aaaaaa; + --color-domaine-m: #376faa; + --color-domaine-r: #a0aa31; + --color-domaine-s: #7657b5; + --color-domaine-w: #1ea88c; +} + +.leaflet-marker-camino::before { + display: block; + position: absolute; + top: 29px; + left: 16px; + content: ''; + width: 0; + height: 0; + border-left: 5.5px solid transparent; + border-right: 5.5px solid transparent; + border-top: 8px solid var(--color-bg); + margin-left: -5.5px; +} + +.leaflet-marker-cluster-xs { + box-shadow: 0 0 0 var(--unit-xxs) color-mod(var(--color-bg) alpha(100%)); +} + +.leaflet-marker-cluster-s { + box-shadow: 0 0 0 var(--unit-xs) color-mod(var(--color-bg) alpha(95%)); +} + +.leaflet-marker-cluster-m { + box-shadow: 0 0 0 var(--unit-s) color-mod(var(--color-bg) alpha(85%)); +} + +.leaflet-marker-cluster-l { + box-shadow: 0 0 0 var(--unit-m) color-mod(var(--color-bg) alpha(70%)); +} + +.bg-domaine-c { + background: var(--color-domaine-c); +} + +.bg-domaine-f { + background: var(--color-domaine-f); +} + +.bg-domaine-g { + background: var(--color-domaine-g); +} + +.bg-domaine-h { + background: var(--color-domaine-h); +} + +.bg-domaine-i { + background: var(--color-domaine-i); +} + +.bg-domaine-m { + background: var(--color-domaine-m); +} + +.bg-domaine-r { + background: var(--color-domaine-r); +} + +.bg-domaine-s { + background: var(--color-domaine-s); +} + +.bg-domaine-w { + background: var(--color-domaine-w); +} + +.svg-fill-domaine-c { + fill: var(--color-domaine-c); +} +.svg-fill-domaine-f { + fill: var(--color-domaine-f); +} +.svg-fill-domaine-g { + fill: var(--color-domaine-g); +} +.svg-fill-domaine-h { + fill: var(--color-domaine-h); +} +.svg-fill-domaine-i { + fill: var(--color-domaine-i); +} +.svg-fill-domaine-m { + fill: var(--color-domaine-m); +} +.svg-fill-domaine-r { + fill: var(--color-domaine-r); +} +.svg-fill-domaine-s { + fill: var(--color-domaine-s); +} +.svg-fill-domaine-w { + fill: var(--color-domaine-w); +} + +.svg-stroke { + stroke: var(--color-neutral); +} +.svg-stroke-domaine-c { + stroke: var(--color-domaine-c); +} +.svg-stroke-domaine-f { + stroke: var(--color-domaine-f); +} +.svg-stroke-domaine-g { + stroke: var(--color-domaine-g); +} +.svg-stroke-domaine-h { + stroke: var(--color-domaine-h); +} +.svg-stroke-domaine-m { + stroke: var(--color-domaine-m); +} +.svg-stroke-domaine-r { + stroke: var(--color-domaine-r); +} +.svg-stroke-domaine-s { + stroke: var(--color-domaine-s); +} +.svg-stroke-domaine-w { + stroke: var(--color-domaine-w); +} + +/* types */ +.svg-fill-pattern-ax { + fill: url(#pattern-ax); +} +.svg-fill-pattern-cx { + fill: url(#pattern-cx); +} +.svg-fill-pattern-pc { + fill: url(#pattern-pc); +} +.svg-fill-pattern-px { + fill: url(#pattern-px); +} +.svg-fill-pattern-ap { + fill: url(#pattern-ap); +} +.svg-fill-pattern-ar { + fill: url(#pattern-ar); +} +.svg-fill-pattern-pr { + fill: url(#pattern-pr); +} +.svg-fill-pattern-in { + fill: url(#pattern-in); +} + +/* c */ +.svg-fill-pattern-ax-c { + fill: url(#pattern-ax-c); +} +.svg-fill-pattern-cx-c { + fill: url(#pattern-cx-c); +} +.svg-fill-pattern-pc-c { + fill: url(#pattern-pc-c); +} +.svg-fill-pattern-px-c { + fill: url(#pattern-px-c); +} +.svg-fill-pattern-ap-c { + fill: url(#pattern-ap-c); +} +.svg-fill-pattern-ar-c { + fill: url(#pattern-ar-c); +} +.svg-fill-pattern-pr-c { + fill: url(#pattern-pr-c); +} +.svg-fill-pattern-in-c { + fill: url(#pattern-in-c); +} + +/* f */ +.svg-fill-pattern-ax-f { + fill: url(#pattern-ax-f); +} +.svg-fill-pattern-cx-f { + fill: url(#pattern-cx-f); +} +.svg-fill-pattern-pc-f { + fill: url(#pattern-pc-f); +} +.svg-fill-pattern-px-f { + fill: url(#pattern-px-f); +} +.svg-fill-pattern-ap-f { + fill: url(#pattern-ap-f); +} +.svg-fill-pattern-ar-f { + fill: url(#pattern-ar-f); +} +.svg-fill-pattern-pr-f { + fill: url(#pattern-pr-f); +} +.svg-fill-pattern-in-f { + fill: url(#pattern-in-f); +} + +/* g */ +.svg-fill-pattern-ax-g { + fill: url(#pattern-ax-g); +} +.svg-fill-pattern-cx-g { + fill: url(#pattern-cx-g); +} +.svg-fill-pattern-pc-g { + fill: url(#pattern-pc-g); +} +.svg-fill-pattern-px-g { + fill: url(#pattern-px-g); +} +.svg-fill-pattern-ap-g { + fill: url(#pattern-ap-g); +} +.svg-fill-pattern-ar-g { + fill: url(#pattern-ar-g); +} +.svg-fill-pattern-pr-g { + fill: url(#pattern-pr-g); +} +.svg-fill-pattern-in-g { + fill: url(#pattern-in-g); +} + +/* h */ +.svg-fill-pattern-ax-h { + fill: url(#pattern-ax-h); +} +.svg-fill-pattern-cx-h { + fill: url(#pattern-cx-h); +} +.svg-fill-pattern-pc-h { + fill: url(#pattern-pc-h); +} +.svg-fill-pattern-px-h { + fill: url(#pattern-px-h); +} +.svg-fill-pattern-ap-h { + fill: url(#pattern-ap-h); +} +.svg-fill-pattern-ar-h { + fill: url(#pattern-ar-h); +} +.svg-fill-pattern-pr-h { + fill: url(#pattern-pr-h); +} +.svg-fill-pattern-in-h { + fill: url(#pattern-in-h); +} + +/* i */ +.svg-fill-pattern-ax-i { + fill: url(#pattern-ax-i); +} +.svg-fill-pattern-cx-i { + fill: url(#pattern-cx-i); +} +.svg-fill-pattern-pc-i { + fill: url(#pattern-pc-i); +} +.svg-fill-pattern-px-i { + fill: url(#pattern-px-i); +} +.svg-fill-pattern-ap-i { + fill: url(#pattern-ap-i); +} +.svg-fill-pattern-ar-i { + fill: url(#pattern-ar-i); +} +.svg-fill-pattern-pr-i { + fill: url(#pattern-pr-i); +} +.svg-fill-pattern-in-i { + fill: url(#pattern-in-i); +} + +/* m */ +.svg-fill-pattern-ax-m { + fill: url(#pattern-ax-m); +} +.svg-fill-pattern-cx-m { + fill: url(#pattern-cx-m); +} +.svg-fill-pattern-pc-m { + fill: url(#pattern-pc-m); +} +.svg-fill-pattern-px-m { + fill: url(#pattern-px-m); +} +.svg-fill-pattern-ap-m { + fill: url(#pattern-ap-m); +} +.svg-fill-pattern-ar-m { + fill: url(#pattern-ar-m); +} +.svg-fill-pattern-pr-m { + fill: url(#pattern-pr-m); +} +.svg-fill-pattern-in-m { + fill: url(#pattern-in-m); +} + +/* r */ +.svg-fill-pattern-ax-r { + fill: url(#pattern-ax-r); +} +.svg-fill-pattern-cx-r { + fill: url(#pattern-cx-r); +} +.svg-fill-pattern-pc-r { + fill: url(#pattern-pc-r); +} +.svg-fill-pattern-px-r { + fill: url(#pattern-px-r); +} +.svg-fill-pattern-ap-r { + fill: url(#pattern-ap-r); +} +.svg-fill-pattern-ar-r { + fill: url(#pattern-ar-r); +} +.svg-fill-pattern-pr-r { + fill: url(#pattern-pr-r); +} +.svg-fill-pattern-in-r { + fill: url(#pattern-in-r); +} + +/* s */ +.svg-fill-pattern-ax-s { + fill: url(#pattern-ax-s); +} +.svg-fill-pattern-cx-s { + fill: url(#pattern-cx-s); +} +.svg-fill-pattern-pc-s { + fill: url(#pattern-pc-s); +} +.svg-fill-pattern-px-s { + fill: url(#pattern-px-s); +} +.svg-fill-pattern-ap-s { + fill: url(#pattern-ap-s); +} +.svg-fill-pattern-ar-s { + fill: url(#pattern-ar-s); +} +.svg-fill-pattern-pr-s { + fill: url(#pattern-pr-m); +} +.svg-fill-pattern-in-s { + fill: url(#pattern-in-s); +} + +/* w */ +.svg-fill-pattern-ax-w { + fill: url(#pattern-ax-w); +} +.svg-fill-pattern-cx-w { + fill: url(#pattern-cx-w); +} +.svg-fill-pattern-pc-w { + fill: url(#pattern-pc-w); +} +.svg-fill-pattern-px-w { + fill: url(#pattern-px-w); +} +.svg-fill-pattern-ap-w { + fill: url(#pattern-ap-w); +} +.svg-fill-pattern-ar-w { + fill: url(#pattern-ar-w); +} +.svg-fill-pattern-pr-w { + fill: url(#pattern-pr-w); +} +.svg-fill-pattern-in-w { + fill: url(#pattern-in-w); +} diff --git a/packages/ui/src/styles/grids/grid-fluid.css b/packages/ui/src/styles/grids/grid-fluid.css new file mode 100644 index 000000000..868ff1c73 --- /dev/null +++ b/packages/ui/src/styles/grids/grid-fluid.css @@ -0,0 +1,219 @@ +/* + postcss-grid-fluid +------------------------------- + +https://github.com/francoisromain/postcss-grid-fluid +*/ + +@gf { + gutter: var(--gutter); + display: flex; +} + +.blobs { + gf: row; +} + +.blob-1 { + gf: blob 1; +} + +.blob-1-2 { + gf: blob 1/2; +} + +.blob-1-3 { + gf: blob 1/3; +} + +.blob-2-3 { + gf: blob 2/3; +} + +.blob-1-4 { + gf: blob 1/4; +} + +.blob-3-4 { + gf: blob 3/4; +} + +.blob-1-6 { + gf: blob 1/6; +} + +.blob-5-6 { + gf: blob 5/6; +} + +.blobs-mini { + gf: row var(--unit-s); +} + +.blob-mini-1-3 { + gf: blob 1/3 var(--unit-s); +} + +.blob-mini-2-3 { + gf: blob 2/3 var(--unit-s); +} + +.blob-mini-1-2 { + gf: blob 1/2 var(--unit-s); +} + +@media (--viewport-mobile) { + .mobile-blobs { + gf: row; + } + + .mobile-blob-1 { + gf: blob 1; + } + + .mobile-blob-1-2 { + gf: blob 1/2; + } + + .mobile-blob-1-3 { + gf: blob 1/3; + } + + .mobile-blob-2-3 { + gf: blob 2/3; + } + + .mobile-blob-1-4 { + gf: blob 1/4; + } + + .mobile-blob-3-4 { + gf: blob 3/4; + } + + .mobile-blob-1-6 { + gf: blob 1/6; + } + + .mobile-blob-5-6 { + gf: blob 5/6; + } +} + +@media (--viewport-tablet) { + .tablet-blobs { + gf: row; + } + + .tablet-blob-1 { + gf: blob 1; + } + + .tablet-blob-1-2 { + gf: blob 1/2; + } + + .tablet-blob-1-3 { + gf: blob 1/3; + } + + .tablet-blob-2-3 { + gf: blob 2/3; + } + + .tablet-blob-1-4 { + gf: blob 1/4; + } + + .tablet-blob-3-4 { + gf: blob 3/4; + } + + .tablet-blob-1-6 { + gf: blob 1/6; + } + + .tablet-blob-5-6 { + gf: blob 5/6; + } + + .tablet-blob-3-8 { + gf: blob 3/8; + } +} + +@media (--viewport-desktop) { + .desktop-blobs { + gf: row; + } + + .desktop-blob-1 { + gf: blob 1; + } + + .desktop-blob-1-2 { + gf: blob 1/2; + } + + .desktop-blob-1-3 { + gf: blob 1/3; + } + + .desktop-blob-2-3 { + gf: blob 2/3; + } + + .desktop-blob-1-4 { + gf: blob 1/4; + } + + .desktop-blob-3-4 { + gf: blob 3/4; + } + + .desktop-blob-1-6 { + gf: blob 1/6; + } + + .desktop-blob-5-6 { + gf: blob 5/6; + } +} + +@media (--viewport-large) { + .large-blobs { + gf: row; + } + + .large-blob-1 { + gf: blob 1; + } + + .large-blob-1-2 { + gf: blob 1/2; + } + + .large-blob-1-3 { + gf: blob 1/3; + } + + .large-blob-2-3 { + gf: blob 2/3; + } + + .large-blob-1-4 { + gf: blob 1/4; + } + + .large-blob-3-4 { + gf: blob 3/4; + } + + .large-blob-1-6 { + gf: blob 1/6; + } + + .large-blob-5-6 { + gf: blob 5/6; + } +} diff --git a/packages/ui/src/styles/grids/grid-system.css b/packages/ui/src/styles/grids/grid-system.css new file mode 100644 index 000000000..78f80e0e3 --- /dev/null +++ b/packages/ui/src/styles/grids/grid-system.css @@ -0,0 +1,187 @@ +/* + postcss-grid-system +------------------------------- + +https://github.com/francoisromain/postcss-grid-system + +*/ + +@gs { + width: var(--col-width); + gutter: var(--gutter); + padding: var(--container-padding); + max: 8; + min: 2; + display: flex; + align: center; +} + +.container { + gs: container; +} + +.row { + gs: row; +} + +.bloc-one-half { + gs: fraction 1/2; +} + +.bloc-three-half { + gs: fraction 3/2; +} + +.bloc-one-third { + gs: fraction 1/3; +} + +.bloc-two-third { + gs: fraction 2/3; +} + +.bloc-one-fourth { + gs: fraction 1/4; +} + +.bloc-three-fourth { + gs: fraction 3/4; +} + +.bloc-five-fourth { + gs: fraction 5/4; +} + +@gs-media 2 { + .bloc-2-1 { + gs: bloc 1; + } + + .bloc-2-2 { + gs: bloc 2; + } + + .bloc-2-3 { + gs: bloc 3; + } + + .bloc-2-4 { + gs: bloc 4; + } + + .bloc-2-5 { + gs: bloc 5; + } + + .bloc-2-6 { + gs: bloc 6; + } + + .bloc-2-7 { + gs: bloc 7; + } + + .bloc-2-8 { + gs: bloc 8; + } +} + +@gs-media 1 { + .show-1 { + display: flex; + visibility: visible; + } + + .hide-1 { + display: none; + visibility: hidden; + } +} + +@gs-media 2 { + .show-2 { + display: flex; + visibility: visible; + } + + .right-2 { + margin-left: auto; + } + + .hide-2 { + display: none; + visibility: hidden; + } +} + +@gs-media 3 { + .show-3 { + display: flex; + visibility: visible; + } + + .hide-3 { + display: none; + visibility: hidden; + } +} + +@gs-media 4 { + .show-4 { + display: flex; + visibility: visible; + } + + .hide-4 { + display: none; + visibility: hidden; + } +} + +@gs-media 5 { + .show-5 { + display: flex; + visibility: visible; + } + + .hide-5 { + display: none; + visibility: hidden; + } +} + +@gs-media 6 { + .show-6 { + display: flex; + visibility: visible; + } + + .hide-6 { + display: none; + visibility: hidden; + } +} + +@gs-media 7 { + .show-7 { + display: flex; + visibility: visible; + } + + .hide-7 { + display: none; + visibility: hidden; + } +} + +@gs-media 8 { + .show-8 { + display: flex; + visibility: visible; + } + + .hide-8 { + display: none; + visibility: hidden; + } +} diff --git a/packages/ui/src/styles/grids/grid-utils.css b/packages/ui/src/styles/grids/grid-utils.css new file mode 100644 index 000000000..870ec4d11 --- /dev/null +++ b/packages/ui/src/styles/grids/grid-utils.css @@ -0,0 +1,127 @@ +:root { + --container-width: 100%; + --margin-width-full-p: 0; + --margin-width-full: calc(-1 * var(--container-padding)); +} + +.container { + padding-left: var(--container-padding); + padding-right: var(--container-padding); + margin-left: auto; + margin-right: auto; + width: var(--container-width); +} + +.width-full-p { + margin-left: var(--margin-width-full-p); + margin-right: var(--margin-width-full-p); +} + +.width-full { + margin-left: var(--margin-width-full); + margin-right: var(--margin-width-full); +} + +.blobs-packed { + clear: both; + display: flex; + flex-flow: row wrap; + align-items: flex-start; + align-content: flex-start; +} + +.blob-packed-1-2 { + flex: 0 1 50%; +} + +.blob { + margin-right: var(--gutter); + flex: 0 1 0; +} + +.blob-auto { + margin-right: var(--gutter); + flex: 0 1 auto; +} + +@media (--viewport-mobile) { + .mobile-blob { + margin-right: var(--gutter); + flex: 0 1 0; + } + + .mobile-blob-auto { + margin-right: var(--gutter); + flex: 0 1 auto; + } +} + +@media (--viewport-tablet) { + .tablet-flex { + display: flex; + } + + .tablet-flex-right { + margin-left: auto; + } + + .tablet-flex-direction-reverse { + flex-direction: row-reverse; + } + + .tablet-blob { + margin-right: var(--gutter); + flex: 0 1 0; + } + + .tablet-blob-auto { + margin-right: var(--gutter); + flex: 0 1 auto; + } + + .tablet-float-blobs { + clear: both; + margin-right: calc(-1 * var(--gutter)); + } + + .tablet-float-blob-1-3 { + margin-right: var(--gutter); + width: calc(33.33333% - var(--gutter)); + float: left; + } + + .tablet-float-blob-2-3 { + margin-right: var(--gutter); + width: calc(66.66667% - var(--gutter)); + float: left; + } +} + +@media (--viewport-desktop) { + :root { + --container-width: calc(3 * var(--col-width) + var(--gutter)); + + --margin-width-full-p: calc( + -1 * (100vw - (var(--container-width) + (2 * var(--container-padding)))) / + 2 + ); + + --margin-width-full: calc( + var(--margin-width-full-p) - (2 * var(--container-padding)) + ); + } + + .desktop-flex { + display: flex; + } + + .desktop-flex-right { + margin-left: auto; + } +} + +@media (--viewport-large) { + :root { + --container-width: calc(4 * var(--col-width) + var(--gutter)); + } +} diff --git a/packages/ui/src/styles/icons/icons.css b/packages/ui/src/styles/icons/icons.css new file mode 100644 index 000000000..d0a37b2aa --- /dev/null +++ b/packages/ui/src/styles/icons/icons.css @@ -0,0 +1,771 @@ +.icon { + width: 100%; + height: 100%; + display: block; + background-size: cover; +} + +.icon-8 { + width: calc(var(--base-font-size) / 2); + height: calc(var(--base-font-size) / 2); + display: block; +} + +.icon-12 { + width: calc(var(--unit) / 2); + height: calc(var(--unit) / 2); + display: block; + background-repeat: no-repeat; +} + +.icon-16 { + width: calc(var(--unit) * 2 / 3); + height: calc(var(--unit) * 2 / 3); + display: block; +} + +.icon-24 { + width: var(--unit); + height: var(--unit); + display: block; + background-repeat: no-repeat; + background-position: top center; +} + +.icon-48 { + width: var(--unit-xl); + height: var(--unit-xl); + display: block; + background-repeat: no-repeat; +} + +.icon-128 { + width: calc(var(--unit) * 5); + height: calc(var(--unit) * 5); + display: inline-block; + vertical-align: middle; + background-repeat: no-repeat; +} + +.icon-close { + background-image: svg-load('./svgs/24-close.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-flash .icon-close, +.btn-flash:hover .icon-close, +.btn-alt:hover .icon-close { + background-image: svg-load('./svgs/24-close.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-x { + background-image: svg-load('./svgs/16-x.svg', fill= 'white'); +} + +.icon-plus { + background-image: svg-load('./svgs/24-plus.svg', + fill='#666' + ); +} + +.btn-alt .icon-plus, +.btn-primary .icon-plus, +.btn:hover .icon-plus, +.btn-alt:hover .icon-plus, +.btn-border:hover .icon-plus { + background-image: svg-load('./svgs/24-plus.svg', + fill='white' + ); +} + +.icon-check { + background-image: svg-load('./svgs/24-check.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-check { + background-image: svg-load('./svgs/24-check.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-refresh { + background-image: svg-load('./svgs/24-refresh.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-refresh { + background-image: svg-load('./svgs/24-refresh.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-cross { + background-image: svg-load('./svgs/24-cross.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-cross { + background-image: svg-load('./svgs/24-cross.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-square { + background-image: svg-load('./svgs/24-square.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-square { + background-image: svg-load('./svgs/24-square.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-minus { + background-image: svg-load('./svgs/24-minus.svg', + fill='#666' + ); +} + +.btn:hover .icon-minus, +.btn-border:hover .icon-minus { + background-image: svg-load('./svgs/24-minus.svg', + fill='white' + ); +} + +.icon-chevron-b { + background-image: svg-load('./svgs/24-chevron-b.svg', + fill='#666' + ); +} + +.btn-border:hover .icon-chevron-b, +.btn:hover .icon-chevron-b, +.btn-alt:hover .icon-chevron-b { + background-image: svg-load('./svgs/24-chevron-b.svg', + fill='white' + ); +} + +.icon-chevron-t { + background-image: svg-load('./svgs/24-chevron-t.svg', + fill='#666' + ); +} + +.btn-border:hover .icon-chevron-t, +.btn:hover .icon-chevron-t, +.btn-alt:hover .icon-chevron-t { + background-image: svg-load('./svgs/24-chevron-t.svg', + fill='white' + ); +} + +.icon-file { + background-image: svg-load('./svgs/16-file.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-file-plus { + background-image: svg-load('./svgs/24-file-plus.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-file-plus { + background-image: svg-load('./svgs/24-file-plus.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-file-link { + background-image: svg-load('./svgs/24-file-link.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-file-link { + background-image: svg-load('./svgs/24-file-link.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-unlink { + background-image: svg-load('./svgs/24-unlink.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-unlink { + background-image: svg-load('./svgs/24-unlink.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-file-chevron-b { + background-image: svg-load('./svgs/24-file-chevron-b.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-border:hover .icon-file-chevron-b, +.btn-alt:hover .icon-file-chevron-b { + background-image: svg-load('./svgs/24-file-chevron-b.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-file-chevron-t { + background-image: svg-load('./svgs/24-file-chevron-t.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-border:hover .icon-file-chevron-t, +.btn-alt:hover .icon-file-chevron-t { + background-image: svg-load('./svgs/24-file-chevron-t.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-download { + background-image: svg-load('./svgs/24-download.svg', + fill='#666' + ); +} + +.btn-border:hover .icon-download, +.btn-alt:hover .icon-download { + background-image: svg-load('./svgs/24-download.svg', + fill='white' + ); +} + +.icon-view { + background-image: svg-load('./svgs/24-view.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-link { + background-image: svg-load('./svgs/24-link.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-border:hover .icon-link { + background-image: svg-load('./svgs/24-link.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-login { + background-image: svg-load('./svgs/24-login.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-alt:hover .icon-login { + background-image: svg-load('./svgs/24-login.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-user { + background-image: svg-load('./svgs/24-user.svg', + fill='#666', + stroke-linecap=round, + stroke-linejoin=round + ); +} + +.btn-border:hover .icon-user, +.active .btn-border .icon-user { + background-image: svg-load('./svgs/24-user.svg', + fill=white, + stroke-linecap=round, + stroke-linejoin=round + ); +} + +.icon-menu { + background-image: svg-load('./svgs/24-menu.svg', + fill='#666' + ); +} + +.btn-border:hover .icon-menu, +.active .btn-border .icon-menu { + background-image: svg-load('./svgs/24-menu.svg', + fill='white' + ); +} + +.icon-pencil { + background-image: svg-load('./svgs/24-pencil.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-primary .icon-pencil, +.btn:hover .icon-pencil, +.btn-alt:hover .icon-pencil, +.btn-border:hover .icon-pencil { + background-image: svg-load('./svgs/24-pencil.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-at { + background-image: svg-load('./svgs/24-at.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-alt:hover .icon-at { + background-image: svg-load('./svgs/24-at.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-key { + background-image: svg-load('./svgs/24-key.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-alt:hover .icon-key { + background-image: svg-load('./svgs/24-key.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-trash { + background-image: svg-load('./svgs/24-trash.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn:hover .icon-trash, +.btn-alt:hover .icon-trash, +.btn-border:hover .icon-trash { + background-image: svg-load('./svgs/24-trash.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-24-dot.blink { + animation: blinker 0.2s ease infinite; +} + +@keyframes blinker { + 50% { + background-image: svg-load('./svgs/24-dot.svg', fill= 'white'); + } +} + +.icon-globe { + background-image: svg-load('./svgs/globe-3.svg', + fill='#666' + ); +} + +.span-tab .icon-globe, +.btn-tab:hover .icon-globe { + background-image: svg-load('./svgs/globe-3.svg', + fill='white' + ); +} + +.icon-list { + background-image: svg-load('./svgs/list-bullets.svg', + fill='#666' + ); +} + +.span-tab .icon-list, +.btn-tab:hover .icon-list { + background-image: svg-load('./svgs/list-bullets.svg', + fill='white' + ); +} + +.icon-map { + background-image: svg-load('./svgs/map-pin-2.svg', + fill=none, + stroke= '#76b6bd', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1px + ); +} + +.icon-dashboard { + background-image: svg-load('./svgs/window-speedtest.svg', + fill=none, + stroke= '#76b6bd', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1px + ); +} + +.icon-api { + background-image: svg-load('./svgs/cloud-setting.svg', + fill=none, + stroke= '#76b6bd', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1px + ); +} + +.icon-user-check { + background-image: svg-load('./svgs/business-check.svg', + fill=none, + stroke= '#76b6bd', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1px + ); +} + +.icon-ngo { + background-image: svg-load('./svgs/group-global.svg', + fill=none, + stroke= '#76b6bd', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1px + ); +} + +.icon-business { + background-image: svg-load('./svgs/building-2.svg', + fill=none, + stroke= '#76b6bd', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1px + ); +} + +.icon-markers-clusters { + background-image: svg-load('./svgs/24-markers-grouped.svg', + fill='#666' + ); +} + +.icon-markers-markers { + background-image: svg-load('./svgs/24-markers-ungrouped.svg', + fill='#666' + ); +} + +.icon-markers-none { + background-image: svg-load('./svgs/24-markers-none.svg', + fill='#666' + ); +} + +.active .icon-markers-clusters, +.btn-border:hover .icon-markers-clusters{ + background-image: svg-load('./svgs/24-markers-grouped.svg', + fill='white' + ); +} + +.active .icon-markers-markers, +.btn-border:hover .icon-markers-markers{ + background-image: svg-load('./svgs/24-markers-ungrouped.svg', + fill='white' + ); +} + +.active .icon-markers-none, +.btn-border:hover .icon-markers-none{ + background-image: svg-load('./svgs/24-markers-none.svg', + fill='white' + ); +} + +.icon-pattern { + background-image: svg-load('./svgs/24-pattern.svg', + fill= '#666', + stroke=none, + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.active .icon-pattern, +.btn-border:hover .icon-pattern{ + background-image: svg-load('./svgs/24-pattern.svg', + fill= 'white', + stroke=none, + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-window-link { + background-image: svg-load('./svgs/24-window-link.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-alt:hover .icon-window-link { + background-image: svg-load('./svgs/24-window-link.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-move-down { + background-image: svg-load('./svgs/24-move-down.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-border:hover .icon-move-down { + background-image: svg-load('./svgs/24-move-down.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-move-up { + background-image: svg-load('./svgs/24-move-up.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.btn-border:hover .icon-move-up { + background-image: svg-load('./svgs/24-move-up.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.icon-announcement { + background-image: svg-load('./svgs/48-announcement.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=2px + ); +} + +.icon-help { + background-image: svg-load('./svgs/info.svg', + fill= '#666', + stroke-width=1.25px + ); +} + + +.btn-alt:hover .icon-help { + background-image: svg-load('./svgs/info.svg', + stroke-width=1.25px + ); +} + +.icon-map-legend { + height: calc(var(--unit) * 1); + width: calc(var(--unit) * 2); + background-repeat: no-repeat; +} + +.icon-map-legend-sdom-zone-0 { + background-image: svg-load('./svgs/map-legend-sdom-zone.svg', + fill='#0000ff' + ); +} + +.icon-map-legend-sdom-zone-0-potentielle { + background-image: svg-load('./svgs/map-legend-sdom-zone.svg', + fill='url(#texture_diagonal)' + ); +} + +.icon-map-legend-sdom-zone-1 { + background-image: svg-load('./svgs/map-legend-sdom-zone.svg', + fill='#00ff7f' + ); +} + +.icon-map-legend-sdom-zone-2 { + background-image: svg-load('./svgs/map-legend-sdom-zone.svg', + fill='#ffaa00' + ); +} diff --git a/packages/ui/src/styles/icons/svgs/16-file.svg b/packages/ui/src/styles/icons/svgs/16-file.svg new file mode 100644 index 000000000..251717eea --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/16-file.svg @@ -0,0 +1,3 @@ +<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"> + <path d="M13.5 5.167V14.5c0 .549-.451 1-1 1h-9c-.549 0-1-.451-1-1v-13c0-.549.451-1 1-1h5.333L13.5 5.167z" fill="none"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/16-x.svg b/packages/ui/src/styles/icons/svgs/16-x.svg new file mode 100644 index 000000000..7e60ebdf4 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/16-x.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-rule="evenodd" clip-rule="evenodd"> + <path d="M8 0c4.415 0 8 3.585 8 8s-3.585 8-8 8-8-3.585-8-8 3.585-8 8-8zm0 6.586l2.828-2.829a1.002 1.002 0 011.415 0c.39.391.39 1.024 0 1.415L9.414 8l2.829 2.828c.39.391.39 1.024 0 1.415-.391.39-1.024.39-1.415 0L8 9.414l-2.828 2.829c-.391.39-1.024.39-1.415 0a1.002 1.002 0 010-1.415L6.586 8 3.757 5.172a1.002 1.002 0 010-1.415 1.002 1.002 0 011.415 0L8 6.586z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-at.svg b/packages/ui/src/styles/icons/svgs/24-at.svg new file mode 100644 index 000000000..0ddeeec06 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-at.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M7.5 12c0 2.469 2.031 4.5 4.5 4.5s4.5-2.031 4.5-4.5-2.031-4.5-4.5-4.5S7.5 9.531 7.5 12z"/> + <path d="M18.5 21.5a11.51 11.51 0 01-6.509 2.017C5.677 23.517.482 18.322.482 12.008.482 5.695 5.677.499 11.991.499 18.301.499 23.495 5.69 23.5 12v1c0 1.92-1.58 3.5-3.5 3.5s-3.5-1.58-3.5-3.5v-1"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-check.svg b/packages/ui/src/styles/icons/svgs/24-check.svg new file mode 100644 index 000000000..3caf03b23 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-check.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M18 6.999l-7 9.5-5-4"/> + <path d="M2.5 2.499h19v19h-19z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-chevron-b.svg b/packages/ui/src/styles/icons/svgs/24-chevron-b.svg new file mode 100644 index 000000000..c683b0dfe --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-chevron-b.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M12 13.172l4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-chevron-t.svg b/packages/ui/src/styles/icons/svgs/24-chevron-t.svg new file mode 100644 index 000000000..9689e17ba --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-chevron-t.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M12 10.828l-4.95 4.95-1.414-1.414L12 8l6.364 6.364-1.414 1.414z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-close.svg b/packages/ui/src/styles/icons/svgs/24-close.svg new file mode 100644 index 000000000..0c3bd4704 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-close.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path class="st0" d="M2 2l20 20m0-20L2 22"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-cross.svg b/packages/ui/src/styles/icons/svgs/24-cross.svg new file mode 100644 index 000000000..6a1934723 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-cross.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M2.5 2.499h19v19h-19zm4.5 14.5l10-10m0 10l-10-10"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-dot.svg b/packages/ui/src/styles/icons/svgs/24-dot.svg new file mode 100644 index 000000000..d0e008188 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-dot.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <circle cx="11.5" cy="11.5" r="6"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-download.svg b/packages/ui/src/styles/icons/svgs/24-download.svg new file mode 100644 index 000000000..ce7655488 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-download.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20"> + <path d="M3 19h18v2H3v-2zm10-5.828L19.071 7.1l1.414 1.414L12 17 3.515 8.515 4.929 7.1 11 13.17V2h2v11.172z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-file-chevron-b.svg b/packages/ui/src/styles/icons/svgs/24-file-chevron-b.svg new file mode 100644 index 000000000..494ab91ea --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-file-chevron-b.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M19.5 23L15 18.5m4.5 4.5l4.5-4.5M6.5 7.5h10m-10 5h10m-10 5h5m1 4H5A1.5 1.5 0 013.5 20V3A1.5 1.5 0 015 1.5h10.129c.398 0 .779.158 1.06.439l2.872 2.872c.281.281.439.662.439 1.06v9.379"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-file-chevron-t.svg b/packages/ui/src/styles/icons/svgs/24-file-chevron-t.svg new file mode 100644 index 000000000..bc9d7b871 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-file-chevron-t.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M19.5 18.5L24 23m-4.5-4.5L15 23M6.5 7.5h10m-10 5h10m-10 5h5m1 4H5A1.5 1.5 0 013.5 20V3A1.5 1.5 0 015 1.5h10.129c.398 0 .779.158 1.06.439l2.872 2.872c.281.281.439.662.439 1.06v9.379"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-file-link.svg b/packages/ui/src/styles/icons/svgs/24-file-link.svg new file mode 100644 index 000000000..2dd9ee406 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-file-link.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M10 21.5H4c-.823 0-1.5-.677-1.5-1.5V2c0-.823.677-1.5 1.5-1.5h9.5l7 7V11"/> + <path d="M20.5 7.5H15c-.823 0-1.5-.677-1.5-1.5V.5m1.666 15.668l4.665 4.665m-2.329.496l1.584 1.584a2 2 0 102.827-2.828l-1.584-1.584m-2.83-2.826l-1.587-1.587a2 2 0 00-2.828 2.827l1.587 1.587"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-file-plus.svg b/packages/ui/src/styles/icons/svgs/24-file-plus.svg new file mode 100644 index 000000000..81ab4d5e1 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-file-plus.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M10 21.5H4c-.823 0-1.5-.677-1.5-1.5V2c0-.823.677-1.5 1.5-1.5h9.5l7 7V11"/> + <path d="M20.5 7.5H15c-.823 0-1.5-.677-1.5-1.5V.5m4 23.5V13zM12 18.5h11M17.5 24V13"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-file.svg b/packages/ui/src/styles/icons/svgs/24-file.svg new file mode 100644 index 000000000..49cf7663a --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-file.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M5.25 7.477h6m-6 4.5h7.5m-7.5 4.5h13.5M2.25 3.023a1.5 1.5 0 00-1.5 1.5v14.954a1.5 1.5 0 001.5 1.5h19.5a1.5 1.5 0 001.5-1.5v-12a1.5 1.5 0 00-.426-1.047l-2.883-2.955a1.502 1.502 0 00-1.074-.452H2.25z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-help.svg b/packages/ui/src/styles/icons/svgs/24-help.svg new file mode 100644 index 000000000..35b97a511 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-help.svg @@ -0,0 +1 @@ + <svg width="24" height="24" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M 500 0C 224 0 0 224 0 500C 0 776 224 1000 500 1000C 776 1000 1000 776 1000 500C 1000 224 776 0 500 0C 500 0 500 0 500 0 M 501 191C 626 191 690 275 690 375C 690 475 639 483 595 513C 573 525 558 553 559 575C 559 591 554 602 541 601C 541 601 460 601 460 601C 446 601 436 581 436 570C 436 503 441 488 476 454C 512 421 566 408 567 373C 566 344 549 308 495 306C 463 303 445 314 411 361C 400 373 384 382 372 373C 372 373 318 333 318 333C 309 323 303 307 312 293C 362 218 401 191 501 191C 501 191 501 191 501 191M 500 625C 541 625 575 659 575 700C 576 742 540 776 500 775C 457 775 426 739 425 700C 425 659 459 625 500 625C 500 625 500 625 500 625"/></svg> diff --git a/packages/ui/src/styles/icons/svgs/24-key.svg b/packages/ui/src/styles/icons/svgs/24-key.svg new file mode 100644 index 000000000..6de0e1dbf --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-key.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <circle cx="5.5" cy="18.5" r="1.5"/> + <path d="M20.5.5l-9.782 9.783a7 7 0 103 3L17 10h1.5V8.5L19 8h1.5V6.5L21 6h1.5V4.5l1-1v-3z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-link.svg b/packages/ui/src/styles/icons/svgs/24-link.svg new file mode 100644 index 000000000..32bbe5184 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-link.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M6.75 17.249l10.5-10.5m-9.515 5.272a4.472 4.472 0 00-3.417 1.3l-2.25 2.25a4.5 4.5 0 006.364 6.364l2.25-2.25a4.472 4.472 0 001.3-3.417m4.283-4.292a4.473 4.473 0 003.417-1.3l2.25-2.25a4.5 4.5 0 00-6.364-6.364l-2.25 2.25a4.475 4.475 0 00-1.295 3.417"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-login.svg b/packages/ui/src/styles/icons/svgs/24-login.svg new file mode 100644 index 000000000..fda5a831e --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-login.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M1.417 16.5c1.801 4.236 5.98 7 10.583 7 6.309 0 11.5-5.191 11.5-11.5S18.309.5 12 .5a11.519 11.519 0 00-10.583 7"/> + <path d="M12.503 16l4-4-4-4m4 4h-16"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-markers-grouped.svg b/packages/ui/src/styles/icons/svgs/24-markers-grouped.svg new file mode 100644 index 000000000..20523c0ab --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-markers-grouped.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M12 20.9l4.95-4.95a7 7 0 1 0-9.9 0L12 20.9zm0 2.828l-6.364-6.364a9 9 0 1 1 12.728 0L12 23.728zM12 13a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-markers-none.svg b/packages/ui/src/styles/icons/svgs/24-markers-none.svg new file mode 100644 index 000000000..0098d48a2 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-markers-none.svg @@ -0,0 +1,6 @@ +<svg width="24px" height="24px" viewBox="0 0 24 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g id="24-markers-grouped" transform="translate(0.908117, 0.000078)"> + <path d="M9.09188309,18.8999221 L14.0418831,13.9499221 C16.7753479,11.2161783 16.7751972,6.78415329 14.0415464,4.05059549 C11.3078956,1.31703769 6.87587059,1.31703769 4.1422198,4.05059549 C1.40856902,6.78415329 1.40841827,11.2161783 4.14188309,13.9499221 L9.09188309,18.8999221 Z M9.09188309,21.7279221 L2.72788309,15.3639221 C-0.786803866,11.8491921 -0.786780603,6.15072729 2.72793505,2.63602598 C6.24265071,-0.878675327 11.9411155,-0.878675327 15.4558311,2.63602598 C18.9705468,6.15072729 18.97057,11.8491921 15.4558831,15.3639221 L9.09188309,21.7279221 L9.09188309,21.7279221 Z M9.09188309,10.9999221 C10.1964526,10.9999221 11.0918831,10.1044916 11.0918831,8.99992206 C11.0918831,7.89535256 10.1964526,6.99992206 9.09188309,6.99992206 C7.98731359,6.99992206 7.09188309,7.89535256 7.09188309,8.99992206 C7.09188309,10.1044916 7.98731359,10.9999221 9.09188309,10.9999221 Z M9.09188309,12.9999221 C6.88274409,12.9999221 5.09188309,11.2090611 5.09188309,8.99992206 C5.09188309,6.79078306 6.88274409,4.99992206 9.09188309,4.99992206 C11.3010221,4.99992206 13.0918831,6.79078306 13.0918831,8.99992206 C13.0918831,11.2090611 11.3010221,12.9999221 9.09188309,12.9999221 Z"></path> + <rect transform="translate(9.192388, 9.514641) rotate(-45.000000) translate(-9.192388, -9.514641) " x="8.19238816" y="-2.48535931" width="2" height="24"></rect> + </g> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-markers-ungrouped.svg b/packages/ui/src/styles/icons/svgs/24-markers-ungrouped.svg new file mode 100644 index 000000000..71ad4e368 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-markers-ungrouped.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M9.975 8.975a3.5 3.5 0 1 0-4.95 0L7.5 11.45l2.475-2.475zM7.5 14.278L3.61 10.39a5.5 5.5 0 1 1 7.78 0L7.5 14.28zM7.5 8a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 12.45l2.475-2.475a3.5 3.5 0 1 0-4.95 0L16.5 20.45zm3.89-1.06l-3.89 3.888-3.89-3.889a5.5 5.5 0 1 1 7.78 0zM16.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-menu.svg b/packages/ui/src/styles/icons/svgs/24-menu.svg new file mode 100644 index 000000000..16676c9be --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-menu.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-minus.svg b/packages/ui/src/styles/icons/svgs/24-minus.svg new file mode 100644 index 000000000..4f35db0d8 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-minus.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M5 11h14v2H5z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-move-down.svg b/packages/ui/src/styles/icons/svgs/24-move-down.svg new file mode 100644 index 000000000..2ab2b7d09 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-move-down.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M12 18.248v-10.5m-3.75 6.75l3.75 3.75 3.75-3.75"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-move-up.svg b/packages/ui/src/styles/icons/svgs/24-move-up.svg new file mode 100644 index 000000000..2a98303eb --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-move-up.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M12 6.748v10.5m-3.75-6.75L12 6.748l3.75 3.75"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-pattern.svg b/packages/ui/src/styles/icons/svgs/24-pattern.svg new file mode 100644 index 000000000..a8962f353 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-pattern.svg @@ -0,0 +1,3 @@ +<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"> + <path d="M14.567 21h-4.242L3 13.675V9.433L14.567 21zM21 10.393v4.243L9.364 3h4.243L21 10.393zM3 17.849L6.151 21H3v-3.151zM5.053 3L21 18.947V21h-2.19L3 5.19V3h2.053zM21 6.151L17.849 3H21v3.151z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-pencil.svg b/packages/ui/src/styles/icons/svgs/24-pencil.svg new file mode 100644 index 000000000..928320aaf --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-pencil.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path class="a" d="M17.672 2.086l4.242 4.243-15.05 15.05-4.242-4.243zM2.621 17.136L.5 23.5l6.364-2.121-4.243-4.243z"/> + <path class="a" d="M21.914 6.328l-4.242-4.242.707-.707a3 3 0 014.242 4.242z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-plus.svg b/packages/ui/src/styles/icons/svgs/24-plus.svg new file mode 100644 index 000000000..f4b5cec8c --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-plus.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-refresh.svg b/packages/ui/src/styles/icons/svgs/24-refresh.svg new file mode 100644 index 000000000..5dddf725c --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-refresh.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"> + <path fill="black" d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-square.svg b/packages/ui/src/styles/icons/svgs/24-square.svg new file mode 100644 index 000000000..3af42d90f --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-square.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M2.5 2.499h19v19h-19z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-trash.svg b/packages/ui/src/styles/icons/svgs/24-trash.svg new file mode 100644 index 000000000..8760c3d89 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-trash.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path class="a" d="M21 4.5l-1.812 17.209A2 2 0 0117.2 23.5H6.8a2 2 0 01-1.989-1.791L3 4.5m-2.5 0h23m-16 0v-3a1 1 0 011-1h7a1 1 0 011 1v3M12 9v10.5M16.5 9L16 19.5M7.5 9L8 19.5"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-unlink.svg b/packages/ui/src/styles/icons/svgs/24-unlink.svg new file mode 100644 index 000000000..3615513e4 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-unlink.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M8.25 5.249l-3-3m1.5 6h-1.5m6-4.5v-1.5m3 4.5h4.5a4.5 4.5 0 010 9h-4.5m-9.53-4.334l-2.652 2.652a4.5 4.5 0 006.364 6.364l2.652-2.652"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-user.svg b/packages/ui/src/styles/icons/svgs/24-user.svg new file mode 100644 index 000000000..198a2c1b1 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-user.svg @@ -0,0 +1,7 @@ +<svg width="16px" height="21px" viewBox="0 0 16 21" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g stroke="none" stroke-width="1" fill-rule="evenodd"> + <g> + <path d="M8,13 C12.418278,13 16,16.581722 16,21 L14,21 C14,17.6862915 11.3137085,15 8,15 C4.6862915,15 2,17.6862915 2,21 L0,21 C0,16.581722 3.581722,13 8,13 Z M8,0 C11.315,0 14,2.685 14,6 C14,9.315 11.315,12 8,12 C4.685,12 2,9.315 2,6 C2,2.685 4.685,0 8,0 Z M8,2 C5.79,2 4,3.79 4,6 C4,8.21 5.79,10 8,10 C10.21,10 12,8.21 12,6 C12,3.79 10.21,2 8,2 Z"></path> + </g> + </g> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-view.svg b/packages/ui/src/styles/icons/svgs/24-view.svg new file mode 100644 index 000000000..63b131b20 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-view.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <circle cx="16" cy="8" r="7"/> + <path d="M4 20l7-7"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/24-window-link.svg b/packages/ui/src/styles/icons/svgs/24-window-link.svg new file mode 100644 index 000000000..af23ae80a --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/24-window-link.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M21.76 10.5V2.253a1.5 1.5 0 00-1.5-1.5h-18a1.5 1.5 0 00-1.5 1.5v16.5a1.5 1.5 0 001.5 1.5h6.751m-8.251-15h21m-1.499 9l3 3-3 3"/> + <path d="M12.76 23.253a6 6 0 016-6h4.5"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/48-announcement.svg b/packages/ui/src/styles/icons/svgs/48-announcement.svg new file mode 100644 index 000000000..311ad179b --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/48-announcement.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg"> + <path d="M22.543 1.5c11.582-.016 20.984 9.358 21 20.94a20.976 20.976 0 01-3.166 11.11l6.166 12.95-12.948-6.168c-9.848 6.126-22.798 3.108-28.924-6.74-6.126-9.848-3.108-22.798 6.74-28.924A21 21 0 0122.543 1.5z"/> + <path d="M22.543 28.5a.75.75 0 110 1.5.75.75 0 010-1.5m0-6v-9"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/building-2.svg b/packages/ui/src/styles/icons/svgs/building-2.svg new file mode 100644 index 000000000..73049e6bc --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/building-2.svg @@ -0,0 +1,5 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <path d="M2.5 8.5h10v15h-10z"/> + <path d="M20.5 23.5h-8v-15h-2v-8h10z"/> + <path d="M15.5 20.5h3v3h-3zm-11 0h3v3h-3zm-2-10h4m-4 2h3m5-8h4m-4-2h6m-6 4h3m-11 8h2"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/business-check.svg b/packages/ui/src/styles/icons/svgs/business-check.svg new file mode 100644 index 000000000..cd10aa7e7 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/business-check.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <circle cx="6.25" cy="4" r="3.5"/> + <path d="M11.75 9.5h-11c0 4.069 1.64 6.442 3.5 7.5v6.5h4V17c1.858-1.058 3.5-3.431 3.5-7.5z"/> + <path d="M6.75 9.5h-1l-.5 6 1 1 1-1-.5-6zm5.602-6.562a6 6 0 111.544 10.083"/> + <path d="M23.25.5l-6.888 9.175L13.7 7.013"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/cloud-setting.svg b/packages/ui/src/styles/icons/svgs/cloud-setting.svg new file mode 100644 index 000000000..b9266bfc9 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/cloud-setting.svg @@ -0,0 +1,5 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <path d="M15.897 20.117l1-1.732-1-.577a3.232 3.232 0 000-1.614l.999-.576-1-1.732-.999.576a3.496 3.496 0 00-1.397-.799V12.5h-2v1.162a3.49 3.49 0 00-1.397.799l-.999-.576-1 1.732.999.576a3.232 3.232 0 000 1.614l-1 .577 1 1.732 1-.578c.392.369.869.64 1.397.799V21.5h2v-1.162a3.485 3.485 0 001.396-.799l1.001.578z"/> + <circle cx="12.5" cy="17" r="1.5"/> + <path d="M19.196 16.391s4.304-.561 4.304-4.782a4.77 4.77 0 00-4.954-4.774A6.684 6.684 0 005.825 9.294 3.586 3.586 0 001.5 12.803c0 2.992 2.579 3.49 3.502 3.572"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/eco-globe-1.svg b/packages/ui/src/styles/icons/svgs/eco-globe-1.svg new file mode 100644 index 000000000..f051238e3 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/eco-globe-1.svg @@ -0,0 +1,9 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <g fill="none" stroke="#000" stroke-linejoin="round" stroke-miterlimit="10"> + <path d="M.5 14.5h4v8h-4z"/> + <path stroke-linecap="round" d="M4.5 21c10.729 3.577 6.771 3.613 19-2.5-1.062-1.062-1.903-1.313-3-1l-4.434 1.471"/> + <path stroke-linecap="round" d="M4.5 15.5h3c2.353 0 4 1.5 4.5 2h3c1.593 0 1.593 2 0 2H9.5m-2.649-7.404a8.001 8.001 0 1111.241 3.281"/> + <path stroke-linecap="round" d="M19.913 3.112s-.348 1.911-1.739 2.606c-1.391-.348-2.782.694-2.435.694.348 0 .695 1.392.695 1.392.349.348 1.044 0 1.044 0 .869.869-1.392 2.436-1.392 2.783s.87.521.347 1.044c-.521.521-1.042.694-1.042.694 0 1.739-1.74 1.739-2.087 1.739-.348 0-1.044-1.392-1.044-1.739s.349-.694.349-1.043c0-.348-.696-1.043-.696-1.043 0-1.392-1.043-1.044-2.087-1.044-1.043 0-1.043-1.392-1.043-1.392s0-2.434 1.739-2.781c1.738-.35 1.738.348 1.738.348.697.694 2.087 0 2.783 0 0 0 .348-2.436-.348-2.088-.695.35-1.319.079-1.39-.694C13.203 1.5 16.34.849 16.34.849"/> + </g> + <path fill="none" d="M0 0h24v24H0z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/file-checklist-edit.svg b/packages/ui/src/styles/icons/svgs/file-checklist-edit.svg new file mode 100644 index 000000000..61cdccf9c --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/file-checklist-edit.svg @@ -0,0 +1,12 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <g fill="none" stroke="#000" stroke-linejoin="round" stroke-miterlimit="10"> + <path stroke-linecap="round" d="M16 22.5l-3.5 1 1-3.5 7.502-7.502 2.5 2.5z"/> + <path d="M19.002 14.498l2.5 2.5"/> + <path stroke-linecap="round" d="M13.5 20l2.5 2.5m-7-12h4m-4 4h4m-5.5-6L5 11 3.5 9.5m4 3.015l-2.5 2.5-1.5-1.5"/> + <g stroke-linecap="round"> + <path d="M9 21.5H.5V.5h10.999l5.001 5V13"/> + <path d="M11.499.5l.001 5h5"/> + </g> + </g> + <path fill="none" d="M0 0h24v24H0z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/folder.svg b/packages/ui/src/styles/icons/svgs/folder.svg new file mode 100755 index 000000000..4c4246f94 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/folder.svg @@ -0,0 +1,3 @@ +<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> + <path d="M1.5 20.5h21v-14h-12l-3-3h-6v17zm21-10h-21"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/globe-3.svg b/packages/ui/src/styles/icons/svgs/globe-3.svg new file mode 100644 index 000000000..417ed6425 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/globe-3.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" > + <path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-2.29-2.333A17.9 17.9 0 0 1 8.027 13H4.062a8.008 8.008 0 0 0 5.648 6.667zM10.03 13c.151 2.439.848 4.73 1.97 6.752A15.905 15.905 0 0 0 13.97 13h-3.94zm9.908 0h-3.965a17.9 17.9 0 0 1-1.683 6.667A8.008 8.008 0 0 0 19.938 13zM4.062 11h3.965A17.9 17.9 0 0 1 9.71 4.333 8.008 8.008 0 0 0 4.062 11zm5.969 0h3.938A15.905 15.905 0 0 0 12 4.248 15.905 15.905 0 0 0 10.03 11zm4.259-6.667A17.9 17.9 0 0 1 15.973 11h3.965a8.008 8.008 0 0 0-5.648-6.667z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/group-global.svg b/packages/ui/src/styles/icons/svgs/group-global.svg new file mode 100644 index 000000000..5e9244e3a --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/group-global.svg @@ -0,0 +1,7 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <path d="M18.5 6.976c0 3.604-2.918 6.524-6.518 6.524S5.5 10.462 5.5 6.858C5.5 3.349 8.253.645 11.721.505c.093-.003.187-.005.282-.005 3.6 0 6.497 2.872 6.497 6.476zM11.721.506c-3.392 3.674-3.392 8.467 0 12.989M12.285.506c3.392 3.674 3.392 8.466 0 12.987M6.574 10.5h10.894m-11.015-7h11.043M5.5 7h13"/> + <circle cx="4.5" cy="17.015" r="2.5"/> + <circle cx="12" cy="17.015" r="2.5"/> + <circle cx="19.5" cy="17.015" r="2.5"/> + <path d="M19.5 19.507c-1.733 0-3.194 1.112-3.75 2.654-.556-1.542-2.017-2.648-3.75-2.648s-3.194 1.109-3.75 2.65c-.556-1.541-2.017-2.656-3.75-2.656-2.21 0-4 1.993-4 3.993h23c0-2-1.79-3.993-4-3.993z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/info.svg b/packages/ui/src/styles/icons/svgs/info.svg new file mode 100644 index 000000000..13fafeece --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/info.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM11 7h2v2h-2V7zm0 4h2v6h-2v-6z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/list-bullets.svg b/packages/ui/src/styles/icons/svgs/list-bullets.svg new file mode 100644 index 000000000..ad973fc77 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/list-bullets.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> + <path d="M8 4h13v2H8V4zM4.5 6.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 6.9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM8 11h13v2H8v-2zm0 7h13v2H8v-2z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/map-legend-sdom-zone.svg b/packages/ui/src/styles/icons/svgs/map-legend-sdom-zone.svg new file mode 100644 index 000000000..a90cbf33c --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/map-legend-sdom-zone.svg @@ -0,0 +1,22 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 20" width="40px" height="20px"> + <defs> + <pattern + id="texture_diagonal" + x="0" + y="0" + width="10%" + height="10%" + patternTransform="rotate(45 0 0)" + patternUnits="userSpaceOnUse" + > + <line + x1="0" + y1="0" + x2="0" + y2="10" + style="stroke: #0000ff; stroke-width: 2" + /> + </pattern> + </defs> + <rect width="100%" height="100%" /> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/map-pin-2.svg b/packages/ui/src/styles/icons/svgs/map-pin-2.svg new file mode 100644 index 000000000..e342d27f9 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/map-pin-2.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <circle cx="11.5" cy="3.5" r="3"/> + <path d="M11.5 6.5V17m-3-4.722l-1 .222-7-2v11l7 2 9-2 7 2v-11l-7-2-2 .445m-7 1.555v11m9-13v11m-5-19a1 1 0 011 1"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/map-treasure.svg b/packages/ui/src/styles/icons/svgs/map-treasure.svg new file mode 100644 index 000000000..650de337e --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/map-treasure.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path d="M.5 22l6 1.5L12 22l5.5 1.5 6-1.5-1-18.5L17 5l-5-1.5L7 5 1.5 3.5zM17 8.5l2 2m-2 0l2-2m-14.5 9L5 17m2.5-2.5L8 14m10.5-2v1M14 14.5l.5.5M11 12.5h1m5.5 3.5l.5-.5" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/> + <path fill="none" d="M0 0h24v24H0z"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/settings.svg b/packages/ui/src/styles/icons/svgs/settings.svg new file mode 100755 index 000000000..0ad859d48 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/settings.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="none" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"> + <path d="M13 2v4l-2 1-3-3-4 4 3 3-1 2H2v6h4l1 2-3 3 4 4 3-3 2 1v4h6v-4l2-1 3 3 4-4-3-3 1-2h4v-6h-4l-1-2 3-3-4-4-3 3-2-1V2z"/> + <circle cx="16" cy="16" r="4"/> +</svg> diff --git a/packages/ui/src/styles/icons/svgs/window-speedtest.svg b/packages/ui/src/styles/icons/svgs/window-speedtest.svg new file mode 100644 index 000000000..63d905fe9 --- /dev/null +++ b/packages/ui/src/styles/icons/svgs/window-speedtest.svg @@ -0,0 +1,7 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> + <path d="M23.5 18.5a2 2 0 01-2 2h-19a2 2 0 01-2-2v-14a2 2 0 012-2h19a2 2 0 012 2v14zm-23-11h23"/> + <circle cx="4" cy="5" r=".5"/> + <circle cx="7" cy="5" r=".5"/> + <circle cx="10" cy="5" r=".5"/> + <path d="M4 17.5h2m-.928-4l1.732 1M8 10.571l1 1.732m3-2.804v1.999m6.93 2l-1.732.999m2.804 3.001h-1.999M16 10.5L10.5 16v2.5L13 18z"/> +</svg> diff --git a/packages/ui/src/styles/leaflet/fullscreen.css b/packages/ui/src/styles/leaflet/fullscreen.css new file mode 100644 index 000000000..9180c3af4 --- /dev/null +++ b/packages/ui/src/styles/leaflet/fullscreen.css @@ -0,0 +1,38 @@ +.leaflet-control-fullscreen a { + background: #fff url(/img/leaflet/fullscreen.png) no-repeat 0 0; + background-size: 26px 52px; +} +.leaflet-touch .leaflet-control-fullscreen a { + background-position: 2px 2px; +} +.leaflet-fullscreen-on .leaflet-control-fullscreen a { + background-position: 0 -26px; +} +.leaflet-touch.leaflet-fullscreen-on .leaflet-control-fullscreen a { + background-position: 2px -24px; +} + +/* Do not combine these two rules; IE will break. */ +.leaflet-container:-webkit-full-screen { + width: 100% !important; + height: 100% !important; +} +.leaflet-container.leaflet-fullscreen-on { + width: 100% !important; + height: 100% !important; +} + +.leaflet-pseudo-fullscreen { + position: fixed !important; + width: 100% !important; + height: 100% !important; + top: 0 !important; + left: 0 !important; + z-index: 99999; +} + +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { + .leaflet-control-fullscreen a { + background-image: url(/img/leaflet/fullscreen@2x.png); + } +} diff --git a/packages/ui/src/styles/leaflet/gesture-handling.css b/packages/ui/src/styles/leaflet/gesture-handling.css new file mode 100644 index 000000000..0932d1677 --- /dev/null +++ b/packages/ui/src/styles/leaflet/gesture-handling.css @@ -0,0 +1,54 @@ +@-webkit-keyframes leaflet-gestures-fadein { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes leaflet-gestures-fadein { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.leaflet-container:after { + animation: leaflet-gestures-fadein 0.8s backwards; + color: #fff; + font-size: 22px; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 15px; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + z-index: 461; + pointer-events: none; +} + +.leaflet-gesture-handling-touch-warning:after, +.leaflet-gesture-handling-scroll-warning:after { + animation: leaflet-gestures-fadein 0.8s forwards; +} + +.leaflet-gesture-handling-touch-warning:after { + content: attr(data-gesture-handling-touch-content); +} + +.leaflet-gesture-handling-scroll-warning:after { + content: attr(data-gesture-handling-scroll-content); +} diff --git a/packages/ui/src/styles/leaflet/marker-clusters.css b/packages/ui/src/styles/leaflet/marker-clusters.css new file mode 100644 index 000000000..a2d8e0828 --- /dev/null +++ b/packages/ui/src/styles/leaflet/marker-clusters.css @@ -0,0 +1,9 @@ +.leaflet-cluster-anim .leaflet-marker-icon, +.leaflet-cluster-anim .leaflet-marker-shadow { + transition: transform 0.3s ease-out, opacity 0.3s ease-in; +} + +.leaflet-cluster-spider-leg { + /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */ + transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in; +} diff --git a/packages/ui/src/styles/leaflet/overrides.css b/packages/ui/src/styles/leaflet/overrides.css new file mode 100644 index 000000000..e82ad2ec4 --- /dev/null +++ b/packages/ui/src/styles/leaflet/overrides.css @@ -0,0 +1,705 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; +} + +.leaflet-container { + overflow: hidden; +} + +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + user-select: none; +} + +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} + +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; +} + +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + transform-origin: 0 0; +} + +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; +} + +.leaflet-marker-icon { + white-space: nowrap; +} + +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg, +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; +} + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; +} + +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} + +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} + +.leaflet-container { + -webkit-tap-hilite-color: transparent; +} + +.leaflet-container a { + -webkit-tap-hilite-color: rgba(51, 181, 229, 0.4); +} + +.leaflet-tile { + filter: inherit; + visibility: hidden; +} + +.leaflet-tile-loaded { + visibility: inherit; +} + +.leaflet-zoom-box { + width: 0; + height: 0; + box-sizing: border-box; + z-index: 800; +} + +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; +} + +.leaflet-pane { + z-index: 400; +} + +.leaflet-tile-pane { + z-index: 200; +} + +.leaflet-overlay-pane { + z-index: 400; +} + +.leaflet-shadow-pane { + z-index: 500; +} + +.leaflet-marker-pane { + z-index: 600; +} + +.leaflet-tooltip-pane { + z-index: 650; +} + +.leaflet-popup-pane { + z-index: 700; +} + +.leaflet-map-pane canvas { + z-index: 100; +} + +.leaflet-map-pane svg { + z-index: 200; +} + +.leaflet-vml-shape { + width: 1px; + height: 1px; +} + +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; +} + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; +} + +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; +} + +.leaflet-top { + top: 0; +} + +.leaflet-right { + right: 0; +} + +.leaflet-bottom { + bottom: 0; +} + +.leaflet-left { + left: 0; +} + +.leaflet-control { + float: left; + clear: both; +} + +.leaflet-right .leaflet-control { + float: right; +} + +.leaflet-top .leaflet-control { + margin-top: 10px; +} + +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; +} + +.leaflet-left .leaflet-control { + margin-left: 10px; +} + +.leaflet-right .leaflet-control { + margin-right: 10px; +} + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile { + will-change: opacity; +} + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + transition: opacity 0.2s linear; +} + +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; +} + +.leaflet-zoom-animated { + transform-origin: 0 0; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + will-change: transform; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); +} + +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + transition: none; +} + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; +} + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; +} + +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; +} + +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; +} + +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; +} + +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; +} + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; +} + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; +} + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; +} + +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255, 255, 255, 0.5); +} + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); + border-radius: 4px; +} + +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; +} + +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; +} + +.leaflet-bar a:hover { + background-color: #f4f4f4; +} + +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; +} + +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; +} + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; +} + +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} + +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; +} + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; +} + +.leaflet-touch .leaflet-control-zoom-in, +.leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; +} + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); + background: #fff; + border-radius: 5px; +} + +.leaflet-control-layers-toggle { + background-image: url(/img/leaflet/layers.png); + width: 36px; + height: 36px; +} + +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(/img/leaflet/layers-2x.png); + background-size: 26px 26px; +} + +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; +} + +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; +} + +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; +} + +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; +} + +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; +} + +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; +} + +.leaflet-control-layers label { + display: block; +} + +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; +} + +/* Default icon URLs */ +.leaflet-default-icon-path { + background-image: url(/img/leaflet/marker-icon.png); +} + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; +} + +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 var(--unit-l) 0 var(--unit-xs); + color: #333; +} + +.leaflet-control-attribution a { + text-decoration: none; +} + +.leaflet-control-attribution a:hover { + text-decoration: underline; +} + +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + typescale: -1 1; +} + +.leaflet-left .leaflet-control-scale { + margin-left: 5px; +} + +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; +} + +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + white-space: nowrap; + overflow: hidden; + box-sizing: border-box; + background: #fff; + background: rgba(255, 255, 255, 0.5); +} + +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; +} + +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; +} + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; +} + +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0, 0, 0, 0.2); + background-clip: padding-box; +} + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; +} + +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: var(--unit-xs); +} + +.leaflet-popup-content { + padding: var(--unit-s) var(--unit-m) 0; +} + +/* .leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-left: -20px; + overflow: hidden; + pointer-events: none; +} + +.leaflet-popup-tip { + width: 17px; + height: 17px; + margin: -10px auto 0; + transform: rotate(45deg); +} */ + +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + box-shadow: 4px 4px 8px color-mod(var(--color-inverse) alpha(25%)); +} + +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + border: none; + text-align: center; + width: 18px; + height: 14px; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; +} + +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; +} + +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; +} + +/* warning bug in firefox +.leaflet-oldie .leaflet-popup-content-wrapper { + zoom: 1; +} */ + +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + -ms-filter: 'progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)'; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); +} + +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; +} + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; +} + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; +} + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); +} + +.leaflet-tooltip.leaflet-clickable { + cursor: pointer; + pointer-events: auto; +} + +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ''; +} + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} + +.leaflet-tooltip-top { + margin-top: -6px; +} + +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; +} + +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; +} + +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; +} + +.leaflet-tooltip-left { + margin-left: -6px; +} + +.leaflet-tooltip-right { + margin-left: 6px; +} + +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; +} + +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; +} + +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; +} diff --git a/packages/ui/src/styles/loader.css b/packages/ui/src/styles/loader.css new file mode 100644 index 000000000..3acdcde0c --- /dev/null +++ b/packages/ui/src/styles/loader.css @@ -0,0 +1,38 @@ +.loader { + border: var(--color-bg) 6px solid; + width: calc(var(--unit) * 2); + height: calc(var(--unit) * 2); + margin: auto; + border-radius: 100%; + animation: grow 1.5s infinite; +} + +@keyframes grow { + 0% { + opacity: 1; + transform: scale(0); + } + 70% { + opacity: 1; + transform: scale(1); + } + 100% { + opacity: 0; + transform: scale(0); + } +} + +.loader-file { + position: relative; + width: 128px; + height: 24px; + border: var(--color-bg) 6px solid; +} + +.loader-file-bar { + position: absolute; + top: 0; + bottom: 0; + left: 0; + background: var(--color-bg); +} diff --git a/packages/ui/src/styles/normalize.css b/packages/ui/src/styles/normalize.css new file mode 100644 index 000000000..2daa7e9e9 --- /dev/null +++ b/packages/ui/src/styles/normalize.css @@ -0,0 +1 @@ +@import-normalize; diff --git a/packages/ui/src/styles/settings.css b/packages/ui/src/styles/settings.css new file mode 100644 index 000000000..bdfb146d8 --- /dev/null +++ b/packages/ui/src/styles/settings.css @@ -0,0 +1,87 @@ +/* system.css / settings +------------------------------- +http://francoisromain.github.io/postcss-structure +*/ + +:root { + /* Colors ------------------------------- */ + --color-text: #666; + --color-bg: white; + --color-transparent: rgb(248 247 243 / 0%); + --color-inverse: #3d3d35; + --color-neutral: #c6c4bc; + --color-alt: #f0efe8; + --color-hilite: #b5d1d1; + --color-error: #e82239; + --color-warning: #ff891c; + --color-info: #76b6bd; + --color-success: #6ea040; + + /* Basée sur le DSFR (https://vue-dsfr.netlify.app/) */ + --dsfr-bf500: #000091; + --dsfr-g600: #6a6a6a; + --dsfr-color-hover: rgb(0 0 221 / 100%); + + /* Base units ------------------------------- */ + + /* font-size: 1rem = 16 px */ + --base-font-size: 1rem; + + /* base: 1.5rem = 24 px */ + --unit: 1.5rem; + + /* line: 0.0625rem = 1px */ + --unit-px: calc(var(--unit) / 24); + + /* xxs: 0.1875rem = 3px */ + --unit-xxs: calc(var(--unit) / 8); + + /* xs: 0.375rem = 6px */ + --unit-xs: calc(var(--unit) / 4); + + /* s: 0.75rem = 12px */ + --unit-s: calc(var(--unit) / 2); + + /* m: 1.125rem = 18px */ + --unit-m: calc(var(--unit) * 3 / 4); + + /* l: 2.25rem = 36 px */ + --unit-l: calc(var(--unit) * 3 / 2); + + /* xl: 3rem = 48px */ + --unit-xl: calc(var(--unit) * 2); + + /* xxl: 3.75rem = 60 px */ + --unit-xxl: calc(var(--unit) * 2.5); + --unit-infinity: 9999px; + + /* Lists ------------------------------- */ + --list-postfix: ','; + --list-prefix: '―'; + + /* Grid ------------------------------- */ + + /* + postcss-grid-system configuration + https://github.com/francoisromain/postcss-grid-system#configuration + */ + + /* width of a single bloc in rem */ + --col-width: 20.5rem; + + /* width of the gutter in rem */ + --gutter: var(--unit); + + /* padding of the main container in rem */ + --container-padding: var(--unit); + + /* hr */ + --border-color: var(--color-neutral); + --border-width: var(--unit-px); +} + +/* media queries: x * col-width + gutter */ +@custom-media --viewport-mobile (min-width: 22em); +@custom-media --viewport-tablet (min-width: 42.5em); +@custom-media --viewport-desktop (min-width: 63em); +@custom-media --viewport-large (min-width: 83.5em); diff --git a/packages/ui/src/styles/styles.css b/packages/ui/src/styles/styles.css new file mode 100644 index 000000000..1413761ed --- /dev/null +++ b/packages/ui/src/styles/styles.css @@ -0,0 +1,49 @@ +/* Settings ------------------------------- */ + +@import 'settings.css'; + +/* Default ------------------------------- */ + +@import 'normalize.css'; +@import 'system/reset.css'; +@import 'system/print.css'; + +/* Elements ------------------------------- */ + +@import 'buttons.css'; +@import 'icons/icons.css'; + +/* Grids ------------------------------- */ + +/* @import 'grids/grid-system.css'; */ +@import 'grids/grid-fluid.css'; +@import 'grids/grid-utils.css'; + +/* Layout ------------------------------- */ + +@import 'system/typography.css'; +@import 'system/lists.css'; +@import 'system/tables.css'; +@import 'system/forms.css'; +@import 'system/utils.css'; +@import 'system/margins.css'; +@import 'system/paddings.css'; +@import 'system/colors.css'; +@import 'system/ui.css'; +@import 'system/code.css'; +@import 'system/footer.css'; +@import 'system/tools.css'; + +/* Leaflet ------------------------------- */ + +@import 'leaflet/overrides.css'; +@import 'leaflet/gesture-handling.css'; +@import 'leaflet/marker-clusters.css'; +@import 'leaflet/fullscreen.css'; + +/* Theme ------------------------------- */ + +@import 'loader.css'; +@import 'transitions.css'; +@import 'camino.css'; +@import 'theme.css'; diff --git a/packages/ui/src/styles/system/code.css b/packages/ui/src/styles/system/code.css new file mode 100644 index 000000000..a1b20b651 --- /dev/null +++ b/packages/ui/src/styles/system/code.css @@ -0,0 +1,89 @@ +pre code { + display: block; +} + +code { + background-color: var(--color-alt); + white-space: pre; + hyphens: none; + word-wrap: break-word; +} + +/* from https://github.com/PrismJS/prism/blob/gh-pages/themes/prism.css */ + +:not(pre) > code[class*='language-'] { + padding: 0.1em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: var(--color-neutral); +} + +.token.punctuation { + color: var(--color-neutral); +} + +.namespace { + opacity: 0.7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: rgba(212, 67, 74, 1); +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: rgba(57, 119, 191, 1); +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #a67f59; + background: hsla(0, 0%, 100%, 0.5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: rgba(105, 134, 46, 1); +} + +.token.function { + color: #dd4a68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/packages/ui/src/styles/system/colors.css b/packages/ui/src/styles/system/colors.css new file mode 100644 index 000000000..9f49e050d --- /dev/null +++ b/packages/ui/src/styles/system/colors.css @@ -0,0 +1,92 @@ +/* + Colors +------------------------------- +*/ + +.color-bg { + color: var(--color-bg); +} + +.color-text { + color: var(--color-text); +} + +.color-hilite { + color: var(--color-hilite); +} + +.color-alt { + color: var(--color-alt); +} + +.color-neutral { + color: var(--color-neutral); +} + +.color-info { + color: var(--color-info); +} + +.color-error { + color: var(--color-error); +} + +.color-warning { + color: var(--color-warning); +} + +.color-success { + color: var(--color-success); +} + +.color-inverse { + color: var(--color-inverse); +} + +.bg-bg { + background-color: var(--color-bg); +} + +.bg-hilite { + background-color: var(--color-hilite); +} + +.bg-alt { + background-color: var(--color-alt); +} + +.bg-neutral { + background-color: var(--color-neutral); +} + +.bg-inverse { + background-color: var(--color-inverse); +} + +.bg-info { + background: var(--color-info); +} + +.bg-error { + background: var(--color-error); +} + +.bg-warning { + background: var(--color-warning); +} + +.bg-success { + background: var(--color-success); +} + +.bg-bg-alpha { + background-color: color-mod(var(--color-bg) alpha(50%)); +} + +.bg-alt-alpha { + background-color: color-mod(var(--color-alt) alpha(50%)); +} + +.bg-inverse-alpha { + background-color: color-mod(var(--color-inverse) alpha(50%)); +} diff --git a/packages/ui/src/styles/system/footer.css b/packages/ui/src/styles/system/footer.css new file mode 100644 index 000000000..a4f4370a8 --- /dev/null +++ b/packages/ui/src/styles/system/footer.css @@ -0,0 +1,51 @@ +/* + Sticky footer +------------------------------- +http://mystrd.at/modern-clean-css-sticky-footer/ +*/ + +:root { + --footer-height: calc(var(--unit) * 12); +} + +html { + position: relative; + height: 100%; +} + +body { + min-height: 100%; +} + +.page { + display: flex; + min-height: 100vh; + flex-direction: column; +} + +.main { + flex: 1; +} + +.footer { + background-color: var(--color-inverse); + color: var(--color-neutral); +} + +.footer input { + color: var(--color-text); +} + +.footer a { + color: var(--color-alt); + + &:hover { + color: var(--color-bg); + } +} + +@media (--viewport-desktop) { + .footer { + height: var(--footer-height); + } +} diff --git a/packages/ui/src/styles/system/forms.css b/packages/ui/src/styles/system/forms.css new file mode 100644 index 000000000..cf5cf9ec2 --- /dev/null +++ b/packages/ui/src/styles/system/forms.css @@ -0,0 +1,159 @@ +/* + Forms +------------------------------- +*/ + +@import 'choices.js/public/assets/styles/choices.css'; + +input[type='text'], +input[type='email'], +input[type='search'], +input[type='password'], +input[type='tel'], +input[type='number'], +input[type='date'], +input[type='url'], +select, +textarea, +.choices__inner, +.input { + width: 100%; + border: 0 none; + background-color: var(--color-alt); + height: auto; + color: inherit; + &:not(.choices__input) { + box-shadow: 0 2px 0 0 var(--dsfr-g600); + } + +} + +.choices{ + box-shadow: 0 2px 0 0 var(--dsfr-g600); +} + +select, +.choices__inner { + background-image: svg-load('../icons/svgs/24-chevron-b.svg', + fill='#666' + ); + background-position: right var(--unit-s) center; + background-repeat: no-repeat; + + /* for FF: http://stackoverflow.com/a/18317228/2112538 */ + -moz-appearance: none; + text-indent: 0.01px; + text-overflow: ellipsis; + overflow: hidden; +} + +textarea { + /* http://stackoverflow.com/a/5196591/2112538 */ + vertical-align: top; + resize: vertical; + height: auto; +} + +textarea:not(.choices__input):focus, +input:not(.choices__input):focus, +select:not(.choices__input):focus, +.choices.is-focused { + border-right: var(--unit-s) solid var(--dsfr-bf500); +} + +input[type='text'].bg-bg, +input[type='email'].bg-bg, +input[type='search'].bg-bg, +input[type='password'].bg-bg, +input[type='tel'].bg-bg, +input[type='number'].bg-bg, +input[type='date'].bg-bg, +input[type='url'].bg-bg, +select.bg-bg, +textarea.bg-bg { + background-color: var(--color-bg); +} + +input.success { + border-right: var(--unit-s) solid var(--color-success); +} + +input.error { + border-right: var(--unit-s) solid var(--color-error); +} + +input:disabled, +textarea:disabled, +select:disabled, +.input-disabled { + background-color: color-mod(var(--color-alt) alpha(50%)); +} + +input.bg-bg:disabled, +textarea.bg-bg:disabled, +select.bg-bg:disabled { + background-color: color-mod(var(--color-bg) alpha(50%)); +} + +*::placeholder { + font-style: italic; + color: var(--color-neutral); +} + +[type='file'] { + display: none; +} + +.choices[data-type*=select-multiple] .choices__button, +.choices[data-type*=text] .choices__button { + border-left: 1px solid white; +} + +.choices__list--multiple .choices__item, +.choices__list--multiple .choices__item.is-highlighted { + background-color: var(--color-inverse); + border: 1px solid var(--color-inverse); + font-weight: bold; +} + + +.choices[data-type*=select-one]::after { + display: none; +} + +.choices[data-type*=select-one] .choices__inner { + padding-bottom: 0; + padding: var(--unit-s); +} + +.choices__list--single { + padding: 0; +} + +.choices[data-type*=select-one] .choices__button { + margin-right: 40px; +} + +.choices__button { + background-image: svg-load('../icons/svgs/24-close.svg', + fill=none, + stroke= '#666', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.choices__button:hover { + background-image: svg-load('../icons/svgs/24-close.svg', + fill=none, + stroke= 'white', + stroke-linecap=round, + stroke-linejoin=round, + stroke-width=1.25px + ); +} + +.choices__list--dropdown .choices__item--selectable.is-highlighted { + background-color: var(--color-alt); +} diff --git a/packages/ui/src/styles/system/lists.css b/packages/ui/src/styles/system/lists.css new file mode 100644 index 000000000..0c90c7bab --- /dev/null +++ b/packages/ui/src/styles/system/lists.css @@ -0,0 +1,87 @@ +/* + Lists +------------------------------- + +*/ + +ul, +ol, +dd { + /* overflow: auto; */ + list-style-position: inside; +} + +ul > li > ul, +ul > li > ol, +ol > li > ul, +ol > li > ol { + margin-left: var(--unit-l); +} + +ol { + list-style-type: decimal; +} + +li { + & > ul, + & > ol { + margin-bottom: 0; + } +} + +.list-sans { + padding: 0; + list-style: none; +} + +.list-inline { + /* display: flex; + flex-wrap: wrap; */ + padding: 0; + list-style: none; + + & > li:not(.right) { + float: left; + } + + & > li.right { + float: right; + } +} + +.list-inline.flex-right { + margin-right: calc(-1 * var(--unit-xs)); +} + +.list-inline::after { + content: ''; + display: block; + clear: both; +} + +.list-prefix { + list-style-type: none; + margin-left: var(--unit); + + & > li::before { + content: var(--list-prefix); + margin-left: calc(var(--unit) * -1); + width: var(--unit); + display: inline-block; + color: grey; + } +} + +.list-postfix { + list-style: none; + + & > li { + &::after { + content: var(--list-postfix); + } + } +} + +.list-inline.list-postfix li:last-child::after { + content: none; +} diff --git a/packages/ui/src/styles/system/margins.css b/packages/ui/src/styles/system/margins.css new file mode 100644 index 000000000..f5d2e87ee --- /dev/null +++ b/packages/ui/src/styles/system/margins.css @@ -0,0 +1,320 @@ +/* + Margins +------------------------------- + +*/ + +.m-0 { + margin: 0; +} + +.m { + margin: var(--unit); +} + +.m-xxs { + margin: var(--unit-xxs); +} + +.m-xs { + margin: var(--unit-xs); +} + +.m-s { + margin: var(--unit-s); +} + +.m-m { + margin: var(--unit-m); +} + +.m-l { + margin: var(--unit-l); +} + +.m-xl { + margin: var(--unit-xl); +} + +.mr-0 { + margin-right: 0; +} + +.mr { + margin-right: var(--unit); +} + +.mr-px { + margin-right: var(--unit-px); +} + +.mr-xxs { + margin-right: var(--unit-xxs); +} + +.mr-xs { + margin-right: var(--unit-xs); +} + +.mr-s { + margin-right: var(--unit-s); +} + +.mr-m { + margin-right: var(--unit-m); +} + +.mr-l { + margin-right: var(--unit-l); +} + +.mr-xl { + margin-right: var(--unit-xl); +} + +.ml-0 { + margin-left: 0; +} + +.ml { + margin-left: var(--unit); +} + +.ml-xxs { + margin-left: var(--unit-xxs); +} + +.ml-xs { + margin-left: var(--unit-xs); +} + +.ml-s { + margin-left: var(--unit-s); +} + +.ml-m { + margin-left: var(--unit-m); +} + +.ml-l { + margin-left: var(--unit-l); +} + +.ml-xl { + margin-left: var(--unit-xl); +} + +.mt-0 { + margin-top: 0; +} + +.mt { + margin-top: var(--unit); +} + +.mt-px { + margin-top: var(--unit-px); +} + +.mt-xxs { + margin-top: var(--unit-xxs); +} + +.mt-xs { + margin-top: var(--unit-xs); +} + +.mt-s { + margin-top: var(--unit-s); +} + +.mt-m { + margin-top: var(--unit-m); +} + +.mt-l { + margin-top: var(--unit-l); +} + +.mt-xl { + margin-top: var(--unit-xl); +} + +.mt-xxl { + margin-top: var(--unit-xxl); +} + +.mt--s { + margin-top: calc(var(--unit-s) * -1); +} + +.mt--m { + margin-top: calc(var(--unit-m) * -1); +} + +.mb { + margin-bottom: var(--unit); +} + +.mb-px { + margin-bottom: var(--unit-px); +} + +.mb-xxs { + margin-bottom: var(--unit-xxs); +} + +.mb-xs { + margin-bottom: var(--unit-xs); +} + +.mb-s { + margin-bottom: var(--unit-s); +} + +.mb-m { + margin-bottom: var(--unit-m); +} + +.mb-l { + margin-bottom: var(--unit-l); +} + +.mb-xl { + margin-bottom: var(--unit-xl); +} + +.mb-xxl { + margin-bottom: var(--unit-xxl); +} + +.mb-0 { + margin-bottom: 0; +} + +.mb--s { + margin-bottom: calc(var(--unit-s) * -1); +} + +.mb--xs { + margin-bottom: calc(var(--unit-xs) * -1); +} + +.mx { + margin-right: var(--unit); + margin-left: var(--unit); +} + +.mx-xxs { + margin-right: var(--unit-xxs); + margin-left: var(--unit-xxs); +} + +.mx-xs { + margin-right: var(--unit-xs); + margin-left: var(--unit-xs); +} + +.mx-s { + margin-right: var(--unit-s); + margin-left: var(--unit-s); +} + +.mx-m { + margin-right: var(--unit-m); + margin-left: var(--unit-m); +} + +.mx-l { + margin-right: var(--unit-l); + margin-left: var(--unit-l); +} + +.mx-xl { + margin-right: var(--unit-xl); + margin-left: var(--unit-xl); +} + +.mx-xxl { + margin-right: var(--unit-xxl); + margin-left: var(--unit-xxl); +} + +.mx-0 { + margin-right: 0; + margin-left: 0; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.mx-- { + margin-left: calc(var(--unit) * -1); + margin-right: calc(var(--unit) * -1); +} + +.mx--m { + margin-left: calc(var(--unit-m) * -1); + margin-right: calc(var(--unit-m) * -1); +} + +.my { + margin-top: var(--unit); + margin-bottom: var(--unit); +} + +.my-xxs { + margin-top: var(--unit-xxs); + margin-bottom: var(--unit-xxs); +} + +.my-xs { + margin-top: var(--unit-xs); + margin-bottom: var(--unit-xs); +} + +.my-s { + margin-top: var(--unit-s); + margin-bottom: var(--unit-s); +} + +.my-m { + margin-top: var(--unit-m); + margin-bottom: var(--unit-m); +} + +.my-l { + margin-top: var(--unit-l); + margin-bottom: var(--unit-l); +} + +.my-xl { + margin-top: var(--unit-xl); + margin-bottom: var(--unit-xl); +} + +.my-xxl { + margin-top: var(--unit-xxl); + margin-bottom: var(--unit-xxl); +} + +.my-0 { + margin-top: 0; + margin-bottom: 0; +} + +.my--s { + margin-top: calc(var(--unit-s) * -1); + margin-bottom: calc(var(--unit-s) * -1); +} + +.my--xs { + margin-top: calc(var(--unit-xs) * -1); + margin-bottom: calc(var(--unit-xs) * -1); +} + +.mt--xs { + margin-top: calc(var(--unit-xs) * -1); +} diff --git a/packages/ui/src/styles/system/paddings.css b/packages/ui/src/styles/system/paddings.css new file mode 100644 index 000000000..0ef4980bf --- /dev/null +++ b/packages/ui/src/styles/system/paddings.css @@ -0,0 +1,248 @@ +/* + Padding +------------------------------- +*/ + +.p { + padding: var(--unit); +} + +.p-0 { + padding: 0; +} + +.p-xxs { + padding: var(--unit-xxs); +} + +.p-xs { + padding: var(--unit-xs); +} + +.p-s { + padding: var(--unit-s); +} + +.p-m { + padding: var(--unit-m); +} + +.p-l { + padding: var(--unit-l); +} + +.p-xl { + padding: var(--unit-xl); +} + +.p-xxl { + padding: var(--unit-xxl); +} + +.px { + padding-left: var(--unit); + padding-right: var(--unit); +} + +.px-xxs { + padding-left: var(--unit-xxs); + padding-right: var(--unit-xxs); +} + +.px-xs { + padding-left: var(--unit-xs); + padding-right: var(--unit-xs); +} + +.px-s { + padding-left: var(--unit-s); + padding-right: var(--unit-s); +} + +.px-m { + padding-left: var(--unit-m); + padding-right: var(--unit-m); +} + +.px-l { + padding-left: var(--unit-l); + padding-right: var(--unit-l); +} + +.px-xl { + padding-left: var(--unit-xl); + padding-right: var(--unit-xl); +} + +.px-xxl { + padding-left: var(--unit-xxl); + padding-right: var(--unit-xxl); +} + +.py { + padding-top: var(--unit); + padding-bottom: var(--unit); +} + +.py-xxs { + padding-top: var(--unit-xxs); + padding-bottom: var(--unit-xxs); +} + +.py-xs { + padding-top: var(--unit-xs); + padding-bottom: var(--unit-xs); +} + +.py-s { + padding-top: var(--unit-s); + padding-bottom: var(--unit-s); +} + +.py-m { + padding-top: var(--unit-m); + padding-bottom: var(--unit-m); +} + +.py-l { + padding-top: var(--unit-l); + padding-bottom: var(--unit-l); +} + +.py-xl { + padding-top: var(--unit-xl); + padding-bottom: var(--unit-xl); +} + +.py-xxl { + padding-top: var(--unit-xxl); + padding-bottom: var(--unit-xxl); +} + +.pt { + padding-top: var(--unit); +} + +.pt-xxs { + padding-top: var(--unit-xxs); +} + +.pt-xs { + padding-top: var(--unit-xs); +} + +.pt-s { + padding-top: var(--unit-s); +} + +.pt-m { + padding-top: var(--unit-m); +} + +.pt-l { + padding-top: var(--unit-l); +} + +.pt-xl { + padding-top: var(--unit-xl); +} + +.pt-xxl { + padding-top: var(--unit-xxl); +} + +.pb { + padding-bottom: var(--unit); +} + +.pb-xxs { + padding-bottom: var(--unit-xxs); +} + +.pb-xs { + padding-bottom: var(--unit-xs); +} + +.pb-s { + padding-bottom: var(--unit-s); +} + +.pb-m { + padding-bottom: var(--unit-m); +} + +.pb-l { + padding-bottom: var(--unit-l); +} + +.pb-xl { + padding-bottom: var(--unit-xl); +} + +.pb-xxl { + padding-bottom: var(--unit-xxl); +} + +.pr { + padding-right: var(--unit); +} + +.pr-xxs { + padding-right: var(--unit-xxs); +} + +.pr-xs { + padding-right: var(--unit-xs); +} + +.pr-s { + padding-right: var(--unit-s); +} + +.pr-m { + padding-right: var(--unit-m); +} + +.pr-l { + padding-right: var(--unit-l); +} + +.pr-xl { + padding-right: var(--unit-xl); +} + +.pr-xxl { + padding-right: var(--unit-xxl); +} + +.pl { + padding-left: var(--unit); +} + +.pl-xxs { + padding-left: var(--unit-xxs); +} + +.pl-xs { + padding-left: var(--unit-xs); +} + +.pl-s { + padding-left: var(--unit-s); +} + +.pl-m { + padding-left: var(--unit-m); +} + +.pl-l { + padding-left: var(--unit-l); +} + +.pl-xl { + padding-left: var(--unit-xl); +} + +.pl-xxl { + padding-left: var(--unit-xxl); +} diff --git a/packages/ui/src/styles/system/print.css b/packages/ui/src/styles/system/print.css new file mode 100644 index 000000000..fd609d47f --- /dev/null +++ b/packages/ui/src/styles/system/print.css @@ -0,0 +1,44 @@ +/* + Print +------------------------------- + +From HTML5 Boilerplate +https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css + +Black prints faster: http://www.sanbeiji.com/archives/953 +*/ + +@media print { + *, + *::before, + *::after, + *::first-letter, + *::first-line { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]::after { + content: ' (' attr(href) ')'; + } + + abbr[title]::after { + content: ' (' attr(title) ')'; + } + + /* + Don't show links that are fragment identifiers, + or use the `javascript:` pseudo protocol + */ + a[href^='#']::after, + a[href^='javascript:']::after { + content: ''; + } +} diff --git a/packages/ui/src/styles/system/reset.css b/packages/ui/src/styles/system/reset.css new file mode 100644 index 000000000..c7fe37fb9 --- /dev/null +++ b/packages/ui/src/styles/system/reset.css @@ -0,0 +1,140 @@ +/* + Reset +------------------------------- +*/ + +/* + css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice + paulirish.com/2012/box-sizing-border-box-ftw +*/ + +html, +* { + box-sizing: border-box; +} + +*, +*::before, +*::after { + box-sizing: inherit; +} + +html { + overflow-y: scroll; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + background-color: var(--color-bg); + color: var(--color-inverse); + font-family: system-ui; + typescale: 0 1; +} + +body, +h1, +h2, +h3, +h4, +h6, +h5, +p, +blockquote, +pre, +dl, +dd, +ol, +ul, +form, +fieldset, +legend, +figure, +table, +th, +td, +caption, +hr { + margin: 0; + padding: 0; +} + +h1, +h2, +h3, +h4, +h6, +h5 { + font-weight: normal; + font-style: normal; + text-decoration: none; +} + +abbr[title], +dfn[title] { + cursor: help; +} + +button, +input, +textarea, +select, +optgroup { + font: inherit; + typescale: 0 1; + text-align: left; +} + +fieldset { + border: 0 none transparent; +} + +*:focus, +textarea:focus, +input:focus { + outline: none; + outline: 0; +} + +label { + cursor: pointer; +} + +u, +ins { + text-decoration: none; +} + +ins { + border-bottom: 1px solid; +} + +img, +video { + max-width: 100%; + font-style: italic; + vertical-align: middle; + height: auto; + outline: 0; +} + +/* remove yellow bg on automplete in chrome */ + +input:-webkit-autofill, +select:-webkit-autofill { + -webkit-box-shadow: 0 0 0 0 white inset; +} + +/* remove round corner on iOs */ + +input:not([type='radio']):not([type='checkbox']):not([class^='.rnd']), +select { + -webkit-appearance: none; + border-radius: 0; +} + +/* https://github.com/necolas/normalize.css/pull/697/commits/c3762f068feca8e218e69f54daf397cd0f33176d */ +button, +html [type='button'], +[type='reset'], +[type='submit'] { + border-radius: 0; +} diff --git a/packages/ui/src/styles/system/tables.css b/packages/ui/src/styles/system/tables.css new file mode 100644 index 000000000..7597c4bda --- /dev/null +++ b/packages/ui/src/styles/system/tables.css @@ -0,0 +1,95 @@ +/* + Table +------------------------------- +*/ + +table, +.table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + border: none; +} + +.table { + display: table; +} + +tr, +.tr { + border-bottom-color: var(--border-color); + border-bottom-width: var(--unit-px); + border-bottom-style: dotted; +} + +.tr { + display: table-row; +} + +th, +.th, +.th button { + text-align: left; + font-weight: 700; + letter-spacing: -0.02rem; + typescale: -1 1; + color: var(--color-neutral); +} + +td, +th, +.td, +.th { + vertical-align: top; + overflow-wrap: break-word; + padding-bottom: var(--unit-s); + padding-top: calc(var(--unit-s) - var(--unit-px)); +} + +.th, +.td { + display: table-cell; +} + +td:not(:first-child), +th:not(:first-child), +.td:not(:first-child), +.th:not(:first-child) { + padding-left: var(--unit-s); +} + +td:not(:last-child), +th:not(:last-child), +.td:not(:last-child), +.th:not(:last-child) { + padding-right: var(--unit-s); +} + +.table-striped tr:nth-child(even) { + background-color: var(--color-alt); +} + +.table-sans tr { + border-bottom: var(--unit-px) dotted var(--border-bg); +} + +.table-xs td, +.table-xs th { + padding-top: var(--unit-xs); + padding-bottom: calc(var(--unit-xs) - var(--unit-px)); +} + +.table-xxs td, +.table-xxs th { + padding-top: var(--unit-xxs); + padding-bottom: calc(var(--unit-xxs) - var(--unit-px)); +} + +.table-fixed { + display: table; + table-layout: fixed; +} + +.tr-link:hover { + background-color: var(--color-alt); +} diff --git a/packages/ui/src/styles/system/tools.css b/packages/ui/src/styles/system/tools.css new file mode 100644 index 000000000..669251e2b --- /dev/null +++ b/packages/ui/src/styles/system/tools.css @@ -0,0 +1,46 @@ +/* Debug trick ------------------------------- +http://qr.ae/ROqymT */ + +.debug { + background-color: rgba(255, 0, 0, 0.2); +} + +.debug * { + background-color: rgba(0, 255, 0, 0.2); +} + +.debug * * { + background-color: rgba(0, 0, 255, 0.2); +} + +.debug * * * { + background-color: rgba(255, 0, 255, 0.2); +} + +.debug * * * * { + background-color: rgba(0, 255, 255, 0.2); +} + +.debug * * * * * { + background-color: rgba(255, 255, 0, 0.2); +} + +.debug * * * * * * { + background-color: rgba(255, 255, 0, 0.2); +} + +.grid { + background-size: var(--col-width) calc(var(--unit) / 2); + background-position: center top; + background-image: linear-gradient( + rgba(0, 0, 0, 0.05) 0.01rem, + transparent 0.09rem + ), + linear-gradient(90deg, rgba(255, 0, 0, 0.25) 0, transparent 0.25%), + linear-gradient( + 90deg, + transparent 50%, + rgba(255, 0, 0, 0.25) 50%, + transparent 50.25% + ); +} diff --git a/packages/ui/src/styles/system/typography.css b/packages/ui/src/styles/system/typography.css new file mode 100644 index 000000000..c1db278ba --- /dev/null +++ b/packages/ui/src/styles/system/typography.css @@ -0,0 +1,242 @@ +/* + Typography +------------------------------- +*/ + +@typescale { + scale: 1.33; + font-size: var(--base-font-size); + line-height: var(--unit); +} + +h1, +h2, +h3, +h4, +h6, +ul, +ol, +dl, +blockquote, +p, +address, +table, +fieldset, +figure, +pre { + margin-bottom: var(--unit); +} + +.h0 { + typescale: 5 3; + color: var(--color-info); +} + +h1, +.h1 { + typescale: 3 1.5; +} + +h2, +.h2 { + typescale: 2 1.5; +} + +h3, +.h3 { + typescale: 1 1; +} + +h4, +.h4 { + typescale: 0 1; +} + +h5, +.h5 { + margin-top: var(--unit-xs); + typescale: -0.75 0.75; +} + +h6, +.h6, +small, +.small { + typescale: -0.75 0.75; +} + +h5, +.h5, +h6, +.h6 { + margin-bottom: var(--unit-s); +} + +.h0, +h1, +h2, +h3, +h4, +h6, +h5 { + font-weight: 700; + letter-spacing: -0.02rem; +} + +h5 { + color: var(--color-neutral); +} + +.btn-border:hover h5 { + color: var(--color-bg); +} + +blockquote { + typescale: 0.5 1; + font-style: italic; + padding: var(--unit-s); + quotes: '«\00A0''\00A0»'; +} + +blockquote::before, +blockquote::after { + typescale: 3 0; + color: var(--color-neutral); + vertical-align: sub; +} + +blockquote::before { + content: open-quote; +} + +blockquote::after { + content: close-quote; +} + +blockquote:last-child { + margin-bottom: 0; +} + +hr { + clear: both; + border: 0; + height: 0; + border-top-width: var(--border-width); + border-top-style: dotted; + border-top-color: var(--border-color); + margin-bottom: calc(var(--unit) - var(--border-width)); +} + +a { + color: var(--color-inverse); + + &:visited { + color: var(--color-inverse); + } + + &:hover, + &:active, + &:focus { + color: var(--color-text); + } + + &.active { + color: var(--color-neutral); + } +} + +a.color-bg { + color: var(--color-bg); + + &:visited { + color: var(--color-bg); + } + + &:hover, + &:active, + &:focus { + color: var(--color-bg); + } + + &.active { + color: var(--color-neutral); + } +} + +b, +strong, +.strong, +.bold { + font-weight: 700; + letter-spacing: -0.02rem; +} + +i, +.italic { + font-style: italic; +} + +.lower { + text-transform: lowercase; +} + +.cap-first { + display: inline-block; +} + +.cap-first::first-letter { + text-transform: uppercase; +} + +.caps { + text-transform: uppercase; + letter-spacing: 0.25em; +} + +.line-through { + color: var(--color-neutral); + text-decoration: line-through; +} + +.underline { + border-bottom: 1px solid; +} + +.text-decoration-none, +.text-decoration-none a { + text-decoration: none; +} + +.nowrap { + white-space: nowrap; +} + +.nobreak { +} + +.truncate { + max-width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-center { + text-align: center; +} + +.text-left { + text-align: right; +} + +.text-right { + text-align: right; +} + +.mono { + font-family: 'Lucida Sans Typewriter', monaco, 'Lucida Console', monospace; +} + +dt { + display: inline-block; +} diff --git a/packages/ui/src/styles/system/ui.css b/packages/ui/src/styles/system/ui.css new file mode 100644 index 000000000..55116c6df --- /dev/null +++ b/packages/ui/src/styles/system/ui.css @@ -0,0 +1,199 @@ +/* + UI elements +------------------------------- +*/ + +.box { + box-decoration-break: clone; +} + +.pill { + border-radius: var(--unit-infinity); + box-decoration-break: clone; +} + +.pill-list *:first-child .pill-item { + border-radius: var(--unit-infinity) 0 0 var(--unit-infinity); +} + +.pill-list *:last-child .pill-item { + border-radius: 0 var(--unit-infinity) var(--unit-infinity) 0; +} + +.rnd { + border-radius: var(--unit); +} + +.rnd-0 { + border-radius: 0; +} + +.rnd-s { + border-radius: var(--unit-s); +} + +.rnd-m { + border-radius: var(--unit-m); +} + +.rnd-l { + border-top-left-radius: var(--unit); + border-bottom-left-radius: var(--unit); +} + +.rnd-r { + border-top-right-radius: var(--unit); + border-bottom-right-radius: var(--unit); +} + +.rnd-t-s { + border-top-left-radius: var(--unit-s); + border-top-right-radius: var(--unit-s); +} + +.rnd-b-s { + border-bottom-left-radius: var(--unit-s); + border-bottom-right-radius: var(--unit-s); +} + +.rnd-l-s { + border-top-left-radius: var(--unit-s); + border-bottom-left-radius: var(--unit-s); +} + +.rnd-r-s { + border-top-right-radius: var(--unit-s); + border-bottom-right-radius: var(--unit-s); +} + +.rnd-br-s { + border-bottom-right-radius: var(--unit-s); +} + +.rnd-xs { + border-radius: var(--unit-xs); +} + +.rnd-t-xs { + border-top-left-radius: var(--unit-xs); + border-top-right-radius: var(--unit-xs); +} + +.rnd-l-xs { + border-top-left-radius: var(--unit-xs); + border-bottom-left-radius: var(--unit-xs); +} + +.rnd-bl-xs { + border-bottom-left-radius: var(--unit-xs); +} + +.rnd-r-xs { + border-top-right-radius: var(--unit-xs); + border-bottom-right-radius: var(--unit-xs); +} + +.border-b { + border-bottom: var(--unit-px) solid var(--color-alt); + margin-bottom: calc(var(--unit) - var(--unit-px)); +} + +.border-l { + border-left: var(--unit-px) solid var(--color-neutral); +} + +.border-t { + border-top: var(--unit-px) solid var(--color-alt); +} + +.border-b-s:not(:last-child) { + border-bottom: var(--unit-px) solid var(--color-alt); + /* margin-bottom: calc(-1 * var(--unit-px)); */ +} + +.border-t-r { + border-top: var(--unit-px) solid var(--color-alt); + border-right: var(--unit-px) solid var(--color-alt); +} + +.border { + box-shadow: 0 0 0 var(--unit-px) var(--color-alt); +} + +.border-neutral { + box-shadow: inset 0 0 0 var(--unit-px) var(--color-neutral); +} + +.border-inverse { + box-shadow: inset 0 0 0 var(--unit-px) var(--color-inverse); +} + +.border-bg { + box-shadow: inset 0 0 0 var(--unit-px) var(--color-bg); + + /* border: solid var(--unit-xxs) var(--color-bg); */ +} + +.tooltip { + position: relative; +} + +.tooltip .tooltip-content { + width: 250px; + background-color: var(--color-bg); + color: var(--color-text); + text-align: center; + border: var(--border-width) solid var(--border-color); + border-radius: var(--unit-s); + + position: absolute; + left: 150%; + z-index: 1; + padding: var(--unit-s); +} + +.tooltip .tooltip span::after, +.tooltip .tooltip-content { + visibility: hidden; +} + +.tooltip:hover .tooltip span::after, +.tooltip:hover .tooltip-content { + visibility: visible; +} + +.shadow { + box-shadow: var(--unit-xs) var(--unit-xs) var(--unit) + color-mod(var(--color-neutral) alpha(0.25)); +} + +.shadow-inset { + box-shadow: inset var(--unit-xs) var(--unit-xs) var(--unit) + color-mod(var(--color-neutral) alpha(0.25)); +} + +.ribbon { + position: absolute; + overflow: hidden; + top: 0; + right: 0; + width: 150px; + height: 150px; +} + +.ribbon-bloc { + transform: rotate(45deg); +} + +.ribbon span { + display: inline-block; + width: 100%; + color: var(--color-bg); + background-color: var(--color-warning); + text-align: center; +} + +.fixed-width { + width: calc(var(--col-width) * 1 / 4); + display: inline-block; +} diff --git a/packages/ui/src/styles/system/utils.css b/packages/ui/src/styles/system/utils.css new file mode 100644 index 000000000..ac3b23c49 --- /dev/null +++ b/packages/ui/src/styles/system/utils.css @@ -0,0 +1,219 @@ +/* + Utils +------------------------------- +*/ + +/* +http://cssmojo.com/the-very-latest-clearfix-reloaded/ +*/ + +.clearfix::after { + content: ''; + display: block; + clear: both; +} + +.dot { + display: inline-block; + width: var(--unit-m); + height: var(--unit-m); + border: 3px solid var(--color-bg); + vertical-align: text-bottom; +} + +.hide { + display: none; + visibility: hidden; +} + +.pointer { + cursor: pointer; +} + +.pointer-none { + pointer-events: none; +} + +.word-break { + word-break: break-all; +} + +.overflow-hidden { + overflow: hidden; +} + +.overflow-scroll-x { + overflow-x: auto; +} + +.overflow-scroll-y { + overflow-y: auto; +} + +.overflow-auto { + overflow: auto; +} + +.inline-block { + display: inline-block; +} + +.flex { + display: flex; +} + +.flex-grow { + flex-grow: 1; +} + +.flex-grow-0 { + flex-grow: 0; +} + +.flex-start { + align-items: flex-start; +} + +.flex-end { + align-items: flex-end; +} + +.flex-center { + align-items: center; +} + +.flex-self-start { + align-self: flex-start; +} + +.flex-self-end { + align-self: flex-end; +} + +.flex-direction-column { + flex-direction: column; +} + +.flex-align-items-stretch { + align-items: stretch; +} + +.left { + float: left; +} + +.right { + float: right; +} + +.flex-right { + margin-left: auto; +} + +.flex-bottom { + margin-top: auto; +} + +.relative { + position: relative; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.sticky { + position: sticky; +} + +.center { + left: 50%; + transform: translate(-50%, 0); +} + +.full { + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.full-x { + width: 100%; +} + +/* stylelint-disable-next-line selector-class-pattern */ +.full-x- { + width: 99%; +} + +.full-y { + height: 100%; +} + +.text-ellipsis { + text-overflow: ellipsis; + overflow: hidden; +} + +.align-y-top { + vertical-align: text-top; +} + +.min-width-3 { + min-width: calc(3 * var(--unit)); +} + +.min-width-5 { + min-width: calc(5 * var(--unit)); +} + +.min-width-6 { + min-width: calc(6 * var(--unit)); +} + +.min-width-8 { + min-width: calc(8 * var(--unit)); +} + +.min-width-9 { + min-width: calc(9 * var(--unit)); +} + +.min-width-10 { + min-width: calc(10 * var(--unit)); +} + +.min-width-12 { + min-width: calc(12 * var(--unit)); +} + +.min-width-full { + min-width: 100%; +} + +.max-width-1 { + max-width: var(--unit); +} + +.h-0 { + height: 0; + overflow: hidden; +} + +.b-0 { + bottom: 0; +} + +.z-2 { + z-index: 2; +} + +/* stylelint-disable-next-line selector-class-pattern */ +.z--100 { + z-index: -100; +} diff --git a/packages/ui/src/styles/theme.css b/packages/ui/src/styles/theme.css new file mode 100644 index 000000000..c91222950 --- /dev/null +++ b/packages/ui/src/styles/theme.css @@ -0,0 +1,317 @@ +/* + Theme +------------------------------- +*/ + +[v-cloak] { + display: none; +} + +html { + overflow-x: hidden; +} + +.sponsor { + max-height: calc(var(--unit) * 4); +} + +.logo { + height: calc(var(--unit) * 2.3333); +} + +.title { + typescale: 2.5 1.5; +} + +.map:not(.leaflet-pseudo-fullscreen) { + z-index: 0; +} + +.map-detail, +.map-view { + min-height: calc(var(--unit) * 21); +} + +.points { + height: calc(var(--unit) * 24); + overflow-y: scroll; +} + +.points .container { + min-height: 100%; +} + +.line { + /* margin-top: calc(var(--unit-xxs) * -1); */ + border-top: var(--unit-xxs) solid var(--color-alt); +} + +.line-neutral { + /* margin-top: calc(var(--unit-xxs) * -1); */ + border-top: var(--unit-xxs) solid var(--color-neutral); +} + +.separator { + display: block; + width: calc(var(--col-width) / 2 - var(--gutter)); + height: var(--unit-xs); + margin-top: calc(var(--unit) * 2); + margin-bottom: calc(var(--unit) * 2); + background: var(--dsfr-bf500); +} + +.sticky-header { + top: 0; + z-index: 1; + position: sticky; + background-color: var(--color-bg); +} + +.banner { + background: #f7f7da; + z-index: 1; + border-bottom: dashed 1px var(--color-text); +} + +.header-menu { + padding: 0; + list-style: none; + margin-bottom: 0; + + & > li { + margin-bottom: 0; + float: left; + } +} + +.content { + padding-top: var(--unit); +} + +.popup { + overflow: auto; + display: flex; + flex-direction: column; + z-index: 2; +} + +.popup-header { + flex: 0 0 auto; + border-bottom: var(--unit-xxs) solid var(--color-alt); + margin-bottom: calc(-1 * var(--unit-xxs)); + z-index: 1; +} + +.popup-content { + flex: 0 0 auto; + overflow-y: auto; + overscroll-behavior: contain; +} + +.popup-footer { + flex: 0 0 auto; + border-top: var(--unit-xxs) solid var(--color-alt); + margin-top: calc(-1 * var(--unit-xxs)); +} + +.loaders { + z-index: 3; + top: 50%; + transform: translate(-50%, -50%); + left: 50%; + right: auto; + border-radius: var(--unit); + background-color: color-mod(var(--color-inverse) alpha(50%)); +} + +.map-loader { + z-index: 500; + background-color: var(--color-bg); + right: calc(10 * var(--unit-px)); + top: 0; +} + +.lead { + typescale: 1 1.25; + margin: var(--unit-xl) var(--unit); + color: var(--color-info); + font-style: italic; +} + +.camino-header-baseline { + padding-left: 25%; + margin-top: -1.5rem; +} + +.messages { + position: fixed; + width: calc(100% - (2 * var(--gutter))); + transform: translate(-50%, 0); + top: auto; + right: auto; + bottom: calc(var(--unit) * 3); + left: 50%; + z-index: 2; +} + +.accordion-header { + align-items: stretch; + flex-flow: column wrap; +} + +.dropdown { + z-index: 1; +} + +.downloads { + height: calc(3 * var(--unit)); +} + +.lh-2 { + line-height: 2; +} + +.lh-1-25 { + line-height: calc(var(--unit) * 1.25); +} + +ul.li-mb-s > li { + margin-bottom: var(--unit-s); +} + +ul.li-sep > li { + &:not(:last-child)::after { + content: '—'; + color: grey; + display: block; + } +} + +.span-tab { + color: var(--color-text); + background-color: var(--color-neutral); +} + +.content-editable :last-child { + margin-bottom: 0; +} + +.geo-groupe { + padding: var(--unit-xs) var(--unit-xs) 0 var(--unit-xs); + box-shadow: inset 0 0 0 var(--unit-px) var(--color-alt); + border-radius: var(--unit); + background-color: var(--color-neutral); + display: inline-block; + width: 100%; +} + +.geo-groupe-edit { + border-radius: var(--unit) var(--unit) var(--unit-m) var(--unit-m); +} + +.geo-contour { + padding: var(--unit-xs) var(--unit-xs) 0 var(--unit-xs); + box-shadow: inset 0 0 0 var(--unit-px) var(--color-alt); + margin-bottom: var(--unit-xs); + border-radius: var(--unit-m); + background-color: var(--color-alt); + display: inline-block; + width: 100%; +} + +.geo-point { + padding: var(--unit-s) var(--unit-s) 0 var(--unit-s); + box-shadow: inset 0 0 0 var(--unit-px) var(--color-alt); + margin-bottom: calc(var(--unit-xs) - var(--unit-px)); + border-radius: var(--unit-s); + background-color: var(--color-bg); + width: 100%; + border-bottom: var(--unit-px) solid var(--color-alt); +} + +h6.color { + color: var(--color-info); +} + +@media (--viewport-tablet) { + .tablet-pt-s { + padding-top: var(--unit-s); + } + + .tablet-mb-0 { + margin-bottom: 0; + } + + .tablet-mb { + margin-bottom: var(--unit); + } + + .tablet-mb-s { + margin-bottom: var(--unit-s); + } + + .tablet-mb-m { + margin-bottom: var(--unit-m); + } + + .menubar-infos { + padding-top: var(--unit-m); + margin-top: 0; + } + + .map-view { + min-height: calc(24 * var(--unit)); + height: calc(100vh - (15 * var(--unit))); + } + + .table-view { + min-height: calc(24 * var(--unit)); + } + + .header-blobs { + flex-direction: row-reverse; + } + + .messages { + width: calc(2 * var(--col-width) - var(--gutter)); + } + + .accordion-header { + flex-direction: row; + } + + .downloads { + height: inherit; + } +} + +@media (--viewport-desktop) { + .camino-header-baseline { + padding-left: 9.2rem; + } + + .leaflet-left { + left: var(--unit-l); + } + + .popup { + width: calc(2.5 * var(--col-width) - var(--gutter)); + max-height: calc(100% - 4 * var(--unit)); + transform: translate(-50%, 0); + top: calc(var(--unit) * 2); + right: auto; + bottom: auto; + left: 50%; + border-radius: var(--unit); + overflow: hidden; + } + + .popup-content { + height: calc(100% - 8 * var(--unit)); + flex: 1 1 auto; + } + + /* stylelint-disable-next-line block-no-empty */ + .loaders { + } +} diff --git a/packages/ui/src/styles/transitions.css b/packages/ui/src/styles/transitions.css new file mode 100644 index 000000000..97253997d --- /dev/null +++ b/packages/ui/src/styles/transitions.css @@ -0,0 +1,97 @@ +.transition-bottom-enter-active, +.transition-bottom-leave-active, +.transition-fade-enter-active, +.transition-fade-leave-active, +.transition-top-enter-active, +.transition-top-leave-active, +.transition-top-enter-active .pophover, +.transition-top-leave-active .pophover { + transition: all 0.5s; +} + +.transition-bottom-enter-from, +.transition-bottom-leave-to { + opacity: 0; + margin-bottom: calc(var(--unit-xxl) * -1); +} + +.transition-fade-enter-from, +.transition-fade-leave-to { + opacity: 0; +} + +.transition-top-enter-from, +.transition-top-leave-to { + opacity: 0; +} + +.transition-top-enter-from .pophover, +.transition-top-leave-to .pophover { + margin-top: calc(var(--unit-xxl) * -1); +} + +/* slide */ + +.slide-enter-active { + transition: transform 0.35s ease-out 0.1s, opacity 0.25s ease-out; + will-change: transform, opacity; +} + +.slide-leave-active { + transition: transform 0.35s ease-in, opacity 0.25s ease-in 0.1s; + will-change: transform, opacity; +} + +.slide-enter-from, +.slide-leave-to { + transform: translateY(-90%); + opacity: 0; +} + +/* slide top */ + +.slide-top-enter-active { + transition: top 0.4s ease-out; + will-change: top; +} + +.slide-top-leave-active { + transition: top 0.4s ease-in; + will-change: top; +} + +.slide-top-enter-from, +.slide-top-leave-to { + top: -100%; +} + +/* slide-bottom */ + +.slide-bottom-enter-active { + transition: transform 0.35s ease-out 0.1s, opacity 0.25s ease-out; + will-change: transform, opacity; +} + +.slide-bottom-leave-active { + transition: transform 0.35s ease-in, opacity 0.25s ease-in 0.1s; + will-change: transform, opacity; +} + +.slide-bottom-enter-from, +.slide-bottom-leave-to { + transform: translateY(100%); + opacity: 0; +} + +/* fade enter */ + +.fade-enter-active, +.fade-leave-active { + transition: opacity 0.25s ease-out; + will-change: opacity; +} + +.fade-enter-from, +.fade-leave-to { + opacity: 0; +} diff --git a/packages/ui/src/typings/choices.d.ts b/packages/ui/src/typings/choices.d.ts new file mode 100644 index 000000000..0c6144e1f --- /dev/null +++ b/packages/ui/src/typings/choices.d.ts @@ -0,0 +1 @@ +declare module 'choices.js' diff --git a/packages/ui/src/typings/vuex.d.ts b/packages/ui/src/typings/vuex.d.ts new file mode 100644 index 000000000..050a2f63e --- /dev/null +++ b/packages/ui/src/typings/vuex.d.ts @@ -0,0 +1,13 @@ +import { Store } from 'vuex' + +/* eslint-disable no-unused-vars */ + +declare module '@vue/runtime-core' { + interface State { + count: number + } + + interface ComponentCustomProperties { + $store: Store<any> + } +} diff --git a/packages/ui/src/utils/contenu.js b/packages/ui/src/utils/contenu.js new file mode 100644 index 000000000..998e16d16 --- /dev/null +++ b/packages/ui/src/utils/contenu.js @@ -0,0 +1,121 @@ +import numberFormat from './number-format' +import { dateFormat } from './index' + +const contenuBuild = (sections, elementContenu) => + sections.reduce((contenu, section) => { + if (section) { + contenu[section.id] = (elementContenu && elementContenu[section.id]) || {} + } + + return contenu + }, {}) + +const elementContenuBuild = (sections, contenu) => + sections.reduce((elementContenu, section) => { + if (Object.keys(contenu[section.id]).length) { + if (!elementContenu) { + elementContenu = {} + } + elementContenu[section.id] = contenu[section.id] + } + + return elementContenu + }, null) + +const elementsCompleteCheck = (elements, sectionContenu, complete) => + elements.reduce((sectionComplete, e) => { + if ( + !sectionComplete || + !sectionContenu || + e.optionnel || + ['radio', 'checkbox'].includes(e.type) + ) + return sectionComplete + + let elementComplete = false + + if (e.type === 'checkboxes') { + if (sectionContenu[e.id].length) { + elementComplete = true + } + } else if (e.type === 'multiple') { + elementComplete = + sectionContenu[e.id] && + sectionContenu[e.id].length && + sectionContenu[e.id].reduce((acc, element) => { + return acc && elementsCompleteCheck(e.elements, element, true) + }, true) + } else { + elementComplete = + sectionContenu[e.id] !== undefined && + sectionContenu[e.id] !== null && + sectionContenu[e.id] !== '' + } + + return elementComplete + }, complete) + +const contenuCompleteCheck = (sections, contenu) => + sections.reduce((complete, s) => { + if (!complete) return false + + return elementsCompleteCheck(s.elements, contenu[s.id], complete) + }, true) + +const valeurFind = ({ id, type, valeurs }, contenu) => { + if (contenu[id] === undefined || contenu[id] === '') { + return '–' + } + + if (['number', 'integer'].includes(type)) { + return numberFormat(contenu[id]) + } + + if (type === 'checkboxes') { + return contenu[id] + .map(id => { + const valeur = valeurs.find(e => e.id === id) + return valeur ? valeur.nom : undefined + }) + .filter(valeur => !!valeur) + .join(', ') + } + + if (type === 'select') { + return valeurs.find(v => v.id === contenu[id])?.nom + } + + if (type === 'date') { + return dateFormat(contenu[id]) + } + + if (contenu[id] === true) return 'Oui' + else if (contenu[id] === false) return 'Non' + + return contenu[id] +} + +const hasValeurCheck = (elementId, contenu) => { + const valeur = contenu && contenu[elementId] + + if ( + (!Array.isArray(valeur) && (valeur || valeur === 0 || valeur === false)) || + (Array.isArray(valeur) && valeur.length) + ) + return true + + return false +} + +const elementsVisibleCheck = (elements, contenu) => + elements.some(e => hasValeurCheck(e.id, contenu) || !e.optionnel) + +export { + contenuBuild, + elementContenuBuild, + contenuCompleteCheck, + elementsCompleteCheck, + valeurFind, + hasValeurCheck, + elementsVisibleCheck +} diff --git a/packages/ui/src/utils/documents.js b/packages/ui/src/utils/documents.js new file mode 100644 index 000000000..1c30668c8 --- /dev/null +++ b/packages/ui/src/utils/documents.js @@ -0,0 +1,47 @@ +import { TODAY } from './index' + +const documentsRequiredAdd = (documents, documentsTypes, userIsAdmin) => { + const typeGet = document => + document.type ? document.type.id : document.typeId + + // supprime tous les documents temporaires + documents = documents?.filter(d => d.id !== typeGet(d)) + + // supprime les documents dont le documentType n'existe pas + const newDocuments = + documents?.filter(d => { + const documentsTypesIds = documentsTypes.map(({ id }) => id) + return documentsTypesIds.includes(typeGet(d)) + }) || [] + + // crée les documents dont le type est obligatoires si ils n'existent pas + documentsTypes?.forEach(documentType => { + if ( + !documentType.optionnel && + !newDocuments.find(d => typeGet(d) === documentType.id) + ) { + newDocuments.push({ + id: documentType.id, + typeId: documentType.id, + type: documentType, + entreprisesLecture: userIsAdmin, + publicLecture: false, + fichier: null, + fichierNouveau: null, + fichierTypeId: null, + date: TODAY, + modification: true, + suppression: false + }) + } + }) + + // on interdit la suppression des documents obligatoires et imcomplets + documents?.forEach(d => { + d.suppression = d.id !== typeGet(d) + }) + + return newDocuments +} + +export { documentsRequiredAdd } diff --git a/packages/ui/src/utils/documents.test.js b/packages/ui/src/utils/documents.test.js new file mode 100644 index 000000000..748d9edbf --- /dev/null +++ b/packages/ui/src/utils/documents.test.js @@ -0,0 +1,54 @@ +import { documentsRequiredAdd } from './documents' +import { TODAY } from './index' + +describe('documents', () => { + test('retourne un tableau vide si il n’y a aucun doc à ajouter', () => { + expect(documentsRequiredAdd(undefined, undefined, true)).toEqual([]) + }) + + test.each` + userIsAdmin + ${true} + ${false} + `('ajoute un document obligatoire manquant', ({ userIsAdmin }) => { + expect( + documentsRequiredAdd( + undefined, + [{ optionnel: false, id: 'aaa' }], + userIsAdmin + ) + ).toEqual([ + { + date: TODAY, + entreprisesLecture: userIsAdmin, + fichier: null, + fichierNouveau: null, + fichierTypeId: null, + id: 'aaa', + modification: true, + publicLecture: false, + suppression: false, + type: { + id: 'aaa', + optionnel: false + }, + typeId: 'aaa' + } + ]) + }) + + test('supprime le document avec un type inexistant', () => { + expect( + documentsRequiredAdd( + [{ typeId: 'aaa' }, { typeId: 'ddd' }], + [{ optionnel: false, id: 'aaa' }], + true + ) + ).toEqual([ + { + typeId: 'aaa', + suppression: true + } + ]) + }) +}) diff --git a/packages/ui/src/utils/entreprise.js b/packages/ui/src/utils/entreprise.js new file mode 100644 index 000000000..c95af36d8 --- /dev/null +++ b/packages/ui/src/utils/entreprise.js @@ -0,0 +1,14 @@ +const etablissementNameFind = (etablissements, date) => { + if (!etablissements || !etablissements.length) { + return null + } + + const etablissement = etablissements.find( + e => + (e.dateDebut < date && (!e.dateFin || e.dateFin > date)) || !e.dateDebut + ) + + return etablissement && etablissement.nom +} + +export { etablissementNameFind } diff --git a/packages/ui/src/utils/geojson.js b/packages/ui/src/utils/geojson.js new file mode 100644 index 000000000..b78adaf2d --- /dev/null +++ b/packages/ui/src/utils/geojson.js @@ -0,0 +1,46 @@ +// convertit des points +// en un geojson de type 'MultiPolygon' + +const geojsonFeatureMultiPolygon = points => ({ + type: 'Feature', + properties: { etapeId: points[0].titreEtapeId }, + geometry: { + type: 'MultiPolygon', + coordinates: geojsonMultiPolygonCoordinates(points) + } +}) + +// convertit une liste de points +// en un tableau 'coordinates' geoJson +// (le premier et le dernier point d'un contour ont les mêmes coordonnées) +const geojsonMultiPolygonCoordinates = points => + multiPolygonContoursClose(multiPolygonCoordinates(points)) + +// convertit une liste de points +// [{groupe: 1, contour: 1, point: 1, coordonnees: {x: 1.111111, y: 1.111111}}] +// en un tableau de 'coordinates': [[[[1.11111, 1.111111]]]] +const multiPolygonCoordinates = points => + points.reduce((res, p) => { + res[p.groupe - 1] = res[p.groupe - 1] || [] + res[p.groupe - 1][p.contour - 1] = res[p.groupe - 1][p.contour - 1] || [] + res[p.groupe - 1][p.contour - 1][p.point - 1] = [ + p.coordonnees.x, + p.coordonnees.y + ] + + return res + }, []) + +// duplique le premier point de chaque contour +// en fin de contour pour fermer le tracé +const multiPolygonContoursClose = groupes => + groupes.map(contours => + contours.reduce((acc, points) => { + points[points.length] = points[0] + acc.push(points) + + return acc + }, []) + ) + +export { geojsonFeatureMultiPolygon } diff --git a/packages/ui/src/utils/index.js b/packages/ui/src/utils/index.js new file mode 100644 index 000000000..8f0a571a2 --- /dev/null +++ b/packages/ui/src/utils/index.js @@ -0,0 +1,81 @@ +const TODAY = new Date().toISOString().slice(0, 10) + +const dateFormat = dateString => { + if (typeof dateString !== 'string') { + return '' + } + + const [y, m, d] = dateString.split('-') + + return `${d} / ${m} / ${y}` +} + +const textNumberFormat = (text, options) => { + let value = text + .replace(/[^\d-,.]+/, '') + .replace(/\s/, '') + .replace(/\./, ',') + + value = options.negative + ? value.replace(/^([\d-][\d,]*)(-)+/, '$1') + : value.replace(/-/g, '') + + value = options.integer + ? value.replace(/\..*$/, '').replace(/,.*$/, '') + : value.replace(/(\d+,\d*)([,.]+)/, '$1') + + return value +} + +const textToNumberFormat = text => { + const value = text.replace(/\s/g, '').replace(/,/g, '.') + + const number = parseFloat(value) + + return Number.isNaN(number) ? null : number +} + +const permissionsCheck = (user, permissions) => + !!(user && user.permission && permissions.includes(user.permission.id)) + +const typenameOmit = (key, value) => (key === '__typename' ? undefined : value) + +const cloneAndClean = json => JSON.parse(JSON.stringify(json), typenameOmit) + +const elementsFormat = (id, metas) => metas[id.replace(/Ids/g, '')] + +// récupère les paramètres depuis les préférences utilisateurs +const paramsBuild = (apiParams, preferences) => + apiParams.reduce((params, { id, type }) => { + let v = preferences[id] + + if (type === 'strings' || type === 'objects') { + v = v && v.length ? v : null + } else if (type === 'number') { + v = v ? Number(v) : null + } else if (type === 'numbers') { + v = v && v.length ? v.map(Number) : null + } else { + v = v ? v.toString() : null + } + + if (v) { + params[id] = v + } + + return params + }, {}) + +const cap = string => string[0].toUpperCase() + string.slice(1) + +export { + dateFormat, + permissionsCheck, + textNumberFormat, + textToNumberFormat, + cloneAndClean, + elementsFormat, + paramsBuild, + cap, + TODAY +} diff --git a/packages/ui/src/utils/index.test.js b/packages/ui/src/utils/index.test.js new file mode 100644 index 000000000..5cd67ba38 --- /dev/null +++ b/packages/ui/src/utils/index.test.js @@ -0,0 +1,146 @@ +import { + dateFormat, + textNumberFormat, + textToNumberFormat, + permissionsCheck, + cloneAndClean, + elementsFormat, + paramsBuild +} from './index' + +// dateFormat +describe('dateFormat', () => { + const cases = [ + ['2020-01-01', '01 / 01 / 2020'], + ['2020-11-16', '16 / 11 / 2020'] + ] + + test.each(cases)('formate la date %s en %s', (input, output) => { + expect(dateFormat(input)).toEqual(output) + }) +}) + +// textNumberFormat et textToNumberFormat +describe('textNumberFormat et textToNumberFormat', () => { + const cases = [ + ['1.2 34', { negative: false, integer: false }, '1,234', 1.234], + ['-1.234', { negative: false, integer: false }, '1,234', 1.234], + ['-1.234', { negative: true, integer: false }, '-1,234', -1.234], + ['---1.234', { negative: true, integer: false }, '-1,234', -1.234], + ['1.2 34', { negative: false, integer: true }, '1', 1], + ['---1.2 34', { negative: false, integer: true }, '1', 1], + ['1.2abc34', { negative: false, integer: false }, '1,234', 1.234], + ['-1.2abc34', { negative: true, integer: false }, '-1,234', -1.234], + ['-1.2abc34', { negative: false, integer: true }, '1', 1], + ['-1.2abc34', { negative: true, integer: true }, '-1', -1], + ['---1.2 34', { negative: true, integer: true }, '-1', -1], + ['1.2abc.34', { negative: false, integer: false }, '1,234', 1.234], + ['1,2ab c.,34', { negative: false, integer: false }, '1,234', 1.234], + ['-1,2ab c.,34', { negative: false, integer: false }, '1,234', 1.234], + ['-1,2ab c.,34', { negative: true, integer: false }, '-1,234', -1.234], + ['-1,2ab c.,34', { negative: true, integer: true }, '-1', -1], + ['azerty', { negative: true, integer: true }, '', null] + ] + + test.each(cases)( + 'formate %s avec les options %o en texte %s', + (input, options, resText, resNumber) => { + expect(textNumberFormat(input, options)).toEqual(resText) + } + ) + + test.each(cases)( + 'formate %s avec les options %o en nombre %i', + (input, options, resText, resNumber) => { + expect(textToNumberFormat(resText)).toEqual(resNumber) + } + ) +}) + +// permissionsCheck +describe('permissionsCheck', () => { + const cases = [ + [ + { permission: { id: 'admin' } }, + ['admin', 'defaut', 'editeur', 'entreprise', 'lecteur', 'super'], + true + ], + [{ permission: { id: 'super' } }, ['admin', 'super'], true] + ] + + test.each(cases)( + 'vérifie que %o appartient à la liste des permissions %o', + (userPermissionId, permissions, res) => { + expect(permissionsCheck(userPermissionId, permissions)).toBe(res) + } + ) +}) + +describe('cloneAndClean', () => { + test(`transforme un json en occultant les propriétés __typename`, () => + expect( + cloneAndClean({ id: 'id', value: 'value', __typename: 'typename' }) + ).toEqual({ id: 'id', value: 'value', __typename: undefined })) +}) + +describe('elementsFormat', () => { + const metas = { + domaines: { + c: 'carrières', + f: 'combustibles fossiles', + g: 'géothermie', + h: 'hydrocarbures liquides ou gazeux', + i: 'inconnu', + m: 'minéraux et métaux', + r: 'éléments radioactifs', + s: 'stockages souterrains', + w: 'granulats marins' + }, + statuts: {}, + types: {} + } + + const cases = [ + ['domaines', 'domainesIds'], + ['statuts', 'statutsIds'], + ['types', 'typesIds'] + ] + + test.each(cases)('formate les %s', (nom, id) => { + expect(elementsFormat(id, metas)).toEqual(metas[nom]) + }) +}) + +describe('paramsBuild', () => { + const params = [ + { id: 'page', type: 'number', min: 0 }, + { id: 'intervalle', type: 'number', min: 10, max: 500 }, + { id: 'colonne', type: 'string', elements: ['nom', 'type', 'abreviation'] }, + { id: 'ordre', type: 'string', elements: ['asc', 'desc'] }, + { id: 'typesIds', type: 'strings', elements: ['aaa', 'bbb'] }, + { id: 'noms', type: 'string' }, + { id: 'numbers', type: 'numbers' } + ] + + const preferences = { + page: 1, + intervalle: 200, + ordre: 'asc', + colonne: 'type', + noms: 'one two', + typesIds: ['aaa'], + numbers: ['1', '2'] + } + + test('formate les paramètres', () => { + expect(paramsBuild(params, preferences)).toEqual({ + intervalle: 200, + ordre: 'asc', + page: 1, + colonne: 'type', + noms: 'one two', + typesIds: ['aaa'], + numbers: [1, 2] + }) + }) +}) diff --git a/packages/ui/src/utils/map-tiles.js b/packages/ui/src/utils/map-tiles.js new file mode 100644 index 000000000..7a89890f2 --- /dev/null +++ b/packages/ui/src/utils/map-tiles.js @@ -0,0 +1,58 @@ +export default [ + { + id: 'osm-fr', + name: 'OSM / fr', + type: 'tiles', + url: 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', + attribution: + '© Openstreetmap France | © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' + }, + { + id: 'osm-hot', + name: 'OSM / hot', + type: 'tiles', + url: 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', + attribution: + '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>, Tiles courtesy of <a href="http://hot.openstreetmap.org/">Humanitarian OpenStreetMap Team</a>' + }, + { + id: 'geoportail-ign-map', + name: 'Géoportail / Plan IGN', + type: 'tiles', + url: 'https://wxs.ign.fr/essentiels/geoportail/wmts?layer=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={x}&TileRow={y}', + attribution: 'IGN-F/Geoportail' + }, + { + id: 'geoportail-photographies-aeriennes', + name: 'Géoportail / Photographies aériennes', + type: 'tiles', + url: 'https://wxs.ign.fr/essentiels/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', + attribution: 'IGN-F/Geoportail' + }, + { + id: 'geoportail-parcelles-cadastrales', + name: 'Géoportail / Parcelles cadastrales', + type: 'tiles', + url: 'https://wxs.ign.fr/parcellaire/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/png&LAYER=CADASTRALPARCELS.PARCELS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}', + attribution: 'IGN-F/Geoportail' + }, + { + id: 'brgm-geo', + name: 'BRGM / Cartes géologiques 1/50 000', + type: 'wms', + url: 'https://geoservices.brgm.fr/geologie', + layers: 'SCAN_H_GEOL50', + attribution: 'BRGM', + version: '1.3.0' + }, + { + id: 'sdom-zones', + name: 'SDOM (schéma départemental d’orientation minière)', + type: 'wms', + url: 'https://datacarto.geoguyane.fr/wms/SDOM_GUYANE', + layers: + 'ZONE2activiteminiereautoriseesouscontrainte,ZONE1activiteminiereinterditesaufexploitationsouterraineetrecherchesaeriennes,ZONE0activiteminiereinterdite,Zone0potentielle,LimitesdescommunesdeGuyane', + attribution: 'GéoGuyane', + version: '1.3.0' + } +] diff --git a/packages/ui/src/utils/matomo-tracker.js b/packages/ui/src/utils/matomo-tracker.js new file mode 100644 index 000000000..f43404b88 --- /dev/null +++ b/packages/ui/src/utils/matomo-tracker.js @@ -0,0 +1,28 @@ +const paramsEventTrack = (params, definitions, matomo, category, action) => { + if (matomo) { + if (params) { + definitions.forEach(({ type, id }) => { + let values = [] + if (type === 'string' && params[id]) { + values = params[id].split(' ').map(p => p.replace("'", ' ')) + } else if (type === 'strings' && params[id]) { + values = params[id] + } else if (type === 'objects' && params[id]) { + values = params[id].map(e => e.typeId) + } + values.forEach(value => { + matomo.trackEvent( + `${category}-${action}`, + `${category}-${action}-${id}`, + value + ) + matomo.trackSiteSearch(value, id) + }) + }) + } else { + matomo.trackEvent(category, action, `${action}-${category}`) + } + } +} + +export default paramsEventTrack diff --git a/packages/ui/src/utils/number-format.js b/packages/ui/src/utils/number-format.js new file mode 100644 index 000000000..c91cec2c9 --- /dev/null +++ b/packages/ui/src/utils/number-format.js @@ -0,0 +1,6 @@ +const numberFormat = number => + Intl.NumberFormat('FR-fr', { + maximumSignificantDigits: 21 + }).format(number) + +export default numberFormat diff --git a/packages/ui/src/utils/stream.js b/packages/ui/src/utils/stream.js new file mode 100644 index 000000000..9ea5ee4fb --- /dev/null +++ b/packages/ui/src/utils/stream.js @@ -0,0 +1,35 @@ +const streamToBlob = async (response, loadEventId, commit = null) => { + let body + + if (response.body) { + const total = response.headers.get('content-length') + const reader = response.body.getReader() + let loaded = 0 + const chunks = [] + + if (commit) { + commit('loadingRemove', loadEventId, { root: true }) + } + + while (true) { + const { done, value } = await reader.read() + + if (done) break + + chunks.push(value) + loaded += value.length + + if (commit) { + commit('fileLoad', { loaded, total }, { root: true }) + } + } + + body = new Blob(chunks) + } else { + body = await response.blob() + } + + return body +} + +export { streamToBlob } diff --git a/packages/ui/src/utils/titre-etape-edit.js b/packages/ui/src/utils/titre-etape-edit.js new file mode 100644 index 000000000..703b5f529 --- /dev/null +++ b/packages/ui/src/utils/titre-etape-edit.js @@ -0,0 +1,220 @@ +import { cloneAndClean } from './index' + +const referencesBuild = references => + references.reduce( + ( + { pointGeoSystemesIndex, pointReferences }, + { geoSysteme, coordonnees, id } + ) => { + pointGeoSystemesIndex[geoSysteme.id] = geoSysteme + + pointReferences[geoSysteme.id] = { ...coordonnees } + + if (id) { + pointReferences[geoSysteme.id].id = id + } + + return { pointGeoSystemesIndex, pointReferences } + }, + { pointGeoSystemesIndex: {}, pointReferences: {} } + ) + +const geoSystemeOpposableIdFind = references => { + const referenceOpposable = references.find(r => r.opposable) + + return referenceOpposable ? referenceOpposable.geoSysteme.id : '' +} + +const groupeBuild = (points, geoSystemeOpposableId) => + points.reduce( + ( + { + groupes, + geoSystemesIndex, + lotCurrent, + pointIndex, + contourIndexPrevious, + groupeIndexPrevious + }, + { nom, description, contour, groupe, references, lot, subsidiaire, id } + ) => { + const { pointReferences, pointGeoSystemesIndex } = + referencesBuild(references) + + const lotGeoSystemeId = + geoSystemeOpposableId || Object.keys(pointGeoSystemesIndex)[0] + + if ( + lot && + lotCurrent && + lotCurrent === lot && + groupe === groupeIndexPrevious && + contour === contourIndexPrevious + ) { + groupes[groupe - 1][contour - 1][pointIndex - 1].references.push( + pointReferences[lotGeoSystemeId] + ) + } else { + if (!groupes[groupe - 1]) { + groupes[groupe - 1] = [] + } + + if (!groupes[groupe - 1][contour - 1]) { + groupes[groupe - 1][contour - 1] = [] + } + + const point = { + description, + lot, + subsidiaire, + references: lot ? [pointReferences[lotGeoSystemeId]] : pointReferences + } + + if (id) { + point.id = id + } + + if (!lot) { + point.nom = nom + } + + groupes[groupe - 1][contour - 1].push(point) + + pointIndex = lot ? groupes[groupe - 1][contour - 1].length : null + lotCurrent = lot + contourIndexPrevious = contour + groupeIndexPrevious = groupe + } + + return { + groupes, + geoSystemesIndex: Object.assign( + geoSystemesIndex, + pointGeoSystemesIndex + ), + lotCurrent, + pointIndex, + contourIndexPrevious, + groupeIndexPrevious + } + }, + { + groupes: [], + geoSystemesIndex: {}, + lotCurrent: null, + pointIndex: 0, + contourIndexPrevious: 1, + groupeIndexPrevious: 1 + } + ) + +const etapeGroupesBuild = points => { + const geoSystemeOpposableId = geoSystemeOpposableIdFind(points[0].references) + + const { groupes, geoSystemesIndex } = groupeBuild( + points, + geoSystemeOpposableId + ) + + return { + groupes, + geoSystemes: Object.keys(geoSystemesIndex).map(id => geoSystemesIndex[id]), + geoSystemeOpposableId + } +} + +const etapePointsFormat = (etape, points) => { + if (points && points.length) { + const { groupes, geoSystemes, geoSystemeOpposableId } = + etapeGroupesBuild(points) + + etape.groupes = groupes + etape.geoSystemeIds = geoSystemes.map(({ id }) => id) + etape.geoSystemeOpposableId = geoSystemeOpposableId + } else { + etape.groupes = [] + etape.geoSystemeIds = [] + etape.geoSystemeOpposableId = null + } + return etape +} + +const etapeEditFormat = etape => { + etape = cloneAndClean(etape) + + if (etape.statut) { + etape.statutId = etape.statut.id + delete etape.statut + } else { + etape.statutId = '' + } + + delete etape.administrations + + const entreprisesPropIds = ['titulaires', 'amodiataires'] + + entreprisesPropIds.forEach(propId => { + if (etape[propId]) { + etape[propId] = etape[propId].map(({ id, operateur }) => ({ + id, + operateur + })) + } else { + etape[propId] = [] + } + }) + + if (etape.substances) { + etape.substances = etape.substances.map(({ id }) => ({ + id + })) + } else { + etape.substances = [] + } + + etape.duree = { + ans: etape.duree ? Math.floor(etape.duree / 12) : null, + mois: etape.duree ? Math.floor(etape.duree % 12) : null + } + + etape = etapePointsFormat(etape, etape.points) + + if (!etape.incertitudes) { + etape.incertitudes = {} + } + + if (!etape.contenu) { + etape.contenu = {} + } + + if (!etape.documents) { + etape.documents = [] + } else { + etape.documents = etape.documents.map(documentEtapeFormat) + } + + if (!etape.justificatifs) { + etape.justificatifs = [] + } + + delete etape.pays + delete etape.modification + delete etape.points + delete etape.geojsonPoints + delete etape.geojsonMultiPolygon + + return etape +} + +const documentEtapeFormat = document => { + document.typeId = document.type.id + document.fichierNouveau = null + + return document +} +export { + etapeEditFormat, + etapeGroupesBuild, + documentEtapeFormat, + etapePointsFormat +} diff --git a/packages/ui/src/utils/titre-etape-edit.test.js b/packages/ui/src/utils/titre-etape-edit.test.js new file mode 100644 index 000000000..5d937d19a --- /dev/null +++ b/packages/ui/src/utils/titre-etape-edit.test.js @@ -0,0 +1,175 @@ +import { etapeEditFormat } from './titre-etape-edit' + +// dateFormat +describe('etapeEditFormat', () => { + test("formate une étape pour l'éditer", () => { + expect( + etapeEditFormat({ + __typename: 'etape', + id: 'etape-id' + }) + ).toEqual({ + id: 'etape-id', + statutId: '', + duree: { ans: null, mois: null }, + amodiataires: [], + titulaires: [], + geoSystemeIds: [], + geoSystemeOpposableId: null, + groupes: [], + substances: [], + contenu: {}, + incertitudes: {}, + documents: [], + justificatifs: [] + }) + + expect( + etapeEditFormat({ + __typename: 'etape', + id: 'etape-id', + points: [ + { + id: 'point-id-111', + groupe: 1, + contour: 1, + point: 1, + references: [ + { + opposable: true, + geoSysteme: { id: 'geo-systeme-id' }, + coordonnees: { x: 1.5, y: 1 }, + id: 'ref' + } + ] + } + ], + justificatifs: [{ id: 'toto', nom: 'name' }] + }) + ).toEqual({ + id: 'etape-id', + statutId: '', + duree: { ans: null, mois: null }, + amodiataires: [], + titulaires: [], + geoSystemeIds: ['geo-systeme-id'], + geoSystemeOpposableId: 'geo-systeme-id', + groupes: [ + [ + [ + { + id: 'point-id-111', + description: undefined, + nom: undefined, + references: { 'geo-systeme-id': { id: 'ref', x: 1.5, y: 1 } }, + lot: undefined, + subsidiaire: undefined + } + ] + ] + ], + substances: [], + contenu: {}, + incertitudes: {}, + documents: [], + justificatifs: [{ id: 'toto', nom: 'name' }] + }) + + expect( + etapeEditFormat({ + __typename: 'etape', + id: 'etape-id', + type: { id: 'etape-type-id' }, + statut: { id: 'etape-statut-id' }, + duree: 240, + administrations: ['administration'], + titulaires: [{ id: 'titulaire-id', prop: 'titulaire-prop' }], + points: [ + { + id: 'point-id-111', + groupe: 1, + contour: 1, + point: 1, + references: [ + { + geoSysteme: { id: 'geo-systeme-id' }, + coordonnees: { x: 1.5, y: 1 }, + id: 'ref' + } + ] + }, + { + id: 'point-id-113', + groupe: 1, + contour: 1, + point: 3, + lot: 1, + references: [ + { + geoSysteme: { id: 'geo-systeme-id' }, + coordonnees: { x: 1.5, y: 3 }, + id: 'ref3' + } + ] + }, + { + id: 'point-id-114', + groupe: 1, + contour: 1, + point: 4, + lot: 1, + references: [ + { + geoSysteme: { id: 'geo-systeme-id' }, + coordonnees: { x: 1.5, y: 4 }, + id: 'ref2' + } + ] + } + ], + contenu: { 'prop-id': 'prop-value' }, + incertitudes: { amodiataires: true }, + substances: [{ id: 'auru' }], + documents: [{ type: { id: 'act' } }] + }) + ).toEqual({ + id: 'etape-id', + type: { id: 'etape-type-id' }, + statutId: 'etape-statut-id', + duree: { ans: 20, mois: 0 }, + amodiataires: [], + titulaires: [{ id: 'titulaire-id', operateur: undefined }], + geoSystemeIds: ['geo-systeme-id'], + geoSystemeOpposableId: '', + groupes: [ + [ + [ + { + id: 'point-id-111', + description: undefined, + nom: undefined, + references: { 'geo-systeme-id': { id: 'ref', x: 1.5, y: 1 } }, + lot: undefined, + subsidiaire: undefined + }, + { + id: 'point-id-113', + description: undefined, + references: [ + { id: 'ref3', x: 1.5, y: 3 }, + { id: 'ref2', x: 1.5, y: 4 } + ], + lot: 1, + subsidiaire: undefined + } + ] + ] + ], + substances: [{ id: 'auru' }], + contenu: { 'prop-id': 'prop-value' }, + incertitudes: { amodiataires: true }, + documents: [{ fichierNouveau: null, typeId: 'act', type: { id: 'act' } }], + justificatifs: [] + }) + }) +}) diff --git a/packages/ui/src/utils/titre-etape-heritage-build.js b/packages/ui/src/utils/titre-etape-heritage-build.js new file mode 100644 index 000000000..05d64971b --- /dev/null +++ b/packages/ui/src/utils/titre-etape-heritage-build.js @@ -0,0 +1,117 @@ +const etapeHeritageBuild = (stateEtape, apiEtape) => { + const newEtape = { + id: stateEtape.id, + date: stateEtape.date, + typeId: apiEtape.typeId, + type: apiEtape.type, + statutId: '', + incertitudes: { date: stateEtape.incertitudes.date }, + titreDemarcheId: stateEtape.titreDemarcheId + } + + if (stateEtape.documents) { + const documentsTypesIds = apiEtape.type.documentsTypes?.map(({ id }) => id) + newEtape.documents = stateEtape.documents.filter(document => + documentsTypesIds?.includes(document.typeId) + ) + } + + if (stateEtape.justificatifs) { + const justificatifsTypesIds = apiEtape.type.justificatifsTypes?.map( + ({ id }) => id + ) + newEtape.justificatifs = stateEtape.justificatifs.filter(justificatif => + justificatifsTypesIds?.includes(justificatif.typeId) + ) + } + + // si + // - on crée une nouvelle étape fondamentale + // - on change le type d'étape (non-fondamentale -> fondamentale) + // alors la nouvelle étape récupère les propriété de l'API + if (!stateEtape.heritageProps && apiEtape.heritageProps) { + newEtape.heritageProps = apiEtape.heritageProps + newEtape.duree = apiEtape.duree + newEtape.dateDebut = apiEtape.dateDebut + newEtape.dateFin = apiEtape.dateFin + newEtape.surface = apiEtape.surface + newEtape.titulaires = apiEtape.titulaires + newEtape.amodiataires = apiEtape.amodiataires + newEtape.substances = apiEtape.substances + newEtape.groupes = apiEtape.groupes + newEtape.geoSystemeIds = apiEtape.geoSystemeIds + newEtape.geoSystemeOpposableId = apiEtape.geoSystemeOpposableId + } + // si on change le type d'étape (fondamentale -> fondamentale) + // alors on garde les propriétés actuelles + else if (stateEtape.heritageProps && apiEtape.heritageProps) { + newEtape.heritageProps = stateEtape.heritageProps + newEtape.duree = stateEtape.duree + newEtape.dateDebut = stateEtape.dateDebut + newEtape.dateFin = stateEtape.dateFin + newEtape.surface = stateEtape.surface + newEtape.titulaires = stateEtape.titulaires + newEtape.amodiataires = stateEtape.amodiataires + newEtape.substances = stateEtape.substances + newEtape.groupes = stateEtape.groupes + newEtape.geoSystemeIds = stateEtape.geoSystemeIds + newEtape.geoSystemeOpposableId = stateEtape.geoSystemeOpposableId + } + + if ( + apiEtape.heritageContenu && + Object.keys(apiEtape.heritageContenu).length + ) { + Object.keys(apiEtape.heritageContenu).forEach(sectionId => { + if (Object.keys(apiEtape.heritageContenu[sectionId]).length) { + Object.keys(apiEtape.heritageContenu[sectionId]).forEach(elementId => { + if (!newEtape.contenu) { + newEtape.contenu = {} + } + + if (!newEtape.contenu[sectionId]) { + newEtape.contenu[sectionId] = {} + } + + if (!newEtape.heritageContenu) { + newEtape.heritageContenu = {} + } + + if (!newEtape.heritageContenu[sectionId]) { + newEtape.heritageContenu[sectionId] = {} + } + + if ( + stateEtape.heritageContenu && + stateEtape.heritageContenu[sectionId] && + stateEtape.heritageContenu[sectionId][elementId] + ) { + if ( + stateEtape.contenu && + stateEtape.contenu[sectionId] && + stateEtape.contenu[sectionId][elementId] + ) { + newEtape.contenu[sectionId][elementId] = + stateEtape.contenu[sectionId][elementId] + } + + newEtape.heritageContenu[sectionId][elementId] = + stateEtape.heritageContenu[sectionId][elementId] + } else { + if (apiEtape.contenu[sectionId]) { + newEtape.contenu[sectionId][elementId] = + apiEtape.contenu[sectionId][elementId] + } + + newEtape.heritageContenu[sectionId][elementId] = + apiEtape.heritageContenu[sectionId][elementId] + } + }) + } + }) + } + + return newEtape +} + +export { etapeHeritageBuild } diff --git a/packages/ui/src/utils/titre-etape-save.js b/packages/ui/src/utils/titre-etape-save.js new file mode 100644 index 000000000..f7c1ad761 --- /dev/null +++ b/packages/ui/src/utils/titre-etape-save.js @@ -0,0 +1,293 @@ +const referenceBuild = (id, x, y, geoSystemeId, opposable) => { + const reference = { + geoSystemeId, + coordonnees: { + x, + y + } + } + + if (id) { + reference.id = id + } + + if (opposable) { + reference.opposable = true + } + + return reference +} + +const pointReferencesBuild = ( + references, + geoSystemeIds, + geoSystemeOpposableId +) => + Object.keys(references).reduce((pointReferences, geoSystemeId) => { + if ( + geoSystemeIds.includes(geoSystemeId) && + references[geoSystemeId].x && + references[geoSystemeId].y && + geoSystemeId + ) { + pointReferences.push( + referenceBuild( + references[geoSystemeId].id, + references[geoSystemeId].x, + references[geoSystemeId].y, + geoSystemeId, + geoSystemeIds.length > 1 && geoSystemeId === geoSystemeOpposableId + ) + ) + } + + return pointReferences + }, []) + +const pointsLotBuild = ( + { references, description }, + pointsLength, + lot, + contour, + groupe, + opposable, + geoSystemeId +) => + references.reduce((points, { x, y, id }) => { + const isValid = x && y + + if (isValid) { + const point = { + nom: null, + lot, + subsidiaire: true, + description, + groupe, + contour, + point: pointsLength + points.length + 1, + references: [referenceBuild(id, x, y, geoSystemeId, opposable)] + } + + points.push(point) + } + + return points + }, []) + +const contourBuild = ( + contour, + contourIndex, + groupeIndex, + geoSystemeIds, + geoSystemeOpposableId +) => { + const { points } = contour.reduce( + ({ points, lotIndex }, point) => { + if (!point.lot) { + const newPoint = JSON.parse(JSON.stringify(point)) + newPoint.references = pointReferencesBuild( + newPoint.references, + geoSystemeIds, + geoSystemeOpposableId + ) + + // si il y a au moins une référence + // si il y a plusieurs géo-système, au moins une référence doit être opposable + if ( + newPoint.references.length && + (geoSystemeIds.length === 1 || + (geoSystemeIds.length > 1 && + !!newPoint.references.find(r => r.opposable))) + ) { + newPoint.groupe = groupeIndex + newPoint.contour = contourIndex + newPoint.point = points.length + 1 + points.push(newPoint) + } + } else if (point.references.length) { + points = points.concat( + pointsLotBuild( + point, + points.length, + lotIndex, + contourIndex, + groupeIndex, + geoSystemeIds.length > 1, + geoSystemeOpposableId + ) + ) + lotIndex += 1 + } + + return { points, lotIndex } + }, + { points: [], lotIndex: 1 } + ) + + return points +} + +const groupeBuild = ( + contours, + groupeIndex, + geoSystemeIds, + geoSystemeOpposableId +) => { + const { points } = contours.reduce( + ({ points, contourIndex }, contour) => { + const pointsNew = contourBuild( + contour, + contourIndex, + groupeIndex, + geoSystemeIds, + geoSystemeOpposableId + ) + + if (pointsNew.length) { + points = points.concat(pointsNew) + contourIndex++ + } + + return { points, contourIndex } + }, + { points: [], contourIndex: 1 } + ) + + return points +} + +const pointsBuild = (groupes, geoSystemeIds, geoSystemeOpposableId) => { + const { points } = groupes.reduce( + ({ points, groupeIndex }, groupe) => { + const pointsNew = groupeBuild( + groupe, + groupeIndex, + geoSystemeIds, + geoSystemeOpposableId + ) + + if (pointsNew.length) { + points = points.concat(pointsNew) + groupeIndex++ + } + + return { points, groupeIndex } + }, + { points: [], groupeIndex: 1 } + ) + + return points +} + +const dureeBuild = (ans, mois) => (ans ? ans * 12 : 0) + (mois || 0) + +const etapeSaveFormat = etape => { + const decisionsAnnexesContenu = etape.decisionsAnnexesContenu + etape = JSON.parse(JSON.stringify(etape)) + etape.decisionsAnnexesContenu = decisionsAnnexesContenu + + etape.justificatifIds = etape.justificatifs?.map(({ id }) => id) + etape.documentIds = etape.documents + ?.filter(d => d.id !== d.typeId) + .map(({ id }) => id) + + if (etape.type) { + etape.typeId = etape.type.id + } + delete etape.type + delete etape.slug + delete etape.justificatifs + delete etape.documents + + if (!etape.contenu || !Object.keys(etape.contenu).length) { + delete etape.contenu + } + + if ( + !etape.decisionsAnnexesContenu || + !Object.keys(etape.decisionsAnnexesContenu).length + ) { + delete etape.decisionsAnnexesContenu + } + + delete etape.decisionsAnnexesSections + + if (etape.duree && (etape.duree.ans || etape.duree.mois)) { + etape.duree = dureeBuild(etape.duree.ans, etape.duree.mois) + } else { + etape.duree = null + } + + const props = ['date', 'dateDebut', 'dateFin', 'surface', 'duree'] + + props.forEach(prop => { + if (etape[prop] === '') { + etape[prop] = null + } + }) + + delete etape.modification + + delete etape.demarche + + const propsIds = [ + 'substances', + 'titulaires', + 'amodiataires', + 'administrations' + ] + + // supprime les champs dont les ids sont vides + propsIds.forEach(propId => { + if (etape[propId]) { + etape[propId] = etape[propId].filter(({ id }) => id) + } + }) + + if (etape.substances && etape.substances.length) { + etape.substances.forEach((substance, index) => { + substance.ordre = index + 1 + }) + } + + if ( + etape.geoSystemeIds && + etape.geoSystemeIds.length && + etape.groupes.length + ) { + etape.points = pointsBuild( + etape.groupes, + etape.geoSystemeIds, + etape.geoSystemeOpposableId || etape.geoSystemeIds[0] + ) + } else { + etape.points = null + + if (etape.incertitudes) { + delete etape.incertitudes.points + } + } + + delete etape.groupes + delete etape.geoSystemeOpposableId + delete etape.geoSystemeIds + + if (etape.heritageProps) { + Object.keys(etape.heritageProps).forEach(id => { + delete etape.heritageProps[id].etape + }) + } + + if (etape.heritageContenu) { + Object.keys(etape.heritageContenu).forEach(sectionId => { + Object.keys(etape.heritageContenu[sectionId]).forEach(elementId => { + delete etape.heritageContenu[sectionId][elementId].etape + delete etape.heritageContenu[sectionId][elementId].etapeId + }) + }) + } + + return etape +} + +export { etapeSaveFormat, pointsBuild, dureeBuild } diff --git a/packages/ui/src/utils/titre-etape-save.test.js b/packages/ui/src/utils/titre-etape-save.test.js new file mode 100644 index 000000000..42aded9f9 --- /dev/null +++ b/packages/ui/src/utils/titre-etape-save.test.js @@ -0,0 +1,221 @@ +import { etapeSaveFormat } from './titre-etape-save' + +// dateFormat +describe('etapeSaveFormat', () => { + test("formate une étape pour l'enregistrer", () => { + expect( + etapeSaveFormat({ + id: 'etape-id', + type: { id: 'mfr' }, + titreDemarcheId: 'demarche-id', + statutId: '', + dateFin: '', + duree: { ans: null, mois: null }, + amodiataires: [], + titulaires: [], + geoSystemeIds: [], + geoSystemeOpposableId: null, + groupes: [], + substances: [], + contenu: {}, + incertitudes: {} + }) + ).toEqual({ + amodiataires: [], + duree: null, + dateFin: null, + id: 'etape-id', + incertitudes: {}, + points: null, + statutId: '', + substances: [], + titreDemarcheId: 'demarche-id', + titulaires: [], + typeId: 'mfr' + }) + + expect( + etapeSaveFormat({ + id: 'etape-id', + type: { id: 'mfr' }, + titreDemarcheId: 'demarche-id', + statutId: '', + duree: { ans: 0, mois: 10 }, + amodiataires: [], + titulaires: [], + geoSystemeIds: ['geo-systeme-id', 'geo-systeme-id-2'], + geoSystemeOpposableId: 'geo-systeme-id', + groupes: [ + [ + [ + { + references: { + 'geo-systeme-id': { id: 'id1', x: 1.5, y: 1 }, + 'geo-systeme-id-2': { x: undefined, y: undefined } + } + }, + { + references: { + 'geo-systeme-id': { x: undefined, y: undefined }, + 'geo-systeme-id-2': { id: 'id3', x: 1.5, y: 1 } + } + } + ] + ] + ], + substances: [], + contenu: {}, + incertitudes: {}, + heritageProps: { 'prop-id': { etape: {}, actif: true } }, + heritageContenu: { + 'section-id': { 'element-id': { etape: {}, actif: true } } + } + }) + ).toEqual({ + amodiataires: [], + duree: 10, + id: 'etape-id', + incertitudes: {}, + points: [ + { + contour: 1, + groupe: 1, + point: 1, + references: [ + { + coordonnees: { x: 1.5, y: 1 }, + geoSystemeId: 'geo-systeme-id', + opposable: true, + id: 'id1' + } + ] + } + ], + statutId: '', + substances: [], + titreDemarcheId: 'demarche-id', + titulaires: [], + heritageProps: { 'prop-id': { actif: true } }, + heritageContenu: { + 'section-id': { 'element-id': { actif: true } } + }, + typeId: 'mfr' + }) + + expect( + etapeSaveFormat({ + id: 'etape-id', + titreDemarcheId: 'demarche-id', + type: { id: 'etape-type-id' }, + statutId: 'etape-statut-id', + duree: { ans: 20, mois: 0 }, + amodiataires: [], + titulaires: [{ id: 'titulaire-id' }, { id: '' }], + geoSystemeIds: ['geo-systeme-id'], + geoSystemeOpposableId: '', + groupes: [ + [ + [ + { + references: { + 'geo-systeme-id': { id: '1', x: 1.5, y: null } + }, + lot: undefined, + subsidiaire: undefined + }, + { + references: { 'geo-systeme-id': { id: '2', x: 1.5, y: 1 } }, + lot: undefined, + subsidiaire: undefined + }, + { + description: undefined, + references: [ + { id: '3', x: 1.5, y: 3 }, + { id: '4', x: 1.5, y: 4 } + ], + lot: 1, + subsidiaire: undefined + }, + { + description: undefined, + references: [], + lot: 2, + subsidiaire: undefined + }, + { + description: undefined, + references: ['reference invalide'], + lot: 3, + subsidiaire: undefined + } + ] + ], + [[]] + ], + substances: [{ id: 'substance-id-1' }], + contenu: { 'prop-id': 'prop-value' }, + incertitudes: { amodiataires: true }, + documents: [{ id: 'tmp', typeId: 'tmp' }, { id: 'doc-id' }] + }) + ).toEqual({ + amodiataires: [], + contenu: { 'prop-id': 'prop-value' }, + duree: 240, + id: 'etape-id', + incertitudes: { amodiataires: true }, + points: [ + { + contour: 1, + groupe: 1, + point: 1, + references: [ + { + id: '2', + coordonnees: { x: 1.5, y: 1 }, + geoSystemeId: 'geo-systeme-id' + } + ] + }, + { + contour: 1, + description: undefined, + groupe: 1, + lot: 1, + nom: null, + point: 2, + references: [ + { + coordonnees: { x: 1.5, y: 3 }, + geoSystemeId: 'geo-systeme-id', + id: '3' + } + ], + subsidiaire: true + }, + { + contour: 1, + description: undefined, + groupe: 1, + lot: 1, + nom: null, + point: 3, + references: [ + { + coordonnees: { x: 1.5, y: 4 }, + geoSystemeId: 'geo-systeme-id', + id: '4' + } + ], + subsidiaire: true + } + ], + statutId: 'etape-statut-id', + substances: [{ id: 'substance-id-1', ordre: 1 }], + titreDemarcheId: 'demarche-id', + titulaires: [{ id: 'titulaire-id' }], + typeId: 'etape-type-id', + documentIds: ['doc-id'] + }) + }) +}) diff --git a/packages/ui/src/utils/url.js b/packages/ui/src/utils/url.js new file mode 100644 index 000000000..af71ccd16 --- /dev/null +++ b/packages/ui/src/utils/url.js @@ -0,0 +1,186 @@ +const valueClean = (value, definition) => { + if (definition.type === 'number') { + if (definition.max && value > definition.max) { + value = definition.max + } else if (definition.min && value < definition.min) { + value = definition.min + } + + return value + } + + if ( + (definition.type === 'strings' || definition.type === 'numbers') && + definition.values + ) { + value = value + .reduce((acc, v) => { + if (definition.values.includes(v)) { + acc.push(v) + } + + return acc + }, []) + .sort() + + return value + } + + if (definition.type === 'tuple') { + return !Number(value[0]) || !Number(value[1]) ? null : value.map(Number) + } + + if (definition.type === 'string') { + return definition.values && !definition.values.includes(value) + ? null + : value + } + + if (definition.type === 'objects') { + // TODO: retirer les valeurs incorrectes + + return value.length ? value : null + } + + return value +} + +const valueParse = (id, value, definitions) => { + if (!value) return null + + const definition = definitions.find(p => p.id === id) + + if (!definition || !definition.type) { + return value + } + + if (definition.type === 'number') { + value = Number(value) + + return isNaN(value) ? null : value + } + + if (definition.type === 'strings') { + if (typeof value !== 'string') return null + + return value.split(',').sort() + } + + if (definition.type === 'numbers') { + if (typeof value !== 'string') return null + + return value + .split(',') + .map(v => Number(v)) + .sort() + } + + if (definition.type === 'string') { + return value + } + + if (definition.type === 'tuple') { + if (typeof value !== 'string') return null + + return value.split(',').slice(0, 2) + } + + if (definition.type === 'objects') { + return JSON.parse(value) + } + + return valueClean(value, definition) +} + +const valueStringify = (id, value, definitions) => { + if (!value) return null + + const definition = definitions.find(p => p.id === id) + + if ( + definition.type === 'strings' || + definition.type === 'tuple' || + definition.type === 'numbers' + ) { + return value.length ? value.join(',') : null + } + + if (definition.type === 'number') { + return value.toString() + } + + if (definition.type === 'objects') { + if (!value.length) return null + + // entrée <= + // [{ b: 2, a: 2 }, { a: 2, b: 1 }, { a: 1, b: 2 }] + // sortie => + // [{ a: 1, b: 2 }, { a: 2, b: 1 }, { a: 2, b: 2 }] + + const values = value + .reduce((objects, object) => { + object = Object.keys(object) + .sort() + .reduce((o, k) => { + if (object[k] !== '') { + o[k] = object[k] + } + + return o + }, {}) + + if (Object.keys(object).length) { + objects.push(JSON.stringify(object)) + } + + return objects + }, []) + .sort() + + if (!values.length) return null + + return `[${values.join(',')}]` + } + + return value +} + +const urlQueryParamsGet = (params, sourceQuery, definitions) => + Object.keys(params).reduce((queryParams, id) => { + const queryString = sourceQuery[id] || null + + if (queryString) { + const queryValue = valueParse(id, queryString, definitions) + const preferenceString = valueStringify(id, params[id], definitions) + + if (queryString !== preferenceString) { + queryParams[id] = queryValue + } + } + + return queryParams + }, {}) + +const urlQueryUpdate = (params, sourceQuery, definitions) => + Object.keys(params).reduce( + ({ query, status }, id) => { + const queryString = sourceQuery[id] || null + const preferenceString = valueStringify(id, params[id], definitions) + + if (queryString !== preferenceString) { + status = queryString || status === 'updated' ? 'updated' : 'created' + } + + if (preferenceString) { + query[id] = preferenceString + } + + return { query, status } + }, + { + query: {}, + status: null + } + ) + +export { urlQueryParamsGet, urlQueryUpdate } diff --git a/packages/ui/src/utils/url.test.js b/packages/ui/src/utils/url.test.js new file mode 100644 index 000000000..c2dc11281 --- /dev/null +++ b/packages/ui/src/utils/url.test.js @@ -0,0 +1,11 @@ +import { urlQueryParamsGet } from './url.js' + +describe('urlQueryParamsGet', () => { + test('récupère les paramètres de requête qui ont changé', () => { + expect( + urlQueryParamsGet({ typesIds: ['cx', 'pr'] }, { typeIds: 'ar' }, [ + { id: 'typeIds', type: 'strings', values: ['cx', 'pr', 'ar'] } + ]) + ).toEqual({}) + }) +}) diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json new file mode 100644 index 000000000..70f26cf38 --- /dev/null +++ b/packages/ui/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "lib": [ + "esnext", + "dom" + ], + "types": [ + "vite/client", + "jest" + ], + "baseUrl": ".", + "paths": { + "@/*": [ + "./src/*" + ] + }, + "allowJs": true + }, + "exclude": ["node_modules", "**/node_modules/*", "dist", "example/dist"], + "include": ["./src/**/*"] +} diff --git a/packages/ui/vite.config.js b/packages/ui/vite.config.js new file mode 100644 index 000000000..bb3fd8360 --- /dev/null +++ b/packages/ui/vite.config.js @@ -0,0 +1,48 @@ +import 'dotenv/config' +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import path from 'path' +import npmPackage from './package.json' +import inject from '@rollup/plugin-inject' + +export default defineConfig({ + plugins: [vue()], + root: 'src', + resolve: { + alias: { + '@': path.resolve(__dirname, './src') + } + }, + + // suite à l’ajout de la lib jsondiffpatch, il faut injecter process + // => https://github.com/avkonst/hookstate/issues/118 + define: { + npmVersion: JSON.stringify(npmPackage.version), + // mode dev + 'process.env': {} + }, + build: { + outDir: '../dist', + // mode prod + rollupOptions: { + plugins: [ + inject({ + process: 'process' + }) + ] + } + }, + server: { + proxy: { + '/apiUrl': { + target: process.env.API_URL, + changeOrigin: true, + rewrite: path => path.replace(/^\/apiUrl/, '') + }, + '/televersement': { + target: process.env.API_URL, + changeOrigin: true + } + } + } +}) -- GitLab