diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index b8dcd508..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "extends": "eslint:recommended", - - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module" - }, - - "env": { - "browser": true, - "node": true, - "es6": true - }, - - "rules":{ - "quotes": ["error", "double"], - "comma-dangle": "off", - "no-console":"off", - "quote-props":"off", - "no-plusplus": ["warn", { "allowForLoopAfterthoughts": true }], - "no-restricted-globals": ["error", "event", "fdescribe"], - "no-inline-comments": "off", - "line-comment-position": "off", - "func-style": "off", - "no-undefined": "off", - "no-magic-numbers":"off", - "max-len": "off", - "func-names": "off", - "max-statements": "off", - "max-lines-per-function": "off", - "max-lines": "off", - "no-unused-vars":"off", - "indent": ["error", "tab"], - "linebreak-style": "off", - "no-tabs": "off", - "prefer-destructuring": "off", - "no-param-reassign": "off", - "no-restricted-syntax": "off", - "guard-for-in": "off", - "no-constant-condition": "off", - "arrow-body-style": ["error", "always"], - "padded-blocks": "off", - "arrow-parens": ["error", "as-needed"], - "no-var": "off", - "vars-on-top": "off", - "prefer-const": "warn", - "operator-linebreak": ["error", "after"], - "no-loop-func": "warn", - "no-redeclare": ["error", { "builtinGlobals": true }], - "complexity": ["warn", 30] - } - -} \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 13e14377..09b0bf37 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,3 @@ -# These are supported funding model platforms -ko_fi: childishgiant -github: childishgiant +# These are supported funding model platforms +ko_fi: childishgiant +github: childishgiant diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f6468ebe..394c082d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,40 +1,40 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: Bug -assignees: '' - ---- - - - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - -**Additional context** -Add any other context about the problem here. - +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: Bug +assignees: '' + +--- + + + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + +**Additional context** +Add any other context about the problem here. + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 05a724e6..4da7f07b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,24 +1,24 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: New Feature -assignees: '' - ---- - - - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. - - +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: New Feature +assignees: '' + +--- + + + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. + + diff --git a/.github/ISSUE_TEMPLATE/preset-request.md b/.github/ISSUE_TEMPLATE/preset-request.md index f5758550..e89192af 100644 --- a/.github/ISSUE_TEMPLATE/preset-request.md +++ b/.github/ISSUE_TEMPLATE/preset-request.md @@ -1,18 +1,18 @@ ---- -name: Preset request -about: Suggest an app or service for a preset -title: '' -labels: Preset -assignees: '' - ---- - - - -**App/Service name**: - -**Link to App/Service**: - -**Password requirements (If known)**: - - +--- +name: Preset request +about: Suggest an app or service for a preset +title: '' +labels: Preset +assignees: '' + +--- + + + +**App/Service name**: + +**Link to App/Service**: + +**Password requirements (If known)**: + + diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md index 1f863888..2611618c 100644 --- a/.github/ISSUE_TEMPLATE/question.md +++ b/.github/ISSUE_TEMPLATE/question.md @@ -1,10 +1,10 @@ ---- -name: Question -about: Ask a question about Cloverleaf -title: '' -labels: Question -assignees: '' - ---- - - +--- +name: Question +about: Ask a question about Cloverleaf +title: '' +labels: Question +assignees: '' + +--- + + diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 984c61ed..53dc580c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,14 +1,14 @@ -version: 2 -updates: -- package-ecosystem: npm - directory: "/" - schedule: - interval: daily - labels: - - "dependencies" - open-pull-requests-limit: 10 - target-branch: dev - ignore: - - dependency-name: exports-loader - versions: - - "> 0.7.0" +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + labels: + - "dependencies" + open-pull-requests-limit: 10 + target-branch: dev + ignore: + - dependency-name: exports-loader + versions: + - "> 0.7.0" diff --git a/.github/workflows/main.yml b/.github/workflows/publish.yml similarity index 68% rename from .github/workflows/main.yml rename to .github/workflows/publish.yml index 3fddb44f..c7cf6578 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/publish.yml @@ -1,48 +1,62 @@ -name: CI -on: [push, pull_request] -jobs: - build: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@master - - name: Get secrets - run: | - cd config - mkdir secrets - echo "${{ secrets.crowdin_key }}" > secrets/crowdin_key.txt - - - name: Webpack build - run: | - npm i - npm run-script build - - - name: Start server - run: npx http-server --port 8080 & - - - name: Audit URLs using Lighthouse - uses: treosh/lighthouse-ci-action@v3 - with: - urls: http://localhost:8080/ - uploadArtifacts: true # save results as an action artifacts - temporaryPublicStorage: true # upload lighthouse report to the temporary storage - runs: 3 # Asserting against a single run can lead to flaky performance assertions - - - name: Install dependencies - run: | - cd unit_tests - # sudo apt-get install xvfb firefox - python3 -m pip install -r requirements.txt - - - name: Gecko setup - run: | - wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz - sudo sh -c 'tar -x geckodriver -zf geckodriver-v0.24.0-linux64.tar.gz -O > /usr/bin/geckodriver' - sudo chmod +x /usr/bin/geckodriver - rm geckodriver-v0.24.0-linux64.tar.gz - export PATH=$PATH:/usr/bin/geckodriver - - - name: Test with pytest - run: | - cd unit_tests - python3 -m pytest -s \ No newline at end of file +name: Publish +on: + push: + branches: + - main +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Get secrets + run: | + cd config + mkdir secrets + echo "${{ secrets.crowdin_key }}" > secrets/crowdin_key.txt + + - name: esbuild + run: | + npm i + npm run-script build + # Remove gitignore rule for public folder + sed -i 's/public\///' .gitignore + + - name: Start server + run: | + cd public + npx http-server --port 8080 & + + - name: Audit URLs using Lighthouse + uses: treosh/lighthouse-ci-action@v3 + with: + urls: http://localhost:8080/ + uploadArtifacts: true # save results as an action artifacts + temporaryPublicStorage: true # upload lighthouse report to the temporary storage + runs: 3 # Asserting against a single run can lead to flaky performance assertions + + - name: Install dependencies + run: | + cd unit_tests + # sudo apt-get install xvfb firefox + python3 -m pip install -r requirements.txt + + - name: Gecko setup + run: | + wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz + sudo sh -c 'tar -x geckodriver -zf geckodriver-v0.24.0-linux64.tar.gz -O > /usr/bin/geckodriver' + sudo chmod +x /usr/bin/geckodriver + rm geckodriver-v0.24.0-linux64.tar.gz + export PATH=$PATH:/usr/bin/geckodriver + + - name: Test with pytest + run: | + cd unit_tests + python3 -m pytest -s + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./public + user_name: 'github-actions[bot]' + user_email: 'github-actions[bot]@users.noreply.github.com' \ No newline at end of file diff --git a/.gitignore b/.gitignore index 570a3f4c..6e26ae65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,17 @@ - -\.vscode/ - -desktop.ini - -node_modules/ - -config/secrets/ - -__pycache__ - -.pytest_cache/ - -geckodriver.log + +\.vscode/ + +desktop.ini + +node_modules/ + +config/secrets/ + +__pycache__ + +.pytest_cache/ + +geckodriver.log + +# Build +public/ \ No newline at end of file diff --git a/LICENSE b/LICENSE index fe73b438..19747ec0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2017 ChildishGiant - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2017 ChildishGiant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 403b521e..151324ca 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,47 @@ -# [Cloverleaf](https://cloverleaf.app/) - -![CI](https://github.com/cloverleaf/web/workflows/CI/badge.svg) -![Last commit label](https://img.shields.io/github/last-commit/cloverleaf/web.svg) -[![Up or down indicator](https://img.shields.io/website-up-down-green-red/https/cloverleaf.app.svg?label=Cloverleaf.app)](https://cloverleaf.app/) -![MIT License](https://img.shields.io/github/license/cloverleaf/web.svg) -[![Crowdin](https://badges.crowdin.net/cloverleaf/localized.svg)](https://crowdin.com/project/cloverleaf) - -See the [latest patch notes here](https://github.com/cloverleaf/web/commit/master). - -A smart solution to the problem of passwords. Cloverleaf generates passwords on demand, using the name of the app you're making a password for and a master password. - -## Software used for development - -Microsoft's [VS Code](https://code.visualstudio.com/) is my text editor of choice. - -All minimization is done using [Webpack](https://webpack.js.org/). - -I use [GitKraken](https://www.gitkraken.com/) as my git GUI. - -Thanks to [RealFaviconGenerator](https://realfavicongenerator.net) for making a glorious website that makes making favicons easy. - -We use [Crowdin](https://crowdin.com/project/cloverleaf) for localisation. - -## Licensing - -**A full licensing report can be found on [FOSSA](https://app.fossa.com/reports/50704854-c664-4b03-94a6-683674bae968?ref=badge_shield)** - -[GitHub Corners](https://github.com/tholman/github-corners) by Tim Holman under the [MIT license](https://github.com/tholman/github-corners/blob/master/license.md) - -[seedrandom](https://github.com/davidbau/seedrandom) by David Bau under the [MIT license](https://github.com/davidbau/seedrandom#license-mit) - -The [Materialize Framework](https://github.com/Dogfalo/materialize) under the [MIT license](https://github.com/Dogfalo/materialize/blob/v1-dev/LICENSE) - -[js-sha3](https://github.com/emn178/js-sha3) under the [MIT license](https://github.com/emn178/js-sha3/blob/master/LICENSE.txt) - -[Roboto](https://github.com/google/fonts/tree/master/apache/roboto) under the [Apache License 2.0](https://github.com/google/fonts/blob/master/apache/roboto/LICENSE.txt) - -[Roboto Mono](https://github.com/google/fonts/tree/master/apache/robotomono) under the [Apache License 2.0](https://github.com/google/fonts/blob/master/apache/robotomono/LICENSE.txt) - -[PWA Builder](https://www.pwabuilder.com/) under the [MIT license](https://github.com/pwa-builder/serviceworkers/blob/master/LICENSE.txt) - -[Material Design icons DX](https://github.com/jossef/material-design-icons-iconfont) under [Apache License 2.0](https://github.com/jossef/material-design-icons-iconfont/blob/master/LICENSEs) (Forked from [Material Design icons](https://github.com/google/material-design-icons)) - -## Misc - -Idea stolen from [Master Password](https://masterpasswordapp.com/). [More info](https://cloverleaf.app/faq#remake) +# [Cloverleaf](https://cloverleaf.app/) + +![CI](https://github.com/cloverleaf/web/workflows/CI/badge.svg) +![Last commit label](https://img.shields.io/github/last-commit/cloverleaf/web.svg) +[![Up or down indicator](https://img.shields.io/website-up-down-green-red/https/cloverleaf.app.svg?label=Cloverleaf.app)](https://cloverleaf.app/) +![MIT License](https://img.shields.io/github/license/cloverleaf/web.svg) +[![Crowdin](https://badges.crowdin.net/cloverleaf/localized.svg)](https://crowdin.com/project/cloverleaf) + +See the [latest patch notes here](https://github.com/cloverleaf/web/commit/master). + +A smart solution to the problem of passwords. Cloverleaf generates passwords on demand, using the name of the app you're making a password for and a master password. + +## Software used for development + +Microsoft's [VS Code](https://code.visualstudio.com/) is my text editor of choice. + +All minimization is done using [Webpack](https://webpack.js.org/). + +I use [GitKraken](https://www.gitkraken.com/) as my git GUI. + +Thanks to [RealFaviconGenerator](https://realfavicongenerator.net) for making a glorious website that makes making favicons easy. + +We use [Crowdin](https://crowdin.com/project/cloverleaf) for localisation. + +## Licensing + +**A full licensing report can be found on [FOSSA](https://app.fossa.com/reports/50704854-c664-4b03-94a6-683674bae968?ref=badge_shield)** + +[GitHub Corners](https://github.com/tholman/github-corners) by Tim Holman under the [MIT license](https://github.com/tholman/github-corners/blob/master/license.md) + +[seedrandom](https://github.com/davidbau/seedrandom) by David Bau under the [MIT license](https://github.com/davidbau/seedrandom#license-mit) + +The [Materialize Framework](https://github.com/Dogfalo/materialize) under the [MIT license](https://github.com/Dogfalo/materialize/blob/v1-dev/LICENSE) + +[js-sha3](https://github.com/emn178/js-sha3) under the [MIT license](https://github.com/emn178/js-sha3/blob/master/LICENSE.txt) + +[Roboto](https://github.com/google/fonts/tree/master/apache/roboto) under the [Apache License 2.0](https://github.com/google/fonts/blob/master/apache/roboto/LICENSE.txt) + +[Roboto Mono](https://github.com/google/fonts/tree/master/apache/robotomono) under the [Apache License 2.0](https://github.com/google/fonts/blob/master/apache/robotomono/LICENSE.txt) + +[PWA Builder](https://www.pwabuilder.com/) under the [MIT license](https://github.com/pwa-builder/serviceworkers/blob/master/LICENSE.txt) + +[Material Design icons DX](https://github.com/jossef/material-design-icons-iconfont) under [Apache License 2.0](https://github.com/jossef/material-design-icons-iconfont/blob/master/LICENSEs) (Forked from [Material Design icons](https://github.com/google/material-design-icons)) + +## Misc + +Idea stolen from [Master Password](https://masterpasswordapp.com/). [More info](https://cloverleaf.app/faq#remake) diff --git a/bundles/LICENSE.txt b/bundles/LICENSE.txt deleted file mode 100644 index 7d65efe7..00000000 --- a/bundles/LICENSE.txt +++ /dev/null @@ -1,30 +0,0 @@ -/*! cash-dom 1.3.5, https://github.com/kenwheeler/cash @license MIT */ - -/** - * Get time in ms - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @type {function} - * @return {number} - */ - -/** - * Returns a function, that, when invoked, will only be triggered at most once - * during a given window of time. Normally, the throttled function will run - * as much as it can, without ever going more than once per `wait` duration; - * but if you'd like to disable the execution on the leading edge, pass - * `{leading: false}`. To disable execution on the trailing edge, ditto. - * @license https://raw.github.com/jashkenas/underscore/master/LICENSE - * @param {function} func - * @param {number} wait - * @param {Object=} options - * @returns {Function} - */ - -/** - * [js-sha3]{@link https://github.com/emn178/js-sha3} - * - * @version 0.8.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2015-2018 - * @license MIT - */ diff --git a/bundles/bundle-83d8df5c.js b/bundles/bundle-83d8df5c.js deleted file mode 100644 index 56fca345..00000000 --- a/bundles/bundle-83d8df5c.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see LICENSE.txt */ -(()=>{var t={344:t=>{"use strict";t.exports=JSON.parse('{"Airbnb":{"mini":true},"Alipay":{"alias":"AliExpress","mini":true},"Amazon":{"mini":true},"Amino":{"mini":true},"Artsy":{"mini":true},"Baidu":{"mini":true},"Behance":{"alias":"Adobe","mini":true},"Bing":{"alias":"Microsoft","mini":true},"Chrono.gg":{"mini":true},"CodePen":{"mini":true},"DeviantArt":{"mini":true},"Discord":{"mini":true},"Disqus":{"mini":true},"Dribbble":{"mini":true},"Dropbox":{"mini":true},"Duolingo":{"mini":true},"Etsy":{"mini":true},"Evernote":{"mini":true},"Facebook":{"mini":true},"Fanatical":{"mini":true},"FANDOM":{"mini":true},"Firebox":{"mini":true},"Firefox":{"mini":true},"Flickr":{"alias":"Yahoo","mini":true},"Freelancer":{"mini":true},"Genius":{"mini":true},"GeoGuessr":{"mini":true},"Gfycat":{"mini":true},"GIPHY":{"mini":true},"GitLab":{"mini":true},"Hi-Rez":{"logo":"logos/Hi-Rez.png"},"imgur":{"mini":true},"mailbox.org":{"mini":true},"Messenger":{"alias":"Facebook"},"Minecraft":{"alias":"Mojang"},"MSN":{"alias":"Microsoft"},"Nectar":{"logo":"logos/Nectar.png"},"Netflix":{"mini":true},"osu!":{"logo":"logos/osu!.png"},"Pastebin":{"logo":"logos/Pastebin.png"},"Patreon":{"mini":true},"PayPal":{"mini":true},"paysafecard":{"mini":true},"Pinterest":{"mini":true},"pixiv":{"mini":true},"Riot Games":{"mini":true},"Skype":{"alias":"Microsoft"},"Spotify":{"mini":true},"Square Enix":{"mini":true},"StellarX":{"mini":true},"Tumblr":{"alias":"Yahoo","mini":true},"Twitch":{"mini":true},"Uplay":{"alias":"Ubisoft"},"WeChat":{"alias":"QQ"},"Xbox":{"alias":"Microsoft"},"Yahoo":{"mini":true},"YouTube":{"alias":"Google"}}')},730:t=>{"use strict";t.exports=JSON.parse('{"Vanilla":{"accent":"#3f51b5","lightAccent":"#7280ce","text":"#535353","background":"#fff","internal":"#fff","incorrect":"#f44336","correct":"#8fff66","inputColor":"#000","linkColor":"#00539b","highlightColor":"#eee"},"Discord":{"accent":"#7289da","lightAccent":"#9aabe5","text":"#dcddde","background":"#2f3136","internal":"#393c43","incorrect":"#f04747","correct":"#43b581","inputColor":"#fff","linkColor":"#00b0f4","highlightColor":"#393c43"},"Solarized Dark":{"accent":"#6c71c4","lightAccent":"#9094d3","text":"#93a1a1","background":"#073642","internal":"#002b36","incorrect":"#ce2726","correct":"#7c9114","inputColor":"#839496","linkColor":"#268bd2","highlightColor":"#002b36"},"OLED":{"accent":"#3f51b5","lightAccent":"#6d78b5","text":"#d4d4d4","background":"#000","internal":"#000","incorrect":"#f44336","correct":"#8fff66","inputColor":"#839496","linkColor":"#268bd2","highlightColor":"#0e0e0e"},"Dracula":{"accent":"#3f51b5","lightAccent":"#6272a4","text":"#bcc2cd","background":"#282a36","internal":"#343746","incorrect":"#f55","correct":"#50fa7b","inputColor":"#f8f8f2","linkColor":"#6272a4","highlightColor":"#343746"}}')},573:t=>{"use strict";t.exports=JSON.parse('{"de-DE":{"native":"Deutsch"},"en-GB":{"native":"English"},"eo-UY":{"native":"Esperanto"},"es-ES":{"native":"Español"},"fr-FR":{"native":"Français"}}')},713:t=>{t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},8:t=>{function e(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=e=function(t){return typeof t}:t.exports=e=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(n)}t.exports=e},608:t=>{"use strict";t.exports=JSON.parse('{"Ada":{"minLength":8},"Adobe":{"minLength":8,"maxLength":100,"requirements":["num","low","cap"]},"Airbnb":{"minLength":8,"maxLength":128,"requirements":["low","num","special"]},"AliExpress":{"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","minLength":6,"maxLength":20},"Alipay":{"alias":"AliExpress"},"allegorithmic":{"minLength":1},"AlternativeTo":{"minLength":8,"requirements":["low","num"]},"Amazon":{"minLength":6},"Amino":{"minLength":6},"Apple":{"minLength":8,"maxLength":32,"requirements":["low","num","cap"]},"Artsy":{"minLength":6,"maxLength":128},"Baidu":{"minLength":6,"maxLength":14},"BBC":{"minLength":8,"maxLength":50,"requirements":["low","num","cap"],"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\\\\]^_`{|}~"},"Behance":{"alias":"Adobe"},"Bing":{"alias":"Microsoft"},"Blend Swap":{"minLength":8},"Blizzard":{"minLength":8,"maxLength":16,"requirements":["low","num"]},"Channel 4":{"minLength":6,"maxLength":255},"Chrono.gg":{"minLength":8},"CodePen":{"minLength":1},"DeviantArt":{"minLength":6},"Discord":{"minLength":6,"maxLength":128},"Disqus":{"minLength":6},"Dribbble":{"minLength":6,"maxLength":128},"Dropbox":{"minLength":6},"Duolingo":{"minLength":6},"eBay":{"minLength":6,"maxLength":64,"requirements":["low","num"],"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\\"#$%&\'()*+,-.;=?@\\\\^_`{|}~"},"Epic Games":{"minLength":7,"requirements":["low","num"],"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\\\\]^_`{|}~"},"Etsy":{"minLength":6,"maxLength":152},"Evernote":{"minLength":6,"maxLength":64},"Facebook":{"minLength":6},"Factorio":{"minLength":5},"Fanatical":{"minLength":6},"FANDOM":{"minLength":1,"maxLength":50},"Firebox":{"minLength":7,"requirements":["low","num"]},"Firefox":{"minLength":8},"Flickr":{"alias":"Yahoo"},"Forvo":{"minLength":4,"maxLength":28},"Freelancer":{"minLength":6,"requirements":["low","num"]},"Genius":{"minLength":4,"maxLength":128},"GeoGuessr":{"minLength":5},"Gfycat":{"minLength":8,"maxLength":25},"giffgaff":{"requirements":["cap","low","num"],"minLength":8},"GIPHY":{"minLength":1,"maxLength":128},"GitHub":{"minLength":7,"maxLength":72,"requirements":["low","num"]},"GitLab":{"minLength":8,"maxLength":128},"Government Gateway":{"minLength":8,"maxLength":12,"requirements":["low","num"],"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"},"Guilded":{"minLength":8,"maxLength":128},"GOG":{"minLength":2},"Google":{"minLength":8,"maxLength":100},"The Guardian":{"minLength":6,"maxLength":72},"HitFilm":{"minLength":8,"maxLength":25},"Hi-Rez":{"minLength":7,"maxLength":20,"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"},"Humble Bundle":{"minLength":4},"IFTTT":{"minLength":6},"IMDb":{"minLength":8,"maxLength":1024},"imgur":{"minLength":6,"maxLength":255,"requirements":["num","low"]},"Instagram":{"minLength":6,"maxLength":255},"itch.io":{"minLength":2},"itv":{"minLength":6,"maxLength":100},"JustGiving":{"minLength":6},"Keybase":{"minLength":6},"Ko-fi":{"minLength":6,"maxLength":100},"last.fm":{"minLength":6,"maxLength":128,"requirements":["num","special"]},"lernu":{"minLength":5},"Lingvist":{"minLength":8},"LinkedIn":{"minLength":6},"Lloyds Bank":{"minLength":8,"maxLength":15,"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"},"mailbox.org":{"minLength":6,"requirements":["cap","low","num"],"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!$\\"%&/()=*+-#.,;:@?{}[]"},"Mail.Ru":{"requirements":["special","num","low"],"minLength":6,"maxLength":40},"Mapbox":{"minLength":8,"maxLength":512},"Mega":{"minLength":8},"Messenger":{"alias":"Facebook"},"Microsoft":{"requirements":["cap","low"],"minLength":8,"maxLength":127},"Minecraft":{"alias":"Mojang"},"Mojang":{"minLength":8,"maxLength":256},"MSN":{"alias":"Microsoft"},"MuseScore":{"minLength":1,"maxLength":128},"My Nintendo":{"minLength":8,"maxLength":20,"requirements":["cap","low"]},"Nectar":{"minLength":8,"maxLength":100,"requirements":["num","cap","low"],"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\\"#$%&\'()*,-./:;<=>?@[\\\\]^_`{|}~"},"Netflix":{"minLength":4,"maxLength":50},"Native Instruments":{"minLength":10,"maxLength":60,"requirements":["special"]},"Opera":{"minLength":12,"maxLength":1000},"OpenStreetMap":{"minLength":8,"maxLength":255},"Origin":{"minLength":8,"maxLength":16,"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","requirements":["cap","low","num"]},"osu!":{"minLength":8},"Oxfam":{"minLength":6},"Pastebin":{"minLength":4},"Patient Access":{"minLength":8,"maxLength":99,"requirements":["num","cap","low"]},"Patreon":{"minLength":6},"PayPal":{"requirements":["num"],"minLength":8,"maxLength":20},"paysafecard":{"minLength":8,"requirements":["cap","special"],"maxLength":110},"PCPartPicker":{"minLength":1},"Pinterest":{"minLength":6,"requirements":["low","num"]},"pixiv":{"minLength":6,"maxLength":72,"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"},"plug.dj":{"minLength":8,"maxLength":128,"requirements":["low"]},"Pocket":{"minLength":6},"Prezi":{"minLength":8,"maxLength":128},"QQ":{"minLength":8,"maxLength":16,"requirements":["low","num"]},"Reddit":{"minLength":6},"Riot Games":{"minLength":8,"maxLength":128,"requirements":["low","num"]},"Rockstar Games Social Club":{"minLength":8,"maxLength":30,"requirements":["num","cap"]},"Sainsbury\'s":{"minLength":8,"maxLength":100,"requirements":["num","cap","low"],"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\\"#$%&\'()*,-./:;<=>?@[\\\\]^_`{|}~"},"Skype":{"alias":"Microsoft"},"Snapchat":{"minLength":8,"requirements":["num","cap"]},"Songsterr":{"minLength":5,"maxLength":200},"Soundcloud":{"minLength":6,"maxLength":2048},"Spotify":{"minLength":4},"Square Enix":{"minLength":6,"maxLength":32,"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\\"(#$%&\')=~|`{+*}<>?_-^@[;:],./"},"Stack Overflow":{"minLength":8,"requirements":["low","num"]},"Steam":{"minLength":8},"StellarX":{"minLength":8,"maxLength":50,"requirements":["cap","low","num"],"regex":"^(?!.*(.)\\\\1{2,}).+"},"Streamable":{"minLength":6},"Tesco":{"minLength":8,"maxLength":45,"requirements":["low","cap","special"]},"TheCubicle.us":{"minLength":5},"tic.computer":{"minLength":6},"Trello":{"minLength":8},"Tumblr":{"alias":"Yahoo"},"Twitch":{"minLength":8},"Twitter":{"minLength":6},"Uber":{"minLength":5,"maxLength":512},"Ubisoft":{"minLength":8,"maxLength":16},"UCAS":{"minLength":8,"maxLength":14,"requirements":["cap","low","num","special"]},"Unity ID":{"minLength":8,"maxLength":72,"requirements":["cap","low","num"]},"Uplay":{"alias":"Ubisoft"},"Venmo":{"minLength":8,"maxLength":32},"Vimeo":{"requirements":["cap","low","num","special"],"minLength":8,"maxLength":72},"Visa Checkout":{"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ","minLength":8,"maxLength":32},"Vivaldi":{"minLength":8,"maxLength":254},"VK":{"minLength":6},"WeChat":{"alias":"QQ"},"Wikipedia":{"minLength":1},"Wordpress":{"minLength":6,"chars":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\\"#$%&\'()*+,-./:;<=>?@[]^_`{|}~","requirements":["cap","low","num","special"]},"Xbox":{"alias":"Microsoft"},"XDA Developers":{"minLength":1,"maxLength":50},"Yahoo":{"minLength":8,"requirements":["low","num"]},"YouTube":{"alias":"Google"},"YoYo Games":{"minLength":6}}')},513:(t,e,n)=>{const i=n(608),o=n(94).keccak512;Math.seedrandom=n(377);const r={cap:"ABCDEFGHIJKLMNOPQRSTUVWXYZ",low:"abcdefghijklmnopqrstuvwxyz",num:"0123456789",special:"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"};e.process=function(t,e,n,s,a){let minLength=4,maxLength=512,l="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";const h=[];let u;t=t.trim(),n=Math.trunc(n);let c="";if(s){try{i[t].alias&&(t=i[t].alias)}catch(t){throw new Error("Invalid preset")}if("minLength"in i[t]&&(minLength=i[t].minLength),"maxLength"in i[t]&&(maxLength=i[t].maxLength),"chars"in i[t]&&(l=i[t].chars),"regex"in i[t])try{u=new RegExp(i[t].regex)}catch(e){throw new Error(`Invalid regex from ${t} "${i[t].regex}"`)}if("requirements"in i[t])for(let e=0;emaxLength)n=maxLength;else{if(!(n{t.exports=class{constructor(t,e,n){e instanceof Element||console.error(Error(e+" is not an HTML Element"));let i=t.getInstance(e);i&&i.destroy(),this.el=e,this.$el=cash(e)}static init(t,e,n){let i=null;if(e instanceof Element)i=new t(e,n);else if(e&&(e.jquery||e.cash||e instanceof NodeList)){let o=[];for(let i=0;i{var i;!function(){"use strict";var o="input is invalid type",r="object"==typeof window,s=r?window:{};s.JS_SHA3_NO_WINDOW&&(r=!1);var a=!r&&"object"==typeof self;!s.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node?s=n.g:a&&(s=self);var l=!s.JS_SHA3_NO_COMMON_JS&&t.exports,h=n.amdO,u=!s.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,c="0123456789abcdef".split(""),d=[4,1024,262144,67108864],p=[0,8,16,24],m=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],f=[224,256,384,512],g=[128,256],v=["hex","buffer","arrayBuffer","array","digest"],y={128:168,256:136};!s.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!u||!s.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var w=function(t,e,n){return function(i){return new I(t,e,t).update(i)[n]()}},b=function(t,e,n){return function(i,o){return new I(t,e,o).update(i)[n]()}},_=function(t,e,n){return function(e,i,o,r){return M["cshake"+t].update(e,i,o,r)[n]()}},L=function(t,e,n){return function(e,i,o,r){return M["kmac"+t].update(e,i,o,r)[n]()}},x=function(t,e,n,i){for(var o=0;o>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var i=0;i<50;++i)this.s[i]=0}function $(t,e,n){I.call(this,t,e,n)}I.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var e,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(o);if(null===t)throw new Error(o);if(u&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||u&&ArrayBuffer.isView(t)))throw new Error(o);e=!0}for(var i,r,s=this.blocks,a=this.byteCount,l=t.length,h=this.blockCount,c=0,d=this.s;c>2]|=t[c]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(s[i>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=a){for(this.start=i-a,this.block=s[h],i=0;i>=8);n>0;)o.unshift(n),n=255&(t>>=8),++i;return e?o.push(i):o.unshift(i),this.update(o),o.length},I.prototype.encodeString=function(t){var e,n=typeof t;if("string"!==n){if("object"!==n)throw new Error(o);if(null===t)throw new Error(o);if(u&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||u&&ArrayBuffer.isView(t)))throw new Error(o);e=!0}var i=0,r=t.length;if(e)i=r;else for(var s=0;s=57344?i+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(t),i},I.prototype.bytepad=function(t,e){for(var n=this.encode(e),i=0;i>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[n],e=1;e>4&15]+c[15&t]+c[t>>12&15]+c[t>>8&15]+c[t>>20&15]+c[t>>16&15]+c[t>>28&15]+c[t>>24&15];s%e==0&&(F(n),r=0)}return o&&(t=n[r],a+=c[t>>4&15]+c[15&t],o>1&&(a+=c[t>>12&15]+c[t>>8&15]),o>2&&(a+=c[t>>20&15]+c[t>>16&15])),a},I.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,n=this.s,i=this.outputBlocks,o=this.extraBytes,r=0,s=0,a=this.outputBits>>3;t=o?new ArrayBuffer(i+1<<2):new ArrayBuffer(a);for(var l=new Uint32Array(t);s>8&255,l[t+2]=e>>16&255,l[t+3]=e>>24&255;a%n==0&&F(i)}return r&&(t=a<<2,e=i[s],l[t]=255&e,r>1&&(l[t+1]=e>>8&255),r>2&&(l[t+2]=e>>16&255)),l},$.prototype=new I,$.prototype.finalize=function(){return this.encode(this.outputBits,!0),I.prototype.finalize.call(this)};var F=function(t){var e,n,i,o,r,s,a,l,h,u,c,d,p,f,g,v,y,w,b,_,L,x,E,C,M,k,B,T,A,O,D,S,I,$,F,P,R,q,N,W,H,z,j,X,Y,Q,G,U,K,V,J,Z,tt,et,nt,it,ot,rt,st,at,lt,ht,ut;for(i=0;i<48;i+=2)o=t[0]^t[10]^t[20]^t[30]^t[40],r=t[1]^t[11]^t[21]^t[31]^t[41],s=t[2]^t[12]^t[22]^t[32]^t[42],a=t[3]^t[13]^t[23]^t[33]^t[43],l=t[4]^t[14]^t[24]^t[34]^t[44],h=t[5]^t[15]^t[25]^t[35]^t[45],u=t[6]^t[16]^t[26]^t[36]^t[46],c=t[7]^t[17]^t[27]^t[37]^t[47],e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(s<<1|a>>>31),n=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(a<<1|s>>>31),t[0]^=e,t[1]^=n,t[10]^=e,t[11]^=n,t[20]^=e,t[21]^=n,t[30]^=e,t[31]^=n,t[40]^=e,t[41]^=n,e=o^(l<<1|h>>>31),n=r^(h<<1|l>>>31),t[2]^=e,t[3]^=n,t[12]^=e,t[13]^=n,t[22]^=e,t[23]^=n,t[32]^=e,t[33]^=n,t[42]^=e,t[43]^=n,e=s^(u<<1|c>>>31),n=a^(c<<1|u>>>31),t[4]^=e,t[5]^=n,t[14]^=e,t[15]^=n,t[24]^=e,t[25]^=n,t[34]^=e,t[35]^=n,t[44]^=e,t[45]^=n,e=l^(d<<1|p>>>31),n=h^(p<<1|d>>>31),t[6]^=e,t[7]^=n,t[16]^=e,t[17]^=n,t[26]^=e,t[27]^=n,t[36]^=e,t[37]^=n,t[46]^=e,t[47]^=n,e=u^(o<<1|r>>>31),n=c^(r<<1|o>>>31),t[8]^=e,t[9]^=n,t[18]^=e,t[19]^=n,t[28]^=e,t[29]^=n,t[38]^=e,t[39]^=n,t[48]^=e,t[49]^=n,f=t[0],g=t[1],Q=t[11]<<4|t[10]>>>28,G=t[10]<<4|t[11]>>>28,T=t[20]<<3|t[21]>>>29,A=t[21]<<3|t[20]>>>29,at=t[31]<<9|t[30]>>>23,lt=t[30]<<9|t[31]>>>23,z=t[40]<<18|t[41]>>>14,j=t[41]<<18|t[40]>>>14,$=t[2]<<1|t[3]>>>31,F=t[3]<<1|t[2]>>>31,v=t[13]<<12|t[12]>>>20,y=t[12]<<12|t[13]>>>20,U=t[22]<<10|t[23]>>>22,K=t[23]<<10|t[22]>>>22,O=t[33]<<13|t[32]>>>19,D=t[32]<<13|t[33]>>>19,ht=t[42]<<2|t[43]>>>30,ut=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,nt=t[4]<<30|t[5]>>>2,P=t[14]<<6|t[15]>>>26,R=t[15]<<6|t[14]>>>26,w=t[25]<<11|t[24]>>>21,b=t[24]<<11|t[25]>>>21,V=t[34]<<15|t[35]>>>17,J=t[35]<<15|t[34]>>>17,S=t[45]<<29|t[44]>>>3,I=t[44]<<29|t[45]>>>3,C=t[6]<<28|t[7]>>>4,M=t[7]<<28|t[6]>>>4,it=t[17]<<23|t[16]>>>9,ot=t[16]<<23|t[17]>>>9,q=t[26]<<25|t[27]>>>7,N=t[27]<<25|t[26]>>>7,_=t[36]<<21|t[37]>>>11,L=t[37]<<21|t[36]>>>11,Z=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,X=t[8]<<27|t[9]>>>5,Y=t[9]<<27|t[8]>>>5,k=t[18]<<20|t[19]>>>12,B=t[19]<<20|t[18]>>>12,rt=t[29]<<7|t[28]>>>25,st=t[28]<<7|t[29]>>>25,W=t[38]<<8|t[39]>>>24,H=t[39]<<8|t[38]>>>24,x=t[48]<<14|t[49]>>>18,E=t[49]<<14|t[48]>>>18,t[0]=f^~v&w,t[1]=g^~y&b,t[10]=C^~k&T,t[11]=M^~B&A,t[20]=$^~P&q,t[21]=F^~R&N,t[30]=X^~Q&U,t[31]=Y^~G&K,t[40]=et^~it&rt,t[41]=nt^~ot&st,t[2]=v^~w&_,t[3]=y^~b&L,t[12]=k^~T&O,t[13]=B^~A&D,t[22]=P^~q&W,t[23]=R^~N&H,t[32]=Q^~U&V,t[33]=G^~K&J,t[42]=it^~rt&at,t[43]=ot^~st<,t[4]=w^~_&x,t[5]=b^~L&E,t[14]=T^~O&S,t[15]=A^~D&I,t[24]=q^~W&z,t[25]=N^~H&j,t[34]=U^~V&Z,t[35]=K^~J&tt,t[44]=rt^~at&ht,t[45]=st^~lt&ut,t[6]=_^~x&f,t[7]=L^~E&g,t[16]=O^~S&C,t[17]=D^~I&M,t[26]=W^~z&$,t[27]=H^~j&F,t[36]=V^~Z&X,t[37]=J^~tt&Y,t[46]=at^~ht&et,t[47]=lt^~ut&nt,t[8]=x^~f&v,t[9]=E^~g&y,t[18]=S^~C&k,t[19]=I^~M&B,t[28]=z^~$&P,t[29]=j^~F&R,t[38]=Z^~X&Q,t[39]=tt^~Y&G,t[48]=ht^~et&it,t[49]=ut^~nt&ot,t[0]^=m[i],t[1]^=m[i+1]};if(l)t.exports=M;else{for(B=0;Bn&&(n+=1),1n?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var n=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(t);t=parseInt(n[1])/360;var i=parseInt(n[2])/100,o=parseInt(n[3])/100;if(n=n[4]||1,0==i)o=i=t=o;else{var r=.5>o?o*(1+i):o+i-o*i,s=2*o-r;o=e(s,r,t+1/3),i=e(s,r,t),t=e(s,r,t-1/3)}return"rgba("+255*o+","+255*i+","+255*t+","+n+")"}function c(t){if(t=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(t))return t[2]}function d(t){return-1=p.currentTime)for(var b=0;b=m||!e)&&(p.began||(p.began=!0,r("begin")),r("run")),v>a&&v=e&&f!==e||!e)&&(o(e),g||s())),r("update"),t>=e&&(p.remaining?(h=l,"alternate"===p.direction&&(p.reversed=!p.reversed)):(p.pause(),p.completed||(p.completed=!0,r("complete"),"Promise"in window&&(c(),d=n()))),u=0)}t=void 0===t?{}:t;var l,h,u=0,c=null,d=n(),p=D(t);return p.reset=function(){var t=p.direction,e=p.loop;for(p.currentTime=0,p.progress=0,p.paused=!0,p.began=!1,p.completed=!1,p.reversed="reverse"===t,p.remaining="alternate"===t&&1===e?2:e,o(0),t=p.children.length;t--;)p.children[t].reset()},p.tick=function(t){l=t,h||(h=l),a((u+l-h)*S.speed)},p.seek=function(t){a(i(t))},p.pause=function(){var t=H.indexOf(p);-1=e&&0<=i&&1>=i){var r=new Float32Array(11);if(e!==n||i!==o)for(var s=0;11>s;++s)r[s]=t(.1*s,e,i);return function(s){if(e===n&&i===o)return s;if(0===s)return 0;if(1===s)return 1;for(var a=0,l=1;10!==l&&r[l]<=s;++l)a+=.1;--l,l=a+(s-r[l])/(r[l+1]-r[l])*.1;var h=3*(1-3*i+3*e)*l*l+2*(3*i-6*e)*l+3*e;if(.001<=h){for(a=0;4>a&&0!=(h=3*(1-3*i+3*e)*l*l+2*(3*i-6*e)*l+3*e);++a){var u=t(l,e,i)-s;l-=u/h}s=l}else if(0===h)s=l;else{l=a,a+=.1;var c=0;do{0<(h=t(u=l+(a-l)/2,e,i)-s)?a=u:l=u}while(1e-7++c);s=u}return t(s,n,o)}}}}(),N=function(){function t(t,e){return 0===t||1===t?t:-Math.pow(2,10*(t-1))*Math.sin(2*(t-1-e/(2*Math.PI)*Math.asin(1))*Math.PI/e)}var e,n="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),i={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],t],Out:[[.25,.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(e,n){return 1-t(1-e,n)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(e,n){return.5>e?t(2*e,n)/2:1-t(-2*e+2,n)/2}]},r={linear:q(.25,.25,.75,.75)},s={};for(e in i)s.type=e,i[s.type].forEach(function(t){return function(e,i){r["ease"+t.type+n[i]]=R.fnc(e)?e:q.apply(o,e)}}(s)),s={type:s.type};return r}(),W={css:function(t,e,n){return t.style[e]=n},attribute:function(t,e,n){return t.setAttribute(e,n)},object:function(t,e,n){return t[e]=n},transform:function(t,e,n,i,o){i[o]||(i[o]=[]),i[o].push(e+"("+n+")")}},H=[],z=0,j=function(){function t(){z=requestAnimationFrame(e)}function e(e){var n=H.length;if(n){for(var i=0;in&&(e.duration=i.duration),e.children.push(i)})),e.seek(0),e.reset(),e.autoplay&&e.restart(),e},e},S.random=function(t,e){return Math.floor(Math.random()*(e-t+1))+t},S}()},321:(t,e,n)=>{var i=n(24);!function(t){"use strict";let e={data:{},limit:1/0,onAutocomplete:null,minLength:1,sortFunction:function(t,e,n){return t.indexOf(n)-e.indexOf(n)}};class n extends i{constructor(e,i){super(n,e,i),this.el.M_Autocomplete=this,this.options=t.extend({},n.defaults,i),this.isOpen=!1,this.count=0,this.activeIndex=-1,this.oldVal,this.$inputField=this.$el.closest(".input-field"),this.$active=t(),this._mousedown=!1,this._setupDropdown(),this._setupEventHandlers()}static get defaults(){return e}static init(t,e){return super.init(this,t,e)}static getInstance(t){return(t.jquery?t[0]:t).M_Autocomplete}destroy(){this._removeEventHandlers(),this._removeDropdown(),this.el.M_Autocomplete=void 0}_setupEventHandlers(){this._handleInputBlurBound=this._handleInputBlur.bind(this),this._handleInputKeyupAndFocusBound=this._handleInputKeyupAndFocus.bind(this),this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleContainerMousedownAndTouchstartBound=this._handleContainerMousedownAndTouchstart.bind(this),this._handleContainerMouseupAndTouchendBound=this._handleContainerMouseupAndTouchend.bind(this),this.el.addEventListener("blur",this._handleInputBlurBound),this.el.addEventListener("keyup",this._handleInputKeyupAndFocusBound),this.el.addEventListener("focus",this._handleInputKeyupAndFocusBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.el.addEventListener("click",this._handleInputClickBound),this.container.addEventListener("mousedown",this._handleContainerMousedownAndTouchstartBound),this.container.addEventListener("mouseup",this._handleContainerMouseupAndTouchendBound),void 0!==window.ontouchstart&&(this.container.addEventListener("touchstart",this._handleContainerMousedownAndTouchstartBound),this.container.addEventListener("touchend",this._handleContainerMouseupAndTouchendBound))}_removeEventHandlers(){this.el.removeEventListener("blur",this._handleInputBlurBound),this.el.removeEventListener("keyup",this._handleInputKeyupAndFocusBound),this.el.removeEventListener("focus",this._handleInputKeyupAndFocusBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound),this.el.removeEventListener("click",this._handleInputClickBound),this.container.removeEventListener("mousedown",this._handleContainerMousedownAndTouchstartBound),this.container.removeEventListener("mouseup",this._handleContainerMouseupAndTouchendBound),void 0!==window.ontouchstart&&(this.container.removeEventListener("touchstart",this._handleContainerMousedownAndTouchstartBound),this.container.removeEventListener("touchend",this._handleContainerMouseupAndTouchendBound))}_setupDropdown(){this.container=document.createElement("ul"),this.container.id=`autocomplete-options-${M.guid()}`,t(this.container).addClass("autocomplete-content dropdown-content"),this.$inputField.append(this.container),this.el.setAttribute("data-target",this.container.id),this.dropdown=M.Dropdown.init(this.el,{autoFocus:!1,closeOnClick:!1,coverTrigger:!1,onItemClick:e=>{this.selectOption(t(e))}}),this.el.removeEventListener("click",this.dropdown._handleClickBound)}_removeDropdown(){this.container.parentNode.removeChild(this.container)}_handleInputBlur(){this._mousedown||(this.close(),this._resetAutocomplete())}_handleInputKeyupAndFocus(t){"keyup"===t.type&&(n._keydown=!1),this.count=0;let e=this.el.value.toLowerCase();13!==t.keyCode&&38!==t.keyCode&&40!==t.keyCode&&(this.oldVal===e||!M.tabPressed&&"focus"===t.type||this.open(),this.oldVal=e)}_handleInputKeydown(e){n._keydown=!0;let i,o=e.keyCode,r=t(this.container).children("li").length;if(o===M.keys.ENTER&&this.activeIndex>=0)return i=t(this.container).children("li").eq(this.activeIndex),void(i.length&&(this.selectOption(i),e.preventDefault()));o!==M.keys.ARROW_UP&&o!==M.keys.ARROW_DOWN||(e.preventDefault(),o===M.keys.ARROW_UP&&this.activeIndex>0&&this.activeIndex--,o===M.keys.ARROW_DOWN&&this.activeIndex=0&&(this.$active=t(this.container).children("li").eq(this.activeIndex),this.$active.addClass("active")))}_handleInputClick(t){this.open()}_handleContainerMousedownAndTouchstart(t){this._mousedown=!0}_handleContainerMouseupAndTouchend(t){this._mousedown=!1}_highlight(t,e){let n=e.find("img"),i=e.text().toLowerCase().indexOf(""+t.toLowerCase()),o=i+t.length-1,r=e.text().slice(0,i),s=e.text().slice(i,o+1),a=e.text().slice(o+1);e.html(`${r}${s}${a}`),n.length&&e.prepend(n)}_resetCurrentElement(){this.activeIndex=-1,this.$active.removeClass("active")}_resetAutocomplete(){t(this.container).empty(),this._resetCurrentElement(),this.oldVal=null,this.isOpen=!1,this._mousedown=!1}selectOption(t){let e=t.text().trim();this.el.value=e,this.$el.trigger("change"),this._resetAutocomplete(),this.close(),"function"==typeof this.options.onAutocomplete&&this.options.onAutocomplete.call(this,e)}_renderDropdown(e,n){this._resetAutocomplete();let i=[];for(let t in e)if(e.hasOwnProperty(t)&&-1!==t.toLowerCase().indexOf(n)){if(this.count>=this.options.limit)break;let n={data:e[t],key:t};i.push(n),this.count++}if(this.options.sortFunction){let t=(t,e)=>this.options.sortFunction(t.key.toLowerCase(),e.key.toLowerCase(),n.toLowerCase());i.sort(t)}for(let e=0;e");o.data?r.append(`${o.key}`):r.append(""+o.key+""),t(this.container).append(r),this._highlight(n,r)}}open(){let t=this.el.value.toLowerCase();this._resetAutocomplete(),t.length>=this.options.minLength&&(this.isOpen=!0,this._renderDropdown(this.options.data,t)),this.dropdown.isOpen?this.dropdown.recalculateDimensions():this.dropdown.open()}close(){this.dropdown.close()}updateData(t){let e=this.el.value.toLowerCase();this.options.data=t,this.isOpen&&this._renderDropdown(t,e)}}n._keydown=!1,M.Autocomplete=n,M.jQueryLoaded&&M.initializeJqueryWrapper(n,"autocomplete","M_Autocomplete")}(cash)},978:(t,e,n)=>{var i=n(24);!function(t,e){"use strict";let n={direction:"top",hoverEnabled:!0,toolbarEnabled:!1};t.fn.reverse=[].reverse;class o extends i{constructor(e,n){super(o,e,n),this.el.M_FloatingActionButton=this,this.options=t.extend({},o.defaults,n),this.isOpen=!1,this.$anchor=this.$el.children("a").first(),this.$menu=this.$el.children("ul").first(),this.$floatingBtns=this.$el.find("ul .btn-floating"),this.$floatingBtnsReverse=this.$el.find("ul .btn-floating").reverse(),this.offsetY=0,this.offsetX=0,this.$el.addClass(`direction-${this.options.direction}`),"top"===this.options.direction?this.offsetY=40:"right"===this.options.direction?this.offsetX=-40:"bottom"===this.options.direction?this.offsetY=-40:this.offsetX=40,this._setupEventHandlers()}static get defaults(){return n}static init(t,e){return super.init(this,t,e)}static getInstance(t){return(t.jquery?t[0]:t).M_FloatingActionButton}destroy(){this._removeEventHandlers(),this.el.M_FloatingActionButton=void 0}_setupEventHandlers(){this._handleFABClickBound=this._handleFABClick.bind(this),this._handleOpenBound=this.open.bind(this),this._handleCloseBound=this.close.bind(this),this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.addEventListener("mouseenter",this._handleOpenBound),this.el.addEventListener("mouseleave",this._handleCloseBound)):this.el.addEventListener("click",this._handleFABClickBound)}_removeEventHandlers(){this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.removeEventListener("mouseenter",this._handleOpenBound),this.el.removeEventListener("mouseleave",this._handleCloseBound)):this.el.removeEventListener("click",this._handleFABClickBound)}_handleFABClick(){this.isOpen?this.close():this.open()}_handleDocumentClick(e){t(e.target).closest(this.$menu).length||this.close()}open(){this.isOpen||(this.options.toolbarEnabled?this._animateInToolbar():this._animateInFAB(),this.isOpen=!0)}close(){this.isOpen&&(this.options.toolbarEnabled?(window.removeEventListener("scroll",this._handleCloseBound,!0),document.body.removeEventListener("click",this._handleDocumentClickBound,!0),this._animateOutToolbar()):this._animateOutFAB(),this.isOpen=!1)}_animateInFAB(){this.$el.addClass("active");let t=0;this.$floatingBtnsReverse.each((n=>{e({targets:n,opacity:1,scale:[.4,1],translateY:[this.offsetY,0],translateX:[this.offsetX,0],duration:275,delay:t,easing:"easeInOutQuad"}),t+=40}))}_animateOutFAB(){this.$floatingBtnsReverse.each((t=>{e.remove(t),e({targets:t,opacity:0,scale:.4,translateY:this.offsetY,translateX:this.offsetX,duration:175,easing:"easeOutQuad",complete:()=>{this.$el.removeClass("active")}})}))}_animateInToolbar(){let e,n=window.innerWidth,i=window.innerHeight,o=this.el.getBoundingClientRect(),r=t('
'),s=this.$anchor.css("background-color");this.$anchor.append(r),this.offsetX=o.left-n/2+o.width/2,this.offsetY=i-o.bottom,e=n/r[0].clientWidth,this.btnBottom=o.bottom,this.btnLeft=o.left,this.btnWidth=o.width,this.$el.addClass("active"),this.$el.css({"text-align":"center",width:"100%",bottom:0,left:0,transform:"translateX("+this.offsetX+"px)",transition:"none"}),this.$anchor.css({transform:"translateY("+-this.offsetY+"px)",transition:"none"}),r.css({"background-color":s}),setTimeout((()=>{this.$el.css({transform:"",transition:"transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"}),this.$anchor.css({overflow:"visible",transform:"",transition:"transform .2s"}),setTimeout((()=>{this.$el.css({overflow:"hidden","background-color":s}),r.css({transform:"scale("+e+")",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}),this.$menu.children("li").children("a").css({opacity:1}),this._handleDocumentClickBound=this._handleDocumentClick.bind(this),window.addEventListener("scroll",this._handleCloseBound,!0),document.body.addEventListener("click",this._handleDocumentClickBound,!0)}),100)}),0)}_animateOutToolbar(){let t=window.innerWidth,e=window.innerHeight,n=this.$el.find(".fab-backdrop"),i=this.$anchor.css("background-color");this.offsetX=this.btnLeft-t/2+this.btnWidth/2,this.offsetY=e-this.btnBottom,this.$el.removeClass("active"),this.$el.css({"background-color":"transparent",transition:"none"}),this.$anchor.css({transition:"none"}),n.css({transform:"scale(0)","background-color":i}),this.$menu.children("li").children("a").css({opacity:""}),setTimeout((()=>{n.remove(),this.$el.css({"text-align":"",width:"",bottom:"",left:"",overflow:"","background-color":"",transform:"translate3d("+-this.offsetX+"px,0,0)"}),this.$anchor.css({overflow:"",transform:"translate3d(0,"+this.offsetY+"px,0)"}),setTimeout((()=>{this.$el.css({transform:"translate3d(0,0,0)",transition:"transform .2s"}),this.$anchor.css({transform:"translate3d(0,0,0)",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"})}),20)}),200)}}M.FloatingActionButton=o,M.jQueryLoaded&&M.initializeJqueryWrapper(o,"floatingActionButton","M_FloatingActionButton")}(cash,M.anime)},683:()=>{window.cash=function(){var t,e=document,n=window,i=Array.prototype,o=i.slice,r=i.filter,s=i.push,a=function(){},l=function(t){return typeof t==typeof a&&t.call},h=function(t){return"string"==typeof t},u=/^#[\w-]*$/,c=/^\.[\w-]*$/,d=/<.+>/,p=/^\w+$/;function m(t,n){return n=n||e,c.test(t)?n.getElementsByClassName(t.slice(1)):p.test(t)?n.getElementsByTagName(t):n.querySelectorAll(t)}function f(n){if(!t){var i=(t=e.implementation.createHTMLDocument(null)).createElement("base");i.href=e.location.href,t.head.appendChild(i)}return t.body.innerHTML=n,t.body.childNodes}function g(t){"loading"!==e.readyState?t():e.addEventListener("DOMContentLoaded",t)}function v(t,i){if(!t)return this;if(t.cash&&t!==n)return t;var o,r=t,s=0;if(h(t))r=u.test(t)?e.getElementById(t.slice(1)):d.test(t)?f(t):m(t,i);else if(l(t))return g(t),this;if(!r)return this;if(r.nodeType||r===n)this[0]=r,this.length=1;else for(o=this.length=r.length;s=0&&r.splice(i,1)):(b(r,(function(n){t.removeEventListener(e,n)})),r=[]))}function z(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function j(t){var e=[];return b(t.options,(function(t){t.selected&&e.push(t.value)})),e.length?e:null}function X(t){var e=t.selectedIndex;return e>=0?t.options[e].value:null}function Y(t){var e=t.type;if(!e)return null;switch(e.toLowerCase()){case"select-one":return X(t);case"select-multiple":return j(t);case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function Q(t,e,n){if(n){var i=t.childNodes[0];t.insertBefore(e,i)}else t.appendChild(e)}function G(t,e,n){var i=h(e);i||!e.length?b(t,i?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",e)}:function(t,i){return Q(t,0===i?e:e.cloneNode(!0),n)}):b(e,(function(e){return G(t,e,n)}))}y.prefixedProp=q,y.camelCase=R,w.extend({css:function(t,e){if(h(t))return t=q(t),arguments.length>1?this.each((function(n){return n.style[t]=e})):n.getComputedStyle(this[0])[t];for(var i in t)this.css(i,t[i]);return this}}),b(["Width","Height"],(function(t){var e=t.toLowerCase();w[e]=function(){return this[0].getBoundingClientRect()[e]},w["inner"+t]=function(){return this[0]["client"+t]},w["outer"+t]=function(e){return this[0]["offset"+t]+(e?N(this,"margin"+("Width"===t?"Left":"Top"))+N(this,"margin"+("Width"===t?"Right":"Bottom")):0)}})),w.extend({off:function(t,e){return this.each((function(n){return H(n,t,e)}))},on:function(t,e,n,i){var o;if(!h(t)){for(var r in t)this.on(r,e,t[r]);return this}return l(e)&&(n=e,e=null),"ready"===t?(g(n),this):(e&&(o=n,n=function(t){for(var n=t.target;!_(n,e);){if(n===this||null===n)return!1;n=n.parentNode}n&&o.call(n,t)}),this.each((function(e){var o=n;i&&(o=function(){n.apply(this,arguments),H(e,t,o)}),W(e,t,o)})))},one:function(t,e,n){return this.on(t,e,n,!0)},ready:g,trigger:function(t,e){if(document.createEvent){let n=document.createEvent("HTMLEvents");return n.initEvent(t,!0,!1),n=this.extend(n,e),this.each((function(t){return t.dispatchEvent(n)}))}}}),w.extend({serialize:function(){var t="";return b(this[0].elements||this,(function(e){if(!e.disabled&&"FIELDSET"!==e.tagName){var n=e.name;switch(e.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var i=Y(e);null!==i&&b(i,(function(e){t+=z(n,e)}));break;default:var o=Y(e);null!==o&&(t+=z(n,o))}}})),t.substr(1)},val:function(t){return void 0===t?Y(this[0]):this.each((function(e){return e.value=t}))}}),w.extend({after:function(t){return y(t).insertAfter(this),this},append:function(t){return G(this,t),this},appendTo:function(t){return G(y(t),this),this},before:function(t){return y(t).insertBefore(this),this},clone:function(){return y(this.map((function(t){return t.cloneNode(!0)})))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each((function(t){return t.innerHTML=e}))},insertAfter:function(t){var e=this;return y(t).each((function(t,n){var i=t.parentNode,o=t.nextSibling;e.each((function(t){i.insertBefore(0===n?t:t.cloneNode(!0),o)}))})),this},insertBefore:function(t){var e=this;return y(t).each((function(t,n){var i=t.parentNode;e.each((function(e){i.insertBefore(0===n?e:e.cloneNode(!0),t)}))})),this},prepend:function(t){return G(this,t,!0),this},prependTo:function(t){return G(y(t),this,!0),this},remove:function(){return this.each((function(t){if(t.parentNode)return t.parentNode.removeChild(t)}))},text:function(t){return void 0===t?this[0].textContent:this.each((function(e){return e.textContent=t}))}});var U=e.documentElement;return w.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+n.pageYOffset-U.clientTop,left:t.left+n.pageXOffset-U.clientLeft}},offsetParent:function(){return y(this[0].offsetParent)}}),w.extend({children:function(t){var e=[];return this.each((function(t){s.apply(e,t.children)})),e=x(e),t?e.filter((function(e){return _(e,t)})):e},closest:function(t){return!t||this.length<1?y():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(t){if(!t)return!1;var e=!1,n=L(t);return this.each((function(i){return!(e=n(i,t))})),e},find:function(t){if(!t||t.nodeType)return y(t&&this.has(t).length?t:null);var e=[];return this.each((function(n){s.apply(e,m(t,n))})),x(e)},has:function(t){var e=h(t)?function(e){return 0!==m(t,e).length}:function(e){return e.contains(t)};return this.filter(e)},next:function(){return y(this[0].nextElementSibling)},not:function(t){if(!t)return this;var e=L(t);return this.filter((function(n){return!e(n,t)}))},parent:function(){var t=[];return this.each((function(e){e&&e.parentNode&&t.push(e.parentNode)})),x(t)},parents:function(t){var n,i=[];return this.each((function(o){for(n=o;n&&n.parentNode&&n!==e.body.parentNode;)n=n.parentNode,(!t||t&&_(n,t))&&i.push(n)})),x(i)},prev:function(){return y(this[0].previousElementSibling)},siblings:function(t){var e=this.parent().children(t),n=this[0];return e.filter((function(t){return t!==n}))}}),y}()},906:(t,e,n)=>{var i=n(24);!function(t,e){"use strict";let n={alignment:"left",autoFocus:!0,constrainWidth:!0,container:null,coverTrigger:!0,closeOnClick:!0,hover:!1,inDuration:150,outDuration:250,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,onItemClick:null};class o extends i{constructor(e,n){super(o,e,n),this.el.M_Dropdown=this,o._dropdowns.push(this),this.id=M.getIdFromTrigger(e),this.dropdownEl=document.getElementById(this.id),this.$dropdownEl=t(this.dropdownEl),this.options=t.extend({},o.defaults,n),this.isOpen=!1,this.isScrollable=!1,this.isTouchMoving=!1,this.focusedIndex=-1,this.filterQuery=[],this.options.container?t(this.options.container).append(this.dropdownEl):this.$el.after(this.dropdownEl),this._makeDropdownFocusable(),this._resetFilterQueryBound=this._resetFilterQuery.bind(this),this._handleDocumentClickBound=this._handleDocumentClick.bind(this),this._handleDocumentTouchmoveBound=this._handleDocumentTouchmove.bind(this),this._handleDropdownClickBound=this._handleDropdownClick.bind(this),this._handleDropdownKeydownBound=this._handleDropdownKeydown.bind(this),this._handleTriggerKeydownBound=this._handleTriggerKeydown.bind(this),this._setupEventHandlers()}static get defaults(){return n}static init(t,e){return super.init(this,t,e)}static getInstance(t){return(t.jquery?t[0]:t).M_Dropdown}destroy(){this._resetDropdownStyles(),this._removeEventHandlers(),o._dropdowns.splice(o._dropdowns.indexOf(this),1),this.el.M_Dropdown=void 0}_setupEventHandlers(){this.el.addEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.addEventListener("click",this._handleDropdownClickBound),this.options.hover?(this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.addEventListener("mouseleave",this._handleMouseLeaveBound)):(this._handleClickBound=this._handleClick.bind(this),this.el.addEventListener("click",this._handleClickBound))}_removeEventHandlers(){this.el.removeEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.removeEventListener("click",this._handleDropdownClickBound),this.options.hover?(this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.removeEventListener("mouseleave",this._handleMouseLeaveBound)):this.el.removeEventListener("click",this._handleClickBound)}_setupTemporaryEventHandlers(){document.body.addEventListener("click",this._handleDocumentClickBound,!0),document.body.addEventListener("touchend",this._handleDocumentClickBound),document.body.addEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.addEventListener("keydown",this._handleDropdownKeydownBound)}_removeTemporaryEventHandlers(){document.body.removeEventListener("click",this._handleDocumentClickBound,!0),document.body.removeEventListener("touchend",this._handleDocumentClickBound),document.body.removeEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.removeEventListener("keydown",this._handleDropdownKeydownBound)}_handleClick(t){t.preventDefault(),this.open()}_handleMouseEnter(){this.open()}_handleMouseLeave(e){let n=e.toElement||e.relatedTarget,i=!!t(n).closest(".dropdown-content").length,o=!1,r=t(n).closest(".dropdown-trigger");r.length&&r[0].M_Dropdown&&r[0].M_Dropdown.isOpen&&(o=!0),o||i||this.close()}_handleDocumentClick(e){let n=t(e.target);this.options.closeOnClick&&n.closest(".dropdown-content").length&&!this.isTouchMoving?setTimeout((()=>{this.close()}),0):!n.closest(".dropdown-trigger").length&&n.closest(".dropdown-content").length||setTimeout((()=>{this.close()}),0),this.isTouchMoving=!1}_handleTriggerKeydown(t){t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ENTER||this.isOpen||(t.preventDefault(),this.open())}_handleDocumentTouchmove(e){t(e.target).closest(".dropdown-content").length&&(this.isTouchMoving=!0)}_handleDropdownClick(e){if("function"==typeof this.options.onItemClick){let n=t(e.target).closest("li")[0];this.options.onItemClick.call(this,n)}}_handleDropdownKeydown(e){if(e.which===M.keys.TAB)e.preventDefault(),this.close();else if(e.which!==M.keys.ARROW_DOWN&&e.which!==M.keys.ARROW_UP||!this.isOpen)if(e.which===M.keys.ENTER&&this.isOpen){let e=this.dropdownEl.children[this.focusedIndex],n=t(e).find("a, button").first();n.length?n[0].click():e&&e.click()}else e.which===M.keys.ESC&&this.isOpen&&(e.preventDefault(),this.close());else{e.preventDefault();let t=e.which===M.keys.ARROW_DOWN?1:-1,n=this.focusedIndex,i=!1;do{if(n+=t,this.dropdownEl.children[n]&&-1!==this.dropdownEl.children[n].tabIndex){i=!0;break}}while(n=0);i&&(this.focusedIndex=n,this._focusFocusedItem())}let n=String.fromCharCode(e.which).toLowerCase();if(n&&-1===[9,13,27,38,40].indexOf(e.which)){this.filterQuery.push(n);let e=this.filterQuery.join(""),i=t(this.dropdownEl).find("li").filter((n=>0===t(n).text().toLowerCase().indexOf(e)))[0];i&&(this.focusedIndex=t(i).index(),this._focusFocusedItem())}this.filterTimeout=setTimeout(this._resetFilterQueryBound,1e3)}_resetFilterQuery(){this.filterQuery=[]}_resetDropdownStyles(){this.$dropdownEl.css({display:"",width:"",height:"",left:"",top:"","transform-origin":"",transform:"",opacity:""})}_makeDropdownFocusable(){this.dropdownEl.tabIndex=0,t(this.dropdownEl).children().each((function(t){t.getAttribute("tabindex")||t.setAttribute("tabindex",0)}))}_focusFocusedItem(){this.focusedIndex>=0&&this.focusedIndexl.spaceOnBottom?(h="bottom",n+=l.spaceOnTop,r-=l.spaceOnTop):n+=l.spaceOnBottom)),!l[u]){let t="left"===u?"right":"left";l[t]?u=t:l.spaceOnLeft>l.spaceOnRight?(u="right",i+=l.spaceOnLeft,o-=l.spaceOnLeft):(u="left",i+=l.spaceOnRight)}return"bottom"===h&&(r=r-e.height+(this.options.coverTrigger?t.height:0)),"right"===u&&(o=o-e.width+t.width),{x:o,y:r,verticalAlignment:h,horizontalAlignment:u,height:n,width:i}}_animateIn(){e.remove(this.dropdownEl),e({targets:this.dropdownEl,opacity:{value:[0,1],easing:"easeOutQuad"},scaleX:[.3,1],scaleY:[.3,1],duration:this.options.inDuration,easing:"easeOutQuint",complete:t=>{this.options.autoFocus&&this.dropdownEl.focus(),"function"==typeof this.options.onOpenEnd&&this.options.onOpenEnd.call(this,this.el)}})}_animateOut(){e.remove(this.dropdownEl),e({targets:this.dropdownEl,opacity:{value:0,easing:"easeOutQuint"},scaleX:.3,scaleY:.3,duration:this.options.outDuration,easing:"easeOutQuint",complete:t=>{this._resetDropdownStyles(),"function"==typeof this.options.onCloseEnd&&this.options.onCloseEnd.call(this,this.el)}})}_placeDropdown(){let t=this.options.constrainWidth?this.el.getBoundingClientRect().width:this.dropdownEl.getBoundingClientRect().width;this.dropdownEl.style.width=t+"px";let e=this._getDropdownPosition();this.dropdownEl.style.left=e.x+"px",this.dropdownEl.style.top=e.y+"px",this.dropdownEl.style.height=e.height+"px",this.dropdownEl.style.width=e.width+"px",this.dropdownEl.style.transformOrigin=`${"left"===e.horizontalAlignment?"0":"100%"} ${"top"===e.verticalAlignment?"0":"100%"}`}open(){this.isOpen||(this.isOpen=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this._resetDropdownStyles(),this.dropdownEl.style.display="block",this._placeDropdown(),this._animateIn(),this._setupTemporaryEventHandlers())}close(){this.isOpen&&(this.isOpen=!1,this.focusedIndex=-1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this._animateOut(),this._removeTemporaryEventHandlers(),this.options.autoFocus&&this.el.focus())}recalculateDimensions(){this.isOpen&&(this.$dropdownEl.css({width:"",height:"",left:"",top:"","transform-origin":""}),this._placeDropdown())}}o._dropdowns=[],M.Dropdown=o,M.jQueryLoaded&&M.initializeJqueryWrapper(o,"dropdown","M_Dropdown")}(cash,M.anime)},462:()=>{!function(t){M.updateTextFields=function(){t("input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea").each((function(e,n){let i=t(this);e.value.length>0||t(e).is(":focus")||e.autofocus||null!==i.attr("placeholder")?i.siblings("label").addClass("active"):e.validity?i.siblings("label").toggleClass("active",!0===e.validity.badInput):i.siblings("label").removeClass("active")}))},M.validate_field=function(t){let e=null!==t.attr("data-length"),n=parseInt(t.attr("data-length")),i=t[0].value.length;0!==i||!1!==t[0].validity.badInput||t.is(":required")?t.hasClass("validate")&&(t.is(":valid")&&e&&i<=n||t.is(":valid")&&!e?(t.removeClass("invalid"),t.addClass("valid")):(t.removeClass("valid"),t.addClass("invalid"))):t.hasClass("validate")&&(t.removeClass("valid"),t.removeClass("invalid"))},M.textareaAutoResize=function(e){if(e instanceof Element&&(e=t(e)),!e.length)return void console.error("No textarea element found");let n=t(".hiddendiv").first();n.length||(n=t('
'),t("body").append(n));let i=e.css("font-family"),o=e.css("font-size"),r=e.css("line-height"),s=e.css("padding-top"),a=e.css("padding-right"),l=e.css("padding-bottom"),h=e.css("padding-left");o&&n.css("font-size",o),i&&n.css("font-family",i),r&&n.css("line-height",r),s&&n.css("padding-top",s),a&&n.css("padding-right",a),l&&n.css("padding-bottom",l),h&&n.css("padding-left",h),e.data("original-height")||e.data("original-height",e.height()),"off"===e.attr("wrap")&&n.css("overflow-wrap","normal").css("white-space","pre"),n.text(e[0].value+"\n");let u=n.html().replace(/\n/g,"
");n.html(u),e[0].offsetWidth>0&&e[0].offsetHeight>0?n.css("width",e.width()+"px"):n.css("width",window.innerWidth/2+"px"),e.data("original-height")<=n.innerHeight()?e.css("height",n.innerHeight()+"px"):e[0].value.length{var n;!function(t){t.Package?M={}:t.M={},M.jQueryLoaded=!!t.jQuery}(window),void 0===(n=function(){return M}.apply(e,[]))||(t.exports=n),M.version="1.0.0",M.keys={TAB:9,ENTER:13,ESC:27,ARROW_UP:38,ARROW_DOWN:40},M.tabPressed=!1,M.keyDown=!1;document.addEventListener("keydown",(function(t){M.keyDown=!0,t.which!==M.keys.TAB&&t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||(M.tabPressed=!0)}),!0),document.addEventListener("keyup",(function(t){M.keyDown=!1,t.which!==M.keys.TAB&&t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||(M.tabPressed=!1)}),!0),document.addEventListener("focus",(function(t){M.keyDown&&document.body.classList.add("keyboard-focused")}),!0),document.addEventListener("blur",(function(t){document.body.classList.remove("keyboard-focused")}),!0),M.initializeJqueryWrapper=function(t,e,n){jQuery.fn[e]=function(i){if(t.prototype[i]){let t=Array.prototype.slice.call(arguments,1);if("get"===i.slice(0,3)){let e=this.first()[0][n];return e[i].apply(e,t)}return this.each((function(){let e=this[n];e[i].apply(e,t)}))}if("object"==typeof i||!i)return t.init(this,arguments[0]),this;jQuery.error(`Method ${i} does not exist on jQuery.${e}`)}},M.AutoInit=function(t){let e=t||document.body,n={Autocomplete:e.querySelectorAll(".autocomplete:not(.no-autoinit)"),Carousel:e.querySelectorAll(".carousel:not(.no-autoinit)"),Chips:e.querySelectorAll(".chips:not(.no-autoinit)"),Collapsible:e.querySelectorAll(".collapsible:not(.no-autoinit)"),Datepicker:e.querySelectorAll(".datepicker:not(.no-autoinit)"),Dropdown:e.querySelectorAll(".dropdown-trigger:not(.no-autoinit)"),Materialbox:e.querySelectorAll(".materialboxed:not(.no-autoinit)"),Modal:e.querySelectorAll(".modal:not(.no-autoinit)"),Parallax:e.querySelectorAll(".parallax:not(.no-autoinit)"),Pushpin:e.querySelectorAll(".pushpin:not(.no-autoinit)"),ScrollSpy:e.querySelectorAll(".scrollspy:not(.no-autoinit)"),FormSelect:e.querySelectorAll("select:not(.no-autoinit)"),Sidenav:e.querySelectorAll(".sidenav:not(.no-autoinit)"),Tabs:e.querySelectorAll(".tabs:not(.no-autoinit)"),TapTarget:e.querySelectorAll(".tap-target:not(.no-autoinit)"),Timepicker:e.querySelectorAll(".timepicker:not(.no-autoinit)"),Tooltip:e.querySelectorAll(".tooltipped:not(.no-autoinit)"),FloatingActionButton:e.querySelectorAll(".fixed-action-btn:not(.no-autoinit)")};for(let t in n){M[t].init(n[t])}},M.objectSelectorString=function(t){return((t.prop("tagName")||"")+(t.attr("id")||"")+(t.attr("class")||"")).replace(/\s/g,"")},M.guid=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}}(),M.escapeHash=function(t){return t.replace(/(:|\.|\[|\]|,|=|\/)/g,"\\$1")},M.elementOrParentIsFixed=function(t){let e=$(t),n=e.add(e.parents()),i=!1;return n.each((function(){if("fixed"===$(this).css("position"))return i=!0,!1})),i},M.checkWithinContainer=function(t,e,n){let i={top:!1,right:!1,bottom:!1,left:!1},o=t.getBoundingClientRect(),r=t===document.body?Math.max(o.bottom,window.innerHeight):o.bottom,s=t.scrollLeft,a=t.scrollTop,l=e.left-s,h=e.top-a;return(lo.right-n||l+e.width>window.innerWidth-n)&&(i.right=!0),(hr-n||h+e.height>window.innerHeight-n)&&(i.bottom=!0),i},M.checkPossibleAlignments=function(t,e,n,i){let o={top:!0,right:!0,bottom:!0,left:!0,spaceOnTop:null,spaceOnRight:null,spaceOnBottom:null,spaceOnLeft:null},r="visible"===getComputedStyle(e).overflow,s=e.getBoundingClientRect(),a=Math.min(s.height,window.innerHeight),l=Math.min(s.width,window.innerWidth),h=t.getBoundingClientRect(),u=e.scrollLeft,c=e.scrollTop,d=n.left-u,p=n.top-c,m=n.top+h.height-c;return o.spaceOnRight=r?window.innerWidth-(h.left+n.width):l-(d+n.width),o.spaceOnRight<0&&(o.left=!1),o.spaceOnLeft=r?h.right-n.width:d-n.width+h.width,o.spaceOnLeft<0&&(o.right=!1),o.spaceOnBottom=r?window.innerHeight-(h.top+n.height+i):a-(p+n.height+i),o.spaceOnBottom<0&&(o.top=!1),o.spaceOnTop=r?h.bottom-(n.height+i):m-(n.height-i),o.spaceOnTop<0&&(o.bottom=!1),o},M.getOverflowParent=function(t){return null==t?null:t===document.body||"visible"!==getComputedStyle(t).overflow?t:M.getOverflowParent(t.parentElement)},M.getIdFromTrigger=function(t){let e=t.getAttribute("data-target");return e||(e=t.getAttribute("href"),e=e?e.slice(1):""),e},M.getDocumentScrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},M.getDocumentScrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0};let i=Date.now||function(){return(new Date).getTime()};M.throttle=function(t,e,n){let o,r,s,a=null,l=0;n||(n={});let h=function(){l=!1===n.leading?0:i(),a=null,s=t.apply(o,r),o=r=null};return function(){let u=i();l||!1!==n.leading||(l=u);let c=e-(u-l);return o=this,r=arguments,c<=0?(clearTimeout(a),a=null,l=u,s=t.apply(o,r),o=r=null):a||!1===n.trailing||(a=setTimeout(h,c)),s}}},874:(t,e,n)=>{var i=n(24);!function(t,e){"use strict";let n={edge:"left",draggable:!0,inDuration:250,outDuration:200,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,preventScrolling:!0};class o extends i{constructor(e,n){super(o,e,n),this.el.M_Sidenav=this,this.id=this.$el.attr("id"),this.options=t.extend({},o.defaults,n),this.isOpen=!1,this.isFixed=this.el.classList.contains("sidenav-fixed"),this.isDragged=!1,this.lastWindowWidth=window.innerWidth,this.lastWindowHeight=window.innerHeight,this._createOverlay(),this._createDragTarget(),this._setupEventHandlers(),this._setupClasses(),this._setupFixed(),o._sidenavs.push(this)}static get defaults(){return n}static init(t,e){return super.init(this,t,e)}static getInstance(t){return(t.jquery?t[0]:t).M_Sidenav}destroy(){this._removeEventHandlers(),this._enableBodyScrolling(),this._overlay.parentNode.removeChild(this._overlay),this.dragTarget.parentNode.removeChild(this.dragTarget),this.el.M_Sidenav=void 0,this.el.style.transform="";let t=o._sidenavs.indexOf(this);t>=0&&o._sidenavs.splice(t,1)}_createOverlay(){let t=document.createElement("div");this._closeBound=this.close.bind(this),t.classList.add("sidenav-overlay"),t.addEventListener("click",this._closeBound),document.body.appendChild(t),this._overlay=t}_setupEventHandlers(){0===o._sidenavs.length&&document.body.addEventListener("click",this._handleTriggerClick),this._handleDragTargetDragBound=this._handleDragTargetDrag.bind(this),this._handleDragTargetReleaseBound=this._handleDragTargetRelease.bind(this),this._handleCloseDragBound=this._handleCloseDrag.bind(this),this._handleCloseReleaseBound=this._handleCloseRelease.bind(this),this._handleCloseTriggerClickBound=this._handleCloseTriggerClick.bind(this),this.dragTarget.addEventListener("touchmove",this._handleDragTargetDragBound),this.dragTarget.addEventListener("touchend",this._handleDragTargetReleaseBound),this._overlay.addEventListener("touchmove",this._handleCloseDragBound),this._overlay.addEventListener("touchend",this._handleCloseReleaseBound),this.el.addEventListener("touchmove",this._handleCloseDragBound),this.el.addEventListener("touchend",this._handleCloseReleaseBound),this.el.addEventListener("click",this._handleCloseTriggerClickBound),this.isFixed&&(this._handleWindowResizeBound=this._handleWindowResize.bind(this),window.addEventListener("resize",this._handleWindowResizeBound))}_removeEventHandlers(){1===o._sidenavs.length&&document.body.removeEventListener("click",this._handleTriggerClick),this.dragTarget.removeEventListener("touchmove",this._handleDragTargetDragBound),this.dragTarget.removeEventListener("touchend",this._handleDragTargetReleaseBound),this._overlay.removeEventListener("touchmove",this._handleCloseDragBound),this._overlay.removeEventListener("touchend",this._handleCloseReleaseBound),this.el.removeEventListener("touchmove",this._handleCloseDragBound),this.el.removeEventListener("touchend",this._handleCloseReleaseBound),this.el.removeEventListener("click",this._handleCloseTriggerClickBound),this.isFixed&&window.removeEventListener("resize",this._handleWindowResizeBound)}_handleTriggerClick(e){let n=t(e.target).closest(".sidenav-trigger");if(e.target&&n.length){let t=M.getIdFromTrigger(n[0]),i=document.getElementById(t).M_Sidenav;i&&i.open(n),e.preventDefault()}}_startDrag(t){let n=t.targetTouches[0].clientX;this.isDragged=!0,this._startingXpos=n,this._xPos=this._startingXpos,this._time=Date.now(),this._width=this.el.getBoundingClientRect().width,this._overlay.style.display="block",this._initialScrollTop=this.isOpen?this.el.scrollTop:M.getDocumentScrollTop(),this._verticallyScrolling=!1,e.remove(this.el),e.remove(this._overlay)}_dragMoveUpdate(t){let e=t.targetTouches[0].clientX,n=this.isOpen?this.el.scrollTop:M.getDocumentScrollTop();this.deltaX=Math.abs(this._xPos-e),this._xPos=e,this.velocityX=this.deltaX/(Date.now()-this._time),this._time=Date.now(),this._initialScrollTop!==n&&(this._verticallyScrolling=!0)}_handleDragTargetDrag(t){if(!this.options.draggable||this._isCurrentlyFixed()||this._verticallyScrolling)return;this.isDragged||this._startDrag(t),this._dragMoveUpdate(t);let e=this._xPos-this._startingXpos,n=e>0?"right":"left";e=Math.min(this._width,Math.abs(e)),this.options.edge===n&&(e=0);let i=e,o="translateX(-100%)";"right"===this.options.edge&&(o="translateX(100%)",i=-i),this.percentOpen=Math.min(1,e/this._width),this.el.style.transform=`${o} translateX(${i}px)`,this._overlay.style.opacity=this.percentOpen}_handleDragTargetRelease(){this.isDragged&&(this.percentOpen>.2?this.open():this._animateOut(),this.isDragged=!1,this._verticallyScrolling=!1)}_handleCloseDrag(t){if(this.isOpen){if(!this.options.draggable||this._isCurrentlyFixed()||this._verticallyScrolling)return;this.isDragged||this._startDrag(t),this._dragMoveUpdate(t);let e=this._xPos-this._startingXpos,n=e>0?"right":"left";e=Math.min(this._width,Math.abs(e)),this.options.edge!==n&&(e=0);let i=-e;"right"===this.options.edge&&(i=-i),this.percentOpen=Math.min(1,1-e/this._width),this.el.style.transform=`translateX(${i}px)`,this._overlay.style.opacity=this.percentOpen}}_handleCloseRelease(){this.isOpen&&this.isDragged&&(this.percentOpen>.8?this._animateIn():this.close(),this.isDragged=!1,this._verticallyScrolling=!1)}_handleCloseTriggerClick(e){t(e.target).closest(".sidenav-close").length&&!this._isCurrentlyFixed()&&this.close()}_handleWindowResize(){this.lastWindowWidth!==window.innerWidth&&(window.innerWidth>992?this.open():this.close()),this.lastWindowWidth=window.innerWidth,this.lastWindowHeight=window.innerHeight}_setupClasses(){"right"===this.options.edge&&(this.el.classList.add("right-aligned"),this.dragTarget.classList.add("right-aligned"))}_removeClasses(){this.el.classList.remove("right-aligned"),this.dragTarget.classList.remove("right-aligned")}_setupFixed(){this._isCurrentlyFixed()&&this.open()}_isCurrentlyFixed(){return this.isFixed&&window.innerWidth>992}_createDragTarget(){let t=document.createElement("div");t.classList.add("drag-target"),document.body.appendChild(t),this.dragTarget=t}_preventBodyScrolling(){document.body.style.overflow="hidden"}_enableBodyScrolling(){document.body.style.overflow=""}open(){!0!==this.isOpen&&(this.isOpen=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this._isCurrentlyFixed()?(e.remove(this.el),e({targets:this.el,translateX:0,duration:0,easing:"easeOutQuad"}),this._enableBodyScrolling(),this._overlay.style.display="none"):(this.options.preventScrolling&&this._preventBodyScrolling(),this.isDragged&&1==this.percentOpen||this._animateIn()))}close(){if(!1!==this.isOpen)if(this.isOpen=!1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this._isCurrentlyFixed()){let t="left"===this.options.edge?"-105%":"105%";this.el.style.transform=`translateX(${t})`}else this._enableBodyScrolling(),this.isDragged&&0==this.percentOpen?this._overlay.style.display="none":this._animateOut()}_animateIn(){this._animateSidenavIn(),this._animateOverlayIn()}_animateSidenavIn(){let t="left"===this.options.edge?-1:1;this.isDragged&&(t="left"===this.options.edge?t+this.percentOpen:t-this.percentOpen),e.remove(this.el),e({targets:this.el,translateX:[100*t+"%",0],duration:this.options.inDuration,easing:"easeOutQuad",complete:()=>{"function"==typeof this.options.onOpenEnd&&this.options.onOpenEnd.call(this,this.el)}})}_animateOverlayIn(){let n=0;this.isDragged?n=this.percentOpen:t(this._overlay).css({display:"block"}),e.remove(this._overlay),e({targets:this._overlay,opacity:[n,1],duration:this.options.inDuration,easing:"easeOutQuad"})}_animateOut(){this._animateSidenavOut(),this._animateOverlayOut()}_animateSidenavOut(){let t="left"===this.options.edge?-1:1,n=0;this.isDragged&&(n="left"===this.options.edge?t+this.percentOpen:t-this.percentOpen),e.remove(this.el),e({targets:this.el,translateX:[100*n+"%",105*t+"%"],duration:this.options.outDuration,easing:"easeOutQuad",complete:()=>{"function"==typeof this.options.onCloseEnd&&this.options.onCloseEnd.call(this,this.el)}})}_animateOverlayOut(){e.remove(this._overlay),e({targets:this._overlay,opacity:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:()=>{t(this._overlay).css("display","none")}})}}o._sidenavs=[],M.Sidenav=o,M.jQueryLoaded&&M.initializeJqueryWrapper(o,"sidenav","M_Sidenav")}(cash,M.anime)},550:(t,e,n)=>{var i=n(24);!function(t,e){"use strict";let n={duration:300,onShow:null,swipeable:!1,responsiveThreshold:1/0};class o extends i{constructor(e,n){super(o,e,n),this.el.M_Tabs=this,this.options=t.extend({},o.defaults,n),this.$tabLinks=this.$el.children("li.tab").children("a"),this.index=0,this._setupActiveTabLink(),this.options.swipeable?this._setupSwipeableTabs():this._setupNormalTabs(),this._setTabsAndTabWidth(),this._createIndicator(),this._setupEventHandlers()}static get defaults(){return n}static init(t,e){return super.init(this,t,e)}static getInstance(t){return(t.jquery?t[0]:t).M_Tabs}destroy(){this._removeEventHandlers(),this._indicator.parentNode.removeChild(this._indicator),this.options.swipeable?this._teardownSwipeableTabs():this._teardownNormalTabs(),this.$el[0].M_Tabs=void 0}_setupEventHandlers(){this._handleWindowResizeBound=this._handleWindowResize.bind(this),window.addEventListener("resize",this._handleWindowResizeBound),this._handleTabClickBound=this._handleTabClick.bind(this),this.el.addEventListener("click",this._handleTabClickBound)}_removeEventHandlers(){window.removeEventListener("resize",this._handleWindowResizeBound),this.el.removeEventListener("click",this._handleTabClickBound)}_handleWindowResize(){this._setTabsAndTabWidth(),0!==this.tabWidth&&0!==this.tabsWidth&&(this._indicator.style.left=this._calcLeftPos(this.$activeTabLink)+"px",this._indicator.style.right=this._calcRightPos(this.$activeTabLink)+"px")}_handleTabClick(e){let n=t(e.target).closest("li.tab"),i=t(e.target).closest("a");if(!i.length||!i.parent().hasClass("tab"))return;if(n.hasClass("disabled"))return void e.preventDefault();if(i.attr("target"))return;this.$activeTabLink.removeClass("active");let o=this.$content;this.$activeTabLink=i,this.$content=t(M.escapeHash(i[0].hash)),this.$tabLinks=this.$el.children("li.tab").children("a"),this.$activeTabLink.addClass("active");let r=this.index;this.index=Math.max(this.$tabLinks.index(i),0),this.options.swipeable?this._tabsCarousel&&this._tabsCarousel.set(this.index,(()=>{"function"==typeof this.options.onShow&&this.options.onShow.call(this,this.$content[0])})):this.$content.length&&(this.$content[0].style.display="block",this.$content.addClass("active"),"function"==typeof this.options.onShow&&this.options.onShow.call(this,this.$content[0]),o.length&&!o.is(this.$content)&&(o[0].style.display="none",o.removeClass("active"))),this._setTabsAndTabWidth(),this._animateIndicator(r),e.preventDefault()}_createIndicator(){let t=document.createElement("li");t.classList.add("indicator"),this.el.appendChild(t),this._indicator=t,setTimeout((()=>{this._indicator.style.left=this._calcLeftPos(this.$activeTabLink)+"px",this._indicator.style.right=this._calcRightPos(this.$activeTabLink)+"px"}),0)}_setupActiveTabLink(){this.$activeTabLink=t(this.$tabLinks.filter('[href="'+location.hash+'"]')),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a.active").first()),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a").first()),this.$tabLinks.removeClass("active"),this.$activeTabLink[0].classList.add("active"),this.index=Math.max(this.$tabLinks.index(this.$activeTabLink),0),this.$activeTabLink.length&&(this.$content=t(M.escapeHash(this.$activeTabLink[0].hash)),this.$content.addClass("active"))}_setupSwipeableTabs(){window.innerWidth>this.options.responsiveThreshold&&(this.options.swipeable=!1);let e=t();this.$tabLinks.each((n=>{let i=t(M.escapeHash(n.hash));i.addClass("carousel-item"),e=e.add(i)}));let n=t('');e.first().before(n),n.append(e),e[0].style.display="";let i=this.$activeTabLink.closest(".tab").index();this._tabsCarousel=M.Carousel.init(n[0],{fullWidth:!0,noWrap:!0,onCycleTo:e=>{let n=this.index;this.index=t(e).index(),this.$activeTabLink.removeClass("active"),this.$activeTabLink=this.$tabLinks.eq(this.index),this.$activeTabLink.addClass("active"),this._animateIndicator(n),"function"==typeof this.options.onShow&&this.options.onShow.call(this,this.$content[0])}}),this._tabsCarousel.set(i)}_teardownSwipeableTabs(){let t=this._tabsCarousel.$el;this._tabsCarousel.destroy(),t.after(t.children()),t.remove()}_setupNormalTabs(){this.$tabLinks.not(this.$activeTabLink).each((e=>{if(e.hash){let n=t(M.escapeHash(e.hash));n.length&&(n[0].style.display="none")}}))}_teardownNormalTabs(){this.$tabLinks.each((e=>{if(e.hash){let n=t(M.escapeHash(e.hash));n.length&&(n[0].style.display="")}}))}_setTabsAndTabWidth(){this.tabsWidth=this.$el.width(),this.tabWidth=Math.max(this.tabsWidth,this.el.scrollWidth)/this.$tabLinks.length}_calcRightPos(t){return Math.ceil(this.tabsWidth-t.position().left-t[0].getBoundingClientRect().width)}_calcLeftPos(t){return Math.floor(t.position().left)}updateTabIndicator(){this._setTabsAndTabWidth(),this._animateIndicator(this.index)}_animateIndicator(t){let n=0,i=0;this.index-t>=0?n=90:i=90;let o={targets:this._indicator,left:{value:this._calcLeftPos(this.$activeTabLink),delay:n},right:{value:this._calcRightPos(this.$activeTabLink),delay:i},duration:this.options.duration,easing:"easeOutQuad"};e.remove(this._indicator),e(o)}select(t){let e=this.$tabLinks.filter('[href="#'+t+'"]');e.length&&e.trigger("click")}}M.Tabs=o,M.jQueryLoaded&&M.initializeJqueryWrapper(o,"tabs","M_Tabs")}(cash,M.anime)},523:()=>{!function(t,e){"use strict";let n={html:"",displayLength:4e3,inDuration:300,outDuration:375,classes:"",completeCallback:null,activationPercent:.8};class i{constructor(e){this.options=t.extend({},i.defaults,e),this.message=this.options.html,this.panning=!1,this.timeRemaining=this.options.displayLength,0===i._toasts.length&&i._createContainer(),i._toasts.push(this);let n=this._createToast();n.M_Toast=this,this.el=n,this.$el=t(n),this._animateIn(),this._setTimer()}static get defaults(){return n}static getInstance(t){return(t.jquery?t[0]:t).M_Toast}static _createContainer(){let t=document.createElement("div");t.setAttribute("id","toast-container"),t.addEventListener("touchstart",i._onDragStart),t.addEventListener("touchmove",i._onDragMove),t.addEventListener("touchend",i._onDragEnd),t.addEventListener("mousedown",i._onDragStart),document.addEventListener("mousemove",i._onDragMove),document.addEventListener("mouseup",i._onDragEnd),document.body.appendChild(t),i._container=t}static _removeContainer(){document.removeEventListener("mousemove",i._onDragMove),document.removeEventListener("mouseup",i._onDragEnd),t(i._container).remove(),i._container=null}static _onDragStart(e){if(e.target&&t(e.target).closest(".toast").length){let n=t(e.target).closest(".toast")[0].M_Toast;n.panning=!0,i._draggedToast=n,n.el.classList.add("panning"),n.el.style.transition="",n.startingXPos=i._xPos(e),n.time=Date.now(),n.xPos=i._xPos(e)}}static _onDragMove(t){if(i._draggedToast){t.preventDefault();let e=i._draggedToast;e.deltaX=Math.abs(e.xPos-i._xPos(t)),e.xPos=i._xPos(t),e.velocityX=e.deltaX/(Date.now()-e.time),e.time=Date.now();let n=e.xPos-e.startingXPos,o=e.el.offsetWidth*e.options.activationPercent;e.el.style.transform=`translateX(${n}px)`,e.el.style.opacity=1-Math.abs(n/o)}}static _onDragEnd(){if(i._draggedToast){let t=i._draggedToast;t.panning=!1,t.el.classList.remove("panning");let e=t.xPos-t.startingXPos,n=t.el.offsetWidth*t.options.activationPercent;Math.abs(e)>n||t.velocityX>1?(t.wasSwiped=!0,t.dismiss()):(t.el.style.transition="transform .2s, opacity .2s",t.el.style.transform="",t.el.style.opacity=""),i._draggedToast=null}}static _xPos(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientX:t.clientX}static dismissAll(){for(let t in i._toasts)i._toasts[t].dismiss()}_createToast(){let e=document.createElement("div");return e.classList.add("toast"),this.options.classes.length&&t(e).addClass(this.options.classes),("object"==typeof HTMLElement?this.message instanceof HTMLElement:this.message&&"object"==typeof this.message&&null!==this.message&&1===this.message.nodeType&&"string"==typeof this.message.nodeName)?e.appendChild(this.message):this.message.jquery?t(e).append(this.message[0]):e.innerHTML=this.message,i._container.appendChild(e),e}_animateIn(){e({targets:this.el,top:0,opacity:1,duration:this.options.inDuration,easing:"easeOutCubic"})}_setTimer(){this.timeRemaining!==1/0&&(this.counterInterval=setInterval((()=>{this.panning||(this.timeRemaining-=20),this.timeRemaining<=0&&this.dismiss()}),20))}dismiss(){window.clearInterval(this.counterInterval);let t=this.el.offsetWidth*this.options.activationPercent;this.wasSwiped&&(this.el.style.transition="transform .05s, opacity .05s",this.el.style.transform=`translateX(${t}px)`,this.el.style.opacity=0),e({targets:this.el,opacity:0,marginTop:-40,duration:this.options.outDuration,easing:"easeOutExpo",complete:()=>{"function"==typeof this.options.completeCallback&&this.options.completeCallback(),this.$el.remove(),i._toasts.splice(i._toasts.indexOf(this),1),0===i._toasts.length&&i._removeContainer()}})}}i._toasts=[],i._container=null,i._draggedToast=null,M.Toast=i,M.toast=function(t){return new i(t)}}(cash,M.anime)},675:(t,e,n)=>{var i=n(24);!function(t,e){"use strict";let n={exitDelay:200,enterDelay:0,html:null,margin:5,inDuration:250,outDuration:200,position:"bottom",transitionMovement:10};class o extends i{constructor(e,n){super(o,e,n),this.el.M_Tooltip=this,this.options=t.extend({},o.defaults,n),this.isOpen=!1,this.isHovered=!1,this.isFocused=!1,this._appendTooltipEl(),this._setupEventHandlers()}static get defaults(){return n}static init(t,e){return super.init(this,t,e)}static getInstance(t){return(t.jquery?t[0]:t).M_Tooltip}destroy(){t(this.tooltipEl).remove(),this._removeEventHandlers(),this.el.M_Tooltip=void 0}_appendTooltipEl(){let t=document.createElement("div");t.classList.add("material-tooltip"),this.tooltipEl=t;let e=document.createElement("div");e.classList.add("tooltip-content"),e.innerHTML=this.options.html,t.appendChild(e),document.body.appendChild(t)}_updateTooltipContent(){this.tooltipEl.querySelector(".tooltip-content").innerHTML=this.options.html}_setupEventHandlers(){this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this._handleFocusBound=this._handleFocus.bind(this),this._handleBlurBound=this._handleBlur.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.el.addEventListener("focus",this._handleFocusBound,!0),this.el.addEventListener("blur",this._handleBlurBound,!0)}_removeEventHandlers(){this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.el.removeEventListener("focus",this._handleFocusBound,!0),this.el.removeEventListener("blur",this._handleBlurBound,!0)}open(e){this.isOpen||(e=void 0===e||void 0,this.isOpen=!0,this.options=t.extend({},this.options,this._getAttributeOptions()),this._updateTooltipContent(),this._setEnterDelayTimeout(e))}close(){this.isOpen&&(this.isHovered=!1,this.isFocused=!1,this.isOpen=!1,this._setExitDelayTimeout())}_setExitDelayTimeout(){clearTimeout(this._exitDelayTimeout),this._exitDelayTimeout=setTimeout((()=>{this.isHovered||this.isFocused||this._animateOut()}),this.options.exitDelay)}_setEnterDelayTimeout(t){clearTimeout(this._enterDelayTimeout),this._enterDelayTimeout=setTimeout((()=>{(this.isHovered||this.isFocused||t)&&this._animateIn()}),this.options.enterDelay)}_positionTooltip(){let e,n,i,o=this.el,r=this.tooltipEl,s=o.offsetHeight,a=o.offsetWidth,l=r.offsetHeight,h=r.offsetWidth,u=this.options.margin;this.xMovement=0,this.yMovement=0,n=o.getBoundingClientRect().top+M.getDocumentScrollTop(),i=o.getBoundingClientRect().left+M.getDocumentScrollLeft(),"top"===this.options.position?(n+=-l-u,i+=a/2-h/2,this.yMovement=-this.options.transitionMovement):"right"===this.options.position?(n+=s/2-l/2,i+=a+u,this.xMovement=this.options.transitionMovement):"left"===this.options.position?(n+=s/2-l/2,i+=-h-u,this.xMovement=-this.options.transitionMovement):(n+=s+u,i+=a/2-h/2,this.yMovement=this.options.transitionMovement),e=this._repositionWithinScreen(i,n,h,l),t(r).css({top:e.y+"px",left:e.x+"px"})}_repositionWithinScreen(t,e,n,i){let o=M.getDocumentScrollLeft(),r=M.getDocumentScrollTop(),s=t-o,a=e-r,l={left:s,top:a,width:n,height:i},h=this.options.margin+this.options.transitionMovement,u=M.checkWithinContainer(document.body,l,h);return u.left?s=h:u.right&&(s-=s+n-window.innerWidth),u.top?a=h:u.bottom&&(a-=a+i-window.innerHeight),{x:s+o,y:a+r}}_animateIn(){this._positionTooltip(),this.tooltipEl.style.visibility="visible",e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:1,translateX:this.xMovement,translateY:this.yMovement,duration:this.options.inDuration,easing:"easeOutCubic"})}_animateOut(){e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:0,translateX:0,translateY:0,duration:this.options.outDuration,easing:"easeOutCubic"})}_handleMouseEnter(){this.isHovered=!0,this.isFocused=!1,this.open(!1)}_handleMouseLeave(){this.isHovered=!1,this.isFocused=!1,this.close()}_handleFocus(){M.tabPressed&&(this.isFocused=!0,this.open(!1))}_handleBlur(){this.isFocused=!1,this.close()}_getAttributeOptions(){let t={},e=this.el.getAttribute("data-tooltip"),n=this.el.getAttribute("data-position");return e&&(t.html=e),n&&(t.position=n),t}}M.Tooltip=o,M.jQueryLoaded&&M.initializeJqueryWrapper(o,"tooltip","M_Tooltip")}(cash,M.anime)},940:()=>{!function(t){"use strict";var e=e||{},n=document.querySelectorAll.bind(document);function i(t){var e="";for(var n in t)t.hasOwnProperty(n)&&(e+=n+":"+t[n]+";");return e}var o={duration:750,show:function(t,e){if(2===t.button)return!1;var n=e||this,r=document.createElement("div");r.className="waves-ripple",n.appendChild(r);var s,a,l,h,u,c=(h={top:0,left:0},u=(s=n)&&s.ownerDocument,a=u.documentElement,void 0!==s.getBoundingClientRect&&(h=s.getBoundingClientRect()),l=function(t){return null!==(e=t)&&e===e.window?t:9===t.nodeType&&t.defaultView;var e}(u),{top:h.top+l.pageYOffset-a.clientTop,left:h.left+l.pageXOffset-a.clientLeft}),d=t.pageY-c.top,p=t.pageX-c.left,m="scale("+n.clientWidth/100*10+")";"touches"in t&&(d=t.touches[0].pageY-c.top,p=t.touches[0].pageX-c.left),r.setAttribute("data-hold",Date.now()),r.setAttribute("data-scale",m),r.setAttribute("data-x",p),r.setAttribute("data-y",d);var f={top:d+"px",left:p+"px"};r.className=r.className+" waves-notransition",r.setAttribute("style",i(f)),r.className=r.className.replace("waves-notransition",""),f["-webkit-transform"]=m,f["-moz-transform"]=m,f["-ms-transform"]=m,f["-o-transform"]=m,f.transform=m,f.opacity="1",f["-webkit-transition-duration"]=o.duration+"ms",f["-moz-transition-duration"]=o.duration+"ms",f["-o-transition-duration"]=o.duration+"ms",f["transition-duration"]=o.duration+"ms",f["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",r.setAttribute("style",i(f))},hide:function(t){r.touchup(t);var e=this,n=(e.clientWidth,null),s=e.getElementsByClassName("waves-ripple");if(!(s.length>0))return!1;var a=(n=s[s.length-1]).getAttribute("data-x"),l=n.getAttribute("data-y"),h=n.getAttribute("data-scale"),u=350-(Date.now()-Number(n.getAttribute("data-hold")));u<0&&(u=0),setTimeout((function(){var t={top:l+"px",left:a+"px",opacity:"0","-webkit-transition-duration":o.duration+"ms","-moz-transition-duration":o.duration+"ms","-o-transition-duration":o.duration+"ms","transition-duration":o.duration+"ms","-webkit-transform":h,"-moz-transform":h,"-ms-transform":h,"-o-transform":h,transform:h};n.setAttribute("style",i(t)),setTimeout((function(){try{e.removeChild(n)}catch(t){return!1}}),o.duration)}),u)},wrapInput:function(t){for(var e=0;e0&&(r.touches-=1)}),500):"mousedown"===t.type&&r.touches>0&&(e=!1),e},touchup:function(t){r.allowEvent(t)}};function s(e){var n=function(t){if(!1===r.allowEvent(t))return null;for(var e=null,n=t.target||t.srcElement;null!==n.parentNode;){if(!(n instanceof SVGElement)&&-1!==n.className.indexOf("waves-effect")){e=n;break}n=n.parentNode}return e}(e);null!==n&&(o.show(e,n),"ontouchstart"in t&&(n.addEventListener("touchend",o.hide,!1),n.addEventListener("touchcancel",o.hide,!1)),n.addEventListener("mouseup",o.hide,!1),n.addEventListener("mouseleave",o.hide,!1),n.addEventListener("dragend",o.hide,!1))}e.displayEffect=function(e){"duration"in(e=e||{})&&(o.duration=e.duration),o.wrapInput(n(".waves-effect")),"ontouchstart"in t&&document.body.addEventListener("touchstart",s,!1),document.body.addEventListener("mousedown",s,!1)},e.attach=function(e){"input"===e.tagName.toLowerCase()&&(o.wrapInput([e]),e=e.parentNode),"ontouchstart"in t&&e.addEventListener("touchstart",s,!1),e.addEventListener("mousedown",s,!1)},t.Waves=e,document.addEventListener("DOMContentLoaded",(function(){e.displayEffect()}),!1)}(window)},377:(t,e,n)=>{var i=n(832),o=n(652),r=n(801),s=n(30),a=n(618),l=n(49),h=n(971);h.alea=i,h.xor128=o,h.xorwow=r,h.xorshift7=s,h.xor4096=a,h.tychei=l,t.exports=h},832:function(t,e,n){var i;!function(t,o,r){function s(t){var e,n=this,i=(e=4022871197,function(t){t=String(t);for(var n=0;n>>0,e=(i*=e)>>>0,e+=4294967296*(i-=e)}return 2.3283064365386963e-10*(e>>>0)});n.next=function(){var t=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=t-(n.c=0|t)},n.c=1,n.s0=i(" "),n.s1=i(" "),n.s2=i(" "),n.s0-=i(t),n.s0<0&&(n.s0+=1),n.s1-=i(t),n.s1<0&&(n.s1+=1),n.s2-=i(t),n.s2<0&&(n.s2+=1),i=null}function a(t,e){return e.c=t.c,e.s0=t.s0,e.s1=t.s1,e.s2=t.s2,e}function l(t,e){var n=new s(t),i=e&&e.state,o=n.next;return o.int32=function(){return 4294967296*n.next()|0},o.double=function(){return o()+11102230246251565e-32*(2097152*o()|0)},o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(i=function(){return l}.call(e,n,e,o))||(o.exports=i):this.alea=l}(0,t=n.nmd(t),n.amdD)},49:function(t,e,n){var i;!function(t,o,r){function s(t){var e=this,n="";e.next=function(){var t=e.b,n=e.c,i=e.d,o=e.a;return t=t<<25^t>>>7^n,n=n-i|0,i=i<<24^i>>>8^o,o=o-t|0,e.b=t=t<<20^t>>>12^n,e.c=n=n-i|0,e.d=i<<16^n>>>16^o,e.a=o-t|0},e.a=0,e.b=0,e.c=-1640531527,e.d=1367130551,t===Math.floor(t)?(e.a=t/4294967296|0,e.b=0|t):n+=t;for(var i=0;i>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(i=function(){return l}.call(e,n,e,o))||(o.exports=i):this.tychei=l}(0,t=n.nmd(t),n.amdD)},652:function(t,e,n){var i;!function(t,o,r){function s(t){var e=this,n="";e.x=0,e.y=0,e.z=0,e.w=0,e.next=function(){var t=e.x^e.x<<11;return e.x=e.y,e.y=e.z,e.z=e.w,e.w^=e.w>>>19^t^t>>>8},t===(0|t)?e.x=t:n+=t;for(var i=0;i>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(i=function(){return l}.call(e,n,e,o))||(o.exports=i):this.xor128=l}(0,t=n.nmd(t),n.amdD)},618:function(t,e,n){var i;!function(t,o,r){function s(t){var e=this;e.next=function(){var t,n,i=e.w,o=e.X,r=e.i;return e.w=i=i+1640531527|0,n=o[r+34&127],t=o[r=r+1&127],n^=n<<13,t^=t<<17,n^=n>>>15,t^=t>>>12,n=o[r]=n^t,e.i=r,n+(i^i>>>16)|0},function(t,e){var n,i,o,r,s,a=[],l=128;for(e===(0|e)?(i=e,e=null):(e+="\0",i=0,l=Math.max(l,e.length)),o=0,r=-32;r>>15,i^=i<<4,i^=i>>>13,r>=0&&(s=s+1640531527|0,o=0==(n=a[127&r]^=i+s)?o+1:0);for(o>=128&&(a[127&(e&&e.length||0)]=-1),o=127,r=512;r>0;--r)i=a[o+34&127],n=a[o=o+1&127],i^=i<<13,n^=n<<17,i^=i>>>15,n^=n>>>12,a[o]=i^n;t.w=s,t.X=a,t.i=o}(e,t)}function a(t,e){return e.i=t.i,e.w=t.w,e.X=t.X.slice(),e}function l(t,e){null==t&&(t=+new Date);var n=new s(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&(i.X&&a(i,n),o.state=function(){return a(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(i=function(){return l}.call(e,n,e,o))||(o.exports=i):this.xor4096=l}(0,t=n.nmd(t),n.amdD)},30:function(t,e,n){var i;!function(t,o,r){function s(t){var e=this;e.next=function(){var t,n,i=e.x,o=e.i;return t=i[o],n=(t^=t>>>7)^t<<24,n^=(t=i[o+1&7])^t>>>10,n^=(t=i[o+3&7])^t>>>3,n^=(t=i[o+4&7])^t<<7,t=i[o+7&7],n^=(t^=t<<13)^t<<9,i[o]=n,e.i=o+1&7,n},function(t,e){var n,i=[];if(e===(0|e))i[0]=e;else for(e=""+e,n=0;n0;--n)t.next()}(e,t)}function a(t,e){return e.x=t.x.slice(),e.i=t.i,e}function l(t,e){null==t&&(t=+new Date);var n=new s(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&(i.x&&a(i,n),o.state=function(){return a(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(i=function(){return l}.call(e,n,e,o))||(o.exports=i):this.xorshift7=l}(0,t=n.nmd(t),n.amdD)},801:function(t,e,n){var i;!function(t,o,r){function s(t){var e=this,n="";e.next=function(){var t=e.x^e.x>>>2;return e.x=e.y,e.y=e.z,e.z=e.w,e.w=e.v,(e.d=e.d+362437|0)+(e.v=e.v^e.v<<4^t^t<<1)|0},e.x=0,e.y=0,e.z=0,e.w=0,e.v=0,t===(0|t)?e.x=t:n+=t;for(var i=0;i>>4),e.next()}function a(t,e){return e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e.v=t.v,e.d=t.d,e}function l(t,e){var n=new s(t),i=e&&e.state,o=function(){return(n.next()>>>0)/4294967296};return o.double=function(){do{var t=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===t);return t},o.int32=n.next,o.quick=o,i&&("object"==typeof i&&a(i,n),o.state=function(){return a(n,{})}),o}o&&o.exports?o.exports=l:n.amdD&&n.amdO?void 0===(i=function(){return l}.call(e,n,e,o))||(o.exports=i):this.xorwow=l}(0,t=n.nmd(t),n.amdD)},971:function(t,e,n){var i;!function(o,r,s){var a,l=256,h=s.pow(l,6),u=s.pow(2,52),c=2*u,d=255;function p(t,e,n){var i=[],d=v(g((e=1==e?{entropy:!0}:e||{}).entropy?[t,y(r)]:null==t?function(){try{var t;return a&&(t=a.randomBytes)?t=t(l):(t=new Uint8Array(l),(o.crypto||o.msCrypto).getRandomValues(t)),y(t)}catch(t){var e=o.navigator,n=e&&e.plugins;return[+new Date,o,n,o.screen,y(r)]}}():t,3),i),p=new m(i),w=function(){for(var t=p.g(6),e=h,n=0;t=c;)t/=2,e/=2,n>>>=1;return(t+n)/e};return w.int32=function(){return 0|p.g(4)},w.quick=function(){return p.g(4)/4294967296},w.double=w,v(y(p.S),r),(e.pass||n||function(t,e,n,i){return i&&(i.S&&f(i,p),t.state=function(){return f(p,{})}),n?(s.random=t,e):t})(w,d,"global"in e?e.global:this==s,e.state)}function m(t){var e,n=t.length,i=this,o=0,r=i.i=i.j=0,s=i.S=[];for(n||(t=[n++]);o{}},e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={id:i,loaded:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.amdO={},n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{"use strict";var t=n(713),e=n.n(t),i=n(8),o=n.n(i),r=n(683),s=n.n(r),a=n(395),l=n.n(a),h=n(667),u=n.n(h),c=n(675),d=n.n(c),p=n(462),m=n.n(p),f=n(321),g=n.n(f),v=n(550),y=n.n(v),w=n(874),b=n.n(w),_=n(523),L=n.n(_),x=n(978),E=n.n(x),C=n(906),k=n.n(C),B=n(940),T=n.n(B);Math.seedrandom=n(377);var A=n(513);function O(t){return t&&"object"===o()(t)&&!Array.isArray(t)}function D(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o1&&(t[e(i[0])]=e(i[1]))})),t}function G(t){var e;switch(o()(S[t].mini)){case"string":e=S[t].mini;break;case"boolean":e=S[t].mini?"logos/".concat(t,"-MINI.svg"):S[t].logo?S[t].logo:"logos/".concat(t,".svg");break;case"undefined":e=S[t].logo?S[t].logo:"logos/".concat(t,".svg");break;default:throw new Error('Invalid mini value "'.concat(o()(S[t].mini),'" for ').concat(S[t]," preset"))}document.getElementById("logoContainer").style.display="flex",document.getElementById("logo").src=e,document.getElementById("logo").alt=t,document.getElementById("logo").title=t}function U(){if(document.getElementById("pass").value){Math.seedrandom(document.getElementById("pass").value);var t="HSL(".concat(window.getRandomArbitrary(0,360),", ").concat(window.getRandomArbitrary(60,100),"%, ").concat(window.getRandomArbitrary(45,80),"%)");document.getElementById("pass").style.setProperty("--accentColor",t)}else document.getElementById("pass").removeAttribute("style")}window.generate=function(){document.getElementById("result").value=A.process(document.getElementById("app").value.trim(),document.getElementById("pass").value,Math.trunc(document.getElementById("length").value),W,q)},window.changeTheme=function(t){I[t]||(console.error('Invalid theme "'.concat(t,'", defaulting to ').concat(P)),t=P),Y("theme",t),document.documentElement.style.setProperty("--accentColor",I[t].accent),document.documentElement.style.setProperty("--lightAccent",I[t].lightAccent),document.documentElement.style.setProperty("--textColor",I[t].text),document.documentElement.style.setProperty("--backgroundColor",I[t].background),document.documentElement.style.setProperty("--internalColor",I[t].internal),document.documentElement.style.setProperty("--incorrectColor",I[t].incorrect),document.documentElement.style.setProperty("--correctColor",I[t].correct),document.documentElement.style.setProperty("--inputColor",I[t].inputColor),document.documentElement.style.setProperty("--linkColor",I[t].linkColor),document.documentElement.style.setProperty("--highlightColor",I[t].highlightColor)},window.changeTheme(j.theme?j.theme:P),window.passwordToggle=function(){document.getElementById("passwordToggle").checked?document.getElementById("pass").type="password":document.getElementById("pass").type="text"},window.copy=function(){var t=document.getElementById("result").value;if(""===t)M.toast({html:"You have no password to copy.",classes:"warning"});else{var e=document.createElement("input");e.setAttribute("type","text"),e.setAttribute("value",t),(e=document.body.appendChild(e)).select(),document.execCommand("copy"),e.remove(),M.toast({html:"Successfully copied!",displayLength:4e3,classes:"success"})}},window.resultToggle=function(){document.getElementById("resultToggle").checked?document.getElementById("result").type="password":document.getElementById("result").type="text"},window.getRandomArbitrary=function(t,e){return Math.trunc(Math.random()*(e-t)+t)},window.changeLang=function(t,e,n){if(!$[t])throw new Error('Invalid language "'.concat(t,'"'));e&&Y("lang",t);var i="en-GB"===t?"/":"/"+t+R;window.location.pathname.toLowerCase()!==i.toLowerCase()&&(window.location.pathname=i)},window.setMode=function(t){q=t,Y("mode",t),window.generate()},window.fixLength=function(){var t=document.getElementById("length").value;minLength<=t&&t<=maxLength||(t>maxLength?document.getElementById("length").value=maxLength:te?1:0}}),document.getElementById("app").focus(),document.querySelector("label[for='app']").classList.add("active");var l=Q();if(l.app){var h=String(l.app);document.getElementById("app").value=h,S[h]&&(document.getElementById("app").click(),document.querySelector(".autocomplete-content.dropdown-content :first-child").click()),window.generate(),document.getElementById("pass").focus(),document.querySelector("label[for='pass']").classList.add("active")}switch(document.body.addEventListener("keydown",(function(t){(t.ctrlKey||t.metaKey)&&"KeyC"===t.code&&""===window.getSelection().toString()&&window.copy()})),location.hostname){case"dev.cloverleaf.app":document.title+=" - Dev Build";var u=document.createElement("link");u.rel="shortcut icon",u.href="dev.ico",document.head.appendChild(u)}},window.appInput=function(){W=!1,document.getElementById("logoContainer").style.display="none",document.getElementById("logo").removeAttribute("src"),document.getElementById("logo").removeAttribute("alt"),document.getElementById("logo").removeAttribute("title"),minLength=defaultMinLength,maxLength=defaultMaxLength,document.getElementById("length").max=maxLength,document.getElementById("length").min=minLength,document.getElementById("length").value=N,window.generate()},window.passwordUp=function(){U(),!0===j.store&&(document.getElementById("pass").value?Y("password",document.getElementById("pass").value):localStorage.removeItem("password")),window.generate()},window.addEventListener("beforeinstallprompt",(function(t){H=t,t.preventDefault(),document.getElementById("install").style=""})),window.appDown=function(t){("Enter"===t.key||"Enter"===t.code||13===t.keyCode)&&document.querySelector(".autocomplete-content.dropdown-content").offsetHeight>0&&null===document.querySelector(".autocomplete-content.dropdown-content .active")&&document.querySelector(".autocomplete-content.dropdown-content :first-child").click()},window.sessionToggle=function(){document.getElementById("session-toggle").checked?(Y("store",!0),document.getElementById("pass").value?Y("password",document.getElementById("pass").value):localStorage.removeItem("password")):(Y("store",!1),localStorage.removeItem("password"))},window.getVar=function(t){return eval(t)},window.lengthPref=function(t){defaultMinLength<=t&&t<=defaultMaxLength||(t>defaultMaxLength?t=defaultMaxLength:tli{list-style-type:none}a{-webkit-tap-highlight-color:transparent}.valign-wrapper{display:flex;align-items:center}.clearfix{clear:both}.z-depth-0{box-shadow:none!important}.btn,.btn-floating,.btn-large,.btn-small,.dropdown-content,.sidenav,.toast,.z-depth-1{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2)}.btn-floating:hover,.btn-large:hover,.btn-small:hover,.btn:hover,.z-depth-1-half{box-shadow:0 3px 3px 0 rgba(0,0,0,.14),0 1px 7px 0 rgba(0,0,0,.12),0 3px 1px -1px rgba(0,0,0,.2)}.z-depth-2{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.3)}.z-depth-3{box-shadow:0 8px 17px 2px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.2)}.z-depth-4{box-shadow:0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -7px rgba(0,0,0,.2)}.z-depth-5{box-shadow:0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12),0 11px 15px -7px rgba(0,0,0,.2)}.hoverable{transition:box-shadow .25s}.hoverable:hover{box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width:992px){.pagination{width:100%}.pagination li.next,.pagination li.prev{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:hsla(0,0%,100%,.7)}.breadcrumb [class*=mdi-],.breadcrumb [class^=mdi-],.breadcrumb i,.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:"";color:hsla(0,0%,100%,.7);vertical-align:top;display:inline-block;font-family:Material Icons;font-weight:400;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax-container .parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax-container .parallax img{opacity:0;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;transform:translateZ(0);transform:translateX(-50%)}.pin-bottom,.pin-top{position:relative}.pinned{position:fixed!important}.fade-in,ul.staggered-list li{opacity:0}.fade-in{transform-origin:0 50%}@media only screen and (max-width:600px){.hide-on-small-and-down,.hide-on-small-only{display:none!important}}@media only screen and (max-width:992px){.hide-on-med-and-down{display:none!important}}@media only screen and (min-width:601px){.hide-on-med-and-up{display:none!important}}@media only screen and (min-width:600px)and (max-width:992px){.hide-on-med-only{display:none!important}}@media only screen and (min-width:993px){.hide-on-large-only{display:none!important}}@media only screen and (min-width:1201px){.hide-on-extra-large-only{display:none!important}}@media only screen and (min-width:1201px){.show-on-extra-large{display:block!important}}@media only screen and (min-width:993px){.show-on-large{display:block!important}}@media only screen and (min-width:600px)and (max-width:992px){.show-on-medium{display:block!important}}@media only screen and (max-width:600px){.show-on-small{display:block!important}}@media only screen and (min-width:601px){.show-on-medium-and-up{display:block!important}}@media only screen and (max-width:992px){.show-on-medium-and-down{display:block!important}}@media only screen and (max-width:600px){.center-on-small-only{text-align:center}}.page-footer{padding-top:20px;color:#fff;background-color:#ee6e73}.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:flex;align-items:center;justify-content:space-between;padding:10px 0;color:hsla(0,0%,100%,.8);background-color:rgba(51,51,51,.08)}table,td,th{border:none}table{width:100%;display:table;border-collapse:collapse;border-spacing:0}table.striped tr{border-bottom:none}table.striped>tbody>tr:nth-child(odd){background-color:hsla(0,0%,94.9%,.5)}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:hsla(0,0%,94.9%,.5)}table.centered tbody tr td,table.centered thead tr th{text-align:center}tr{border-bottom:1px solid rgba(0,0,0,.12)}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width:992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:" "}table.responsive-table td,table.responsive-table th{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th:before{content:" "}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{border-bottom:none;padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid rgba(0,0,0,.12)}}.collection{margin:.5rem 0 1rem;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar:not(.circle-clipper)>.circle,.collection .collection-item.avatar :not(.circle-clipper)>.circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#3f51b5;color:#fff}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;transition:.25s;color:#3f51b5}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#3f51b5}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container embed,.video-container iframe,.video-container object{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#d1d6ef;border-radius:2px;margin:.5rem 0 1rem;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;transition:width .3s linear}.progress .determinate,.progress .indeterminate{background-color:#3f51b5}.progress .indeterminate:before{-webkit-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.progress .indeterminate:after,.progress .indeterminate:before{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right}.progress .indeterminate:after{-webkit-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}.hide{display:none!important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left!important}.right{float:right!important}.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0!important}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width:601px){.container{width:85%}}@media only screen and (min-width:993px){.container{width:70%}}.col .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*=pull-],.row .col[class*=push-]{position:relative}.row .col.s1{width:8.3333333333%}.row .col.s1,.row .col.s2{margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%}.row .col.s3{width:25%}.row .col.s3,.row .col.s4{margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%}.row .col.s5{width:41.6666666667%}.row .col.s5,.row .col.s6{margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%}.row .col.s7{width:58.3333333333%}.row .col.s7,.row .col.s8{margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%}.row .col.s9{width:75%}.row .col.s9,.row .col.s10{margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%}.row .col.s11{width:91.6666666667%}.row .col.s11,.row .col.s12{margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width:601px){.row .col.m1{width:8.3333333333%}.row .col.m1,.row .col.m2{margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%}.row .col.m3{width:25%}.row .col.m3,.row .col.m4{margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%}.row .col.m5{width:41.6666666667%}.row .col.m5,.row .col.m6{margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%}.row .col.m7{width:58.3333333333%}.row .col.m7,.row .col.m8{margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%}.row .col.m9{width:75%}.row .col.m9,.row .col.m10{margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%}.row .col.m11{width:91.6666666667%}.row .col.m11,.row .col.m12{margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width:993px){.row .col.l1{width:8.3333333333%}.row .col.l1,.row .col.l2{margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%}.row .col.l3{width:25%}.row .col.l3,.row .col.l4{margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%}.row .col.l5{width:41.6666666667%}.row .col.l5,.row .col.l6{margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%}.row .col.l7{width:58.3333333333%}.row .col.l7,.row .col.l8{margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%}.row .col.l9{width:75%}.row .col.l9,.row .col.l10{margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%}.row .col.l11{width:91.6666666667%}.row .col.l11,.row .col.l12{margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}@media only screen and (min-width:1201px){.row .col.xl1{width:8.3333333333%}.row .col.xl1,.row .col.xl2{margin-left:auto;left:auto;right:auto}.row .col.xl2{width:16.6666666667%}.row .col.xl3{width:25%}.row .col.xl3,.row .col.xl4{margin-left:auto;left:auto;right:auto}.row .col.xl4{width:33.3333333333%}.row .col.xl5{width:41.6666666667%}.row .col.xl5,.row .col.xl6{margin-left:auto;left:auto;right:auto}.row .col.xl6{width:50%}.row .col.xl7{width:58.3333333333%}.row .col.xl7,.row .col.xl8{margin-left:auto;left:auto;right:auto}.row .col.xl8{width:66.6666666667%}.row .col.xl9{width:75%}.row .col.xl9,.row .col.xl10{margin-left:auto;left:auto;right:auto}.row .col.xl10{width:83.3333333333%}.row .col.xl11{width:91.6666666667%}.row .col.xl11,.row .col.xl12{margin-left:auto;left:auto;right:auto}.row .col.xl12{width:100%}.row .col.offset-xl1{margin-left:8.3333333333%}.row .col.pull-xl1{right:8.3333333333%}.row .col.push-xl1{left:8.3333333333%}.row .col.offset-xl2{margin-left:16.6666666667%}.row .col.pull-xl2{right:16.6666666667%}.row .col.push-xl2{left:16.6666666667%}.row .col.offset-xl3{margin-left:25%}.row .col.pull-xl3{right:25%}.row .col.push-xl3{left:25%}.row .col.offset-xl4{margin-left:33.3333333333%}.row .col.pull-xl4{right:33.3333333333%}.row .col.push-xl4{left:33.3333333333%}.row .col.offset-xl5{margin-left:41.6666666667%}.row .col.pull-xl5{right:41.6666666667%}.row .col.push-xl5{left:41.6666666667%}.row .col.offset-xl6{margin-left:50%}.row .col.pull-xl6{right:50%}.row .col.push-xl6{left:50%}.row .col.offset-xl7{margin-left:58.3333333333%}.row .col.pull-xl7{right:58.3333333333%}.row .col.push-xl7{left:58.3333333333%}.row .col.offset-xl8{margin-left:66.6666666667%}.row .col.pull-xl8{right:66.6666666667%}.row .col.push-xl8{left:66.6666666667%}.row .col.offset-xl9{margin-left:75%}.row .col.pull-xl9{right:75%}.row .col.push-xl9{left:75%}.row .col.offset-xl10{margin-left:83.3333333333%}.row .col.pull-xl10{right:83.3333333333%}.row .col.push-xl10{left:83.3333333333%}.row .col.offset-xl11{margin-left:91.6666666667%}.row .col.pull-xl11{right:91.6666666667%}.row .col.push-xl11{left:91.6666666667%}.row .col.offset-xl12{margin-left:100%}.row .col.pull-xl12{right:100%}.row .col.push-xl12{left:100%}}a{text-decoration:none}html{line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:400;color:rgba(0,0,0,.87)}@media only screen and (min-width:0){html{font-size:14px}}@media only screen and (min-width:992px){html{font-size:14.5px}}@media only screen and (min-width:1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.3}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;margin:2.8rem 0 1.68rem}h1,h2{line-height:110%}h2{font-size:3.56rem;margin:2.3733333333rem 0 1.424rem}h3{font-size:2.92rem;margin:1.9466666667rem 0 1.168rem}h3,h4{line-height:110%}h4{font-size:2.28rem;margin:1.52rem 0 .912rem}h5{font-size:1.64rem;margin:1.0933333333rem 0 .656rem}h5,h6{line-height:110%}h6{font-size:1.15rem;margin:.7666666667rem 0 .46rem}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light{font-weight:300}.thin{font-weight:200}@media only screen and (min-width:360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width:390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width:420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width:450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width:480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width:510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width:540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width:570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width:600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width:630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width:660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width:690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width:720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width:750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width:780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width:810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width:840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width:870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width:900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width:930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width:960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width:360px){.flow-text{font-size:1.2rem}}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width:600px){#toast-container{min-width:100%;bottom:0}}@media only screen and (min-width:601px)and (max-width:992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width:993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;background-color:#fff;background-color:var(--internalColor);padding:10px 25px;font-size:1.1rem;font-weight:300;color:#535353;color:var(--textColor);display:flex;align-items:center;justify-content:space-between;cursor:default}.toast .toast-action{color:#00539b;color:var(--linkColor);font-weight:500;margin-right:-25px;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width:600px){.toast{width:100%;border-radius:0}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover,.tabs.tabs-transparent .tab a{color:hsla(0,0%,100%,.7)}.tabs.tabs-transparent .tab a.active,.tabs.tabs-transparent .tab a:hover{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:flex}.tabs.tabs-fixed-width .tab{flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(0,0,0,.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;transition:color .28s ease,background-color .28s ease}.tabs .tab a:focus,.tabs .tab a:focus.active{background-color:rgba(63,81,181,.2);outline:none}.tabs .tab a.active,.tabs .tab a:hover{background-color:transparent;color:#000}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(0,0,0,.4);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;will-change:left,right}@media only screen and (max-width:992px){.tabs{display:flex}.tabs .tab{flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none}.backdrop,.material-tooltip{opacity:0;position:absolute;visibility:hidden;background-color:#323232}.backdrop{height:7px;width:14px;border-radius:0 0 50% 50%;z-index:-1;transform-origin:50% 0}.btn,.btn-flat,.btn-large,.btn-small{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 16px;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn-flat.disabled,.btn-flat:disabled,.btn-flat[disabled],.btn-floating.disabled,.btn-floating:disabled,.btn-floating[disabled],.btn-large.disabled,.btn-large:disabled,.btn-large[disabled],.btn-small.disabled,.btn-small:disabled,.btn-small[disabled],.btn.disabled,.btn:disabled,.btn[disabled]{pointer-events:none;background-color:#dfdfdf!important;box-shadow:none;color:#9f9f9f!important;cursor:default}.btn-flat.disabled:hover,.btn-flat:disabled:hover,.btn-flat[disabled]:hover,.btn-floating.disabled:hover,.btn-floating:disabled:hover,.btn-floating[disabled]:hover,.btn-large.disabled:hover,.btn-large:disabled:hover,.btn-large[disabled]:hover,.btn-small.disabled:hover,.btn-small:disabled:hover,.btn-small[disabled]:hover,.btn.disabled:hover,.btn:disabled:hover,.btn[disabled]:hover{background-color:#dfdfdf!important;color:#9f9f9f!important}.btn,.btn-flat,.btn-floating,.btn-large,.btn-small{font-size:14px;outline:0}.btn-flat i,.btn-floating i,.btn-large i,.btn-small i,.btn i{font-size:1.3rem;line-height:inherit}.btn-floating:focus,.btn-large:focus,.btn-small:focus,.btn:focus{background-color:#32408f}.btn,.btn-large,.btn-small{text-decoration:none;color:#fff;background-color:#3f51b5;text-align:center;letter-spacing:.5px;transition:background-color .2s ease-out;cursor:pointer}.btn-large:hover,.btn-small:hover,.btn:hover{background-color:#4d5ec1}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;border-radius:50%;transition:background-color .3s;cursor:pointer;vertical-align:middle}.btn-floating,.btn-floating:hover{background-color:#3f51b5}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px;padding:0}.btn-floating.btn-large.halfway-fab{bottom:-28px}.btn-floating.btn-large i{line-height:56px}.btn-floating.btn-small{width:32.4px;height:32.4px}.btn-floating.btn-small.halfway-fab{bottom:-16.2px}.btn-floating.btn-small i{line-height:32.4px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:-20px}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:997}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.direction-left,.fixed-action-btn.direction-right{padding:0 0 0 15px}.fixed-action-btn.direction-left ul,.fixed-action-btn.direction-right ul{text-align:right;right:64px;top:50%;transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.direction-left ul li,.fixed-action-btn.direction-right ul li{display:inline-block;margin:7.5px 15px 0 0}.fixed-action-btn.direction-right{padding:0 15px 0 0}.fixed-action-btn.direction-right ul{text-align:left;direction:rtl;left:64px;right:auto}.fixed-action-btn.direction-right ul li{margin:7.5px 0 0 15px}.fixed-action-btn.direction-bottom{padding:0 0 15px}.fixed-action-btn.direction-bottom ul{top:64px;bottom:auto;display:flex;flex-direction:column-reverse}.fixed-action-btn.direction-bottom ul li{margin:15px 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:flex;top:0;bottom:0;z-index:1}.fixed-action-btn.toolbar ul li{flex:1;display:inline-block;margin:0;height:100%;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#3f51b5;border-radius:50%;transform:scale(0)}.btn-flat{background-color:transparent;color:#343434;cursor:pointer;transition:background-color .2s}.btn-flat,.btn-flat:focus,.btn-flat:hover{box-shadow:none}.btn-flat:focus{background-color:rgba(0,0,0,.1)}.btn-flat.btn-flat[disabled],.btn-flat.disabled{background-color:transparent!important;color:#b3b3b3!important;cursor:default}.btn-large{height:54px;line-height:54px;font-size:15px;padding:0 28px}.btn-large i{font-size:1.6rem}.btn-small{height:32.4px;line-height:32.4px;font-size:13px}.btn-small i{font-size:1.2rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;overflow-y:auto;opacity:0;position:absolute;left:0;top:0;z-index:9999;transform-origin:0 0}.dropdown-content:focus{outline:0}.dropdown-content li{clear:both;color:rgba(0,0,0,.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left}.dropdown-content li.active,.dropdown-content li:hover{background-color:#eee}.dropdown-content li:focus{outline:none}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#3f51b5;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit;float:left;margin:0 24px 0 0;width:24px}body.keyboard-focused .dropdown-content li:focus{background-color:#dadada}.input-field.col .dropdown-content [type=checkbox]+label{top:1px;left:0;height:18px;transform:none}/*! - * Waves v0.6.0 - * http://fian.my.id/Waves - * - * Copyright 2014 Alfiana E. Sibuea and other contributors - * Released under the MIT license - * https://github.com/fians/Waves/blob/master/LICENSE - */.dropdown-trigger,.waves-effect{cursor:pointer}.waves-effect{position:relative;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,.2);transition:all .7s ease-out;transition-property:transform,opacity;transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:hsla(0,0%,100%,.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,.7)}.waves-effect input[type=button],.waves-effect input[type=reset],.waves-effect input[type=submit]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{transition:none!important}.waves-circle{transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 0)}.waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.sidenav{position:fixed;width:300px;left:0;top:0;margin:0;transform:translateX(-100%);height:calc(100% + 60px);height:100%;padding-bottom:60px;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateX(-105%)}.sidenav.right-aligned{right:0;transform:translateX(105%);left:auto;transform:translateX(100%)}.sidenav .collapsible{margin:0}.sidenav li{float:none;line-height:48px}.sidenav li.active{background-color:rgba(0,0,0,.05)}.sidenav li>a{color:rgba(0,0,0,.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.sidenav li>a:hover{background-color:rgba(0,0,0,.05)}.sidenav li>a.btn,.sidenav li>a.btn-flat,.sidenav li>a.btn-floating,.sidenav li>a.btn-large,.sidenav li>a.btn-small{margin:10px 15px}.sidenav li>a.btn,.sidenav li>a.btn-floating,.sidenav li>a.btn-large,.sidenav li>a.btn-small{color:#fff}.sidenav li>a.btn-flat{color:#343434}.sidenav li>a.btn-large:hover,.sidenav li>a.btn-small:hover,.sidenav li>a.btn:hover{background-color:#4d5ec1}.sidenav li>a.btn-floating:hover{background-color:#3f51b5}.sidenav li>a>[class^=mdi-],.sidenav li>a>i,.sidenav li>a>i.material-icons,.sidenav li>a li>a>[class*=mdi-]{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,.54)}.sidenav .divider{margin:8px 0 0}.sidenav .subheader{cursor:auto;pointer-events:none;color:rgba(0,0,0,.54);font-size:14px;font-weight:500;line-height:48px}.sidenav .subheader:hover{background-color:transparent}.sidenav .user-view{position:relative;padding:32px 32px 0;margin-bottom:8px}.sidenav .user-view>a{height:auto;padding:0}.sidenav .user-view>a:hover{background-color:transparent}.sidenav .user-view .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.sidenav .user-view .circle,.sidenav .user-view .email,.sidenav .user-view .name{display:block}.sidenav .user-view .circle{height:64px;width:64px}.sidenav .user-view .email,.sidenav .user-view .name{font-size:14px;line-height:24px}.sidenav .user-view .name{margin-top:16px;font-weight:500}.sidenav .user-view .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.drag-target.right-aligned{right:0}.sidenav.sidenav-fixed{left:0;transform:translateX(0);position:fixed}.sidenav.sidenav-fixed.right-aligned{right:0;left:auto}@media only screen and (max-width:992px){.sidenav.sidenav-fixed{transform:translateX(-105%)}.sidenav.sidenav-fixed.right-aligned{transform:translateX(105%)}.sidenav>a{padding:0 16px}.sidenav .user-view{padding:16px 16px 0}}.sidenav .collapsible-body>ul:not(.collapsible)>li.active,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.sidenav .collapsible-body>ul:not(.collapsible)>li.active a,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}.sidenav .collapsible-body{padding:0}.sidenav-overlay{position:fixed;top:0;left:0;right:0;opacity:0;height:120vh;background-color:rgba(0,0,0,.5);z-index:997;display:none}.switch,.switch *{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever:after,.switch label input[type=checkbox]:checked+.lever:before{left:18px}.switch label .lever{content:"";display:inline-block;position:relative;width:36px;height:14px;background-color:rgba(0,0,0,.38);border-radius:15px;transition:background .3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after,.switch label .lever:before{content:"";position:absolute;display:inline-block;width:20px;height:20px;border-radius:50%;left:0;top:-3px;transition:left .3s ease,background .3s ease,box-shadow .1s ease,transform .1s ease}.switch label .lever:before{background-color:rgba(63,81,181,.15)}.switch label .lever:after{background-color:#f1f1f1;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}input[type=checkbox]:checked:not(:disabled).tabbed:focus~.lever:before,input[type=checkbox]:checked:not(:disabled)~.lever:active:before{background-color:rgba(63,81,181,.15)}input[type=checkbox]:not(:disabled).tabbed:focus~.lever:before,input[type=checkbox]:not(:disabled)~.lever:active:before{transform:scale(2.4);background-color:rgba(0,0,0,.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default;background-color:rgba(0,0,0,.12)}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#949494}select{display:none}select.browser-default{display:block}select{width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper.invalid+label,.select-wrapper.valid+label{width:100%;pointer-events:none}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #535353;outline:none;height:3rem;line-height:3rem;width:100%;font-size:16px;margin:0 0 8px;padding:0;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}.select-wrapper input.select-dropdown:focus{border-bottom:1px solid #3f51b5}.select-wrapper .caret{position:absolute;right:0;top:0;bottom:0;margin:auto 0;z-index:0;fill:rgba(0,0,0,.87)}.select-wrapper+label{position:absolute;top:-26px;font-size:.8rem}.select-wrapper.disabled+label,select:disabled{color:rgba(0,0,0,.42)}.select-wrapper.disabled .caret{fill:rgba(0,0,0,.42)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,.42);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-wrapper i{color:rgba(0,0,0,.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,.3);background-color:transparent}.select-dropdown.dropdown-content li:hover,body.keyboard-focused .select-dropdown.dropdown-content li:focus{background-color:rgba(0,0,0,.08)}.select-dropdown.dropdown-content li.selected{background-color:rgba(0,0,0,.03)}.prefix~.select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix~label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,.4)}.select-dropdown li.optgroup~li.optgroup-option{padding-left:1rem}::-moz-placeholder{color:#868686}:-ms-input-placeholder{color:#868686}::placeholder{color:#868686}input:not([type]),input[type=date]:not(.browser-default),input[type=datetime-local]:not(.browser-default),input[type=datetime]:not(.browser-default),input[type=email]:not(.browser-default),input[type=number]:not(.browser-default),input[type=password]:not(.browser-default),input[type=search]:not(.browser-default),input[type=tel]:not(.browser-default),input[type=text]:not(.browser-default),input[type=time]:not(.browser-default),input[type=url]:not(.browser-default),textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #535353;border-radius:0;outline:none;height:3rem;width:100%;font-size:16px;margin:0 0 8px;padding:0;box-shadow:none;box-sizing:content-box;transition:box-shadow .3s,border .3s}input:not([type]):disabled,input:not([type])[readonly=readonly],input[type=date]:not(.browser-default):disabled,input[type=date]:not(.browser-default)[readonly=readonly],input[type=datetime-local]:not(.browser-default):disabled,input[type=datetime-local]:not(.browser-default)[readonly=readonly],input[type=datetime]:not(.browser-default):disabled,input[type=datetime]:not(.browser-default)[readonly=readonly],input[type=email]:not(.browser-default):disabled,input[type=email]:not(.browser-default)[readonly=readonly],input[type=number]:not(.browser-default):disabled,input[type=number]:not(.browser-default)[readonly=readonly],input[type=password]:not(.browser-default):disabled,input[type=password]:not(.browser-default)[readonly=readonly],input[type=search]:not(.browser-default):disabled,input[type=search]:not(.browser-default)[readonly=readonly],input[type=tel]:not(.browser-default):disabled,input[type=tel]:not(.browser-default)[readonly=readonly],input[type=text]:not(.browser-default):disabled,input[type=text]:not(.browser-default)[readonly=readonly],input[type=time]:not(.browser-default):disabled,input[type=time]:not(.browser-default)[readonly=readonly],input[type=url]:not(.browser-default):disabled,input[type=url]:not(.browser-default)[readonly=readonly],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly=readonly]{color:rgba(0,0,0,.42);border-bottom:1px dotted rgba(0,0,0,.42)}input:not([type]):disabled+label,input:not([type])[readonly=readonly]+label,input[type=date]:not(.browser-default):disabled+label,input[type=date]:not(.browser-default)[readonly=readonly]+label,input[type=datetime-local]:not(.browser-default):disabled+label,input[type=datetime-local]:not(.browser-default)[readonly=readonly]+label,input[type=datetime]:not(.browser-default):disabled+label,input[type=datetime]:not(.browser-default)[readonly=readonly]+label,input[type=email]:not(.browser-default):disabled+label,input[type=email]:not(.browser-default)[readonly=readonly]+label,input[type=number]:not(.browser-default):disabled+label,input[type=number]:not(.browser-default)[readonly=readonly]+label,input[type=password]:not(.browser-default):disabled+label,input[type=password]:not(.browser-default)[readonly=readonly]+label,input[type=search]:not(.browser-default):disabled+label,input[type=search]:not(.browser-default)[readonly=readonly]+label,input[type=tel]:not(.browser-default):disabled+label,input[type=tel]:not(.browser-default)[readonly=readonly]+label,input[type=text]:not(.browser-default):disabled+label,input[type=text]:not(.browser-default)[readonly=readonly]+label,input[type=time]:not(.browser-default):disabled+label,input[type=time]:not(.browser-default)[readonly=readonly]+label,input[type=url]:not(.browser-default):disabled+label,input[type=url]:not(.browser-default)[readonly=readonly]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly=readonly]+label{color:rgba(0,0,0,.42)}input:not([type]):focus:not([readonly]),input[type=date]:not(.browser-default):focus:not([readonly]),input[type=datetime-local]:not(.browser-default):focus:not([readonly]),input[type=datetime]:not(.browser-default):focus:not([readonly]),input[type=email]:not(.browser-default):focus:not([readonly]),input[type=number]:not(.browser-default):focus:not([readonly]),input[type=password]:not(.browser-default):focus:not([readonly]),input[type=search]:not(.browser-default):focus:not([readonly]),input[type=tel]:not(.browser-default):focus:not([readonly]),input[type=text]:not(.browser-default):focus:not([readonly]),input[type=time]:not(.browser-default):focus:not([readonly]),input[type=url]:not(.browser-default):focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #3f51b5;box-shadow:0 1px 0 0 #3f51b5}input:not([type]):focus:not([readonly])+label,input[type=date]:not(.browser-default):focus:not([readonly])+label,input[type=datetime-local]:not(.browser-default):focus:not([readonly])+label,input[type=datetime]:not(.browser-default):focus:not([readonly])+label,input[type=email]:not(.browser-default):focus:not([readonly])+label,input[type=number]:not(.browser-default):focus:not([readonly])+label,input[type=password]:not(.browser-default):focus:not([readonly])+label,input[type=search]:not(.browser-default):focus:not([readonly])+label,input[type=tel]:not(.browser-default):focus:not([readonly])+label,input[type=text]:not(.browser-default):focus:not([readonly])+label,input[type=time]:not(.browser-default):focus:not([readonly])+label,input[type=url]:not(.browser-default):focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#3f51b5}input:not([type]):focus.valid~label,input[type=date]:not(.browser-default):focus.valid~label,input[type=datetime-local]:not(.browser-default):focus.valid~label,input[type=datetime]:not(.browser-default):focus.valid~label,input[type=email]:not(.browser-default):focus.valid~label,input[type=number]:not(.browser-default):focus.valid~label,input[type=password]:not(.browser-default):focus.valid~label,input[type=search]:not(.browser-default):focus.valid~label,input[type=tel]:not(.browser-default):focus.valid~label,input[type=text]:not(.browser-default):focus.valid~label,input[type=time]:not(.browser-default):focus.valid~label,input[type=url]:not(.browser-default):focus.valid~label,textarea.materialize-textarea:focus.valid~label{color:#4caf50}input:not([type]):focus.invalid~label,input[type=date]:not(.browser-default):focus.invalid~label,input[type=datetime-local]:not(.browser-default):focus.invalid~label,input[type=datetime]:not(.browser-default):focus.invalid~label,input[type=email]:not(.browser-default):focus.invalid~label,input[type=number]:not(.browser-default):focus.invalid~label,input[type=password]:not(.browser-default):focus.invalid~label,input[type=search]:not(.browser-default):focus.invalid~label,input[type=tel]:not(.browser-default):focus.invalid~label,input[type=text]:not(.browser-default):focus.invalid~label,input[type=time]:not(.browser-default):focus.invalid~label,input[type=url]:not(.browser-default):focus.invalid~label,textarea.materialize-textarea:focus.invalid~label{color:#f44336}input:not([type]).validate+label,input[type=date]:not(.browser-default).validate+label,input[type=datetime-local]:not(.browser-default).validate+label,input[type=datetime]:not(.browser-default).validate+label,input[type=email]:not(.browser-default).validate+label,input[type=number]:not(.browser-default).validate+label,input[type=password]:not(.browser-default).validate+label,input[type=search]:not(.browser-default).validate+label,input[type=tel]:not(.browser-default).validate+label,input[type=text]:not(.browser-default).validate+label,input[type=time]:not(.browser-default).validate+label,input[type=url]:not(.browser-default).validate+label,textarea.materialize-textarea.validate+label{width:100%}.select-wrapper.valid>input.select-dropdown,input:not([type]).valid,input:not([type]):focus.valid,input[type=date]:not(.browser-default).valid,input[type=date]:not(.browser-default):focus.valid,input[type=datetime-local]:not(.browser-default).valid,input[type=datetime-local]:not(.browser-default):focus.valid,input[type=datetime]:not(.browser-default).valid,input[type=datetime]:not(.browser-default):focus.valid,input[type=email]:not(.browser-default).valid,input[type=email]:not(.browser-default):focus.valid,input[type=number]:not(.browser-default).valid,input[type=number]:not(.browser-default):focus.valid,input[type=password]:not(.browser-default).valid,input[type=password]:not(.browser-default):focus.valid,input[type=search]:not(.browser-default).valid,input[type=search]:not(.browser-default):focus.valid,input[type=tel]:not(.browser-default).valid,input[type=tel]:not(.browser-default):focus.valid,input[type=text]:not(.browser-default).valid,input[type=text]:not(.browser-default):focus.valid,input[type=time]:not(.browser-default).valid,input[type=time]:not(.browser-default):focus.valid,input[type=url]:not(.browser-default).valid,input[type=url]:not(.browser-default):focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4caf50;box-shadow:0 1px 0 0 #4caf50}.select-wrapper.invalid>input.select-dropdown,.select-wrapper.invalid>input.select-dropdown:focus,input:not([type]).invalid,input:not([type]):focus.invalid,input[type=date]:not(.browser-default).invalid,input[type=date]:not(.browser-default):focus.invalid,input[type=datetime-local]:not(.browser-default).invalid,input[type=datetime-local]:not(.browser-default):focus.invalid,input[type=datetime]:not(.browser-default).invalid,input[type=datetime]:not(.browser-default):focus.invalid,input[type=email]:not(.browser-default).invalid,input[type=email]:not(.browser-default):focus.invalid,input[type=number]:not(.browser-default).invalid,input[type=number]:not(.browser-default):focus.invalid,input[type=password]:not(.browser-default).invalid,input[type=password]:not(.browser-default):focus.invalid,input[type=search]:not(.browser-default).invalid,input[type=search]:not(.browser-default):focus.invalid,input[type=tel]:not(.browser-default).invalid,input[type=tel]:not(.browser-default):focus.invalid,input[type=text]:not(.browser-default).invalid,input[type=text]:not(.browser-default):focus.invalid,input[type=time]:not(.browser-default).invalid,input[type=time]:not(.browser-default):focus.invalid,input[type=url]:not(.browser-default).invalid,input[type=url]:not(.browser-default):focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #f44336;box-shadow:0 1px 0 0 #f44336}.select-wrapper.invalid~.helper-text[data-error],.select-wrapper.valid .helper-text[data-success],input:not([type]).invalid~.helper-text[data-error],input:not([type]).valid~.helper-text[data-success],input:not([type]):focus.invalid~.helper-text[data-error],input:not([type]):focus.valid~.helper-text[data-success],input[type=date]:not(.browser-default).invalid~.helper-text[data-error],input[type=date]:not(.browser-default).valid~.helper-text[data-success],input[type=datetime-local]:not(.browser-default).invalid~.helper-text[data-error],input[type=datetime-local]:not(.browser-default).valid~.helper-text[data-success],input[type=datetime]:not(.browser-default).invalid~.helper-text[data-error],input[type=datetime]:not(.browser-default).valid~.helper-text[data-success],input[type=email]:not(.browser-default).invalid~.helper-text[data-error],input[type=email]:not(.browser-default).valid~.helper-text[data-success],input[type=number]:not(.browser-default).invalid~.helper-text[data-error],input[type=number]:not(.browser-default).valid~.helper-text[data-success],input[type=password]:not(.browser-default).invalid~.helper-text[data-error],input[type=password]:not(.browser-default).valid~.helper-text[data-success],input[type=search]:not(.browser-default).invalid~.helper-text[data-error],input[type=search]:not(.browser-default).valid~.helper-text[data-success],input[type=tel]:not(.browser-default).invalid~.helper-text[data-error],input[type=tel]:not(.browser-default).valid~.helper-text[data-success],input[type=text]:not(.browser-default).invalid~.helper-text[data-error],input[type=text]:not(.browser-default).valid~.helper-text[data-success],input[type=time]:not(.browser-default).invalid~.helper-text[data-error],input[type=time]:not(.browser-default).valid~.helper-text[data-success],input[type=url]:not(.browser-default).invalid~.helper-text[data-error],input[type=url]:not(.browser-default).valid~.helper-text[data-success],textarea.materialize-textarea.invalid~.helper-text[data-error],textarea.materialize-textarea.valid~.helper-text[data-success],textarea.materialize-textarea:focus.invalid~.helper-text[data-error],textarea.materialize-textarea:focus.valid~.helper-text[data-success]{color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.select-wrapper.valid~.helper-text:after,input:not([type]).valid~.helper-text:after,input:not([type]):focus.valid~.helper-text:after,input[type=date]:not(.browser-default).valid~.helper-text:after,input[type=date]:not(.browser-default):focus.valid~.helper-text:after,input[type=datetime-local]:not(.browser-default).valid~.helper-text:after,input[type=datetime-local]:not(.browser-default):focus.valid~.helper-text:after,input[type=datetime]:not(.browser-default).valid~.helper-text:after,input[type=datetime]:not(.browser-default):focus.valid~.helper-text:after,input[type=email]:not(.browser-default).valid~.helper-text:after,input[type=email]:not(.browser-default):focus.valid~.helper-text:after,input[type=number]:not(.browser-default).valid~.helper-text:after,input[type=number]:not(.browser-default):focus.valid~.helper-text:after,input[type=password]:not(.browser-default).valid~.helper-text:after,input[type=password]:not(.browser-default):focus.valid~.helper-text:after,input[type=search]:not(.browser-default).valid~.helper-text:after,input[type=search]:not(.browser-default):focus.valid~.helper-text:after,input[type=tel]:not(.browser-default).valid~.helper-text:after,input[type=tel]:not(.browser-default):focus.valid~.helper-text:after,input[type=text]:not(.browser-default).valid~.helper-text:after,input[type=text]:not(.browser-default):focus.valid~.helper-text:after,input[type=time]:not(.browser-default).valid~.helper-text:after,input[type=time]:not(.browser-default):focus.valid~.helper-text:after,input[type=url]:not(.browser-default).valid~.helper-text:after,input[type=url]:not(.browser-default):focus.valid~.helper-text:after,textarea.materialize-textarea.valid~.helper-text:after,textarea.materialize-textarea:focus.valid~.helper-text:after{content:attr(data-success);color:#4caf50}.select-wrapper.invalid~.helper-text:after,input:not([type]).invalid~.helper-text:after,input:not([type]):focus.invalid~.helper-text:after,input[type=date]:not(.browser-default).invalid~.helper-text:after,input[type=date]:not(.browser-default):focus.invalid~.helper-text:after,input[type=datetime-local]:not(.browser-default).invalid~.helper-text:after,input[type=datetime-local]:not(.browser-default):focus.invalid~.helper-text:after,input[type=datetime]:not(.browser-default).invalid~.helper-text:after,input[type=datetime]:not(.browser-default):focus.invalid~.helper-text:after,input[type=email]:not(.browser-default).invalid~.helper-text:after,input[type=email]:not(.browser-default):focus.invalid~.helper-text:after,input[type=number]:not(.browser-default).invalid~.helper-text:after,input[type=number]:not(.browser-default):focus.invalid~.helper-text:after,input[type=password]:not(.browser-default).invalid~.helper-text:after,input[type=password]:not(.browser-default):focus.invalid~.helper-text:after,input[type=search]:not(.browser-default).invalid~.helper-text:after,input[type=search]:not(.browser-default):focus.invalid~.helper-text:after,input[type=tel]:not(.browser-default).invalid~.helper-text:after,input[type=tel]:not(.browser-default):focus.invalid~.helper-text:after,input[type=text]:not(.browser-default).invalid~.helper-text:after,input[type=text]:not(.browser-default):focus.invalid~.helper-text:after,input[type=time]:not(.browser-default).invalid~.helper-text:after,input[type=time]:not(.browser-default):focus.invalid~.helper-text:after,input[type=url]:not(.browser-default).invalid~.helper-text:after,input[type=url]:not(.browser-default):focus.invalid~.helper-text:after,textarea.materialize-textarea.invalid~.helper-text:after,textarea.materialize-textarea:focus.invalid~.helper-text:after{content:attr(data-error);color:#f44336}.select-wrapper+label:after,input:not([type])+label:after,input[type=date]:not(.browser-default)+label:after,input[type=datetime-local]:not(.browser-default)+label:after,input[type=datetime]:not(.browser-default)+label:after,input[type=email]:not(.browser-default)+label:after,input[type=number]:not(.browser-default)+label:after,input[type=password]:not(.browser-default)+label:after,input[type=search]:not(.browser-default)+label:after,input[type=tel]:not(.browser-default)+label:after,input[type=text]:not(.browser-default)+label:after,input[type=time]:not(.browser-default)+label:after,input[type=url]:not(.browser-default)+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:100%;left:0;opacity:0;transition:opacity .2s ease-out,color .2s ease-out}.input-field{position:relative;margin-top:1rem;margin-bottom:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline .select-dropdown,.input-field.inline input{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix~.validate~label,.input-field.col .prefix~label{width:calc(100% - 4.5rem)}.input-field>label{color:#535353;position:absolute;top:0;left:0;font-size:1rem;cursor:text;transition:transform .2s ease-out,color .2s ease-out;transform-origin:0 100%;text-align:left;text-align:initial;transform:translateY(12px)}.input-field>label:not(.label-icon).active{transform:translateY(-14px) scale(.8);transform-origin:0 0}.input-field>input[type=date]:not(.browser-default)+label,.input-field>input[type=time]:not(.browser-default)+label,.input-field>input[type]:-webkit-autofill:not(.browser-default):not([type=search])+label{transform:translateY(-14px) scale(.8);transform-origin:0 0}.input-field .helper-text{position:relative;min-height:18px;display:block;font-size:12px;color:rgba(0,0,0,.54)}.input-field .helper-text:after{opacity:1;position:absolute;top:0;left:0}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s;top:.5rem}.input-field .prefix.active{color:#3f51b5}.input-field .prefix~.autocomplete-content,.input-field .prefix~.helper-text,.input-field .prefix~.validate~label,.input-field .prefix~input,.input-field .prefix~label,.input-field .prefix~textarea{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix~label{margin-left:3rem}@media only screen and (max-width:992px){.input-field .prefix~input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width:600px){.input-field .prefix~input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;transition:background-color .3s}.nav-wrapper .input-field input[type=search]{height:inherit;padding-left:4rem;width:calc(100% - 4rem);border:0;box-shadow:none}.input-field input[type=search]:focus:not(.browser-default){background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus:not(.browser-default)+label i,.input-field input[type=search]:focus:not(.browser-default)~.material-icons,.input-field input[type=search]:focus:not(.browser-default)~.mdi-navigation-close{color:#444}.input-field input[type=search]+.label-icon{transform:none;left:1rem}.input-field input[type=search]~.material-icons,.input-field input[type=search]~.mdi-navigation-close{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:color .3s}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{line-height:normal;overflow-y:hidden;padding:.8rem 0;resize:none;min-height:3rem;box-sizing:border-box}.hiddendiv{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;padding-top:1.2rem;position:absolute;top:0;z-index:-1}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}.character-counter{min-height:18px}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(/bundles/fonts/MaterialIcons-Regular.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(/bundles/fonts/MaterialIcons-Regular.woff2) format("woff2"),url(/bundles/fonts/MaterialIcons-Regular.woff) format("woff"),url(/bundles/fonts/MaterialIcons-Regular.ttf) format("truetype");font-display:swap}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-display:block}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;src:local("Roboto Mono"),local("RobotoMono-Regular"),url(/bundles/fonts/RobotoMono-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(/bundles/fonts/Roboto-Light.ttf) format("truetype");font-display:swap}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(/bundles/fonts/Roboto-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:local("Roboto Medium"),local("Roboto-Medium"),url(/bundles/fonts/Roboto-Medium.ttf) format("truetype");font-display:swap}:root{--accentColor:#3f51b5;--lightAccent:#7280ce;--textColor:#535353;--backgroundColor:#fff;--internalColor:#fff;--incorrectColor:#f44336;--correctColor:#8fff66;--inputColor:#000;--linkColor:#00539b;--highlightColor:#eee}body,html{height:100%!important;color:#000;color:var(--inputColor);caret-color:#3f51b5;caret-color:var(--accentColor);text-align:center;overflow-x:hidden}*{transition:background-color .3s ease,color .3s ease}body{font-family:Roboto,sans-serif;font-weight:300;margin:0;display:flex;justify-content:center;align-items:center;background-color:#fff;background-color:var(--backgroundColor)}#box{text-align:center;max-width:calc(100% - 30px - 10em);max-height:100%;margin:auto;grid-row:1}.input-field>label,label{color:#535353;color:var(--textColor);font-size:1.5rem;transition:transform .3s ease-out,background-color .3s ease,color .3s ease}.input-field{margin-bottom:0}.input-field input[type=number],.input-field input[type=password],.input-field input[type=text]{border-bottom:1px solid #535353;border-bottom:1px solid var(--textColor);transition:border .3s ease-out,background-color .3s ease,color .3s ease}.input-field input[type=number]:focus,.input-field input[type=password]:focus,.input-field input[type=text]:focus{border-bottom:1px solid #3f51b5!important;border-bottom:1px solid var(--accentColor)!important;box-shadow:0 1px 0 0 #3f51b5!important;box-shadow:0 1px 0 0 var(--accentColor)!important}input[type=number]:not(#length-pref),input[type=password]:not(#result),input[type=text]:not(#result):not(.select-dropdown){font-size:3rem!important;height:1.2em!important;box-sizing:content-box;font-family:Roboto,sans-serif;font-weight:300}input[type=number]{margin-bottom:0;overflow:scroll}#back{box-shadow:0 .26em .65em 0 rgba(0,0,0,.2);background-color:#fff;background-color:var(--internalColor);border-radius:.325em;padding:1.5em .975em .975em;margin:2em 0;max-height:100%}#result{font-family:Roboto Mono,monospace;font-size:2rem;padding:.9rem 0;min-height:1em;min-width:20%;border:none;text-align:center;margin:0;width:100%;color:#000;color:var(--inputColor)}#result::-moz-placeholder{color:#000!important;color:var(--inputColor)!important;opacity:1}#result:-ms-input-placeholder{color:#000!important;color:var(--inputColor)!important;opacity:1}#result::placeholder{color:#000!important;color:var(--inputColor)!important;opacity:1}#copy{display:block;margin:auto}.hint{float:left;color:#535353;color:var(--textColor);width:100%;text-align:left}input,textarea{font-size:1.56rem;padding:.65rem;color:#000!important;color:var(--inputColor)!important;margin:0 0 .8rem!important}input#length{margin:0!important;height:1em}#faq{float:right;cursor:help;font-weight:500;margin-top:.4em}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}ul.autocomplete-content.dropdown-content{background:#fff;background:var(--backgroundColor);position:absolute!important;width:calc(100% - 3rem);max-height:328%;overflow-y:auto;overflow-x:hidden;top:-.1em;margin-top:0}ul.autocomplete-content.dropdown-content li{height:3em;min-height:0}.dropdown-content li.active,.dropdown-content li.selected,.dropdown-content li:hover,.select-dropdown.dropdown-content li.selected,body.keyboard-focused .select-dropdown.dropdown-content li:focus{background:#eee;background:var(--highlightColor)}ul.autocomplete-content.dropdown-content li img.right.circle{overflow:hidden;background:#fff;width:calc(20% - .66em);height:100%;padding:.33em;margin:0}ul.autocomplete-content.dropdown-content span{align-items:center;white-space:nowrap;max-width:70%;height:100%;font-size:1em;padding:.875em 1em;overflow:hidden;line-height:1.57em}ul.autocomplete-content.dropdown-content span:not(.highlight){color:#535353;color:var(--textColor);overflow-x:hidden}ul.autocomplete-content.dropdown-content span .highlight{max-width:100%;color:#535353;color:var(--textColor);font-weight:400;overflow:visible;padding:0}.dropdown-content::-webkit-scrollbar{width:17px!important;background-color:#fff!important}.dropdown-content::-webkit-scrollbar-track{width:17px;background-color:#fff!important}.dropdown-content::-webkit-scrollbar-thumb{border-radius:100px;width:17px;background-color:rgba(0,0,0,.5)}.circle{-o-object-fit:scale-down;object-fit:scale-down;border-radius:0}#back .switch{padding-bottom:1.3rem}input[type=checkbox]:checked:not(:disabled).tabbed:focus~.lever:before,input[type=checkbox]:checked:not(:disabled)~.lever:active:before{transform:scale(2.4);background-color:rgba(63,81,181,.3)}.switch label input[type=checkbox]:checked+.lever:after{background-color:#3f51b5;background-color:var(--accentColor)}.switch label input[type=checkbox]:checked+.lever{background-color:#7280ce;background-color:var(--lightAccent)}#passTogglelever{left:-4px}.input-group-addon{position:absolute;width:calc(3rem + .1em);font-size:2rem;top:0;right:-5px}.icon{font-size:1.4em!important;color:#535353;color:var(--textColor);transition:color .2s;cursor:pointer}.icon:hover{color:#7280ce;color:var(--lightAccent)}.icon:active{color:#3f51b5;color:var(--accentColor)}.input-field label:not(.label-icon).active{transform:translateY(-1em) scale(.8);transform-origin:0 0}.toast{font-weight:400}.warning{color:#000;color:var(--inputColor);background-color:#f44336;background-color:var(--incorrectColor)}.success{background-color:#8fff66;background-color:var(--correctColor);color:#000}#jsBanner{position:absolute;width:100%;height:100%;text-align:center;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;font-weight:500;font-size:10vmin;top:0;left:0;-webkit-text-stroke-width:.05em!important;-webkit-text-stroke-color:#535353!important;-webkit-text-stroke-color:var(--textColor)!important;padding:10px}#jsBanner,#jsBanner a{color:#fff;color:var(--backgroundColor)}#jsBanner a{-webkit-text-stroke:3px #535353;-webkit-text-stroke:3px var(--textColor);text-decoration:underline}#logo{max-width:100%;max-height:100%}#app{margin-bottom:.55em!important;width:calc(100% - 3.6rem)!important;padding-right:1.2em!important;align-self:flex-end;display:block;white-space:nowrap}ul:empty{display:none}::-ms-reveal{display:none}#logoContainer{margin-right:5px;background:#fff;padding:3px;border-radius:5px;height:calc(3rem + .1em);display:none;justify-content:center;align-items:center}input[type=radio]{margin:0;width:0;height:0;padding:0}input[type=radio]:checked+label:before{box-shadow:0 0 3px 1px #535353;box-shadow:0 0 3px 1px var(--textColor)}label:focus{outline:none}.github-corner{fill:#3f51b5;fill:var(--accentColor);color:#fff;color:var(--backgroundColor);position:absolute;top:0;border:0;right:0}.github-corner:hover .octo-arm{-webkit-animation:octocat-wave .56s ease-in-out;animation:octocat-wave .56s ease-in-out}@-webkit-keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}.tabs{background-color:#fff;background-color:var(--internalColor);cursor:pointer;overflow-x:hidden;z-index:995}.tabs .tab a,.tabs .tab a:hover{color:#535353;color:var(--textColor);font-size:1em;padding:0 .5em}.tabs .tab a:focus,.tabs .tab a:focus.active{background-color:#fff;background-color:var(--backgroundColor)}.tabs .tab a.active{color:#000;color:var(--inputColor);font-weight:400}.tabs .indicator{background:#3f51b5;background-color:#3f51b5;background-color:var(--accentColor)}.btn,.btn-large,.btn-small{height:2.4em;line-height:2.4em;font-family:Roboto,sans-serif;font-weight:300;font-size:1rem;padding:0 2rem}.btn,.btn-large,.btn-large:focus,.btn-large:hover,.btn-small,.btn-small:focus,.btn-small:hover,.btn:focus,.btn:hover{background:#3f51b5;background:var(--accentColor)}.switch label .lever{height:.933em;width:2.4em}.switch label .lever:after,.switch label .lever:before{height:1.33em;width:1.33em}.switch label input[type=checkbox]:checked+.lever:after,.switch label input[type=checkbox]:checked+.lever:before{left:1.4em}.switch label .lever:after,.switch label .lever:before{top:-.2em}.material-tooltip{max-width:7em}@media(hover:none){.material-tooltip{display:none}}.material-tooltip{background-color:#fff;background-color:var(--internalColor);box-shadow:0 .26em .65em 0 rgba(0,0,0,.2);color:#535353;color:var(--textColor)}.btn-flat:focus,.btn-floating:focus,.btn-large:focus,.btn-small:focus,.btn:focus{outline:5px auto #4d90fe;outline-color:#4d90fe;outline-style:auto;outline-width:5px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:1}ul.tabs li.tab a i.material-icons{vertical-align:middle;color:#f44336;color:var(--incorrectColor)}.btn-floating{width:2.86rem;height:2.86rem}.btn-floating i{font-size:1.6rem;line-height:2.86rem;display:block;top:0}.btn-floating.btn-large{width:4rem;height:4rem}.btn-floating.btn-large i{font-size:2rem;line-height:4rem}@media only all and (max-width:40em){body{background-color:#fff;background-color:var(--internalColor)}#back{margin:0;box-shadow:none;border-radius:0}#back,#box{min-height:100%}#box{width:100VW;max-width:100VW}#install-icon{padding-right:.5vw}.btn-floating{width:10vw;height:10vw}.btn-floating i{font-size:5vw;line-height:10vw}.btn-floating.btn-large{width:15vw;height:15vw}.btn-floating.btn-large i{font-size:7.5vw;line-height:15vw}.github-corner{color:#fff;color:var(--internalColor)}}@media only all and (max-height:600px)and (min-width:40em){html{font-size:2vh}}.sidenav{background-color:#fff;background-color:var(--backgroundColor);width:350px;max-width:100%;max-height:100%;overflow-y:hidden}.sidenav li>a{font-weight:300}.sidenav li>a>[class^=mdi-],.sidenav li>a>i,.sidenav li>a>i.material-icons,.sidenav li>a li>a>[class*=mdi-]{margin:0;float:none}#settings{position:absolute;left:1vw;bottom:1vw;display:block}#settings a i.material-icons{display:block;font-size:2.5em;color:#535353;color:var(--textColor)}.sidenav label:not([for=length-pref]){font-size:1rem;top:-33px}#options{padding:0 10px 10px;display:grid;height:calc(100% - 8px);grid-template-rows:repeat(12,1fr)}.sidenav .dropdown-content{background:#fff;background:var(--backgroundColor)}.dropdown-content li>span,.sidenav .dropdown-content li>a,select{color:#000;color:var(--inputColor)}select{background-color:#fff;background-color:var(--internalColor);border:1px solid #535353;border:1px solid var(--textColor);border-radius:3px}select:focus{border:1px solid #7280ce;border:1px solid var(--lightAccent);outline:none}.sidenav .input-field{padding-bottom:1.5rem}.btn-large i,.btn-small i,.btn i{vertical-align:top}.drag-target{left:0}.sidenav .switch label{font-size:1.2em}.sidenav{align-content:center;justify-content:center;place-content:center}#theme-container{grid-row:1}#session-container{grid-row:3;padding-bottom:0}#footer{display:grid;grid-template-columns:1fr calc(2.4em + 10px);align-content:stretch;grid-row:last-line}#close{cursor:pointer;align-self:end;justify-self:flex-end;font-size:2.4em;color:#000;color:var(--inputColor)}a{color:#00539b;color:var(--linkColor)}#old{text-overflow:clip}#length-pref{font-size:2em;font-weight:300} diff --git a/bundles/fonts/MaterialIcons-Regular.eot b/bundles/fonts/MaterialIcons-Regular.eot deleted file mode 100644 index 0e89a5d0..00000000 Binary files a/bundles/fonts/MaterialIcons-Regular.eot and /dev/null differ diff --git a/bundles/fonts/MaterialIcons-Regular.ttf b/bundles/fonts/MaterialIcons-Regular.ttf deleted file mode 100644 index ba2db488..00000000 Binary files a/bundles/fonts/MaterialIcons-Regular.ttf and /dev/null differ diff --git a/bundles/fonts/MaterialIcons-Regular.woff b/bundles/fonts/MaterialIcons-Regular.woff deleted file mode 100644 index 76cd97ca..00000000 Binary files a/bundles/fonts/MaterialIcons-Regular.woff and /dev/null differ diff --git a/bundles/fonts/MaterialIcons-Regular.woff2 b/bundles/fonts/MaterialIcons-Regular.woff2 deleted file mode 100644 index c2c1a877..00000000 Binary files a/bundles/fonts/MaterialIcons-Regular.woff2 and /dev/null differ diff --git a/bundles/fonts/Roboto-Light.ttf b/bundles/fonts/Roboto-Light.ttf deleted file mode 100644 index 219063a5..00000000 Binary files a/bundles/fonts/Roboto-Light.ttf and /dev/null differ diff --git a/bundles/fonts/Roboto-Medium.ttf b/bundles/fonts/Roboto-Medium.ttf deleted file mode 100644 index 1a7f3b0b..00000000 Binary files a/bundles/fonts/Roboto-Medium.ttf and /dev/null differ diff --git a/bundles/fonts/Roboto-Regular.ttf b/bundles/fonts/Roboto-Regular.ttf deleted file mode 100644 index 2c97eead..00000000 Binary files a/bundles/fonts/Roboto-Regular.ttf and /dev/null differ diff --git a/bundles/fonts/RobotoMono-Regular.ttf b/bundles/fonts/RobotoMono-Regular.ttf deleted file mode 100644 index b158a334..00000000 Binary files a/bundles/fonts/RobotoMono-Regular.ttf and /dev/null differ diff --git a/cloverleaf.code-workspace b/cloverleaf.code-workspace index 1fa51579..4c7948fb 100644 --- a/cloverleaf.code-workspace +++ b/cloverleaf.code-workspace @@ -1,38 +1,23 @@ -{ - "folders": [{ - "path": "." - }], - "settings": { - "eslint.options": { "configFile": "config/.eslintrc.json" }, - "json.schemas": [ - { - "fileMatch": [ - "data/themes.json" - ], - "url": "/data/themes_schema.json" - }, - { - "fileMatch": [ - "data/sites.json" - ], - "url": "/data/sites_schema.json" - }, - ], - "git.ignoreLimitWarning": true, - - // // Python testing - // "python.linting.pylintEnabled": true, - // "python.analysis.disabled": [ - // "unresolved-import" - // ], - - // "python.testing.unittestEnabled":true, - // "python.testing.unittestArgs": [ - // "/unit_tests/", - // // "--ignore-glob=path" - // ], - // "python.testing.cwd": "./unit_tests/" - // } - "python.testing.cwd": "${workspaceFolder}/unit_tests", - "python.testing.pytestEnabled": true +{ + "folders": [{ + "path": "." + }], + "settings": { + "json.schemas": [{ + "fileMatch": [ + "data/themes.json" + ], + "url": "/data/themes_schema.json" + }, + { + "fileMatch": [ + "data/sites.json" + ], + "url": "/data/sites_schema.json" + }, + ], + "git.ignoreLimitWarning": true, + "python.testing.pytestEnabled": true, + "python.testing.pytestArgs": ["--rootdir","${workspaceFolder}/unit_tests"] + } } \ No newline at end of file diff --git a/colorSpecs.md b/colorSpecs.md deleted file mode 100644 index 921b08a0..00000000 --- a/colorSpecs.md +++ /dev/null @@ -1,12 +0,0 @@ - - -The purple used through out Cloverleaf is - -**material.io** Indigo -**Hex triplet** 3f51b5 -**RGB Decimal** 63, 81, 181 -**RGB Percent** 24.7, 31.8, 71 -**CMYK** 65, 55, 0, 29 -**HSL** 230.8°, 48.4, 47.8 -**HSV (or HSB)** 230.8°, 65.2, 71 -**PMS** 2726C diff --git a/config/.eslintrc.json b/config/.eslintrc.json deleted file mode 100644 index 54861747..00000000 --- a/config/.eslintrc.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "extends": "eslint:recommended", - - "parserOptions": { - "ecmaVersion": 8, - "sourceType": "module" - }, - - "env": { - "browser": true, - "node": true, - "es6": true - }, - - "rules":{ - "quotes": ["error", "double"], - "comma-dangle": "off", - "no-console":"off", - "quote-props":"off", - "no-plusplus": ["warn", { "allowForLoopAfterthoughts": true }], - "no-restricted-globals": ["error", "event", "fdescribe"], - "no-inline-comments": "off", - "line-comment-position": "off", - "func-style": "off", - "no-undefined": "off", - "no-magic-numbers":"off", - "max-len": "off", - "func-names": "off", - "max-statements": "off", - "max-lines-per-function": "off", - "max-lines": "off", - "no-unused-vars":"warn", - "indent": ["error", "tab"], - "linebreak-style": "off", - "no-tabs": "off", - "prefer-destructuring": "off", - "no-param-reassign": "off", - "no-restricted-syntax": "off", - "guard-for-in": "off", - "no-constant-condition": "off", - "arrow-body-style": ["error", "as-needed"], - "padded-blocks": "off", - "arrow-parens": ["error", "as-needed"], - "no-var": "off", - "vars-on-top": "off", - "prefer-const": "warn", - "operator-linebreak": ["error", "after"], - "no-loop-func": "warn", - "no-redeclare": ["error", { "builtinGlobals": true }], - "complexity": ["warn", 30], - "no-prototype-builtins": "off", - "space-before-function-paren": ["error", "always"], - "space-infix-ops": "error", - "comma-spacing": ["error", { "before": false, "after": true }], - "semi": ["error", "always"], - "no-extra-semi": "error" - } - -} \ No newline at end of file diff --git a/config/esbuild/build.js b/config/esbuild/build.js new file mode 100644 index 00000000..accca69d --- /dev/null +++ b/config/esbuild/build.js @@ -0,0 +1,26 @@ +const esbuild = require('esbuild') +const essass = require('essass') +const translation = require('./translation.js') +const fs = require('fs-extra') + +translation.then(() => { + // Copy all static files + fs.copy('static/', 'public/').then(() => { + esbuild.build({ + entryPoints: ['src/main.js'], + bundle: true, + minify: true, + outdir: 'public', + sourcemap: true, + plugins: [essass], + loader: { '.woff': 'file', '.woff2': 'file', '.ttf': 'file', '.eot': 'file' }, + define: { + 'process.env.NODE_ENV': '"production"' + }, + color: true + }).catch(() => process.exit(1)).then(() => { + // Generate html + require('./makeHTML') + }).catch(() => process.exit(1)) + }).catch(() => process.exit(1)) +}) diff --git a/config/esbuild/dev.js b/config/esbuild/dev.js new file mode 100644 index 00000000..838e8db2 --- /dev/null +++ b/config/esbuild/dev.js @@ -0,0 +1,30 @@ +const esbuild = require('esbuild') +const essass = require('essass') +const liveServer = require('live-server') +const fs = require('fs-extra') + +esbuild.build({ + entryPoints: ['src/main.js'], + bundle: true, + outdir: 'public', + sourcemap: true, + plugins: [essass], + loader: { '.woff': 'file', '.woff2': 'file', '.ttf': 'file', '.eot': 'file' }, + watch: { + onRebuild (error, result) { + if (error) console.error('watch build failed:', error) + else console.error('watch build succeeded:', result) + fs.copy('static/', 'public/') + } + } +}).then(result => { + // Call "stop" on the result when you're done + console.log(result) + require('./makeHTML') + liveServer.start({ + root: './public', + open: true, + port: 1234 + }) + // result.stop() +}) diff --git a/config/esbuild/makeHTML.js b/config/esbuild/makeHTML.js new file mode 100644 index 00000000..fe6f69ea --- /dev/null +++ b/config/esbuild/makeHTML.js @@ -0,0 +1,59 @@ +const fs = require('fs') +const path = require('path') +const ejs = require('ejs') +const ssri = require('ssri') + +module.exports = fs.readFile(path.join(__dirname, '../../langs/langs.json'), 'utf8', function (err, data) { + if (err) console.error(err) + + const folders = fs.readdirSync(path.join(__dirname, '../../langs/'), { withFileTypes: true }) + + const js = fs.readFileSync(path.join(__dirname, '../../public/main.js')) + const jsIntegrity = ssri.fromData(js, { algorithms: ['sha256'] }) + + const css = fs.readFileSync(path.join(__dirname, '../../public/main.css')) + const cssIntegrity = ssri.fromData(css, { algorithms: ['sha256'] }) + + // For each lang folder + folders.forEach(function (file) { + if (file.isDirectory()) { + const folder = file.name + // List the files in the folder + const files = fs.readdirSync(path.join(__dirname, '../../langs/' + folder)) + + // For each language in folder + files.forEach(function (file) { + const code = file.split('.')[0] + + // Read json + const json = JSON.parse(fs.readFileSync(path.join(__dirname, `../../langs/${folder}/${file}`), 'utf8')) + + const replacements = { + jsSrc: 'main.js', + jsIntegrity: jsIntegrity, + cssSrc: 'main.css', + cssIntegrity: cssIntegrity + } + + // Don't use SRIs if running in dev + if (process.env.NODE_ENV === 'development') { + replacements.jsIntegrity = '' + replacements.cssIntegrity = '' + } + + for (const k in json) { + replacements[k] = json[k].message + } + + // Set path val + const out = file === 'en-GB.json' ? 'index.html' : code + '.html' + + // Compile ejs -> html + ejs.renderFile('./src/src.ejs', replacements, {}, function (err, str) { + if (err) console.error(err) + fs.writeFileSync(path.join(__dirname, `../../public/${out}`), str) + }) + }) + } + }) +}) diff --git a/config/esbuild/makeLangs.js b/config/esbuild/makeLangs.js new file mode 100644 index 00000000..4b433e00 --- /dev/null +++ b/config/esbuild/makeLangs.js @@ -0,0 +1,34 @@ +const path = require('path') +const fs = require('fs') +const lc = require('locale-code') + +function processTranslations () { + const langs = {} + + console.log('Processing translations') + + const folders = fs.readdirSync(path.join(__dirname, '../../langs/')) + + // For each lang folder + folders.forEach(function (folder) { + // List the files in the folder + const files = fs.readdirSync(path.join(__dirname, '../../langs/' + folder)) + + // For each language in folder + files.forEach(function (file) { + const code = file.split('.')[0] + + langs[code] = { + native: lc.getLanguageNativeName(code) + // english: lc.getLanguageName(code) + } + }) + }) + + // Write langs to json + fs.writeFileSync(path.join(__dirname, '../../langs/langs.json'), JSON.stringify(langs)) + + console.log('Finished processing translations') +} + +module.exports = processTranslations diff --git a/config/esbuild/translation.js b/config/esbuild/translation.js new file mode 100644 index 00000000..b03d03f8 --- /dev/null +++ b/config/esbuild/translation.js @@ -0,0 +1,55 @@ +const path = require('path') +const fs = require('fs') +const unzipper = require('unzipper') +const fetch = require('node-fetch') +const rimraf = require('rimraf') +const makeLangs = require('./makeLangs.js') + +const CROWDIN_KEY = fs.readFileSync(path.join(__dirname, '../secrets/crowdin_key.txt'), 'utf8') + +// Wipe old translations +rimraf.sync('langs/') + +async function unzip () { + const directory = await unzipper.Open.file(path.join(__dirname, 'temp.zip')) + await directory.extract({ + path: path.join(__dirname, '../../langs/') + }) + return 'done' +} + +module.exports = new Promise(function (resolve, reject) { + // Build translations + fetch(`https://api.crowdin.com/api/project/cloverleaf/export?key=${CROWDIN_KEY}`).then(res => res.text()) + .then(data => { + if (data.includes('success status="skipped"')) { + console.log('Translations up to date') + } else { + console.log('Updating translations') + } + // Download translations + return fetch(`https://api.crowdin.com/api/project/cloverleaf/download/all.zip?key=${CROWDIN_KEY}`) + }).then(res => res.buffer()) + .then(zip => { + // Unzip translations + + // Write to temp file locally + fs.writeFileSync(path.join(__dirname, 'temp.zip'), zip) + + // Make langs folder + const dir = path.join(__dirname, '../../langs/') + + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir) + } + + // Extract zip to langs folder + return unzip() + }).then(unzipped => { + // Make plugin instance + resolve(makeLangs()) + + // Remove temp file + rimraf.sync(path.join(__dirname, 'temp.zip')) + }) +}) diff --git a/config/esbuild/watch.js b/config/esbuild/watch.js new file mode 100644 index 00000000..3242d8c8 --- /dev/null +++ b/config/esbuild/watch.js @@ -0,0 +1,13 @@ +const sassPlugin = require('esbuild-plugin-sass') + +require('esbuild').build({ + entryPoints: ['src/main.js'], + external: ['*.woff', '*.woff2', '*.ttf', '*.eot'], + outfile: 'out.js', + plugins: [sassPlugin()], + bundle: true, + watch: true +}).then(result => { + // Call "stop" on the result when you're done + result.stop() +}) diff --git a/config/postcss.config.js b/config/postcss.config.js deleted file mode 100644 index bb244142..00000000 --- a/config/postcss.config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - // "parser": "sugarss", - "map": false, - "plugins": [ - require("postcss-import"), - require("postcss-preset-env"), - require("cssnano") - ] -}; \ No newline at end of file diff --git a/config/webpack/config.development.js b/config/webpack/config.development.js deleted file mode 100644 index 13133990..00000000 --- a/config/webpack/config.development.js +++ /dev/null @@ -1,92 +0,0 @@ -const path = require("path"); -const HtmlWebpackPlugin = require("html-webpack-plugin"); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const fs = require("fs"); -const webpack = require("webpack"); - -// Read strings json -const json = JSON.parse(fs.readFileSync(path.join(__dirname, "../../src/strings.json"), "utf8")); - -// -const eo = JSON.parse(fs.readFileSync(path.join(__dirname, "../../langs/eo/eo-UY.json"), "utf8")); - - -const replacements = {}; -const eoReplacements = {}; - -for (const k in json) { - replacements[k] = json[k].message; -} - -for (const k in json) { - eoReplacements[k] = eo[k].message; -} - -module.exports = { - mode: "development", - target: "web", - // amd: true, - - plugins: [ - new MiniCssExtractPlugin(), - new HtmlWebpackPlugin({ - template: "src/src.ejs", - filename: "index.html", - inject: "head", - templateParameters: replacements - }), - new HtmlWebpackPlugin({ - template: "src/src.ejs", - filename: "eo-UY.html", - inject: "head", - templateParameters: eoReplacements - }), - new webpack.ProvidePlugin({ - Component: "exports-loader?Component!materialize-css/js/component.js" - }) - ], - - module: { - rules: [ - { - test: /\.js$/, - use: ["source-map-loader"], - enforce: "pre" - }, - { - test: /\.(s*)css$/, - use: [ - "style-loader", - "css-loader", - "sass-loader" - ] - }, - { - test: /\.(woff(2)?|ttf|eot|svg)?$/, - use: [{ - loader: "file-loader", - options: { - name: "[name].[ext]", - outputPath: "fonts/" - } - }] - } - ] - }, - - entry: "./src/main.js", - output: { - filename: "main.js" - }, - - - devtool: "source-map", - devServer: { - compress: true, - // static: "./", - port: 8080, - open: true, - host: "localhost" - } - -}; \ No newline at end of file diff --git a/config/webpack/config.js b/config/webpack/config.js deleted file mode 100644 index 762bf070..00000000 --- a/config/webpack/config.js +++ /dev/null @@ -1,164 +0,0 @@ -const path = require("path"); -const webpack = require("webpack"); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const fs = require("fs"); -const rimraf = require("rimraf"); -const translation = require("./translation.js"); -const SriPlugin = require("webpack-subresource-integrity"); -const TerserPlugin = require("terser-webpack-plugin"); -const SitemapPlugin = require("sitemap-webpack-plugin").default; - -// Try the environment variable, otherwise use root -const ASSET_PATH = process.env.ASSET_PATH || "/bundles/"; - -// Wipe old bundles -rimraf.sync("bundles/"); - -// Wipe old compiled html -const dirpath = path.join(__dirname, "../../"); - -fs.readdir(dirpath, function (err, files) { - const txtFiles = files.filter(el => path.extname(el) === ".html" && el !== "faq.html"); - - for (let i = 0; i < txtFiles.length; i++) { - const element = txtFiles[i]; - rimraf.sync(path.join(dirpath, element)); - } - // do something with your files, by the way they are just filenames... -}); - -const configPromise = new Promise(function (resolve, reject) { - - setTimeout(() => { - - translation.then( plugins => { - - const config = { - mode: "production", - target: "web", - bail: true, - - optimization: { - minimize: true, - minimizer: [new TerserPlugin({ - terserOptions: { - compress: { - defaults: true - }, - keep_classnames: false, - keep_fnames: false, - mangle: { - toplevel: true, - eval: true, - reserved: [ - "minLength", - "defaultMinLength", - "maxLength", - "defaultMaxLength", - ] - }, - }, - extractComments: {filename:"LICENSE.txt"}, - } - )], - }, - - plugins: plugins[0].concat([ - new MiniCssExtractPlugin({ - filename: "bundle-[contenthash:8].css", - }), - new SriPlugin({ - hashFuncNames: ["sha256"], - enabled: process.env.NODE_ENV === "production", - }), - new webpack.ProvidePlugin({Component: "exports-loader?Component!materialize-css/js/component.js"}), - new SitemapPlugin({ - base:"https://cloverleaf.app", paths:plugins[1], options: {lastmod: true} - }) - ]), - - module: { - rules: [{ - test: /\.js$/, - exclude: /node_modules/, - use: { - loader: "eslint-loader", - options: { - configFile: "config/.eslintrc.json", - emitWarning: true - } - }, - enforce: "pre" - }, - { - test: /\.m?js$/, - exclude: /(node_modules|bower_components)/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env"], - plugins: ["@babel/plugin-transform-runtime"] - } - } - }, - { - test: /\.(s*)css$/, - use: [ - MiniCssExtractPlugin.loader, - { - loader: "css-loader", - options: { - importLoaders: 1 - } - }, - { - loader: "postcss-loader", - options: { - config: { - path: "config/" - } - } - }, - "sass-loader" - ] - }, - { - test: /\.(woff(2)?|ttf|eot|svg)?$/, - use: [{ - loader: "file-loader", - options: { - name: "[name].[ext]", - outputPath: "fonts/" - } - }] - }, - ] - }, - - entry: "./src/main.js", - output: { - crossOriginLoading: "anonymous", - filename: "bundle-[contenthash:8].js", - path: path.resolve(__dirname, "../../bundles"), - publicPath: ASSET_PATH - } - }; - - resolve(config); - reject("Oopsies"); - - });} - , 1000); -}); - -// module.exports = configPromise; -configPromise - // Passes the config to webpack - .then(config => webpack(config)) - // Compile - .then( compiler => { - compiler.run((err, stats) => { // Stats Object - if (err) console.error(err); - console.log(stats.toString()); - }); - }); \ No newline at end of file diff --git a/config/webpack/processTranslations.js b/config/webpack/processTranslations.js deleted file mode 100644 index 980602b6..00000000 --- a/config/webpack/processTranslations.js +++ /dev/null @@ -1,81 +0,0 @@ -const path = require("path"); -const HtmlWebpackPlugin = require("html-webpack-plugin"); -const fs = require("fs"); -const lc = require("locale-code"); - - -function processTranslations () { - const partsStart = [ - {path:"/"}, - {path:"/faq"} - ] - const pluginsStart = []; - const langs = {}; - - console.log("Processing translations"); - - const folders = fs.readdirSync(path.join(__dirname, "../../langs/")); - - // For each lang folder - folders.forEach(function (folder) { - - // List the files in the folder - const files = fs.readdirSync(path.join(__dirname, "../../langs/" + folder)); - - // For each language in folder - files.forEach(function (file) { - - const code = file.split(".")[0]; - - // Read json - const json = JSON.parse(fs.readFileSync(path.join(__dirname, `../../langs/${folder}/${file}`), "utf8")); - - - const current = {}; - current.replacements = {}; - - - for (var k in json) { - current.replacements[k] = json[k].message; - } - - // Set path val - current.path = file === "en-GB.json" ? "index.html" : code + ".html"; - - langs[code] = { - native: lc.getLanguageNativeName(code), - // english: lc.getLanguageName(code) - }; - - // Add plugin instance to array - pluginsStart.push( - new HtmlWebpackPlugin({ - template: "./src/src.ejs", - filename: path.join(__dirname, `../../${current.path}`), - inject: "head", - minify: { - minifyJS: true, - removeComments: true, - collapseWhitespace: true - }, - templateParameters: current.replacements - }) - ); - - if (code !== "en-GB") { - partsStart.push({path:code}); - } - - }); - }); - - // Write langs to json - fs.writeFileSync(path.join(__dirname, "../../langs/langs.json"), JSON.stringify(langs)); - - console.log("Finished processing translations"); - - return [pluginsStart, partsStart]; - -} - -module.exports = processTranslations; diff --git a/config/webpack/translation.js b/config/webpack/translation.js deleted file mode 100644 index 601bc258..00000000 --- a/config/webpack/translation.js +++ /dev/null @@ -1,61 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const unzipper = require("unzipper"); -const fetch = require("node-fetch"); -const rimraf = require("rimraf"); -const processTranslations = require("./processTranslations.js"); - -const CROWDIN_KEY = fs.readFileSync(path.join(__dirname, "../secrets/crowdin_key.txt"), "utf8"); - -// Wipe old translations -rimraf.sync("langs/"); - - -async function unzip () { - const directory = await unzipper.Open.file(path.join(__dirname, "temp.zip")); - await directory.extract({ - path: path.join(__dirname, "../../langs/") - }); - return "done"; -} - -module.exports = new Promise(function (resolve, reject){ - - // Build translations - fetch(`https://api.crowdin.com/api/project/cloverleaf/export?key=${CROWDIN_KEY}`).then(res => res.text()) - .then(data => { - if (data.includes("success status=\"skipped\"")) { - console.log("Translations up to date"); - } else { - console.log("Updating translations"); - } - // Download translations - return fetch(`https://api.crowdin.com/api/project/cloverleaf/download/all.zip?key=${CROWDIN_KEY}`); - }).then(res => res.buffer()) - .then(zip => { - - // Unzip translations - - // Write to temp file locally - fs.writeFileSync(path.join(__dirname, "temp.zip"), zip); - - // Make langs folder - var dir = path.join(__dirname, "../../langs/"); - - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir); - } - - // Extract zip to langs folder - return unzip(); - - }).then(unzipped => { - - // Make plugin instance - resolve(processTranslations()); - - // Remove temp file - rimraf.sync(path.join(__dirname, "temp.zip")); - - }); -}); diff --git a/data/logos.json b/data/logos.json index 4452353b..55e311d9 100644 --- a/data/logos.json +++ b/data/logos.json @@ -1,178 +1,181 @@ -{ - "Airbnb": { - "mini": true - }, - "Alipay": { - "alias": "AliExpress", - "mini": true - }, - "Amazon": { - "mini": true - }, - "Amino": { - "mini": true - }, - "Artsy": { - "mini": true - }, - "Baidu": { - "mini": true - }, - "Behance": { - "alias": "Adobe", - "mini": true - }, - "Bing": { - "alias": "Microsoft", - "mini": true - }, - "Chrono.gg": { - "mini": true - }, - "CodePen": { - "mini": true - }, - "DeviantArt": { - "mini": true - }, - "Discord": { - "mini": true - }, - "Disqus": { - "mini": true - }, - "Dribbble": { - "mini": true - }, - "Dropbox": { - "mini": true - }, - "Duolingo": { - "mini": true - }, - "Etsy": { - "mini": true - }, - "Evernote": { - "mini": true - }, - "Facebook": { - "mini": true - }, - "Fanatical": { - "mini": true - }, - "FANDOM": { - "mini": true - }, - "Firebox": { - "mini": true - }, - "Firefox": { - "mini": true - }, - "Flickr": { - "alias": "Yahoo", - "mini": true - }, - "Freelancer": { - "mini": true - }, - "Genius": { - "mini": true - }, - "GeoGuessr": { - "mini": true - }, - "Gfycat": { - "mini": true - }, - "GIPHY": { - "mini": true - }, - "GitLab": { - "mini": true - }, - "Hi-Rez": { - "logo": "logos/Hi-Rez.png" - }, - "imgur": { - "mini": true - }, - "mailbox.org": { - "mini": true - }, - "Messenger": { - "alias": "Facebook" - }, - "Minecraft": { - "alias": "Mojang" - }, - "MSN": { - "alias": "Microsoft" - }, - "Nectar": { - "logo": "logos/Nectar.png" - }, - "Netflix": { - "mini": true - }, - "osu!": { - "logo": "logos/osu!.png" - }, - "Pastebin": { - "logo": "logos/Pastebin.png" - }, - "Patreon": { - "mini": true - }, - "PayPal": { - "mini": true - }, - "paysafecard": { - "mini": true - }, - "Pinterest": { - "mini": true - }, - "pixiv": { - "mini": true - }, - "Riot Games": { - "mini": true - }, - "Skype": { - "alias": "Microsoft" - }, - "Spotify": { - "mini": true - }, - "Square Enix": { - "mini": true - }, - "StellarX": { - "mini": true - }, - "Tumblr": { - "alias": "Yahoo", - "mini": true - }, - "Twitch": { - "mini": true - }, - "Uplay": { - "alias": "Ubisoft" - }, - "WeChat": { - "alias": "QQ" - }, - "Xbox": { - "alias": "Microsoft" - }, - "Yahoo": { - "mini": true - }, - "YouTube": { - "alias": "Google" - } +{ + "Airbnb": { + "mini": true + }, + "Alipay": { + "alias": "AliExpress", + "mini": true + }, + "Amazon": { + "mini": true + }, + "Amino": { + "mini": true + }, + "Artsy": { + "mini": true + }, + "Baidu": { + "mini": true + }, + "Behance": { + "alias": "Adobe", + "mini": true + }, + "Bing": { + "alias": "Microsoft", + "mini": true + }, + "Chrono.gg": { + "mini": true + }, + "CodePen": { + "mini": true + }, + "DeviantArt": { + "mini": true + }, + "Discord": { + "mini": true + }, + "Disqus": { + "mini": true + }, + "Dribbble": { + "mini": true + }, + "Dropbox": { + "mini": true + }, + "Duolingo": { + "mini": true + }, + "Etsy": { + "mini": true + }, + "Evernote": { + "mini": true + }, + "Facebook": { + "mini": true + }, + "Fanatical": { + "mini": true + }, + "FANDOM": { + "mini": true + }, + "Firebox": { + "mini": true + }, + "Firefox": { + "mini": true + }, + "Flickr": { + "alias": "Yahoo", + "mini": true + }, + "Freelancer": { + "mini": true + }, + "Genius": { + "mini": true + }, + "GeoGuessr": { + "mini": true + }, + "Gfycat": { + "mini": true + }, + "GIPHY": { + "mini": true + }, + "GitLab": { + "mini": true + }, + "Hi-Rez": { + "logo": "logos/Hi-Rez.png" + }, + "imgur": { + "mini": true + }, + "mailbox.org": { + "mini": true + }, + "Messenger": { + "alias": "Facebook" + }, + "Minecraft": { + "alias": "Mojang" + }, + "MSN": { + "alias": "Microsoft" + }, + "Nectar": { + "logo": "logos/Nectar.png" + }, + "Netflix": { + "mini": true + }, + "osu!": { + "logo": "logos/osu!.png" + }, + "Pastebin": { + "logo": "logos/Pastebin.png" + }, + "Patreon": { + "mini": true + }, + "PayPal": { + "mini": true + }, + "paysafecard": { + "mini": true + }, + "Pinterest": { + "mini": true + }, + "pixiv": { + "mini": true + }, + "Riot Games": { + "mini": true + }, + "Skype": { + "alias": "Microsoft" + }, + "Spotify": { + "mini": true + }, + "Square Enix": { + "mini": true + }, + "StellarX": { + "mini": true + }, + "TikTok": { + "mini": true + }, + "Tumblr": { + "alias": "Yahoo", + "mini": true + }, + "Twitch": { + "mini": true + }, + "Uplay": { + "alias": "Ubisoft" + }, + "WeChat": { + "alias": "QQ" + }, + "Xbox": { + "alias": "Microsoft" + }, + "Yahoo": { + "mini": true + }, + "YouTube": { + "alias": "Google" + } } \ No newline at end of file diff --git a/data/logos_schema.json b/data/logos_schema.json index c34abfe4..76ccd227 100644 --- a/data/logos_schema.json +++ b/data/logos_schema.json @@ -1,23 +1,23 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "patternProperties": { - "^[^\"\/\\\n]+$": { - "properties": { - "alias": { - "type": "string" - }, - "logo": { - "type":"string", - "pattern": "logos\/[a-zA-Z0-9_\\-\\!]+\\.(png|jpg)" - }, - "mini":{ - "type": ["string", "boolean"], - "pattern": "logos\/[a-zA-Z0-9_\\-\\!]+-MINI\\.(png|jpg)" - } - }, - "type": "object", - "additionalProperties": false - } - } +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "patternProperties": { + "^[^\"\/\\\n]+$": { + "properties": { + "alias": { + "type": "string" + }, + "logo": { + "type":"string", + "pattern": "logos\/[a-zA-Z0-9_\\-\\!]+\\.(png|jpg)" + }, + "mini":{ + "type": ["string", "boolean"], + "pattern": "logos\/[a-zA-Z0-9_\\-\\!]+-MINI\\.(png|jpg)" + } + }, + "type": "object", + "additionalProperties": false + } + } } \ No newline at end of file diff --git a/data/themes_schema.json b/data/themes_schema.json index f0aa7913..3597a999 100644 --- a/data/themes_schema.json +++ b/data/themes_schema.json @@ -1,66 +1,66 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "patternProperties": { - "^[a-zA-Z0-9\\W]*$": { - "type": "object", - "properties": { - "accent": { - "type": "string", - "format": "color" - }, - "lightAccent": { - "type": "string", - "format": "color" - }, - "text": { - "type": "string", - "format": "color" - }, - "background": { - "type": "string", - "format": "color" - }, - "internal": { - "type": "string", - "format": "color" - }, - "incorrect": { - "type": "string", - "format": "color" - }, - "correct": { - "type": "string", - "format": "color" - }, - "inputColor": { - "type": "string", - "format": "color" - }, - "linkColor": { - "type": "string", - "format": "color" - }, - "highlightColor": { - "type": "string", - "format": "color" - } - }, - "required": [ - "accent", - "lightAccent", - "text", - "background", - "internal", - "incorrect", - "correct", - "inputColor", - "linkColor", - "highlightColor" - ] - } - }, - "required": [ - "Vanilla" - ] +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9\\W]*$": { + "type": "object", + "properties": { + "accent": { + "type": "string", + "format": "color" + }, + "lightAccent": { + "type": "string", + "format": "color" + }, + "text": { + "type": "string", + "format": "color" + }, + "background": { + "type": "string", + "format": "color" + }, + "internal": { + "type": "string", + "format": "color" + }, + "incorrect": { + "type": "string", + "format": "color" + }, + "correct": { + "type": "string", + "format": "color" + }, + "inputColor": { + "type": "string", + "format": "color" + }, + "linkColor": { + "type": "string", + "format": "color" + }, + "highlightColor": { + "type": "string", + "format": "color" + } + }, + "required": [ + "accent", + "lightAccent", + "text", + "background", + "internal", + "incorrect", + "correct", + "inputColor", + "linkColor", + "highlightColor" + ] + } + }, + "required": [ + "Vanilla" + ] } \ No newline at end of file diff --git a/de-DE.html b/de-DE.html deleted file mode 100644 index ec036cc3..00000000 --- a/de-DE.html +++ /dev/null @@ -1 +0,0 @@ -Cloverleaf
Desto länger, desto besser
\ No newline at end of file diff --git a/eo-UY.html b/eo-UY.html deleted file mode 100644 index 3a14a5ee..00000000 --- a/eo-UY.html +++ /dev/null @@ -1 +0,0 @@ -Cloverleaf
Ju pli longe, des pli bone
\ No newline at end of file diff --git a/es-ES.html b/es-ES.html deleted file mode 100644 index e79848e9..00000000 --- a/es-ES.html +++ /dev/null @@ -1 +0,0 @@ -Cloverleaf
Cuanto más largo, mejor
\ No newline at end of file diff --git a/faq.html b/faq.html deleted file mode 100644 index d836b327..00000000 --- a/faq.html +++ /dev/null @@ -1,61 +0,0 @@ -

Frequently Asked Questions

-

Q: What is this and why should I use it?:

-

A: This is a complete redesign of the traditional password generator/storage system. Instead of relying on a hard drive to not to fail, or that backup you keep forgetting to make, Cloverleaf makes a password based on your master password and the application you want a password for. This generated password will be the same every time, no matter what device you're on. You can then copy this and paste it into the app you want to log into.

-


-

Q: How do I know you're not looking at my passwords?:

-

A: When you type, your computer takes the app name and your master password and using them makes a new password. Nothing is ever sent across the internet, other than the code for the website itself. If you really want, you can download the files for the website, smash your router and run Cloverleaf offline (Not that I'd recommend smashing your router.)

-


-

Q: Why did you remake an existing product?:

-

A: I've openly acknowledged that Cloverleaf is based off the concept of "Master Password" but why would I spend all this time re-making a working piece of software? The answer is simple: I don't like how Master Password works. It has many different offshoots that all look different. It takes 6 variables to make a password and 30 seconds to load (Yes, I timed it.). It makes everything harder than it should be. And that was my motivation to make Cloverleaf. I absolutely love the concept of secure passwords without storing them but hate the current solutions.

-


-

Q: What if I have multiple accounts on one service?:

-

A: There isn't a system in place for this but there doesn't need to be since you can just type ACCOUNTNAME PASSWORD in the password field to get the password for that account.

-


-

Q: What are cookies and why do you use them?:

-

A: A cookie is a small bit of information that a website stores on your computer so that when you come back to the site later, it can remember things from your previous visit. Cloverleaf uses these for remembering what theme you like and a few other things like that.

-


-

Q: What if I have a question that's not listed here?

-

A: Ask your question here

-

Frequently Asked Questions - Cloverleaf

- diff --git a/fr-FR.html b/fr-FR.html deleted file mode 100644 index 6b41a3b3..00000000 --- a/fr-FR.html +++ /dev/null @@ -1 +0,0 @@ -Cloverleaf
Plus c'est long, mieux c'est
\ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index fe203350..00000000 --- a/index.html +++ /dev/null @@ -1 +0,0 @@ -Cloverleaf
The longer, the better
\ No newline at end of file diff --git a/out.css b/out.css new file mode 100644 index 00000000..a5c01b6b --- /dev/null +++ b/out.css @@ -0,0 +1,4070 @@ +@charset "UTF-8"; + +/* C:/Users/allie/AppData/Local/Temp/tmp-11184-l68W6uvMAydH/web/src/style.css */ +html { + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +footer, +header, +nav, +section { + display: block; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +figcaption, +figure, +main { + display: block; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} +pre { + font-family: monospace, monospace; + font-size: 1em; +} +a { + background-color: transparent; + -webkit-text-decoration-skip: objects; +} +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; +} +b, +strong { + font-weight: inherit; +} +b, +strong { + font-weight: bolder; +} +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +dfn { + font-style: italic; +} +mark { + background-color: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +audio, +video { + display: inline-block; +} +audio:not([controls]) { + display: none; + height: 0; +} +img { + border-style: none; +} +svg:not(:root) { + overflow: hidden; +} +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; +} +button, +input { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html [type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style: none; + padding: 0; +} +button:-moz-focusring, +[type=button]:-moz-focusring, +[type=reset]:-moz-focusring, +[type=submit]:-moz-focusring { + outline: 1px dotted ButtonText; +} +fieldset { + padding: 0.35em 0.75em 0.625em; +} +legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; +} +progress { + display: inline-block; + vertical-align: baseline; +} +textarea { + overflow: auto; +} +[type=checkbox], +[type=radio] { + box-sizing: border-box; + padding: 0; +} +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto; +} +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} +[type=search]::-webkit-search-cancel-button, +[type=search]::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} +details, +menu { + display: block; +} +summary { + display: list-item; +} +canvas { + display: inline-block; +} +template { + display: none; +} +[hidden] { + display: none; +} +html { + box-sizing: border-box; +} +*, +*:before, +*:after { + box-sizing: inherit; +} +button, +input, +optgroup, +select, +textarea { + font-family: + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Roboto, + Oxygen-Sans, + Ubuntu, + Cantarell, + "Helvetica Neue", + sans-serif; +} +ul:not(.browser-default) { + padding-left: 0; + list-style-type: none; +} +ul:not(.browser-default) > li { + list-style-type: none; +} +a { + color: #00539b; + text-decoration: none; + -webkit-tap-highlight-color: transparent; +} +.valign-wrapper { + display: flex; + align-items: center; +} +.clearfix { + clear: both; +} +.z-depth-0 { + box-shadow: none !important; +} +.z-depth-1, +.sidenav, +.dropdown-content, +.btn-floating, +.btn, +.btn-small, +.btn-large, +.toast { + box-shadow: + 0 2px 2px 0 rgba(0, 0, 0, 0.14), + 0 3px 1px -2px rgba(0, 0, 0, 0.12), + 0 1px 5px 0 rgba(0, 0, 0, 0.2); +} +.z-depth-1-half, +.btn-floating:hover, +.btn:hover, +.btn-small:hover, +.btn-large:hover { + box-shadow: + 0 3px 3px 0 rgba(0, 0, 0, 0.14), + 0 1px 7px 0 rgba(0, 0, 0, 0.12), + 0 3px 1px -1px rgba(0, 0, 0, 0.2); +} +.z-depth-2 { + box-shadow: + 0 4px 5px 0 rgba(0, 0, 0, 0.14), + 0 1px 10px 0 rgba(0, 0, 0, 0.12), + 0 2px 4px -1px rgba(0, 0, 0, 0.3); +} +.z-depth-3 { + box-shadow: + 0 8px 17px 2px rgba(0, 0, 0, 0.14), + 0 3px 14px 2px rgba(0, 0, 0, 0.12), + 0 5px 5px -3px rgba(0, 0, 0, 0.2); +} +.z-depth-4 { + box-shadow: + 0 16px 24px 2px rgba(0, 0, 0, 0.14), + 0 6px 30px 5px rgba(0, 0, 0, 0.12), + 0 8px 10px -7px rgba(0, 0, 0, 0.2); +} +.z-depth-5 { + box-shadow: + 0 24px 38px 3px rgba(0, 0, 0, 0.14), + 0 9px 46px 8px rgba(0, 0, 0, 0.12), + 0 11px 15px -7px rgba(0, 0, 0, 0.2); +} +.hoverable { + transition: box-shadow 0.25s; +} +.hoverable:hover { + box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); +} +.divider { + height: 1px; + overflow: hidden; + background-color: #e0e0e0; +} +blockquote { + margin: 20px 0; + padding-left: 1.5rem; + border-left: 5px solid #ee6e73; +} +i { + line-height: inherit; +} +i.left { + float: left; + margin-right: 15px; +} +i.right { + float: right; + margin-left: 15px; +} +i.tiny { + font-size: 1rem; +} +i.small { + font-size: 2rem; +} +i.medium { + font-size: 4rem; +} +i.large { + font-size: 6rem; +} +img.responsive-img, +video.responsive-video { + max-width: 100%; + height: auto; +} +.pagination li { + display: inline-block; + border-radius: 2px; + text-align: center; + vertical-align: top; + height: 30px; +} +.pagination li a { + color: #444; + display: inline-block; + font-size: 1.2rem; + padding: 0 10px; + line-height: 30px; +} +.pagination li.active a { + color: #fff; +} +.pagination li.active { + background-color: #ee6e73; +} +.pagination li.disabled a { + cursor: default; + color: #999; +} +.pagination li i { + font-size: 2rem; +} +.pagination li.pages ul li { + display: inline-block; + float: none; +} +@media only screen and (max-width:992px) { + .pagination { + width: 100%; + } + .pagination li.prev, + .pagination li.next { + width: 10%; + } + .pagination li.pages { + width: 80%; + overflow: hidden; + white-space: nowrap; + } +} +.breadcrumb { + font-size: 18px; + color: rgba(255, 255, 255, 0.7); +} +.breadcrumb i, +.breadcrumb [class^=mdi-], +.breadcrumb [class*=mdi-], +.breadcrumb i.material-icons { + display: inline-block; + float: left; + font-size: 24px; +} +.breadcrumb:before { + content: "\e5cc"; + color: rgba(255, 255, 255, 0.7); + vertical-align: top; + display: inline-block; + font-family: "Material Icons"; + font-weight: normal; + font-style: normal; + font-size: 25px; + margin: 0 10px 0 8px; + -webkit-font-smoothing: antialiased; +} +.breadcrumb:first-child:before { + display: none; +} +.breadcrumb:last-child { + color: #fff; +} +.parallax-container { + position: relative; + overflow: hidden; + height: 500px; +} +.parallax-container .parallax { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: -1; +} +.parallax-container .parallax img { + opacity: 0; + position: absolute; + left: 50%; + bottom: 0; + min-width: 100%; + min-height: 100%; + transform: translate3d(0, 0, 0); + transform: translateX(-50%); +} +.pin-top, +.pin-bottom { + position: relative; +} +.pinned { + position: fixed !important; +} +ul.staggered-list li { + opacity: 0; +} +.fade-in { + opacity: 0; + transform-origin: 0 50%; +} +@media only screen and (max-width:600px) { + .hide-on-small-only, + .hide-on-small-and-down { + display: none !important; + } +} +@media only screen and (max-width:992px) { + .hide-on-med-and-down { + display: none !important; + } +} +@media only screen and (min-width:601px) { + .hide-on-med-and-up { + display: none !important; + } +} +@media only screen and (min-width:600px) and (max-width:992px) { + .hide-on-med-only { + display: none !important; + } +} +@media only screen and (min-width:993px) { + .hide-on-large-only { + display: none !important; + } +} +@media only screen and (min-width:1201px) { + .hide-on-extra-large-only { + display: none !important; + } +} +@media only screen and (min-width:1201px) { + .show-on-extra-large { + display: block !important; + } +} +@media only screen and (min-width:993px) { + .show-on-large { + display: block !important; + } +} +@media only screen and (min-width:600px) and (max-width:992px) { + .show-on-medium { + display: block !important; + } +} +@media only screen and (max-width:600px) { + .show-on-small { + display: block !important; + } +} +@media only screen and (min-width:601px) { + .show-on-medium-and-up { + display: block !important; + } +} +@media only screen and (max-width:992px) { + .show-on-medium-and-down { + display: block !important; + } +} +@media only screen and (max-width:600px) { + .center-on-small-only { + text-align: center; + } +} +.page-footer { + padding-top: 20px; + color: #fff; + background-color: #ee6e73; +} +.page-footer .footer-copyright { + overflow: hidden; + min-height: 50px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px 0px; + color: rgba(255, 255, 255, 0.8); + background-color: rgba(51, 51, 51, 0.08); +} +table, +th, +td { + border: none; +} +table { + width: 100%; + display: table; + border-collapse: collapse; + border-spacing: 0; +} +table.striped tr { + border-bottom: none; +} +table.striped > tbody > tr:nth-child(odd) { + background-color: rgba(242, 242, 242, 0.5); +} +table.striped > tbody > tr > td { + border-radius: 0; +} +table.highlight > tbody > tr { + transition: background-color 0.25s ease; +} +table.highlight > tbody > tr:hover { + background-color: rgba(242, 242, 242, 0.5); +} +table.centered thead tr th, +table.centered tbody tr td { + text-align: center; +} +tr { + border-bottom: 1px solid rgba(0, 0, 0, 0.12); +} +td, +th { + padding: 15px 5px; + display: table-cell; + text-align: left; + vertical-align: middle; + border-radius: 2px; +} +@media only screen and (max-width:992px) { + table.responsive-table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + display: block; + position: relative; + } + table.responsive-table td:empty:before { + content: "\a0"; + } + table.responsive-table th, + table.responsive-table td { + margin: 0; + vertical-align: top; + } + table.responsive-table th { + text-align: left; + } + table.responsive-table thead { + display: block; + float: left; + } + table.responsive-table thead tr { + display: block; + padding: 0 10px 0 0; + } + table.responsive-table thead tr th::before { + content: "\a0"; + } + table.responsive-table tbody { + display: block; + width: auto; + position: relative; + overflow-x: auto; + white-space: nowrap; + } + table.responsive-table tbody tr { + display: inline-block; + vertical-align: top; + } + table.responsive-table th { + display: block; + text-align: right; + } + table.responsive-table td { + display: block; + min-height: 1.25em; + text-align: left; + } + table.responsive-table tr { + border-bottom: none; + padding: 0 10px; + } + table.responsive-table thead { + border: 0; + border-right: 1px solid rgba(0, 0, 0, 0.12); + } +} +.collection { + margin: 0.5rem 0 1rem 0; + border: 1px solid #e0e0e0; + border-radius: 2px; + overflow: hidden; + position: relative; +} +.collection .collection-item { + background-color: #fff; + line-height: 1.5rem; + padding: 10px 20px; + margin: 0; + border-bottom: 1px solid #e0e0e0; +} +.collection .collection-item.avatar { + min-height: 84px; + padding-left: 72px; + position: relative; +} +.collection .collection-item.avatar:not(.circle-clipper) > .circle, +.collection .collection-item.avatar :not(.circle-clipper) > .circle { + position: absolute; + width: 42px; + height: 42px; + overflow: hidden; + left: 15px; + display: inline-block; + vertical-align: middle; +} +.collection .collection-item.avatar i.circle { + font-size: 18px; + line-height: 42px; + color: #fff; + background-color: #999; + text-align: center; +} +.collection .collection-item.avatar .title { + font-size: 16px; +} +.collection .collection-item.avatar p { + margin: 0; +} +.collection .collection-item.avatar .secondary-content { + position: absolute; + top: 16px; + right: 16px; +} +.collection .collection-item:last-child { + border-bottom: none; +} +.collection .collection-item.active { + background-color: #3f51b5; + color: white; +} +.collection .collection-item.active .secondary-content { + color: #fff; +} +.collection a.collection-item { + display: block; + transition: 0.25s; + color: #3f51b5; +} +.collection a.collection-item:not(.active):hover { + background-color: #ddd; +} +.collection.with-header .collection-header { + background-color: #fff; + border-bottom: 1px solid #e0e0e0; + padding: 10px 20px; +} +.collection.with-header .collection-item { + padding-left: 30px; +} +.collection.with-header .collection-item.avatar { + padding-left: 72px; +} +.secondary-content { + float: right; + color: #3f51b5; +} +.collapsible .collection { + margin: 0; + border: none; +} +.video-container { + position: relative; + padding-bottom: 56.25%; + height: 0; + overflow: hidden; +} +.video-container iframe, +.video-container object, +.video-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.progress { + position: relative; + height: 4px; + display: block; + width: 100%; + background-color: #d1d6ef; + border-radius: 2px; + margin: 0.5rem 0 1rem 0; + overflow: hidden; +} +.progress .determinate { + position: absolute; + top: 0; + left: 0; + bottom: 0; + background-color: #3f51b5; + transition: width 0.3s linear; +} +.progress .indeterminate { + background-color: #3f51b5; +} +.progress .indeterminate:before { + content: ""; + position: absolute; + background-color: inherit; + top: 0; + left: 0; + bottom: 0; + will-change: left, right; + animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; +} +.progress .indeterminate:after { + content: ""; + position: absolute; + background-color: inherit; + top: 0; + left: 0; + bottom: 0; + will-change: left, right; + animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + animation-delay: 1.15s; +} +@keyframes indeterminate { + 0% { + left: -35%; + right: 100%; + } + 60% { + left: 100%; + right: -90%; + } + 100% { + left: 100%; + right: -90%; + } +} +@keyframes indeterminate-short { + 0% { + left: -200%; + right: 100%; + } + 60% { + left: 107%; + right: -8%; + } + 100% { + left: 107%; + right: -8%; + } +} +.hide { + display: none !important; +} +.left-align { + text-align: left; +} +.right-align { + text-align: right; +} +.center, +.center-align { + text-align: center; +} +.left { + float: left !important; +} +.right { + float: right !important; +} +.no-select { + user-select: none; +} +.circle { + border-radius: 50%; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.truncate { + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.no-padding { + padding: 0 !important; +} +.container { + margin: 0 auto; + max-width: 1280px; + width: 90%; +} +@media only screen and (min-width:601px) { + .container { + width: 85%; + } +} +@media only screen and (min-width:993px) { + .container { + width: 70%; + } +} +.col .row { + margin-left: -0.75rem; + margin-right: -0.75rem; +} +.section { + padding-top: 1rem; + padding-bottom: 1rem; +} +.section.no-pad { + padding: 0; +} +.section.no-pad-bot { + padding-bottom: 0; +} +.section.no-pad-top { + padding-top: 0; +} +.row { + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; +} +.row:after { + content: ""; + display: table; + clear: both; +} +.row .col { + float: left; + box-sizing: border-box; + padding: 0 0.75rem; + min-height: 1px; +} +.row .col[class*=push-], +.row .col[class*=pull-] { + position: relative; +} +.row .col.s1 { + width: 8.3333333333%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s2 { + width: 16.6666666667%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s3 { + width: 25%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s4 { + width: 33.3333333333%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s5 { + width: 41.6666666667%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s6 { + width: 50%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s7 { + width: 58.3333333333%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s8 { + width: 66.6666666667%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s9 { + width: 75%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s10 { + width: 83.3333333333%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s11 { + width: 91.6666666667%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.s12 { + width: 100%; + margin-left: auto; + left: auto; + right: auto; +} +.row .col.offset-s1 { + margin-left: 8.3333333333%; +} +.row .col.pull-s1 { + right: 8.3333333333%; +} +.row .col.push-s1 { + left: 8.3333333333%; +} +.row .col.offset-s2 { + margin-left: 16.6666666667%; +} +.row .col.pull-s2 { + right: 16.6666666667%; +} +.row .col.push-s2 { + left: 16.6666666667%; +} +.row .col.offset-s3 { + margin-left: 25%; +} +.row .col.pull-s3 { + right: 25%; +} +.row .col.push-s3 { + left: 25%; +} +.row .col.offset-s4 { + margin-left: 33.3333333333%; +} +.row .col.pull-s4 { + right: 33.3333333333%; +} +.row .col.push-s4 { + left: 33.3333333333%; +} +.row .col.offset-s5 { + margin-left: 41.6666666667%; +} +.row .col.pull-s5 { + right: 41.6666666667%; +} +.row .col.push-s5 { + left: 41.6666666667%; +} +.row .col.offset-s6 { + margin-left: 50%; +} +.row .col.pull-s6 { + right: 50%; +} +.row .col.push-s6 { + left: 50%; +} +.row .col.offset-s7 { + margin-left: 58.3333333333%; +} +.row .col.pull-s7 { + right: 58.3333333333%; +} +.row .col.push-s7 { + left: 58.3333333333%; +} +.row .col.offset-s8 { + margin-left: 66.6666666667%; +} +.row .col.pull-s8 { + right: 66.6666666667%; +} +.row .col.push-s8 { + left: 66.6666666667%; +} +.row .col.offset-s9 { + margin-left: 75%; +} +.row .col.pull-s9 { + right: 75%; +} +.row .col.push-s9 { + left: 75%; +} +.row .col.offset-s10 { + margin-left: 83.3333333333%; +} +.row .col.pull-s10 { + right: 83.3333333333%; +} +.row .col.push-s10 { + left: 83.3333333333%; +} +.row .col.offset-s11 { + margin-left: 91.6666666667%; +} +.row .col.pull-s11 { + right: 91.6666666667%; +} +.row .col.push-s11 { + left: 91.6666666667%; +} +.row .col.offset-s12 { + margin-left: 100%; +} +.row .col.pull-s12 { + right: 100%; +} +.row .col.push-s12 { + left: 100%; +} +@media only screen and (min-width:601px) { + .row .col.m1 { + width: 8.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m2 { + width: 16.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m3 { + width: 25%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m4 { + width: 33.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m5 { + width: 41.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m6 { + width: 50%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m7 { + width: 58.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m8 { + width: 66.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m9 { + width: 75%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m10 { + width: 83.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m11 { + width: 91.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.m12 { + width: 100%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.offset-m1 { + margin-left: 8.3333333333%; + } + .row .col.pull-m1 { + right: 8.3333333333%; + } + .row .col.push-m1 { + left: 8.3333333333%; + } + .row .col.offset-m2 { + margin-left: 16.6666666667%; + } + .row .col.pull-m2 { + right: 16.6666666667%; + } + .row .col.push-m2 { + left: 16.6666666667%; + } + .row .col.offset-m3 { + margin-left: 25%; + } + .row .col.pull-m3 { + right: 25%; + } + .row .col.push-m3 { + left: 25%; + } + .row .col.offset-m4 { + margin-left: 33.3333333333%; + } + .row .col.pull-m4 { + right: 33.3333333333%; + } + .row .col.push-m4 { + left: 33.3333333333%; + } + .row .col.offset-m5 { + margin-left: 41.6666666667%; + } + .row .col.pull-m5 { + right: 41.6666666667%; + } + .row .col.push-m5 { + left: 41.6666666667%; + } + .row .col.offset-m6 { + margin-left: 50%; + } + .row .col.pull-m6 { + right: 50%; + } + .row .col.push-m6 { + left: 50%; + } + .row .col.offset-m7 { + margin-left: 58.3333333333%; + } + .row .col.pull-m7 { + right: 58.3333333333%; + } + .row .col.push-m7 { + left: 58.3333333333%; + } + .row .col.offset-m8 { + margin-left: 66.6666666667%; + } + .row .col.pull-m8 { + right: 66.6666666667%; + } + .row .col.push-m8 { + left: 66.6666666667%; + } + .row .col.offset-m9 { + margin-left: 75%; + } + .row .col.pull-m9 { + right: 75%; + } + .row .col.push-m9 { + left: 75%; + } + .row .col.offset-m10 { + margin-left: 83.3333333333%; + } + .row .col.pull-m10 { + right: 83.3333333333%; + } + .row .col.push-m10 { + left: 83.3333333333%; + } + .row .col.offset-m11 { + margin-left: 91.6666666667%; + } + .row .col.pull-m11 { + right: 91.6666666667%; + } + .row .col.push-m11 { + left: 91.6666666667%; + } + .row .col.offset-m12 { + margin-left: 100%; + } + .row .col.pull-m12 { + right: 100%; + } + .row .col.push-m12 { + left: 100%; + } +} +@media only screen and (min-width:993px) { + .row .col.l1 { + width: 8.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l2 { + width: 16.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l3 { + width: 25%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l4 { + width: 33.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l5 { + width: 41.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l6 { + width: 50%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l7 { + width: 58.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l8 { + width: 66.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l9 { + width: 75%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l10 { + width: 83.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l11 { + width: 91.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.l12 { + width: 100%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.offset-l1 { + margin-left: 8.3333333333%; + } + .row .col.pull-l1 { + right: 8.3333333333%; + } + .row .col.push-l1 { + left: 8.3333333333%; + } + .row .col.offset-l2 { + margin-left: 16.6666666667%; + } + .row .col.pull-l2 { + right: 16.6666666667%; + } + .row .col.push-l2 { + left: 16.6666666667%; + } + .row .col.offset-l3 { + margin-left: 25%; + } + .row .col.pull-l3 { + right: 25%; + } + .row .col.push-l3 { + left: 25%; + } + .row .col.offset-l4 { + margin-left: 33.3333333333%; + } + .row .col.pull-l4 { + right: 33.3333333333%; + } + .row .col.push-l4 { + left: 33.3333333333%; + } + .row .col.offset-l5 { + margin-left: 41.6666666667%; + } + .row .col.pull-l5 { + right: 41.6666666667%; + } + .row .col.push-l5 { + left: 41.6666666667%; + } + .row .col.offset-l6 { + margin-left: 50%; + } + .row .col.pull-l6 { + right: 50%; + } + .row .col.push-l6 { + left: 50%; + } + .row .col.offset-l7 { + margin-left: 58.3333333333%; + } + .row .col.pull-l7 { + right: 58.3333333333%; + } + .row .col.push-l7 { + left: 58.3333333333%; + } + .row .col.offset-l8 { + margin-left: 66.6666666667%; + } + .row .col.pull-l8 { + right: 66.6666666667%; + } + .row .col.push-l8 { + left: 66.6666666667%; + } + .row .col.offset-l9 { + margin-left: 75%; + } + .row .col.pull-l9 { + right: 75%; + } + .row .col.push-l9 { + left: 75%; + } + .row .col.offset-l10 { + margin-left: 83.3333333333%; + } + .row .col.pull-l10 { + right: 83.3333333333%; + } + .row .col.push-l10 { + left: 83.3333333333%; + } + .row .col.offset-l11 { + margin-left: 91.6666666667%; + } + .row .col.pull-l11 { + right: 91.6666666667%; + } + .row .col.push-l11 { + left: 91.6666666667%; + } + .row .col.offset-l12 { + margin-left: 100%; + } + .row .col.pull-l12 { + right: 100%; + } + .row .col.push-l12 { + left: 100%; + } +} +@media only screen and (min-width:1201px) { + .row .col.xl1 { + width: 8.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl2 { + width: 16.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl3 { + width: 25%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl4 { + width: 33.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl5 { + width: 41.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl6 { + width: 50%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl7 { + width: 58.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl8 { + width: 66.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl9 { + width: 75%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl10 { + width: 83.3333333333%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl11 { + width: 91.6666666667%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.xl12 { + width: 100%; + margin-left: auto; + left: auto; + right: auto; + } + .row .col.offset-xl1 { + margin-left: 8.3333333333%; + } + .row .col.pull-xl1 { + right: 8.3333333333%; + } + .row .col.push-xl1 { + left: 8.3333333333%; + } + .row .col.offset-xl2 { + margin-left: 16.6666666667%; + } + .row .col.pull-xl2 { + right: 16.6666666667%; + } + .row .col.push-xl2 { + left: 16.6666666667%; + } + .row .col.offset-xl3 { + margin-left: 25%; + } + .row .col.pull-xl3 { + right: 25%; + } + .row .col.push-xl3 { + left: 25%; + } + .row .col.offset-xl4 { + margin-left: 33.3333333333%; + } + .row .col.pull-xl4 { + right: 33.3333333333%; + } + .row .col.push-xl4 { + left: 33.3333333333%; + } + .row .col.offset-xl5 { + margin-left: 41.6666666667%; + } + .row .col.pull-xl5 { + right: 41.6666666667%; + } + .row .col.push-xl5 { + left: 41.6666666667%; + } + .row .col.offset-xl6 { + margin-left: 50%; + } + .row .col.pull-xl6 { + right: 50%; + } + .row .col.push-xl6 { + left: 50%; + } + .row .col.offset-xl7 { + margin-left: 58.3333333333%; + } + .row .col.pull-xl7 { + right: 58.3333333333%; + } + .row .col.push-xl7 { + left: 58.3333333333%; + } + .row .col.offset-xl8 { + margin-left: 66.6666666667%; + } + .row .col.pull-xl8 { + right: 66.6666666667%; + } + .row .col.push-xl8 { + left: 66.6666666667%; + } + .row .col.offset-xl9 { + margin-left: 75%; + } + .row .col.pull-xl9 { + right: 75%; + } + .row .col.push-xl9 { + left: 75%; + } + .row .col.offset-xl10 { + margin-left: 83.3333333333%; + } + .row .col.pull-xl10 { + right: 83.3333333333%; + } + .row .col.push-xl10 { + left: 83.3333333333%; + } + .row .col.offset-xl11 { + margin-left: 91.6666666667%; + } + .row .col.pull-xl11 { + right: 91.6666666667%; + } + .row .col.push-xl11 { + left: 91.6666666667%; + } + .row .col.offset-xl12 { + margin-left: 100%; + } + .row .col.pull-xl12 { + right: 100%; + } + .row .col.push-xl12 { + left: 100%; + } +} +a { + text-decoration: none; +} +html { + line-height: 1.5; + font-family: + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Roboto, + Oxygen-Sans, + Ubuntu, + Cantarell, + "Helvetica Neue", + sans-serif; + font-weight: normal; + color: rgba(0, 0, 0, 0.87); +} +@media only screen and (min-width:0) { + html { + font-size: 14px; + } +} +@media only screen and (min-width:992px) { + html { + font-size: 14.5px; + } +} +@media only screen and (min-width:1200px) { + html { + font-size: 15px; + } +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: 400; + line-height: 1.3; +} +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + font-weight: inherit; +} +h1 { + font-size: 4.2rem; + line-height: 110%; + margin: 2.8rem 0 1.68rem 0; +} +h2 { + font-size: 3.56rem; + line-height: 110%; + margin: 2.3733333333rem 0 1.424rem 0; +} +h3 { + font-size: 2.92rem; + line-height: 110%; + margin: 1.9466666667rem 0 1.168rem 0; +} +h4 { + font-size: 2.28rem; + line-height: 110%; + margin: 1.52rem 0 0.912rem 0; +} +h5 { + font-size: 1.64rem; + line-height: 110%; + margin: 1.0933333333rem 0 0.656rem 0; +} +h6 { + font-size: 1.15rem; + line-height: 110%; + margin: 0.7666666667rem 0 0.46rem 0; +} +em { + font-style: italic; +} +strong { + font-weight: 500; +} +small { + font-size: 75%; +} +.light { + font-weight: 300; +} +.thin { + font-weight: 200; +} +@media only screen and (min-width:360px) { + .flow-text { + font-size: 1.2rem; + } +} +@media only screen and (min-width:390px) { + .flow-text { + font-size: 1.224rem; + } +} +@media only screen and (min-width:420px) { + .flow-text { + font-size: 1.248rem; + } +} +@media only screen and (min-width:450px) { + .flow-text { + font-size: 1.272rem; + } +} +@media only screen and (min-width:480px) { + .flow-text { + font-size: 1.296rem; + } +} +@media only screen and (min-width:510px) { + .flow-text { + font-size: 1.32rem; + } +} +@media only screen and (min-width:540px) { + .flow-text { + font-size: 1.344rem; + } +} +@media only screen and (min-width:570px) { + .flow-text { + font-size: 1.368rem; + } +} +@media only screen and (min-width:600px) { + .flow-text { + font-size: 1.392rem; + } +} +@media only screen and (min-width:630px) { + .flow-text { + font-size: 1.416rem; + } +} +@media only screen and (min-width:660px) { + .flow-text { + font-size: 1.44rem; + } +} +@media only screen and (min-width:690px) { + .flow-text { + font-size: 1.464rem; + } +} +@media only screen and (min-width:720px) { + .flow-text { + font-size: 1.488rem; + } +} +@media only screen and (min-width:750px) { + .flow-text { + font-size: 1.512rem; + } +} +@media only screen and (min-width:780px) { + .flow-text { + font-size: 1.536rem; + } +} +@media only screen and (min-width:810px) { + .flow-text { + font-size: 1.56rem; + } +} +@media only screen and (min-width:840px) { + .flow-text { + font-size: 1.584rem; + } +} +@media only screen and (min-width:870px) { + .flow-text { + font-size: 1.608rem; + } +} +@media only screen and (min-width:900px) { + .flow-text { + font-size: 1.632rem; + } +} +@media only screen and (min-width:930px) { + .flow-text { + font-size: 1.656rem; + } +} +@media only screen and (min-width:960px) { + .flow-text { + font-size: 1.68rem; + } +} +@media only screen and (max-width:360px) { + .flow-text { + font-size: 1.2rem; + } +} +#toast-container { + display: block; + position: fixed; + z-index: 10000; +} +@media only screen and (max-width:600px) { + #toast-container { + min-width: 100%; + bottom: 0%; + } +} +@media only screen and (min-width:601px) and (max-width:992px) { + #toast-container { + left: 5%; + bottom: 7%; + max-width: 90%; + } +} +@media only screen and (min-width:993px) { + #toast-container { + top: 10%; + right: 7%; + max-width: 86%; + } +} +.toast { + border-radius: 2px; + top: 35px; + width: auto; + margin-top: 10px; + position: relative; + max-width: 100%; + height: auto; + min-height: 48px; + line-height: 1.5em; + background-color: var(--internalColor); + padding: 10px 25px; + font-size: 1.1rem; + font-weight: 300; + color: var(--textColor); + display: flex; + align-items: center; + justify-content: space-between; + cursor: default; +} +.toast .toast-action { + color: var(--linkColor); + font-weight: 500; + margin-right: -25px; + margin-left: 3rem; +} +.toast.rounded { + border-radius: 24px; +} +@media only screen and (max-width:600px) { + .toast { + width: 100%; + border-radius: 0; + } +} +.tabs { + position: relative; + overflow-x: auto; + overflow-y: hidden; + height: 48px; + width: 100%; + background-color: #fff; + margin: 0 auto; + white-space: nowrap; +} +.tabs.tabs-transparent { + background-color: transparent; +} +.tabs.tabs-transparent .tab a, +.tabs.tabs-transparent .tab.disabled a, +.tabs.tabs-transparent .tab.disabled a:hover { + color: rgba(255, 255, 255, 0.7); +} +.tabs.tabs-transparent .tab a:hover, +.tabs.tabs-transparent .tab a.active { + color: #fff; +} +.tabs.tabs-transparent .indicator { + background-color: #fff; +} +.tabs.tabs-fixed-width { + display: flex; +} +.tabs.tabs-fixed-width .tab { + flex-grow: 1; +} +.tabs .tab { + display: inline-block; + text-align: center; + line-height: 48px; + height: 48px; + padding: 0; + margin: 0; + text-transform: uppercase; +} +.tabs .tab a { + color: rgba(0, 0, 0, 0.7); + display: block; + width: 100%; + height: 100%; + padding: 0 24px; + font-size: 14px; + text-overflow: ellipsis; + overflow: hidden; + transition: color 0.28s ease, background-color 0.28s ease; +} +.tabs .tab a:focus, +.tabs .tab a:focus.active { + background-color: rgba(63, 81, 181, 0.2); + outline: none; +} +.tabs .tab a:hover, +.tabs .tab a.active { + background-color: transparent; + color: #000; +} +.tabs .tab.disabled a, +.tabs .tab.disabled a:hover { + color: rgba(0, 0, 0, 0.4); + cursor: default; +} +.tabs .indicator { + position: absolute; + bottom: 0; + height: 2px; + background-color: #3f51b5; + will-change: left, right; +} +@media only screen and (max-width:992px) { + .tabs { + display: flex; + } + .tabs .tab { + flex-grow: 1; + } + .tabs .tab a { + padding: 0 12px; + } +} +.material-tooltip { + padding: 10px 8px; + font-size: 1rem; + z-index: 2000; + background-color: transparent; + border-radius: 2px; + color: #fff; + min-height: 36px; + line-height: 120%; + opacity: 0; + position: absolute; + text-align: center; + max-width: calc(100% - 4px); + overflow: hidden; + left: 0; + top: 0; + pointer-events: none; + visibility: hidden; + background-color: #323232; +} +.backdrop { + position: absolute; + opacity: 0; + height: 7px; + width: 14px; + border-radius: 0 0 50% 50%; + background-color: #323232; + z-index: -1; + transform-origin: 50% 0%; + visibility: hidden; +} +.btn, +.btn-small, +.btn-large, +.btn-flat { + border: none; + border-radius: 2px; + display: inline-block; + height: 36px; + line-height: 36px; + padding: 0 16px; + text-transform: uppercase; + vertical-align: middle; + -webkit-tap-highlight-color: transparent; +} +.btn.disabled, +.btn-floating.disabled, +.btn-large.disabled, +.btn-small.disabled, +.btn-flat.disabled, +.btn:disabled, +.btn-floating:disabled, +.btn-large:disabled, +.btn-small:disabled, +.btn-flat:disabled, +.btn[disabled], +.btn-floating[disabled], +.btn-large[disabled], +.btn-small[disabled], +.btn-flat[disabled] { + pointer-events: none; + background-color: #DFDFDF !important; + box-shadow: none; + color: #9F9F9F !important; + cursor: default; +} +.btn.disabled:hover, +.btn-floating.disabled:hover, +.btn-large.disabled:hover, +.btn-small.disabled:hover, +.btn-flat.disabled:hover, +.btn:disabled:hover, +.btn-floating:disabled:hover, +.btn-large:disabled:hover, +.btn-small:disabled:hover, +.btn-flat:disabled:hover, +.btn[disabled]:hover, +.btn-floating[disabled]:hover, +.btn-large[disabled]:hover, +.btn-small[disabled]:hover, +.btn-flat[disabled]:hover { + background-color: #DFDFDF !important; + color: #9F9F9F !important; +} +.btn, +.btn-floating, +.btn-large, +.btn-small, +.btn-flat { + font-size: 14px; + outline: 0; +} +.btn i, +.btn-floating i, +.btn-large i, +.btn-small i, +.btn-flat i { + font-size: 1.3rem; + line-height: inherit; +} +.btn:focus, +.btn-small:focus, +.btn-large:focus, +.btn-floating:focus { + background-color: #32408f; +} +.btn, +.btn-small, +.btn-large { + text-decoration: none; + color: #fff; + background-color: #3f51b5; + text-align: center; + letter-spacing: 0.5px; + transition: background-color 0.2s ease-out; + cursor: pointer; +} +.btn:hover, +.btn-small:hover, +.btn-large:hover { + background-color: #4d5ec1; +} +.btn-floating { + display: inline-block; + color: #fff; + position: relative; + overflow: hidden; + z-index: 1; + width: 40px; + height: 40px; + line-height: 40px; + padding: 0; + background-color: #3f51b5; + border-radius: 50%; + transition: background-color 0.3s; + cursor: pointer; + vertical-align: middle; +} +.btn-floating:hover { + background-color: #3f51b5; +} +.btn-floating:before { + border-radius: 0; +} +.btn-floating.btn-large { + width: 56px; + height: 56px; + padding: 0; +} +.btn-floating.btn-large.halfway-fab { + bottom: -28px; +} +.btn-floating.btn-large i { + line-height: 56px; +} +.btn-floating.btn-small { + width: 32.4px; + height: 32.4px; +} +.btn-floating.btn-small.halfway-fab { + bottom: -16.2px; +} +.btn-floating.btn-small i { + line-height: 32.4px; +} +.btn-floating.halfway-fab { + position: absolute; + right: 24px; + bottom: -20px; +} +.btn-floating.halfway-fab.left { + right: auto; + left: 24px; +} +.btn-floating i { + width: inherit; + display: inline-block; + text-align: center; + color: #fff; + font-size: 1.6rem; + line-height: 40px; +} +button.btn-floating { + border: none; +} +.fixed-action-btn { + position: fixed; + right: 23px; + bottom: 23px; + padding-top: 15px; + margin-bottom: 0; + z-index: 997; +} +.fixed-action-btn.active ul { + visibility: visible; +} +.fixed-action-btn.direction-left, +.fixed-action-btn.direction-right { + padding: 0 0 0 15px; +} +.fixed-action-btn.direction-left ul, +.fixed-action-btn.direction-right ul { + text-align: right; + right: 64px; + top: 50%; + transform: translateY(-50%); + height: 100%; + left: auto; + width: 500px; +} +.fixed-action-btn.direction-left ul li, +.fixed-action-btn.direction-right ul li { + display: inline-block; + margin: 7.5px 15px 0 0; +} +.fixed-action-btn.direction-right { + padding: 0 15px 0 0; +} +.fixed-action-btn.direction-right ul { + text-align: left; + direction: rtl; + left: 64px; + right: auto; +} +.fixed-action-btn.direction-right ul li { + margin: 7.5px 0 0 15px; +} +.fixed-action-btn.direction-bottom { + padding: 0 0 15px 0; +} +.fixed-action-btn.direction-bottom ul { + top: 64px; + bottom: auto; + display: flex; + flex-direction: column-reverse; +} +.fixed-action-btn.direction-bottom ul li { + margin: 15px 0 0 0; +} +.fixed-action-btn.toolbar { + padding: 0; + height: 56px; +} +.fixed-action-btn.toolbar.active > a i { + opacity: 0; +} +.fixed-action-btn.toolbar ul { + display: flex; + top: 0; + bottom: 0; + z-index: 1; +} +.fixed-action-btn.toolbar ul li { + flex: 1; + display: inline-block; + margin: 0; + height: 100%; + transition: none; +} +.fixed-action-btn.toolbar ul li a { + display: block; + overflow: hidden; + position: relative; + width: 100%; + height: 100%; + background-color: transparent; + box-shadow: none; + color: #fff; + line-height: 56px; + z-index: 1; +} +.fixed-action-btn.toolbar ul li a i { + line-height: inherit; +} +.fixed-action-btn ul { + left: 0; + right: 0; + text-align: center; + position: absolute; + bottom: 64px; + margin: 0; + visibility: hidden; +} +.fixed-action-btn ul li { + margin-bottom: 15px; +} +.fixed-action-btn ul a.btn-floating { + opacity: 0; +} +.fixed-action-btn .fab-backdrop { + position: absolute; + top: 0; + left: 0; + z-index: -1; + width: 40px; + height: 40px; + background-color: #3f51b5; + border-radius: 50%; + transform: scale(0); +} +.btn-flat { + box-shadow: none; + background-color: transparent; + color: #343434; + cursor: pointer; + transition: background-color 0.2s; +} +.btn-flat:focus, +.btn-flat:hover { + box-shadow: none; +} +.btn-flat:focus { + background-color: rgba(0, 0, 0, 0.1); +} +.btn-flat.disabled, +.btn-flat.btn-flat[disabled] { + background-color: transparent !important; + color: #b3b3b3 !important; + cursor: default; +} +.btn-large { + height: 54px; + line-height: 54px; + font-size: 15px; + padding: 0 28px; +} +.btn-large i { + font-size: 1.6rem; +} +.btn-small { + height: 32.4px; + line-height: 32.4px; + font-size: 13px; +} +.btn-small i { + font-size: 1.2rem; +} +.btn-block { + display: block; +} +.dropdown-content { + background-color: #fff; + margin: 0; + display: none; + min-width: 100px; + overflow-y: auto; + opacity: 0; + position: absolute; + left: 0; + top: 0; + z-index: 9999; + transform-origin: 0 0; +} +.dropdown-content:focus { + outline: 0; +} +.dropdown-content li { + clear: both; + color: rgba(0, 0, 0, 0.87); + cursor: pointer; + min-height: 50px; + line-height: 1.5rem; + width: 100%; + text-align: left; +} +.dropdown-content li:hover, +.dropdown-content li.active { + background-color: #eee; +} +.dropdown-content li:focus { + outline: none; +} +.dropdown-content li.divider { + min-height: 0; + height: 1px; +} +.dropdown-content li > a, +.dropdown-content li > span { + font-size: 16px; + color: #3f51b5; + display: block; + line-height: 22px; + padding: 14px 16px; +} +.dropdown-content li > span > label { + top: 1px; + left: 0; + height: 18px; +} +.dropdown-content li > a > i { + height: inherit; + line-height: inherit; + float: left; + margin: 0 24px 0 0; + width: 24px; +} +body.keyboard-focused .dropdown-content li:focus { + background-color: #dadada; +} +.input-field.col .dropdown-content [type=checkbox] + label { + top: 1px; + left: 0; + height: 18px; + transform: none; +} +.dropdown-trigger { + cursor: pointer; +} +.waves-effect { + position: relative; + cursor: pointer; + display: inline-block; + overflow: hidden; + user-select: none; + -webkit-tap-highlight-color: transparent; + vertical-align: middle; + z-index: 1; + transition: 0.3s ease-out; +} +.waves-effect .waves-ripple { + position: absolute; + border-radius: 50%; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + opacity: 0; + background: rgba(0, 0, 0, 0.2); + transition: all 0.7s ease-out; + transition-property: transform, opacity; + transform: scale(0); + pointer-events: none; +} +.waves-effect.waves-light .waves-ripple { + background-color: rgba(255, 255, 255, 0.45); +} +.waves-effect.waves-red .waves-ripple { + background-color: rgba(244, 67, 54, 0.7); +} +.waves-effect.waves-yellow .waves-ripple { + background-color: rgba(255, 235, 59, 0.7); +} +.waves-effect.waves-orange .waves-ripple { + background-color: rgba(255, 152, 0, 0.7); +} +.waves-effect.waves-purple .waves-ripple { + background-color: rgba(156, 39, 176, 0.7); +} +.waves-effect.waves-green .waves-ripple { + background-color: rgba(76, 175, 80, 0.7); +} +.waves-effect.waves-teal .waves-ripple { + background-color: rgba(0, 150, 136, 0.7); +} +.waves-effect input[type=button], +.waves-effect input[type=reset], +.waves-effect input[type=submit] { + border: 0; + font-style: normal; + font-size: inherit; + text-transform: inherit; + background: none; +} +.waves-effect img { + position: relative; + z-index: -1; +} +.waves-notransition { + transition: none !important; +} +.waves-circle { + transform: translateZ(0); + -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); +} +.waves-input-wrapper { + border-radius: 0.2em; + vertical-align: bottom; +} +.waves-input-wrapper .waves-button-input { + position: relative; + top: 0; + left: 0; + z-index: 1; +} +.waves-circle { + text-align: center; + width: 2.5em; + height: 2.5em; + line-height: 2.5em; + border-radius: 50%; + -webkit-mask-image: none; +} +.waves-block { + display: block; +} +.waves-effect .waves-ripple { + z-index: -1; +} +.sidenav { + position: fixed; + width: 300px; + left: 0; + top: 0; + margin: 0; + transform: translateX(-100%); + height: 100%; + height: calc(100% + 60px); + height: -moz-calc(100%); + padding-bottom: 60px; + background-color: #fff; + z-index: 999; + overflow-y: auto; + will-change: transform; + backface-visibility: hidden; + transform: translateX(-105%); +} +.sidenav.right-aligned { + right: 0; + transform: translateX(105%); + left: auto; + transform: translateX(100%); +} +.sidenav .collapsible { + margin: 0; +} +.sidenav li { + float: none; + line-height: 48px; +} +.sidenav li.active { + background-color: rgba(0, 0, 0, 0.05); +} +.sidenav li > a { + color: rgba(0, 0, 0, 0.87); + display: block; + font-size: 14px; + font-weight: 500; + height: 48px; + line-height: 48px; + padding: 0 32px; +} +.sidenav li > a:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.sidenav li > a.btn, +.sidenav li > a.btn-small, +.sidenav li > a.btn-large, +.sidenav li > a.btn-flat, +.sidenav li > a.btn-floating { + margin: 10px 15px; +} +.sidenav li > a.btn, +.sidenav li > a.btn-small, +.sidenav li > a.btn-large, +.sidenav li > a.btn-floating { + color: #fff; +} +.sidenav li > a.btn-flat { + color: #343434; +} +.sidenav li > a.btn:hover, +.sidenav li > a.btn-small:hover, +.sidenav li > a.btn-large:hover { + background-color: #4d5ec1; +} +.sidenav li > a.btn-floating:hover { + background-color: #3f51b5; +} +.sidenav li > a > i, +.sidenav li > a > [class^=mdi-], +.sidenav li > a li > a > [class*=mdi-], +.sidenav li > a > i.material-icons { + float: left; + height: 48px; + line-height: 48px; + margin: 0 32px 0 0; + width: 24px; + color: rgba(0, 0, 0, 0.54); +} +.sidenav .divider { + margin: 8px 0 0 0; +} +.sidenav .subheader { + cursor: initial; + pointer-events: none; + color: rgba(0, 0, 0, 0.54); + font-size: 14px; + font-weight: 500; + line-height: 48px; +} +.sidenav .subheader:hover { + background-color: transparent; +} +.sidenav .user-view { + position: relative; + padding: 32px 32px 0; + margin-bottom: 8px; +} +.sidenav .user-view > a { + height: auto; + padding: 0; +} +.sidenav .user-view > a:hover { + background-color: transparent; +} +.sidenav .user-view .background { + overflow: hidden; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; +} +.sidenav .user-view .circle, +.sidenav .user-view .name, +.sidenav .user-view .email { + display: block; +} +.sidenav .user-view .circle { + height: 64px; + width: 64px; +} +.sidenav .user-view .name, +.sidenav .user-view .email { + font-size: 14px; + line-height: 24px; +} +.sidenav .user-view .name { + margin-top: 16px; + font-weight: 500; +} +.sidenav .user-view .email { + padding-bottom: 16px; + font-weight: 400; +} +.drag-target { + height: 100%; + width: 10px; + position: fixed; + top: 0; + z-index: 998; +} +.drag-target.right-aligned { + right: 0; +} +.sidenav.sidenav-fixed { + left: 0; + transform: translateX(0); + position: fixed; +} +.sidenav.sidenav-fixed.right-aligned { + right: 0; + left: auto; +} +@media only screen and (max-width:992px) { + .sidenav.sidenav-fixed { + transform: translateX(-105%); + } + .sidenav.sidenav-fixed.right-aligned { + transform: translateX(105%); + } + .sidenav > a { + padding: 0 16px; + } + .sidenav .user-view { + padding: 16px 16px 0; + } +} +.sidenav .collapsible-body > ul:not(.collapsible) > li.active, +.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active { + background-color: #ee6e73; +} +.sidenav .collapsible-body > ul:not(.collapsible) > li.active a, +.sidenav.sidenav-fixed .collapsible-body > ul:not(.collapsible) > li.active a { + color: #fff; +} +.sidenav .collapsible-body { + padding: 0; +} +.sidenav-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + opacity: 0; + height: 120vh; + background-color: rgba(0, 0, 0, 0.5); + z-index: 997; + display: none; +} +.switch, +.switch * { + -webkit-tap-highlight-color: transparent; + user-select: none; +} +.switch label { + cursor: pointer; +} +.switch label input[type=checkbox] { + opacity: 0; + width: 0; + height: 0; +} +.switch label input[type=checkbox]:checked + .lever { + background-color: #7280ce; +} +.switch label input[type=checkbox]:checked + .lever:before, +.switch label input[type=checkbox]:checked + .lever:after { + left: 18px; +} +.switch label input[type=checkbox]:checked + .lever:after { + background-color: #3f51b5; +} +.switch label .lever { + content: ""; + display: inline-block; + position: relative; + width: 36px; + height: 14px; + background-color: rgba(0, 0, 0, 0.38); + border-radius: 15px; + margin-right: 10px; + transition: background 0.3s ease; + vertical-align: middle; + margin: 0 16px; +} +.switch label .lever:before, +.switch label .lever:after { + content: ""; + position: absolute; + display: inline-block; + width: 20px; + height: 20px; + border-radius: 50%; + left: 0; + top: -3px; + transition: + left 0.3s ease, + background 0.3s ease, + box-shadow 0.1s ease, + transform 0.1s ease; +} +.switch label .lever:before { + background-color: rgba(63, 81, 181, 0.15); +} +.switch label .lever:after { + background-color: #F1F1F1; + box-shadow: + 0px 3px 1px -2px rgba(0, 0, 0, 0.2), + 0px 2px 2px 0px rgba(0, 0, 0, 0.14), + 0px 1px 5px 0px rgba(0, 0, 0, 0.12); +} +input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before, +input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before { + transform: scale(2.4); + background-color: rgba(63, 81, 181, 0.15); +} +input[type=checkbox]:not(:disabled) ~ .lever:active:before, +input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before { + transform: scale(2.4); + background-color: rgba(0, 0, 0, 0.08); +} +.switch input[type=checkbox][disabled] + .lever { + cursor: default; + background-color: rgba(0, 0, 0, 0.12); +} +.switch label input[type=checkbox][disabled] + .lever:after, +.switch label input[type=checkbox][disabled]:checked + .lever:after { + background-color: #949494; +} +select { + display: none; +} +select.browser-default { + display: block; +} +select { + background-color: #fff; + width: 100%; + padding: 5px; + border: 1px solid #f2f2f2; + border-radius: 2px; + height: 3rem; +} +.select-label { + position: absolute; +} +.select-wrapper { + position: relative; +} +.select-wrapper.valid + label, +.select-wrapper.invalid + label { + width: 100%; + pointer-events: none; +} +.select-wrapper input.select-dropdown { + position: relative; + cursor: pointer; + background-color: transparent; + border: none; + border-bottom: 1px solid #535353; + outline: none; + height: 3rem; + line-height: 3rem; + width: 100%; + font-size: 16px; + margin: 0 0 8px 0; + padding: 0; + display: block; + user-select: none; + z-index: 1; +} +.select-wrapper input.select-dropdown:focus { + border-bottom: 1px solid #3f51b5; +} +.select-wrapper .caret { + position: absolute; + right: 0; + top: 0; + bottom: 0; + margin: auto 0; + z-index: 0; + fill: rgba(0, 0, 0, 0.87); +} +.select-wrapper + label { + position: absolute; + top: -26px; + font-size: 0.8rem; +} +select:disabled { + color: rgba(0, 0, 0, 0.42); +} +.select-wrapper.disabled + label { + color: rgba(0, 0, 0, 0.42); +} +.select-wrapper.disabled .caret { + fill: rgba(0, 0, 0, 0.42); +} +.select-wrapper input.select-dropdown:disabled { + color: rgba(0, 0, 0, 0.42); + cursor: default; + user-select: none; +} +.select-wrapper i { + color: rgba(0, 0, 0, 0.3); +} +.select-dropdown li.disabled, +.select-dropdown li.disabled > span, +.select-dropdown li.optgroup { + color: rgba(0, 0, 0, 0.3); + background-color: transparent; +} +body.keyboard-focused .select-dropdown.dropdown-content li:focus { + background-color: rgba(0, 0, 0, 0.08); +} +.select-dropdown.dropdown-content li:hover { + background-color: rgba(0, 0, 0, 0.08); +} +.select-dropdown.dropdown-content li.selected { + background-color: rgba(0, 0, 0, 0.03); +} +.prefix ~ .select-wrapper { + margin-left: 3rem; + width: 92%; + width: calc(100% - 3rem); +} +.prefix ~ label { + margin-left: 3rem; +} +.select-dropdown li img { + height: 40px; + width: 40px; + margin: 5px 15px; + float: right; +} +.select-dropdown li.optgroup { + border-top: 1px solid #eee; +} +.select-dropdown li.optgroup.selected > span { + color: rgba(0, 0, 0, 0.7); +} +.select-dropdown li.optgroup > span { + color: rgba(0, 0, 0, 0.4); +} +.select-dropdown li.optgroup ~ li.optgroup-option { + padding-left: 1rem; +} +::placeholder { + color: #868686; +} +input:not([type]), +input[type=text]:not(.browser-default), +input[type=password]:not(.browser-default), +input[type=email]:not(.browser-default), +input[type=url]:not(.browser-default), +input[type=time]:not(.browser-default), +input[type=date]:not(.browser-default), +input[type=datetime]:not(.browser-default), +input[type=datetime-local]:not(.browser-default), +input[type=tel]:not(.browser-default), +input[type=number]:not(.browser-default), +input[type=search]:not(.browser-default), +textarea.materialize-textarea { + background-color: transparent; + border: none; + border-bottom: 1px solid #535353; + border-radius: 0; + outline: none; + height: 3rem; + width: 100%; + font-size: 16px; + margin: 0 0 8px 0; + padding: 0; + box-shadow: none; + box-sizing: content-box; + transition: box-shadow 0.3s, border 0.3s; +} +input:not([type]):disabled, +input:not([type])[readonly=readonly], +input[type=text]:not(.browser-default):disabled, +input[type=text]:not(.browser-default)[readonly=readonly], +input[type=password]:not(.browser-default):disabled, +input[type=password]:not(.browser-default)[readonly=readonly], +input[type=email]:not(.browser-default):disabled, +input[type=email]:not(.browser-default)[readonly=readonly], +input[type=url]:not(.browser-default):disabled, +input[type=url]:not(.browser-default)[readonly=readonly], +input[type=time]:not(.browser-default):disabled, +input[type=time]:not(.browser-default)[readonly=readonly], +input[type=date]:not(.browser-default):disabled, +input[type=date]:not(.browser-default)[readonly=readonly], +input[type=datetime]:not(.browser-default):disabled, +input[type=datetime]:not(.browser-default)[readonly=readonly], +input[type=datetime-local]:not(.browser-default):disabled, +input[type=datetime-local]:not(.browser-default)[readonly=readonly], +input[type=tel]:not(.browser-default):disabled, +input[type=tel]:not(.browser-default)[readonly=readonly], +input[type=number]:not(.browser-default):disabled, +input[type=number]:not(.browser-default)[readonly=readonly], +input[type=search]:not(.browser-default):disabled, +input[type=search]:not(.browser-default)[readonly=readonly], +textarea.materialize-textarea:disabled, +textarea.materialize-textarea[readonly=readonly] { + color: rgba(0, 0, 0, 0.42); + border-bottom: 1px dotted rgba(0, 0, 0, 0.42); +} +input:not([type]):disabled + label, +input:not([type])[readonly=readonly] + label, +input[type=text]:not(.browser-default):disabled + label, +input[type=text]:not(.browser-default)[readonly=readonly] + label, +input[type=password]:not(.browser-default):disabled + label, +input[type=password]:not(.browser-default)[readonly=readonly] + label, +input[type=email]:not(.browser-default):disabled + label, +input[type=email]:not(.browser-default)[readonly=readonly] + label, +input[type=url]:not(.browser-default):disabled + label, +input[type=url]:not(.browser-default)[readonly=readonly] + label, +input[type=time]:not(.browser-default):disabled + label, +input[type=time]:not(.browser-default)[readonly=readonly] + label, +input[type=date]:not(.browser-default):disabled + label, +input[type=date]:not(.browser-default)[readonly=readonly] + label, +input[type=datetime]:not(.browser-default):disabled + label, +input[type=datetime]:not(.browser-default)[readonly=readonly] + label, +input[type=datetime-local]:not(.browser-default):disabled + label, +input[type=datetime-local]:not(.browser-default)[readonly=readonly] + label, +input[type=tel]:not(.browser-default):disabled + label, +input[type=tel]:not(.browser-default)[readonly=readonly] + label, +input[type=number]:not(.browser-default):disabled + label, +input[type=number]:not(.browser-default)[readonly=readonly] + label, +input[type=search]:not(.browser-default):disabled + label, +input[type=search]:not(.browser-default)[readonly=readonly] + label, +textarea.materialize-textarea:disabled + label, +textarea.materialize-textarea[readonly=readonly] + label { + color: rgba(0, 0, 0, 0.42); +} +input:not([type]):focus:not([readonly]), +input[type=text]:not(.browser-default):focus:not([readonly]), +input[type=password]:not(.browser-default):focus:not([readonly]), +input[type=email]:not(.browser-default):focus:not([readonly]), +input[type=url]:not(.browser-default):focus:not([readonly]), +input[type=time]:not(.browser-default):focus:not([readonly]), +input[type=date]:not(.browser-default):focus:not([readonly]), +input[type=datetime]:not(.browser-default):focus:not([readonly]), +input[type=datetime-local]:not(.browser-default):focus:not([readonly]), +input[type=tel]:not(.browser-default):focus:not([readonly]), +input[type=number]:not(.browser-default):focus:not([readonly]), +input[type=search]:not(.browser-default):focus:not([readonly]), +textarea.materialize-textarea:focus:not([readonly]) { + border-bottom: 1px solid #3f51b5; + box-shadow: 0 1px 0 0 #3f51b5; +} +input:not([type]):focus:not([readonly]) + label, +input[type=text]:not(.browser-default):focus:not([readonly]) + label, +input[type=password]:not(.browser-default):focus:not([readonly]) + label, +input[type=email]:not(.browser-default):focus:not([readonly]) + label, +input[type=url]:not(.browser-default):focus:not([readonly]) + label, +input[type=time]:not(.browser-default):focus:not([readonly]) + label, +input[type=date]:not(.browser-default):focus:not([readonly]) + label, +input[type=datetime]:not(.browser-default):focus:not([readonly]) + label, +input[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label, +input[type=tel]:not(.browser-default):focus:not([readonly]) + label, +input[type=number]:not(.browser-default):focus:not([readonly]) + label, +input[type=search]:not(.browser-default):focus:not([readonly]) + label, +textarea.materialize-textarea:focus:not([readonly]) + label { + color: #3f51b5; +} +input:not([type]):focus.valid ~ label, +input[type=text]:not(.browser-default):focus.valid ~ label, +input[type=password]:not(.browser-default):focus.valid ~ label, +input[type=email]:not(.browser-default):focus.valid ~ label, +input[type=url]:not(.browser-default):focus.valid ~ label, +input[type=time]:not(.browser-default):focus.valid ~ label, +input[type=date]:not(.browser-default):focus.valid ~ label, +input[type=datetime]:not(.browser-default):focus.valid ~ label, +input[type=datetime-local]:not(.browser-default):focus.valid ~ label, +input[type=tel]:not(.browser-default):focus.valid ~ label, +input[type=number]:not(.browser-default):focus.valid ~ label, +input[type=search]:not(.browser-default):focus.valid ~ label, +textarea.materialize-textarea:focus.valid ~ label { + color: #4CAF50; +} +input:not([type]):focus.invalid ~ label, +input[type=text]:not(.browser-default):focus.invalid ~ label, +input[type=password]:not(.browser-default):focus.invalid ~ label, +input[type=email]:not(.browser-default):focus.invalid ~ label, +input[type=url]:not(.browser-default):focus.invalid ~ label, +input[type=time]:not(.browser-default):focus.invalid ~ label, +input[type=date]:not(.browser-default):focus.invalid ~ label, +input[type=datetime]:not(.browser-default):focus.invalid ~ label, +input[type=datetime-local]:not(.browser-default):focus.invalid ~ label, +input[type=tel]:not(.browser-default):focus.invalid ~ label, +input[type=number]:not(.browser-default):focus.invalid ~ label, +input[type=search]:not(.browser-default):focus.invalid ~ label, +textarea.materialize-textarea:focus.invalid ~ label { + color: #F44336; +} +input:not([type]).validate + label, +input[type=text]:not(.browser-default).validate + label, +input[type=password]:not(.browser-default).validate + label, +input[type=email]:not(.browser-default).validate + label, +input[type=url]:not(.browser-default).validate + label, +input[type=time]:not(.browser-default).validate + label, +input[type=date]:not(.browser-default).validate + label, +input[type=datetime]:not(.browser-default).validate + label, +input[type=datetime-local]:not(.browser-default).validate + label, +input[type=tel]:not(.browser-default).validate + label, +input[type=number]:not(.browser-default).validate + label, +input[type=search]:not(.browser-default).validate + label, +textarea.materialize-textarea.validate + label { + width: 100%; +} +.select-wrapper.valid > input.select-dropdown, +input:not([type]).valid, +input:not([type]):focus.valid, +input[type=text]:not(.browser-default).valid, +input[type=text]:not(.browser-default):focus.valid, +input[type=password]:not(.browser-default).valid, +input[type=password]:not(.browser-default):focus.valid, +input[type=email]:not(.browser-default).valid, +input[type=email]:not(.browser-default):focus.valid, +input[type=url]:not(.browser-default).valid, +input[type=url]:not(.browser-default):focus.valid, +input[type=time]:not(.browser-default).valid, +input[type=time]:not(.browser-default):focus.valid, +input[type=date]:not(.browser-default).valid, +input[type=date]:not(.browser-default):focus.valid, +input[type=datetime]:not(.browser-default).valid, +input[type=datetime]:not(.browser-default):focus.valid, +input[type=datetime-local]:not(.browser-default).valid, +input[type=datetime-local]:not(.browser-default):focus.valid, +input[type=tel]:not(.browser-default).valid, +input[type=tel]:not(.browser-default):focus.valid, +input[type=number]:not(.browser-default).valid, +input[type=number]:not(.browser-default):focus.valid, +input[type=search]:not(.browser-default).valid, +input[type=search]:not(.browser-default):focus.valid, +textarea.materialize-textarea.valid, +textarea.materialize-textarea:focus.valid { + border-bottom: 1px solid #4CAF50; + box-shadow: 0 1px 0 0 #4CAF50; +} +.select-wrapper.invalid > input.select-dropdown, +.select-wrapper.invalid > input.select-dropdown:focus, +input:not([type]).invalid, +input:not([type]):focus.invalid, +input[type=text]:not(.browser-default).invalid, +input[type=text]:not(.browser-default):focus.invalid, +input[type=password]:not(.browser-default).invalid, +input[type=password]:not(.browser-default):focus.invalid, +input[type=email]:not(.browser-default).invalid, +input[type=email]:not(.browser-default):focus.invalid, +input[type=url]:not(.browser-default).invalid, +input[type=url]:not(.browser-default):focus.invalid, +input[type=time]:not(.browser-default).invalid, +input[type=time]:not(.browser-default):focus.invalid, +input[type=date]:not(.browser-default).invalid, +input[type=date]:not(.browser-default):focus.invalid, +input[type=datetime]:not(.browser-default).invalid, +input[type=datetime]:not(.browser-default):focus.invalid, +input[type=datetime-local]:not(.browser-default).invalid, +input[type=datetime-local]:not(.browser-default):focus.invalid, +input[type=tel]:not(.browser-default).invalid, +input[type=tel]:not(.browser-default):focus.invalid, +input[type=number]:not(.browser-default).invalid, +input[type=number]:not(.browser-default):focus.invalid, +input[type=search]:not(.browser-default).invalid, +input[type=search]:not(.browser-default):focus.invalid, +textarea.materialize-textarea.invalid, +textarea.materialize-textarea:focus.invalid { + border-bottom: 1px solid #F44336; + box-shadow: 0 1px 0 0 #F44336; +} +.select-wrapper.valid .helper-text[data-success], +.select-wrapper.invalid ~ .helper-text[data-error], +input:not([type]).valid ~ .helper-text[data-success], +input:not([type]):focus.valid ~ .helper-text[data-success], +input:not([type]).invalid ~ .helper-text[data-error], +input:not([type]):focus.invalid ~ .helper-text[data-error], +input[type=text]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=password]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=email]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=url]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=time]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=date]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=number]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error], +input[type=search]:not(.browser-default).valid ~ .helper-text[data-success], +input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error], +textarea.materialize-textarea.valid ~ .helper-text[data-success], +textarea.materialize-textarea:focus.valid ~ .helper-text[data-success], +textarea.materialize-textarea.invalid ~ .helper-text[data-error], +textarea.materialize-textarea:focus.invalid ~ .helper-text[data-error] { + color: transparent; + user-select: none; + pointer-events: none; +} +.select-wrapper.valid ~ .helper-text:after, +input:not([type]).valid ~ .helper-text:after, +input:not([type]):focus.valid ~ .helper-text:after, +input[type=text]:not(.browser-default).valid ~ .helper-text:after, +input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=password]:not(.browser-default).valid ~ .helper-text:after, +input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=email]:not(.browser-default).valid ~ .helper-text:after, +input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=url]:not(.browser-default).valid ~ .helper-text:after, +input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=time]:not(.browser-default).valid ~ .helper-text:after, +input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=date]:not(.browser-default).valid ~ .helper-text:after, +input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=datetime]:not(.browser-default).valid ~ .helper-text:after, +input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after, +input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=tel]:not(.browser-default).valid ~ .helper-text:after, +input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=number]:not(.browser-default).valid ~ .helper-text:after, +input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after, +input[type=search]:not(.browser-default).valid ~ .helper-text:after, +input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after, +textarea.materialize-textarea.valid ~ .helper-text:after, +textarea.materialize-textarea:focus.valid ~ .helper-text:after { + content: attr(data-success); + color: #4CAF50; +} +.select-wrapper.invalid ~ .helper-text:after, +input:not([type]).invalid ~ .helper-text:after, +input:not([type]):focus.invalid ~ .helper-text:after, +input[type=text]:not(.browser-default).invalid ~ .helper-text:after, +input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=password]:not(.browser-default).invalid ~ .helper-text:after, +input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=email]:not(.browser-default).invalid ~ .helper-text:after, +input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=url]:not(.browser-default).invalid ~ .helper-text:after, +input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=time]:not(.browser-default).invalid ~ .helper-text:after, +input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=date]:not(.browser-default).invalid ~ .helper-text:after, +input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after, +input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after, +input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=tel]:not(.browser-default).invalid ~ .helper-text:after, +input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=number]:not(.browser-default).invalid ~ .helper-text:after, +input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after, +input[type=search]:not(.browser-default).invalid ~ .helper-text:after, +input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after, +textarea.materialize-textarea.invalid ~ .helper-text:after, +textarea.materialize-textarea:focus.invalid ~ .helper-text:after { + content: attr(data-error); + color: #F44336; +} +.select-wrapper + label:after, +input:not([type]) + label:after, +input[type=text]:not(.browser-default) + label:after, +input[type=password]:not(.browser-default) + label:after, +input[type=email]:not(.browser-default) + label:after, +input[type=url]:not(.browser-default) + label:after, +input[type=time]:not(.browser-default) + label:after, +input[type=date]:not(.browser-default) + label:after, +input[type=datetime]:not(.browser-default) + label:after, +input[type=datetime-local]:not(.browser-default) + label:after, +input[type=tel]:not(.browser-default) + label:after, +input[type=number]:not(.browser-default) + label:after, +input[type=search]:not(.browser-default) + label:after, +textarea.materialize-textarea + label:after { + display: block; + content: ""; + position: absolute; + top: 100%; + left: 0; + opacity: 0; + transition: 0.2s opacity ease-out, 0.2s color ease-out; +} +.input-field { + position: relative; + margin-top: 1rem; + margin-bottom: 1rem; +} +.input-field.inline { + display: inline-block; + vertical-align: middle; + margin-left: 5px; +} +.input-field.inline input, +.input-field.inline .select-dropdown { + margin-bottom: 1rem; +} +.input-field.col label { + left: 0.75rem; +} +.input-field.col .prefix ~ label, +.input-field.col .prefix ~ .validate ~ label { + width: calc(100% - 3rem - 1.5rem); +} +.input-field > label { + color: #535353; + position: absolute; + top: 0; + left: 0; + font-size: 1rem; + cursor: text; + transition: transform 0.2s ease-out, color 0.2s ease-out; + transform-origin: 0% 100%; + text-align: initial; + transform: translateY(12px); +} +.input-field > label:not(.label-icon).active { + transform: translateY(-14px) scale(0.8); + transform-origin: 0 0; +} +.input-field > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label, +.input-field > input[type=date]:not(.browser-default) + label, +.input-field > input[type=time]:not(.browser-default) + label { + transform: translateY(-14px) scale(0.8); + transform-origin: 0 0; +} +.input-field .helper-text { + position: relative; + min-height: 18px; + display: block; + font-size: 12px; + color: rgba(0, 0, 0, 0.54); +} +.input-field .helper-text::after { + opacity: 1; + position: absolute; + top: 0; + left: 0; +} +.input-field .prefix { + position: absolute; + width: 3rem; + font-size: 2rem; + transition: color 0.2s; + top: 0.5rem; +} +.input-field .prefix.active { + color: #3f51b5; +} +.input-field .prefix ~ input, +.input-field .prefix ~ textarea, +.input-field .prefix ~ label, +.input-field .prefix ~ .validate ~ label, +.input-field .prefix ~ .helper-text, +.input-field .prefix ~ .autocomplete-content { + margin-left: 3rem; + width: 92%; + width: calc(100% - 3rem); +} +.input-field .prefix ~ label { + margin-left: 3rem; +} +@media only screen and (max-width:992px) { + .input-field .prefix ~ input { + width: 86%; + width: calc(100% - 3rem); + } +} +@media only screen and (max-width:600px) { + .input-field .prefix ~ input { + width: 80%; + width: calc(100% - 3rem); + } +} +.input-field input[type=search] { + display: block; + line-height: inherit; + transition: 0.3s background-color; +} +.nav-wrapper .input-field input[type=search] { + height: inherit; + padding-left: 4rem; + width: calc(100% - 4rem); + border: 0; + box-shadow: none; +} +.input-field input[type=search]:focus:not(.browser-default) { + background-color: #fff; + border: 0; + box-shadow: none; + color: #444; +} +.input-field input[type=search]:focus:not(.browser-default) + label i, +.input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close, +.input-field input[type=search]:focus:not(.browser-default) ~ .material-icons { + color: #444; +} +.input-field input[type=search] + .label-icon { + transform: none; + left: 1rem; +} +.input-field input[type=search] ~ .mdi-navigation-close, +.input-field input[type=search] ~ .material-icons { + position: absolute; + top: 0; + right: 1rem; + color: transparent; + cursor: pointer; + font-size: 2rem; + transition: 0.3s color; +} +textarea { + width: 100%; + height: 3rem; + background-color: transparent; +} +textarea.materialize-textarea { + line-height: normal; + overflow-y: hidden; + padding: 0.8rem 0 0.8rem 0; + resize: none; + min-height: 3rem; + box-sizing: border-box; +} +.hiddendiv { + visibility: hidden; + white-space: pre-wrap; + word-wrap: break-word; + overflow-wrap: break-word; + padding-top: 1.2rem; + position: absolute; + top: 0; + z-index: -1; +} +.autocomplete-content li .highlight { + color: #444; +} +.autocomplete-content li img { + height: 40px; + width: 40px; + margin: 5px 15px; +} +.character-counter { + min-height: 18px; +} +@font-face { + font-family: "Material Icons"; + font-style: normal; + font-weight: 400; + src: url(E:\codeown\cloverleafwebnode_modulesmaterial-design-icons-iconfont\distontsMaterialIcons-Regular.eot); + src: + local("Material Icons"), + local("MaterialIcons-Regular"), + url(E:\codeown\cloverleafwebnode_modulesmaterial-design-icons-iconfont\distontsMaterialIcons-Regular.woff2) format("woff2"), + url(E:\codeown\cloverleafwebnode_modulesmaterial-design-icons-iconfont\distontsMaterialIcons-Regular.woff) format("woff"), + url(E:\codeown\cloverleafwebnode_modulesmaterial-design-icons-iconfont\distontsMaterialIcons-Regular.ttf) format("truetype"); + font-display: swap; +} +.material-icons { + font-family: "Material Icons"; + font-weight: normal; + font-style: normal; + font-size: 24px; + display: inline-block; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + white-space: nowrap; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + user-select: none; + font-display: block; +} +@font-face { + font-family: "Roboto Mono"; + font-style: normal; + font-weight: 400; + src: + local("Roboto Mono"), + local("RobotoMono-Regular"), + url(E:\codeown\cloverleafwebontsRobotoMono-Regular.ttf) format("truetype"); + font-display: swap; +} +@font-face { + font-family: "Roboto"; + font-style: normal; + font-weight: 300; + src: + local("Roboto Light"), + local("Roboto-Light"), + url(E:\codeown\cloverleafwebontsRoboto-Light.ttf) format("truetype"); + font-display: swap; +} +@font-face { + font-family: "Roboto"; + font-style: normal; + font-weight: 400; + src: + local("Roboto"), + local("Roboto-Regular"), + url(E:\codeown\cloverleafwebontsRoboto-Regular.ttf) format("truetype"); + font-display: swap; +} +@font-face { + font-family: "Roboto"; + font-style: normal; + font-weight: 500; + src: + local("Roboto Medium"), + local("Roboto-Medium"), + url(E:\codeown\cloverleafwebontsRoboto-Medium.ttf) format("truetype"); + font-display: swap; +} +:root { + --accentColor: #3f51b5; + --lightAccent: #7280ce; + --textColor: #535353; + --backgroundColor: #fff; + --internalColor: #fff; + --incorrectColor: #f44336; + --correctColor: #8fff66; + --inputColor: #000; + --linkColor: #00539b; + --highlightColor: #eee; +} +html, +body { + height: 100% !important; + color: #000; + color: var(--inputColor); + caret-color: #3f51b5; + caret-color: var(--accentColor); + text-align: center; + overflow-x: hidden; +} +* { + transition: background-color 0.3s ease, color 0.3s ease; +} +body { + font-family: "Roboto", sans-serif; + font-weight: 300; + margin: 0; + display: flex; + justify-content: center; + align-items: center; + background-color: #fff; + background-color: var(--backgroundColor); +} +#box { + text-align: center; + max-width: calc(100% - (30px + 10em)); + max-height: 100%; + margin: auto; + grid-row: 1; +} +label, +.input-field > label { + color: #535353; + color: var(--textColor); + font-size: 1.5rem; + transition: + transform 0.3s ease-out, + -webkit-transform 0.3s ease-out, + background-color 0.3s ease, + color 0.3s ease; +} +.input-field { + margin-bottom: 0; +} +.input-field input[type=text], +.input-field input[type=number], +.input-field input[type=password] { + border-bottom: 1px solid #535353; + border-bottom: 1px solid var(--textColor); + transition: + border 0.3s ease-out, + background-color 0.3s ease, + color 0.3s ease; +} +.input-field input[type=text]:focus, +.input-field input[type=number]:focus, +.input-field input[type=password]:focus { + border-bottom: 1px solid #3f51b5 !important; + border-bottom: 1px solid var(--accentColor) !important; + box-shadow: 0 1px 0 0 #3f51b5 !important; + box-shadow: 0 1px 0 0 var(--accentColor) !important; +} +input[type=text]:not(#result):not(.select-dropdown), +input[type=number]:not(#length-pref), +input[type=password]:not(#result) { + font-size: 3rem !important; + height: 1.2em !important; + box-sizing: content-box; + font-family: "Roboto", sans-serif; + font-weight: 300; +} +input[type=number] { + margin-bottom: 0; + overflow: scroll; +} +#back { + box-shadow: 0 0.26em 0.65em 0 rgba(0, 0, 0, 0.2); + background-color: #fff; + background-color: var(--internalColor); + border-radius: 0.325em; + padding: 0.975em; + padding-top: 1.5em; + margin: 2em 0; + max-height: 100%; +} +#result { + font-family: "Roboto Mono", monospace; + font-size: 2rem; + padding: 0.9rem 0; + min-height: 1em; + min-width: 20%; + border: none; + text-align: center; + margin: 0; + width: 100%; + color: #000; + color: var(--inputColor); +} +#result::placeholder { + color: #000 !important; + color: var(--inputColor) !important; + opacity: 1; +} +#copy { + display: block; + margin: auto; +} +.hint { + float: left; + color: #535353; + color: var(--textColor); + width: 100%; + text-align: left; +} +input, +textarea { + font-size: 1.56rem; + padding: 0.65rem; + color: #000 !important; + color: var(--inputColor) !important; + margin: 0 0 0.8rem 0 !important; +} +input#length { + margin: 0 !important; + height: 1em; +} +#faq { + float: right; + cursor: help; + font-weight: 500; + margin-top: 0.4em; +} +.cf:before, +.cf:after { + content: " "; + display: table; +} +.cf:after { + clear: both; +} +ul.autocomplete-content.dropdown-content { + background: #fff; + background: var(--backgroundColor); + position: absolute !important; + width: calc(100% - 3rem); + max-height: calc(82% * 4); + overflow-y: auto; + overflow-x: hidden; + top: -0.1em; + margin-top: 0; +} +ul.autocomplete-content.dropdown-content li { + height: 3em; + min-height: 0; +} +.dropdown-content li:hover, +.dropdown-content li.active, +.dropdown-content li.selected, +body.keyboard-focused .select-dropdown.dropdown-content li:focus, +.select-dropdown.dropdown-content li.selected { + background: #eee; + background: var(--highlightColor); +} +ul.autocomplete-content.dropdown-content li img.right.circle { + overflow: hidden; + background: #fff; + width: calc(20% - 0.66em); + height: 100%; + padding: 0.33em; + margin: 0; +} +ul.autocomplete-content.dropdown-content span { + align-items: center; + white-space: nowrap; + max-width: 70%; + height: 100%; + font-size: 1em; + padding: 0.875em 1em; + overflow: hidden; + line-height: 1.57em; +} +ul.autocomplete-content.dropdown-content span:not(.highlight) { + color: #535353; + color: var(--textColor); + overflow-x: hidden; +} +ul.autocomplete-content.dropdown-content span .highlight { + max-width: 100%; + color: #535353; + color: var(--textColor); + font-weight: 400; + overflow: visible; + padding: 0; +} +.dropdown-content::-webkit-scrollbar { + width: 17px !important; + background-color: #fff !important; +} +.dropdown-content::-webkit-scrollbar-track { + width: 17px; + background-color: #fff !important; +} +.dropdown-content::-webkit-scrollbar-thumb { + border-radius: 100px; + width: 17px; + background-color: rgba(0, 0, 0, 0.5); +} +.circle { + object-fit: scale-down; + border-radius: 0; +} +#back .switch { + padding-bottom: 1.3rem; +} +input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before, +input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before { + transform: scale(2.4); + background-color: rgba(63, 81, 181, 0.3); +} +.switch label input[type=checkbox]:checked + .lever:after { + background-color: #3f51b5; + background-color: var(--accentColor); +} +.switch label input[type=checkbox]:checked + .lever { + background-color: #7280ce; + background-color: var(--lightAccent); +} +#passTogglelever { + left: -4px; +} +.input-group-addon { + position: absolute; + width: calc(3rem + 0.1em); + font-size: 2rem; + top: 0; + right: -5px; +} +.icon { + font-size: 1.4em !important; + color: #535353; + color: var(--textColor); + transition: color 0.2s; + cursor: pointer; +} +.icon:hover { + color: #7280ce; + color: var(--lightAccent); +} +.icon:active { + color: #3f51b5; + color: var(--accentColor); +} +.input-field label:not(.label-icon).active { + -webkit-transform: translateY(-1em) scale(0.8); + transform: translateY(-1em) scale(0.8); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; +} +.toast { + font-weight: 400; +} +.warning { + color: #000; + color: var(--inputColor); + background-color: #f44336; + background-color: var(--incorrectColor); +} +.success { + background-color: #8fff66; + background-color: var(--correctColor); + color: #000; +} +#jsBanner { + position: absolute; + width: 100%; + height: 100%; + text-align: center; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + font-weight: 500; + font-size: 10vmin; + top: 0; + left: 0; + color: #fff; + color: var(--backgroundColor); + -webkit-text-stroke-width: 0.05em !important; + -webkit-text-stroke-color: #535353 !important; + -webkit-text-stroke-color: var(--textColor) !important; + padding: 10px; +} +#jsBanner a { + color: #fff; + color: var(--backgroundColor); + -webkit-text-stroke: 3px #535353; + -webkit-text-stroke: 3px var(--textColor); + text-decoration: underline; +} +#logo { + max-width: 100%; + max-height: 100%; +} +#app { + margin-bottom: 0.55em !important; + width: calc(100% - 3.6rem) !important; + padding-right: 1.2em !important; + align-self: flex-end; + display: block; + white-space: nowrap; +} +ul:empty { + display: none; +} +::-ms-reveal { + display: none; +} +#logoContainer { + margin-right: 5px; + background: #fff; + padding: 3px; + border-radius: 5px; + height: calc(3rem + 0.1em); + display: none; + justify-content: center; + align-items: center; +} +input[type=radio] { + margin: 0; + width: 0; + height: 0; + padding: 0; +} +input[type=radio]:checked + label::before { + box-shadow: 0 0 3px 1px #535353; + box-shadow: 0 0 3px 1px var(--textColor); +} +label:focus { + outline: none; +} +.github-corner { + fill: #3f51b5; + fill: var(--accentColor); + color: #fff; + color: var(--backgroundColor); + position: absolute; + top: 0; + border: 0; + right: 0; +} +.github-corner:hover .octo-arm { + animation: octocat-wave 560ms ease-in-out; +} +@keyframes octocat-wave { + 0%, 100% { + transform: rotate(0); + } + 20%, 60% { + transform: rotate(-25deg); + } + 40%, 80% { + transform: rotate(10deg); + } +} +.tabs { + background-color: #fff; + background-color: var(--internalColor); + cursor: pointer; + overflow-x: hidden; + z-index: 995; +} +.tabs .tab a, +.tabs .tab a:hover { + color: #535353; + color: var(--textColor); + font-size: 1em; + padding: 0 0.5em; +} +.tabs .tab a:focus, +.tabs .tab a:focus.active { + background-color: #fff; + background-color: var(--backgroundColor); +} +.tabs .tab a.active { + color: #000; + color: var(--inputColor); + font-weight: 400; +} +.tabs .indicator { + background: #3f51b5; + background-color: var(--accentColor); +} +.btn, +.btn-large, +.btn-small { + height: 2.4em; + line-height: 2.4em; + font-family: "Roboto", sans-serif; + font-weight: 300; + font-size: 1rem; + padding: 0 2rem; + background: #3f51b5; + background: var(--accentColor); +} +.btn:focus, +.btn-large:focus, +.btn-small:focus, +.btn:hover, +.btn-large:hover, +.btn-small:hover { + background: #3f51b5; + background: var(--accentColor); +} +.switch label .lever { + height: 0.933em; + width: 2.4em; +} +.switch label .lever::before, +.switch label .lever::after { + height: 1.33em; + width: 1.33em; +} +.switch label input[type=checkbox]:checked + .lever::before, +.switch label input[type=checkbox]:checked + .lever::after { + left: 1.4em; +} +.switch label .lever::before, +.switch label .lever::after { + top: -0.2em; +} +.material-tooltip { + max-width: 7em; +} +@media (hover:none) { + .material-tooltip { + display: none; + } +} +.material-tooltip { + background-color: #fff; + background-color: var(--internalColor); + box-shadow: 0 0.26em 0.65em 0 rgba(0, 0, 0, 0.2); + color: #535353; + color: var(--textColor); +} +.btn:focus, +.btn-large:focus, +.btn-small:focus, +.btn-floating:focus, +.btn-flat:focus { + outline: #4d90fe auto 5px; + outline-color: #4d90fe; + outline-style: auto; + outline-width: 5px; +} +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + opacity: 1; +} +ul.tabs li.tab a i.material-icons { + vertical-align: middle; + color: #f44336; + color: var(--incorrectColor); +} +.btn-floating { + width: 2.86rem; + height: 2.86rem; +} +.btn-floating i { + font-size: 1.6rem; + line-height: 2.86rem; + display: block; + top: 0; +} +.btn-floating.btn-large { + width: 4rem; + height: 4rem; +} +.btn-floating.btn-large i { + font-size: 2rem; + line-height: 4rem; +} +@media only all and (max-width:40em) { + body { + background-color: var(--internalColor); + } + #back { + margin: 0; + box-shadow: none; + min-height: 100%; + border-radius: 0; + } + #box { + width: 100VW; + max-width: 100VW; + min-height: 100%; + } + #install-icon { + padding-right: 0.5vw; + } + .btn-floating { + width: 10vw; + height: 10vw; + } + .btn-floating i { + font-size: 5vw; + line-height: 10vw; + } + .btn-floating.btn-large { + width: 15vw; + height: 15vw; + } + .btn-floating.btn-large i { + font-size: 7.5vw; + line-height: 15vw; + } + .github-corner { + color: #fff; + color: var(--internalColor); + } +} +@media only all and (max-height:600px) and (min-width:40em) { + html { + font-size: 2vh; + } +} +.sidenav { + background-color: #fff; + background-color: var(--backgroundColor); + width: 350px; + max-width: 100%; + overflow-y: hidden; +} +.sidenav li > a { + font-weight: 300; +} +.sidenav li > a > i, +.sidenav li > a > [class^=mdi-], +.sidenav li > a li > a > [class*=mdi-], +.sidenav li > a > i.material-icons { + margin: 0; + float: none; +} +#settings { + position: absolute; + left: 1vw; + bottom: 1vw; + display: block; +} +#settings a i.material-icons { + display: block; + font-size: 2.5em; + color: #535353; + color: var(--textColor); +} +.sidenav label:not([for=length-pref]) { + font-size: 1rem; + top: -33px; +} +#options { + padding: 10px; + display: grid; + height: calc(100% - 8px); + grid-template-rows: repeat(12, 1fr); +} +.sidenav .dropdown-content { + background: #fff; + background: var(--backgroundColor); +} +.sidenav .dropdown-content li > a, +.dropdown-content li > span { + color: #000; + color: var(--inputColor); +} +select { + background-color: #fff; + background-color: var(--internalColor); + border: 1px solid #535353; + border: 1px solid var(--textColor); + border-radius: 3px; + color: #000; + color: var(--inputColor); +} +select:focus { + border: 1px solid #7280ce; + border: 1px solid var(--lightAccent); + outline: none; +} +.sidenav .input-field { + margin-top: 2.5rem; +} +.btn i, +.btn-large i, +.btn-small i { + vertical-align: top; +} +.drag-target { + left: 0; +} +.sidenav .switch label { + font-size: 1.2em; +} +.sidenav { + place-content: center; +} +#theme-container { + grid-row: 1; +} +#session-container { + grid-row: 3; + padding-bottom: 0; +} +#footer { + display: grid; + grid-template-columns: 1fr calc(2.4em + 10px); + align-content: stretch; + grid-row: last-line; +} +#close { + cursor: pointer; + align-self: end; + justify-self: flex-end; + font-size: 2.4em; + color: #000; + color: var(--inputColor); +} +a { + color: #00539b; + color: var(--linkColor); +} +#old { + text-overflow: clip; +} +#length-pref { + font-size: 2em; + font-weight: 300; +} diff --git a/out.js b/out.js new file mode 100644 index 00000000..7a61922c --- /dev/null +++ b/out.js @@ -0,0 +1,7621 @@ +(() => { + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __markAsModule = (target) => __defProp(target, "__esModule", {value: true}); + var __commonJS = (cb, mod) => () => (mod || cb((mod = {exports: {}}).exports, mod), mod.exports); + var __reExport = (target, module, desc) => { + if (module && typeof module === "object" || typeof module === "function") { + for (let key of __getOwnPropNames(module)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, {get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable}); + } + return target; + }; + var __toModule = (module) => { + return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? {get: () => module.default, enumerable: true} : {value: module, enumerable: true})), module); + }; + + // node_modules/materialize-css/dist/js/materialize.min.js + var require_materialize_min = __commonJS((exports, module) => { + /*! + * Materialize v1.0.0 (http://materializecss.com) + * Copyright 2014-2017 Materialize + * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) + */ + var _get = function t(e, i, n) { + e === null && (e = Function.prototype); + var s = Object.getOwnPropertyDescriptor(e, i); + if (s === void 0) { + var o = Object.getPrototypeOf(e); + return o === null ? void 0 : t(o, i, n); + } + if ("value" in s) + return s.value; + var a = s.get; + return a !== void 0 ? a.call(n) : void 0; + }; + var _createClass = function() { + function n(t, e) { + for (var i = 0; i < e.length; i++) { + var n2 = e[i]; + n2.enumerable = n2.enumerable || false, n2.configurable = true, "value" in n2 && (n2.writable = true), Object.defineProperty(t, n2.key, n2); + } + } + return function(t, e, i) { + return e && n(t.prototype, e), i && n(t, i), t; + }; + }(); + function _possibleConstructorReturn(t, e) { + if (!t) + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !e || typeof e != "object" && typeof e != "function" ? t : e; + } + function _inherits(t, e) { + if (typeof e != "function" && e !== null) + throw new TypeError("Super expression must either be null or a function, not " + typeof e); + t.prototype = Object.create(e && e.prototype, {constructor: {value: t, enumerable: false, writable: true, configurable: true}}), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e); + } + function _classCallCheck(t, e) { + if (!(t instanceof e)) + throw new TypeError("Cannot call a class as a function"); + } + window.cash = function() { + var i, o = document, a = window, t = Array.prototype, r = t.slice, n = t.filter, s = t.push, e = function() { + }, h = function(t2) { + return typeof t2 == typeof e && t2.call; + }, d = function(t2) { + return typeof t2 == "string"; + }, l = /^#[\w-]*$/, u = /^\.[\w-]*$/, c = /<.+>/, p = /^\w+$/; + function v(t2, e2) { + e2 = e2 || o; + var i2 = u.test(t2) ? e2.getElementsByClassName(t2.slice(1)) : p.test(t2) ? e2.getElementsByTagName(t2) : e2.querySelectorAll(t2); + return i2; + } + function f(t2) { + if (!i) { + var e2 = (i = o.implementation.createHTMLDocument(null)).createElement("base"); + e2.href = o.location.href, i.head.appendChild(e2); + } + return i.body.innerHTML = t2, i.body.childNodes; + } + function m(t2) { + o.readyState !== "loading" ? t2() : o.addEventListener("DOMContentLoaded", t2); + } + function g(t2, e2) { + if (!t2) + return this; + if (t2.cash && t2 !== a) + return t2; + var i2, n2 = t2, s2 = 0; + if (d(t2)) + n2 = l.test(t2) ? o.getElementById(t2.slice(1)) : c.test(t2) ? f(t2) : v(t2, e2); + else if (h(t2)) + return m(t2), this; + if (!n2) + return this; + if (n2.nodeType || n2 === a) + this[0] = n2, this.length = 1; + else + for (i2 = this.length = n2.length; s2 < i2; s2++) + this[s2] = n2[s2]; + return this; + } + function _2(t2, e2) { + return new g(t2, e2); + } + var y = _2.fn = _2.prototype = g.prototype = {cash: true, length: 0, push: s, splice: t.splice, map: t.map, init: g}; + function k(t2, e2) { + for (var i2 = t2.length, n2 = 0; n2 < i2 && e2.call(t2[n2], t2[n2], n2, t2) !== false; n2++) + ; + } + function b(t2, e2) { + var i2 = t2 && (t2.matches || t2.webkitMatchesSelector || t2.mozMatchesSelector || t2.msMatchesSelector || t2.oMatchesSelector); + return !!i2 && i2.call(t2, e2); + } + function w(e2) { + return d(e2) ? b : e2.cash ? function(t2) { + return e2.is(t2); + } : function(t2, e3) { + return t2 === e3; + }; + } + function C(t2) { + return _2(r.call(t2).filter(function(t3, e2, i2) { + return i2.indexOf(t3) === e2; + })); + } + Object.defineProperty(y, "constructor", {value: _2}), _2.parseHTML = f, _2.noop = e, _2.isFunction = h, _2.isString = d, _2.extend = y.extend = function(t2) { + t2 = t2 || {}; + var e2 = r.call(arguments), i2 = e2.length, n2 = 1; + for (e2.length === 1 && (t2 = this, n2 = 0); n2 < i2; n2++) + if (e2[n2]) + for (var s2 in e2[n2]) + e2[n2].hasOwnProperty(s2) && (t2[s2] = e2[n2][s2]); + return t2; + }, _2.extend({merge: function(t2, e2) { + for (var i2 = +e2.length, n2 = t2.length, s2 = 0; s2 < i2; n2++, s2++) + t2[n2] = e2[s2]; + return t2.length = n2, t2; + }, each: k, matches: b, unique: C, isArray: Array.isArray, isNumeric: function(t2) { + return !isNaN(parseFloat(t2)) && isFinite(t2); + }}); + var E = _2.uid = "_cash" + Date.now(); + function M2(t2) { + return t2[E] = t2[E] || {}; + } + function O(t2, e2, i2) { + return M2(t2)[e2] = i2; + } + function x(t2, e2) { + var i2 = M2(t2); + return i2[e2] === void 0 && (i2[e2] = t2.dataset ? t2.dataset[e2] : _2(t2).attr("data-" + e2)), i2[e2]; + } + y.extend({data: function(e2, i2) { + if (d(e2)) + return i2 === void 0 ? x(this[0], e2) : this.each(function(t3) { + return O(t3, e2, i2); + }); + for (var t2 in e2) + this.data(t2, e2[t2]); + return this; + }, removeData: function(s2) { + return this.each(function(t2) { + return i2 = s2, void ((n2 = M2(e2 = t2)) ? delete n2[i2] : e2.dataset ? delete e2.dataset[i2] : _2(e2).removeAttr("data-" + name)); + var e2, i2, n2; + }); + }}); + var L = /\S+/g; + function T(t2) { + return d(t2) && t2.match(L); + } + function $2(t2, e2) { + return t2.classList ? t2.classList.contains(e2) : new RegExp("(^| )" + e2 + "( |$)", "gi").test(t2.className); + } + function B(t2, e2, i2) { + t2.classList ? t2.classList.add(e2) : i2.indexOf(" " + e2 + " ") && (t2.className += " " + e2); + } + function D(t2, e2) { + t2.classList ? t2.classList.remove(e2) : t2.className = t2.className.replace(e2, ""); + } + y.extend({addClass: function(t2) { + var n2 = T(t2); + return n2 ? this.each(function(e2) { + var i2 = " " + e2.className + " "; + k(n2, function(t3) { + B(e2, t3, i2); + }); + }) : this; + }, attr: function(e2, i2) { + if (e2) { + if (d(e2)) + return i2 === void 0 ? this[0] ? this[0].getAttribute ? this[0].getAttribute(e2) : this[0][e2] : void 0 : this.each(function(t3) { + t3.setAttribute ? t3.setAttribute(e2, i2) : t3[e2] = i2; + }); + for (var t2 in e2) + this.attr(t2, e2[t2]); + return this; + } + }, hasClass: function(t2) { + var e2 = false, i2 = T(t2); + return i2 && i2.length && this.each(function(t3) { + return !(e2 = $2(t3, i2[0])); + }), e2; + }, prop: function(e2, i2) { + if (d(e2)) + return i2 === void 0 ? this[0][e2] : this.each(function(t3) { + t3[e2] = i2; + }); + for (var t2 in e2) + this.prop(t2, e2[t2]); + return this; + }, removeAttr: function(e2) { + return this.each(function(t2) { + t2.removeAttribute ? t2.removeAttribute(e2) : delete t2[e2]; + }); + }, removeClass: function(t2) { + if (!arguments.length) + return this.attr("class", ""); + var i2 = T(t2); + return i2 ? this.each(function(e2) { + k(i2, function(t3) { + D(e2, t3); + }); + }) : this; + }, removeProp: function(e2) { + return this.each(function(t2) { + delete t2[e2]; + }); + }, toggleClass: function(t2, e2) { + if (e2 !== void 0) + return this[e2 ? "addClass" : "removeClass"](t2); + var n2 = T(t2); + return n2 ? this.each(function(e3) { + var i2 = " " + e3.className + " "; + k(n2, function(t3) { + $2(e3, t3) ? D(e3, t3) : B(e3, t3, i2); + }); + }) : this; + }}), y.extend({add: function(t2, e2) { + return C(_2.merge(this, _2(t2, e2))); + }, each: function(t2) { + return k(this, t2), this; + }, eq: function(t2) { + return _2(this.get(t2)); + }, filter: function(e2) { + if (!e2) + return this; + var i2 = h(e2) ? e2 : w(e2); + return _2(n.call(this, function(t2) { + return i2(t2, e2); + })); + }, first: function() { + return this.eq(0); + }, get: function(t2) { + return t2 === void 0 ? r.call(this) : t2 < 0 ? this[t2 + this.length] : this[t2]; + }, index: function(t2) { + var e2 = t2 ? _2(t2)[0] : this[0], i2 = t2 ? this : _2(e2).parent().children(); + return r.call(i2).indexOf(e2); + }, last: function() { + return this.eq(-1); + }}); + var S, I, A, R, H, P, W = (H = /(?:^\w|[A-Z]|\b\w)/g, P = /[\s-_]+/g, function(t2) { + return t2.replace(H, function(t3, e2) { + return t3[e2 === 0 ? "toLowerCase" : "toUpperCase"](); + }).replace(P, ""); + }), j = (S = {}, I = document, A = I.createElement("div"), R = A.style, function(e2) { + if (e2 = W(e2), S[e2]) + return S[e2]; + var t2 = e2.charAt(0).toUpperCase() + e2.slice(1), i2 = (e2 + " " + ["webkit", "moz", "ms", "o"].join(t2 + " ") + t2).split(" "); + return k(i2, function(t3) { + if (t3 in R) + return S[t3] = e2 = S[e2] = t3, false; + }), S[e2]; + }); + function F(t2, e2) { + return parseInt(a.getComputedStyle(t2[0], null)[e2], 10) || 0; + } + function q(e2, i2, t2) { + var n2, s2 = x(e2, "_cashEvents"), o2 = s2 && s2[i2]; + o2 && (t2 ? (e2.removeEventListener(i2, t2), 0 <= (n2 = o2.indexOf(t2)) && o2.splice(n2, 1)) : (k(o2, function(t3) { + e2.removeEventListener(i2, t3); + }), o2 = [])); + } + function N(t2, e2) { + return "&" + encodeURIComponent(t2) + "=" + encodeURIComponent(e2).replace(/%20/g, "+"); + } + function z(t2) { + var e2, i2, n2, s2 = t2.type; + if (!s2) + return null; + switch (s2.toLowerCase()) { + case "select-one": + return 0 <= (n2 = (i2 = t2).selectedIndex) ? i2.options[n2].value : null; + case "select-multiple": + return e2 = [], k(t2.options, function(t3) { + t3.selected && e2.push(t3.value); + }), e2.length ? e2 : null; + case "radio": + case "checkbox": + return t2.checked ? t2.value : null; + default: + return t2.value ? t2.value : null; + } + } + function V(e2, i2, n2) { + var t2 = d(i2); + t2 || !i2.length ? k(e2, t2 ? function(t3) { + return t3.insertAdjacentHTML(n2 ? "afterbegin" : "beforeend", i2); + } : function(t3, e3) { + return function(t4, e4, i3) { + if (i3) { + var n3 = t4.childNodes[0]; + t4.insertBefore(e4, n3); + } else + t4.appendChild(e4); + }(t3, e3 === 0 ? i2 : i2.cloneNode(true), n2); + }) : k(i2, function(t3) { + return V(e2, t3, n2); + }); + } + _2.prefixedProp = j, _2.camelCase = W, y.extend({css: function(e2, i2) { + if (d(e2)) + return e2 = j(e2), 1 < arguments.length ? this.each(function(t3) { + return t3.style[e2] = i2; + }) : a.getComputedStyle(this[0])[e2]; + for (var t2 in e2) + this.css(t2, e2[t2]); + return this; + }}), k(["Width", "Height"], function(e2) { + var t2 = e2.toLowerCase(); + y[t2] = function() { + return this[0].getBoundingClientRect()[t2]; + }, y["inner" + e2] = function() { + return this[0]["client" + e2]; + }, y["outer" + e2] = function(t3) { + return this[0]["offset" + e2] + (t3 ? F(this, "margin" + (e2 === "Width" ? "Left" : "Top")) + F(this, "margin" + (e2 === "Width" ? "Right" : "Bottom")) : 0); + }; + }), y.extend({off: function(e2, i2) { + return this.each(function(t2) { + return q(t2, e2, i2); + }); + }, on: function(a2, i2, r2, l2) { + var n2; + if (!d(a2)) { + for (var t2 in a2) + this.on(t2, i2, a2[t2]); + return this; + } + return h(i2) && (r2 = i2, i2 = null), a2 === "ready" ? (m(r2), this) : (i2 && (n2 = r2, r2 = function(t3) { + for (var e2 = t3.target; !b(e2, i2); ) { + if (e2 === this || e2 === null) + return e2 = false; + e2 = e2.parentNode; + } + e2 && n2.call(e2, t3); + }), this.each(function(t3) { + var e2, i3, n3, s2, o2 = r2; + l2 && (o2 = function() { + r2.apply(this, arguments), q(t3, a2, o2); + }), i3 = a2, n3 = o2, (s2 = x(e2 = t3, "_cashEvents") || O(e2, "_cashEvents", {}))[i3] = s2[i3] || [], s2[i3].push(n3), e2.addEventListener(i3, n3); + })); + }, one: function(t2, e2, i2) { + return this.on(t2, e2, i2, true); + }, ready: m, trigger: function(t2, e2) { + if (document.createEvent) { + var i2 = document.createEvent("HTMLEvents"); + return i2.initEvent(t2, true, false), i2 = this.extend(i2, e2), this.each(function(t3) { + return t3.dispatchEvent(i2); + }); + } + }}), y.extend({serialize: function() { + var s2 = ""; + return k(this[0].elements || this, function(t2) { + if (!t2.disabled && t2.tagName !== "FIELDSET") { + var e2 = t2.name; + switch (t2.type.toLowerCase()) { + case "file": + case "reset": + case "submit": + case "button": + break; + case "select-multiple": + var i2 = z(t2); + i2 !== null && k(i2, function(t3) { + s2 += N(e2, t3); + }); + break; + default: + var n2 = z(t2); + n2 !== null && (s2 += N(e2, n2)); + } + } + }), s2.substr(1); + }, val: function(e2) { + return e2 === void 0 ? z(this[0]) : this.each(function(t2) { + return t2.value = e2; + }); + }}), y.extend({after: function(t2) { + return _2(t2).insertAfter(this), this; + }, append: function(t2) { + return V(this, t2), this; + }, appendTo: function(t2) { + return V(_2(t2), this), this; + }, before: function(t2) { + return _2(t2).insertBefore(this), this; + }, clone: function() { + return _2(this.map(function(t2) { + return t2.cloneNode(true); + })); + }, empty: function() { + return this.html(""), this; + }, html: function(t2) { + if (t2 === void 0) + return this[0].innerHTML; + var e2 = t2.nodeType ? t2[0].outerHTML : t2; + return this.each(function(t3) { + return t3.innerHTML = e2; + }); + }, insertAfter: function(t2) { + var s2 = this; + return _2(t2).each(function(t3, e2) { + var i2 = t3.parentNode, n2 = t3.nextSibling; + s2.each(function(t4) { + i2.insertBefore(e2 === 0 ? t4 : t4.cloneNode(true), n2); + }); + }), this; + }, insertBefore: function(t2) { + var s2 = this; + return _2(t2).each(function(e2, i2) { + var n2 = e2.parentNode; + s2.each(function(t3) { + n2.insertBefore(i2 === 0 ? t3 : t3.cloneNode(true), e2); + }); + }), this; + }, prepend: function(t2) { + return V(this, t2, true), this; + }, prependTo: function(t2) { + return V(_2(t2), this, true), this; + }, remove: function() { + return this.each(function(t2) { + if (t2.parentNode) + return t2.parentNode.removeChild(t2); + }); + }, text: function(e2) { + return e2 === void 0 ? this[0].textContent : this.each(function(t2) { + return t2.textContent = e2; + }); + }}); + var X = o.documentElement; + return y.extend({position: function() { + var t2 = this[0]; + return {left: t2.offsetLeft, top: t2.offsetTop}; + }, offset: function() { + var t2 = this[0].getBoundingClientRect(); + return {top: t2.top + a.pageYOffset - X.clientTop, left: t2.left + a.pageXOffset - X.clientLeft}; + }, offsetParent: function() { + return _2(this[0].offsetParent); + }}), y.extend({children: function(e2) { + var i2 = []; + return this.each(function(t2) { + s.apply(i2, t2.children); + }), i2 = C(i2), e2 ? i2.filter(function(t2) { + return b(t2, e2); + }) : i2; + }, closest: function(t2) { + return !t2 || this.length < 1 ? _2() : this.is(t2) ? this.filter(t2) : this.parent().closest(t2); + }, is: function(e2) { + if (!e2) + return false; + var i2 = false, n2 = w(e2); + return this.each(function(t2) { + return !(i2 = n2(t2, e2)); + }), i2; + }, find: function(e2) { + if (!e2 || e2.nodeType) + return _2(e2 && this.has(e2).length ? e2 : null); + var i2 = []; + return this.each(function(t2) { + s.apply(i2, v(e2, t2)); + }), C(i2); + }, has: function(e2) { + var t2 = d(e2) ? function(t3) { + return v(e2, t3).length !== 0; + } : function(t3) { + return t3.contains(e2); + }; + return this.filter(t2); + }, next: function() { + return _2(this[0].nextElementSibling); + }, not: function(e2) { + if (!e2) + return this; + var i2 = w(e2); + return this.filter(function(t2) { + return !i2(t2, e2); + }); + }, parent: function() { + var e2 = []; + return this.each(function(t2) { + t2 && t2.parentNode && e2.push(t2.parentNode); + }), C(e2); + }, parents: function(e2) { + var i2, n2 = []; + return this.each(function(t2) { + for (i2 = t2; i2 && i2.parentNode && i2 !== o.body.parentNode; ) + i2 = i2.parentNode, (!e2 || e2 && b(i2, e2)) && n2.push(i2); + }), C(n2); + }, prev: function() { + return _2(this[0].previousElementSibling); + }, siblings: function(t2) { + var e2 = this.parent().children(t2), i2 = this[0]; + return e2.filter(function(t3) { + return t3 !== i2; + }); + }}), _2; + }(); + var Component = function() { + function s(t, e, i) { + _classCallCheck(this, s), e instanceof Element || console.error(Error(e + " is not an HTML Element")); + var n = t.getInstance(e); + n && n.destroy(), this.el = e, this.$el = cash(e); + } + return _createClass(s, null, [{key: "init", value: function(t, e, i) { + var n = null; + if (e instanceof Element) + n = new t(e, i); + else if (e && (e.jquery || e.cash || e instanceof NodeList)) { + for (var s2 = [], o = 0; o < e.length; o++) + s2.push(new t(e[o], i)); + n = s2; + } + return n; + }}]), s; + }(); + !function(t) { + t.Package ? M = {} : t.M = {}, M.jQueryLoaded = !!t.jQuery; + }(window), typeof define == "function" && define.amd ? define("M", [], function() { + return M; + }) : typeof exports == "undefined" || exports.nodeType || (typeof module != "undefined" && !module.nodeType && module.exports && (exports = module.exports = M), exports.default = M), M.version = "1.0.0", M.keys = {TAB: 9, ENTER: 13, ESC: 27, ARROW_UP: 38, ARROW_DOWN: 40}, M.tabPressed = false, M.keyDown = false; + var docHandleKeydown = function(t) { + M.keyDown = true, t.which !== M.keys.TAB && t.which !== M.keys.ARROW_DOWN && t.which !== M.keys.ARROW_UP || (M.tabPressed = true); + }; + var docHandleKeyup = function(t) { + M.keyDown = false, t.which !== M.keys.TAB && t.which !== M.keys.ARROW_DOWN && t.which !== M.keys.ARROW_UP || (M.tabPressed = false); + }; + var docHandleFocus = function(t) { + M.keyDown && document.body.classList.add("keyboard-focused"); + }; + var docHandleBlur = function(t) { + document.body.classList.remove("keyboard-focused"); + }; + document.addEventListener("keydown", docHandleKeydown, true), document.addEventListener("keyup", docHandleKeyup, true), document.addEventListener("focus", docHandleFocus, true), document.addEventListener("blur", docHandleBlur, true), M.initializeJqueryWrapper = function(n, s, o) { + jQuery.fn[s] = function(e) { + if (n.prototype[e]) { + var i = Array.prototype.slice.call(arguments, 1); + if (e.slice(0, 3) === "get") { + var t = this.first()[0][o]; + return t[e].apply(t, i); + } + return this.each(function() { + var t2 = this[o]; + t2[e].apply(t2, i); + }); + } + if (typeof e == "object" || !e) + return n.init(this, e), this; + jQuery.error("Method " + e + " does not exist on jQuery." + s); + }; + }, M.AutoInit = function(t) { + var e = t || document.body, i = {Autocomplete: e.querySelectorAll(".autocomplete:not(.no-autoinit)"), Carousel: e.querySelectorAll(".carousel:not(.no-autoinit)"), Chips: e.querySelectorAll(".chips:not(.no-autoinit)"), Collapsible: e.querySelectorAll(".collapsible:not(.no-autoinit)"), Datepicker: e.querySelectorAll(".datepicker:not(.no-autoinit)"), Dropdown: e.querySelectorAll(".dropdown-trigger:not(.no-autoinit)"), Materialbox: e.querySelectorAll(".materialboxed:not(.no-autoinit)"), Modal: e.querySelectorAll(".modal:not(.no-autoinit)"), Parallax: e.querySelectorAll(".parallax:not(.no-autoinit)"), Pushpin: e.querySelectorAll(".pushpin:not(.no-autoinit)"), ScrollSpy: e.querySelectorAll(".scrollspy:not(.no-autoinit)"), FormSelect: e.querySelectorAll("select:not(.no-autoinit)"), Sidenav: e.querySelectorAll(".sidenav:not(.no-autoinit)"), Tabs: e.querySelectorAll(".tabs:not(.no-autoinit)"), TapTarget: e.querySelectorAll(".tap-target:not(.no-autoinit)"), Timepicker: e.querySelectorAll(".timepicker:not(.no-autoinit)"), Tooltip: e.querySelectorAll(".tooltipped:not(.no-autoinit)"), FloatingActionButton: e.querySelectorAll(".fixed-action-btn:not(.no-autoinit)")}; + for (var n in i) { + M[n].init(i[n]); + } + }, M.objectSelectorString = function(t) { + return ((t.prop("tagName") || "") + (t.attr("id") || "") + (t.attr("class") || "")).replace(/\s/g, ""); + }, M.guid = function() { + function t() { + return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1); + } + return function() { + return t() + t() + "-" + t() + "-" + t() + "-" + t() + "-" + t() + t() + t(); + }; + }(), M.escapeHash = function(t) { + return t.replace(/(:|\.|\[|\]|,|=|\/)/g, "\\$1"); + }, M.elementOrParentIsFixed = function(t) { + var e = $(t), i = e.add(e.parents()), n = false; + return i.each(function() { + if ($(this).css("position") === "fixed") + return !(n = true); + }), n; + }, M.checkWithinContainer = function(t, e, i) { + var n = {top: false, right: false, bottom: false, left: false}, s = t.getBoundingClientRect(), o = t === document.body ? Math.max(s.bottom, window.innerHeight) : s.bottom, a = t.scrollLeft, r = t.scrollTop, l = e.left - a, h = e.top - r; + return (l < s.left + i || l < i) && (n.left = true), (l + e.width > s.right - i || l + e.width > window.innerWidth - i) && (n.right = true), (h < s.top + i || h < i) && (n.top = true), (h + e.height > o - i || h + e.height > window.innerHeight - i) && (n.bottom = true), n; + }, M.checkPossibleAlignments = function(t, e, i, n) { + var s = {top: true, right: true, bottom: true, left: true, spaceOnTop: null, spaceOnRight: null, spaceOnBottom: null, spaceOnLeft: null}, o = getComputedStyle(e).overflow === "visible", a = e.getBoundingClientRect(), r = Math.min(a.height, window.innerHeight), l = Math.min(a.width, window.innerWidth), h = t.getBoundingClientRect(), d = e.scrollLeft, u = e.scrollTop, c = i.left - d, p = i.top - u, v = i.top + h.height - u; + return s.spaceOnRight = o ? window.innerWidth - (h.left + i.width) : l - (c + i.width), s.spaceOnRight < 0 && (s.left = false), s.spaceOnLeft = o ? h.right - i.width : c - i.width + h.width, s.spaceOnLeft < 0 && (s.right = false), s.spaceOnBottom = o ? window.innerHeight - (h.top + i.height + n) : r - (p + i.height + n), s.spaceOnBottom < 0 && (s.top = false), s.spaceOnTop = o ? h.bottom - (i.height + n) : v - (i.height - n), s.spaceOnTop < 0 && (s.bottom = false), s; + }, M.getOverflowParent = function(t) { + return t == null ? null : t === document.body || getComputedStyle(t).overflow !== "visible" ? t : M.getOverflowParent(t.parentElement); + }, M.getIdFromTrigger = function(t) { + var e = t.getAttribute("data-target"); + return e || (e = (e = t.getAttribute("href")) ? e.slice(1) : ""), e; + }, M.getDocumentScrollTop = function() { + return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; + }, M.getDocumentScrollLeft = function() { + return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; + }; + var getTime = Date.now || function() { + return new Date().getTime(); + }; + M.throttle = function(i, n, s) { + var o = void 0, a = void 0, r = void 0, l = null, h = 0; + s || (s = {}); + var d = function() { + h = s.leading === false ? 0 : getTime(), l = null, r = i.apply(o, a), o = a = null; + }; + return function() { + var t = getTime(); + h || s.leading !== false || (h = t); + var e = n - (t - h); + return o = this, a = arguments, e <= 0 ? (clearTimeout(l), l = null, h = t, r = i.apply(o, a), o = a = null) : l || s.trailing === false || (l = setTimeout(d, e)), r; + }; + }; + var $jscomp = {scope: {}}; + $jscomp.defineProperty = typeof Object.defineProperties == "function" ? Object.defineProperty : function(t, e, i) { + if (i.get || i.set) + throw new TypeError("ES3 does not support getters and setters."); + t != Array.prototype && t != Object.prototype && (t[e] = i.value); + }, $jscomp.getGlobal = function(t) { + return typeof window != "undefined" && window === t ? t : typeof global != "undefined" && global != null ? global : t; + }, $jscomp.global = $jscomp.getGlobal(exports), $jscomp.SYMBOL_PREFIX = "jscomp_symbol_", $jscomp.initSymbol = function() { + $jscomp.initSymbol = function() { + }, $jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol); + }, $jscomp.symbolCounter_ = 0, $jscomp.Symbol = function(t) { + return $jscomp.SYMBOL_PREFIX + (t || "") + $jscomp.symbolCounter_++; + }, $jscomp.initSymbolIterator = function() { + $jscomp.initSymbol(); + var t = $jscomp.global.Symbol.iterator; + t || (t = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator")), typeof Array.prototype[t] != "function" && $jscomp.defineProperty(Array.prototype, t, {configurable: true, writable: true, value: function() { + return $jscomp.arrayIterator(this); + }}), $jscomp.initSymbolIterator = function() { + }; + }, $jscomp.arrayIterator = function(t) { + var e = 0; + return $jscomp.iteratorPrototype(function() { + return e < t.length ? {done: false, value: t[e++]} : {done: true}; + }); + }, $jscomp.iteratorPrototype = function(t) { + return $jscomp.initSymbolIterator(), (t = {next: t})[$jscomp.global.Symbol.iterator] = function() { + return this; + }, t; + }, $jscomp.array = $jscomp.array || {}, $jscomp.iteratorFromArray = function(e, i) { + $jscomp.initSymbolIterator(), e instanceof String && (e += ""); + var n = 0, s = {next: function() { + if (n < e.length) { + var t = n++; + return {value: i(t, e[t]), done: false}; + } + return s.next = function() { + return {done: true, value: void 0}; + }, s.next(); + }}; + return s[Symbol.iterator] = function() { + return s; + }, s; + }, $jscomp.polyfill = function(t, e, i, n) { + if (e) { + for (i = $jscomp.global, t = t.split("."), n = 0; n < t.length - 1; n++) { + var s = t[n]; + s in i || (i[s] = {}), i = i[s]; + } + (e = e(n = i[t = t[t.length - 1]])) != n && e != null && $jscomp.defineProperty(i, t, {configurable: true, writable: true, value: e}); + } + }, $jscomp.polyfill("Array.prototype.keys", function(t) { + return t || function() { + return $jscomp.iteratorFromArray(this, function(t2) { + return t2; + }); + }; + }, "es6-impl", "es3"); + var $jscomp$this = exports; + M.anime = function() { + function s(t) { + if (!B.col(t)) + try { + return document.querySelectorAll(t); + } catch (t2) { + } + } + function b(t, e) { + for (var i2 = t.length, n2 = 2 <= arguments.length ? e : void 0, s2 = [], o2 = 0; o2 < i2; o2++) + if (o2 in t) { + var a2 = t[o2]; + e.call(n2, a2, o2, t) && s2.push(a2); + } + return s2; + } + function d(t) { + return t.reduce(function(t2, e) { + return t2.concat(B.arr(e) ? d(e) : e); + }, []); + } + function o(t) { + return B.arr(t) ? t : (B.str(t) && (t = s(t) || t), t instanceof NodeList || t instanceof HTMLCollection ? [].slice.call(t) : [t]); + } + function a(t, e) { + return t.some(function(t2) { + return t2 === e; + }); + } + function r(t) { + var e, i2 = {}; + for (e in t) + i2[e] = t[e]; + return i2; + } + function u(t, e) { + var i2, n2 = r(t); + for (i2 in t) + n2[i2] = e.hasOwnProperty(i2) ? e[i2] : t[i2]; + return n2; + } + function c(t, e) { + var i2, n2 = r(t); + for (i2 in e) + n2[i2] = B.und(t[i2]) ? e[i2] : t[i2]; + return n2; + } + function l(t) { + if (t = /([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(t)) + return t[2]; + } + function h(t, e) { + return B.fnc(t) ? t(e.target, e.id, e.total) : t; + } + function w(t, e) { + if (e in t.style) + return getComputedStyle(t).getPropertyValue(e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()) || "0"; + } + function p(t, e) { + return B.dom(t) && a($2, e) ? "transform" : B.dom(t) && (t.getAttribute(e) || B.svg(t) && t[e]) ? "attribute" : B.dom(t) && e !== "transform" && w(t, e) ? "css" : t[e] != null ? "object" : void 0; + } + function v(t, e) { + switch (p(t, e)) { + case "transform": + return function(t2, i2) { + var e2, n2 = -1 < (e2 = i2).indexOf("translate") || e2 === "perspective" ? "px" : -1 < e2.indexOf("rotate") || -1 < e2.indexOf("skew") ? "deg" : void 0, n2 = -1 < i2.indexOf("scale") ? 1 : 0 + n2; + if (!(t2 = t2.style.transform)) + return n2; + for (var s2 = [], o2 = [], a2 = [], r2 = /(\w+)\((.+?)\)/g; s2 = r2.exec(t2); ) + o2.push(s2[1]), a2.push(s2[2]); + return (t2 = b(a2, function(t3, e3) { + return o2[e3] === i2; + })).length ? t2[0] : n2; + }(t, e); + case "css": + return w(t, e); + case "attribute": + return t.getAttribute(e); + } + return t[e] || 0; + } + function f(t, e) { + var i2 = /^(\*=|\+=|-=)/.exec(t); + if (!i2) + return t; + var n2 = l(t) || 0; + switch (e = parseFloat(e), t = parseFloat(t.replace(i2[0], "")), i2[0][0]) { + case "+": + return e + t + n2; + case "-": + return e - t + n2; + case "*": + return e * t + n2; + } + } + function m(t, e) { + return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)); + } + function i(t) { + t = t.points; + for (var e, i2 = 0, n2 = 0; n2 < t.numberOfItems; n2++) { + var s2 = t.getItem(n2); + 0 < n2 && (i2 += m(e, s2)), e = s2; + } + return i2; + } + function g(t) { + if (t.getTotalLength) + return t.getTotalLength(); + switch (t.tagName.toLowerCase()) { + case "circle": + return 2 * Math.PI * t.getAttribute("r"); + case "rect": + return 2 * t.getAttribute("width") + 2 * t.getAttribute("height"); + case "line": + return m({x: t.getAttribute("x1"), y: t.getAttribute("y1")}, {x: t.getAttribute("x2"), y: t.getAttribute("y2")}); + case "polyline": + return i(t); + case "polygon": + var e = t.points; + return i(t) + m(e.getItem(e.numberOfItems - 1), e.getItem(0)); + } + } + function C(e, i2) { + function t(t2) { + return t2 = t2 === void 0 ? 0 : t2, e.el.getPointAtLength(1 <= i2 + t2 ? i2 + t2 : 0); + } + var n2 = t(), s2 = t(-1), o2 = t(1); + switch (e.property) { + case "x": + return n2.x; + case "y": + return n2.y; + case "angle": + return 180 * Math.atan2(o2.y - s2.y, o2.x - s2.x) / Math.PI; + } + } + function _2(t, e) { + var i2, n2 = /-?\d*\.?\d+/g; + if (i2 = B.pth(t) ? t.totalLength : t, B.col(i2)) + if (B.rgb(i2)) { + var s2 = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(i2); + i2 = s2 ? "rgba(" + s2[1] + ",1)" : i2; + } else + i2 = B.hex(i2) ? function(t2) { + t2 = t2.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function(t3, e3, i4, n3) { + return e3 + e3 + i4 + i4 + n3 + n3; + }); + var e2 = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t2); + t2 = parseInt(e2[1], 16); + var i3 = parseInt(e2[2], 16), e2 = parseInt(e2[3], 16); + return "rgba(" + t2 + "," + i3 + "," + e2 + ",1)"; + }(i2) : B.hsl(i2) ? function(t2) { + function e2(t3, e3, i4) { + return i4 < 0 && (i4 += 1), 1 < i4 && --i4, i4 < 1 / 6 ? t3 + 6 * (e3 - t3) * i4 : i4 < 0.5 ? e3 : i4 < 2 / 3 ? t3 + (e3 - t3) * (2 / 3 - i4) * 6 : t3; + } + var i3 = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t2) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(t2); + t2 = parseInt(i3[1]) / 360; + var n3 = parseInt(i3[2]) / 100, s3 = parseInt(i3[3]) / 100, i3 = i3[4] || 1; + if (n3 == 0) + s3 = n3 = t2 = s3; + else { + var o2 = s3 < 0.5 ? s3 * (1 + n3) : s3 + n3 - s3 * n3, a2 = 2 * s3 - o2, s3 = e2(a2, o2, t2 + 1 / 3), n3 = e2(a2, o2, t2); + t2 = e2(a2, o2, t2 - 1 / 3); + } + return "rgba(" + 255 * s3 + "," + 255 * n3 + "," + 255 * t2 + "," + i3 + ")"; + }(i2) : void 0; + else + s2 = (s2 = l(i2)) ? i2.substr(0, i2.length - s2.length) : i2, i2 = e && !/\s/g.test(i2) ? s2 + e : s2; + return {original: i2 += "", numbers: i2.match(n2) ? i2.match(n2).map(Number) : [0], strings: B.str(t) || e ? i2.split(n2) : []}; + } + function y(t) { + return b(t = t ? d(B.arr(t) ? t.map(o) : o(t)) : [], function(t2, e, i2) { + return i2.indexOf(t2) === e; + }); + } + function k(t, i2) { + var e = r(i2); + if (B.arr(t)) { + var n2 = t.length; + n2 !== 2 || B.obj(t[0]) ? B.fnc(i2.duration) || (e.duration = i2.duration / n2) : t = {value: t}; + } + return o(t).map(function(t2, e2) { + return e2 = e2 ? 0 : i2.delay, t2 = B.obj(t2) && !B.pth(t2) ? t2 : {value: t2}, B.und(t2.delay) && (t2.delay = e2), t2; + }).map(function(t2) { + return c(t2, e); + }); + } + function E(o2, a2) { + var r2; + return o2.tweens.map(function(t) { + var e = (t = function(t2, e2) { + var i3, n3 = {}; + for (i3 in t2) { + var s3 = h(t2[i3], e2); + B.arr(s3) && (s3 = s3.map(function(t3) { + return h(t3, e2); + })).length === 1 && (s3 = s3[0]), n3[i3] = s3; + } + return n3.duration = parseFloat(n3.duration), n3.delay = parseFloat(n3.delay), n3; + }(t, a2)).value, i2 = v(a2.target, o2.name), n2 = r2 ? r2.to.original : i2, n2 = B.arr(e) ? e[0] : n2, s2 = f(B.arr(e) ? e[1] : e, n2), i2 = l(s2) || l(n2) || l(i2); + return t.from = _2(n2, i2), t.to = _2(s2, i2), t.start = r2 ? r2.end : o2.offset, t.end = t.start + t.delay + t.duration, t.easing = function(t2) { + return B.arr(t2) ? D.apply(this, t2) : S[t2]; + }(t.easing), t.elasticity = (1e3 - Math.min(Math.max(t.elasticity, 1), 999)) / 1e3, t.isPath = B.pth(e), t.isColor = B.col(t.from.original), t.isColor && (t.round = 1), r2 = t; + }); + } + function M2(e, t, i2, n2) { + var s2 = e === "delay"; + return t.length ? (s2 ? Math.min : Math.max).apply(Math, t.map(function(t2) { + return t2[e]; + })) : s2 ? n2.delay : i2.offset + n2.delay + n2.duration; + } + function n(t) { + var e, i2, n2, s2, o2 = u(L, t), a2 = u(T, t), r2 = (i2 = t.targets, (n2 = y(i2)).map(function(t2, e2) { + return {target: t2, id: e2, total: n2.length}; + })), l2 = [], h2 = c(o2, a2); + for (e in t) + h2.hasOwnProperty(e) || e === "targets" || l2.push({name: e, offset: h2.offset, tweens: k(t[e], a2)}); + return s2 = l2, t = b(d(r2.map(function(n3) { + return s2.map(function(t2) { + var e2 = p(n3.target, t2.name); + if (e2) { + var i3 = E(t2, n3); + t2 = {type: e2, property: t2.name, animatable: n3, tweens: i3, duration: i3[i3.length - 1].end, delay: i3[0].delay}; + } else + t2 = void 0; + return t2; + }); + })), function(t2) { + return !B.und(t2); + }), c(o2, {children: [], animatables: r2, animations: t, duration: M2("duration", t, o2, a2), delay: M2("delay", t, o2, a2)}); + } + function O(t) { + function d2() { + return window.Promise && new Promise(function(t2) { + return _3 = t2; + }); + } + function u2(t2) { + return k2.reversed ? k2.duration - t2 : t2; + } + function c2(e2) { + for (var t2 = 0, i2 = {}, n2 = k2.animations, s2 = n2.length; t2 < s2; ) { + var o2 = n2[t2], a2 = o2.animatable, r2 = o2.tweens, l2 = r2.length - 1, h2 = r2[l2]; + l2 && (h2 = b(r2, function(t3) { + return e2 < t3.end; + })[0] || h2); + for (var r2 = Math.min(Math.max(e2 - h2.start - h2.delay, 0), h2.duration) / h2.duration, d3 = isNaN(r2) ? 1 : h2.easing(r2, h2.elasticity), r2 = h2.to.strings, u3 = h2.round, l2 = [], c3 = void 0, c3 = h2.to.numbers.length, p3 = 0; p3 < c3; p3++) { + var v3 = void 0, v3 = h2.to.numbers[p3], f3 = h2.from.numbers[p3], v3 = h2.isPath ? C(h2.value, d3 * v3) : f3 + d3 * (v3 - f3); + u3 && (h2.isColor && 2 < p3 || (v3 = Math.round(v3 * u3) / u3)), l2.push(v3); + } + if (h2 = r2.length) + for (c3 = r2[0], d3 = 0; d3 < h2; d3++) + u3 = r2[d3 + 1], p3 = l2[d3], isNaN(p3) || (c3 = u3 ? c3 + (p3 + u3) : c3 + (p3 + " ")); + else + c3 = l2[0]; + I[o2.type](a2.target, o2.property, c3, i2, a2.id), o2.currentValue = c3, t2++; + } + if (t2 = Object.keys(i2).length) + for (n2 = 0; n2 < t2; n2++) + x || (x = w(document.body, "transform") ? "transform" : "-webkit-transform"), k2.animatables[n2].target.style[x] = i2[n2].join(" "); + k2.currentTime = e2, k2.progress = e2 / k2.duration * 100; + } + function p2(t2) { + k2[t2] && k2[t2](k2); + } + function v2() { + k2.remaining && k2.remaining !== true && k2.remaining--; + } + function e(t2) { + var e2 = k2.duration, i2 = k2.offset, n2 = i2 + k2.delay, s2 = k2.currentTime, o2 = k2.reversed, a2 = u2(t2); + if (k2.children.length) { + var r2 = k2.children, l2 = r2.length; + if (a2 >= k2.currentTime) + for (var h2 = 0; h2 < l2; h2++) + r2[h2].seek(a2); + else + for (; l2--; ) + r2[l2].seek(a2); + } + (n2 <= a2 || !e2) && (k2.began || (k2.began = true, p2("begin")), p2("run")), i2 < a2 && a2 < e2 ? c2(a2) : (a2 <= i2 && s2 !== 0 && (c2(0), o2 && v2()), (e2 <= a2 && s2 !== e2 || !e2) && (c2(e2), o2 || v2())), p2("update"), e2 <= t2 && (k2.remaining ? (m2 = f2, k2.direction === "alternate" && (k2.reversed = !k2.reversed)) : (k2.pause(), k2.completed || (k2.completed = true, p2("complete"), "Promise" in window && (_3(), y2 = d2()))), g2 = 0); + } + t = t === void 0 ? {} : t; + var f2, m2, g2 = 0, _3 = null, y2 = d2(), k2 = n(t); + return k2.reset = function() { + var t2 = k2.direction, e2 = k2.loop; + for (k2.currentTime = 0, k2.progress = 0, k2.paused = true, k2.began = false, k2.completed = false, k2.reversed = t2 === "reverse", k2.remaining = t2 === "alternate" && e2 === 1 ? 2 : e2, c2(0), t2 = k2.children.length; t2--; ) + k2.children[t2].reset(); + }, k2.tick = function(t2) { + f2 = t2, m2 || (m2 = f2), e((g2 + f2 - m2) * O.speed); + }, k2.seek = function(t2) { + e(u2(t2)); + }, k2.pause = function() { + var t2 = A.indexOf(k2); + -1 < t2 && A.splice(t2, 1), k2.paused = true; + }, k2.play = function() { + k2.paused && (k2.paused = false, m2 = 0, g2 = u2(k2.currentTime), A.push(k2), R || H()); + }, k2.reverse = function() { + k2.reversed = !k2.reversed, m2 = 0, g2 = u2(k2.currentTime); + }, k2.restart = function() { + k2.pause(), k2.reset(), k2.play(); + }, k2.finished = y2, k2.reset(), k2.autoplay && k2.play(), k2; + } + var x, L = {update: void 0, begin: void 0, run: void 0, complete: void 0, loop: 1, direction: "normal", autoplay: true, offset: 0}, T = {duration: 1e3, delay: 0, easing: "easeOutElastic", elasticity: 500, round: 0}, $2 = "translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective".split(" "), B = {arr: function(t) { + return Array.isArray(t); + }, obj: function(t) { + return -1 < Object.prototype.toString.call(t).indexOf("Object"); + }, pth: function(t) { + return B.obj(t) && t.hasOwnProperty("totalLength"); + }, svg: function(t) { + return t instanceof SVGElement; + }, dom: function(t) { + return t.nodeType || B.svg(t); + }, str: function(t) { + return typeof t == "string"; + }, fnc: function(t) { + return typeof t == "function"; + }, und: function(t) { + return t === void 0; + }, hex: function(t) { + return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t); + }, rgb: function(t) { + return /^rgb/.test(t); + }, hsl: function(t) { + return /^hsl/.test(t); + }, col: function(t) { + return B.hex(t) || B.rgb(t) || B.hsl(t); + }}, D = function() { + function u2(t, e, i2) { + return (((1 - 3 * i2 + 3 * e) * t + (3 * i2 - 6 * e)) * t + 3 * e) * t; + } + return function(a2, r2, l2, h2) { + if (0 <= a2 && a2 <= 1 && 0 <= l2 && l2 <= 1) { + var d2 = new Float32Array(11); + if (a2 !== r2 || l2 !== h2) + for (var t = 0; t < 11; ++t) + d2[t] = u2(0.1 * t, a2, l2); + return function(t2) { + if (a2 === r2 && l2 === h2) + return t2; + if (t2 === 0) + return 0; + if (t2 === 1) + return 1; + for (var e = 0, i2 = 1; i2 !== 10 && d2[i2] <= t2; ++i2) + e += 0.1; + var i2 = e + (t2 - d2[--i2]) / (d2[i2 + 1] - d2[i2]) * 0.1, n2 = 3 * (1 - 3 * l2 + 3 * a2) * i2 * i2 + 2 * (3 * l2 - 6 * a2) * i2 + 3 * a2; + if (1e-3 <= n2) { + for (e = 0; e < 4 && (n2 = 3 * (1 - 3 * l2 + 3 * a2) * i2 * i2 + 2 * (3 * l2 - 6 * a2) * i2 + 3 * a2) != 0; ++e) + var s2 = u2(i2, a2, l2) - t2, i2 = i2 - s2 / n2; + t2 = i2; + } else if (n2 === 0) + t2 = i2; + else { + for (var i2 = e, e = e + 0.1, o2 = 0; 0 < (n2 = u2(s2 = i2 + (e - i2) / 2, a2, l2) - t2) ? e = s2 : i2 = s2, 1e-7 < Math.abs(n2) && ++o2 < 10; ) + ; + t2 = s2; + } + return u2(t2, r2, h2); + }; + } + }; + }(), S = function() { + function i2(t2, e2) { + return t2 === 0 || t2 === 1 ? t2 : -Math.pow(2, 10 * (t2 - 1)) * Math.sin(2 * (t2 - 1 - e2 / (2 * Math.PI) * Math.asin(1)) * Math.PI / e2); + } + var t, n2 = "Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "), e = {In: [[0.55, 0.085, 0.68, 0.53], [0.55, 0.055, 0.675, 0.19], [0.895, 0.03, 0.685, 0.22], [0.755, 0.05, 0.855, 0.06], [0.47, 0, 0.745, 0.715], [0.95, 0.05, 0.795, 0.035], [0.6, 0.04, 0.98, 0.335], [0.6, -0.28, 0.735, 0.045], i2], Out: [[0.25, 0.46, 0.45, 0.94], [0.215, 0.61, 0.355, 1], [0.165, 0.84, 0.44, 1], [0.23, 1, 0.32, 1], [0.39, 0.575, 0.565, 1], [0.19, 1, 0.22, 1], [0.075, 0.82, 0.165, 1], [0.175, 0.885, 0.32, 1.275], function(t2, e2) { + return 1 - i2(1 - t2, e2); + }], InOut: [[0.455, 0.03, 0.515, 0.955], [0.645, 0.045, 0.355, 1], [0.77, 0, 0.175, 1], [0.86, 0, 0.07, 1], [0.445, 0.05, 0.55, 0.95], [1, 0, 0, 1], [0.785, 0.135, 0.15, 0.86], [0.68, -0.55, 0.265, 1.55], function(t2, e2) { + return t2 < 0.5 ? i2(2 * t2, e2) / 2 : 1 - i2(-2 * t2 + 2, e2) / 2; + }]}, s2 = {linear: D(0.25, 0.25, 0.75, 0.75)}, o2 = {}; + for (t in e) + o2.type = t, e[o2.type].forEach(function(i3) { + return function(t2, e2) { + s2["ease" + i3.type + n2[e2]] = B.fnc(t2) ? t2 : D.apply($jscomp$this, t2); + }; + }(o2)), o2 = {type: o2.type}; + return s2; + }(), I = {css: function(t, e, i2) { + return t.style[e] = i2; + }, attribute: function(t, e, i2) { + return t.setAttribute(e, i2); + }, object: function(t, e, i2) { + return t[e] = i2; + }, transform: function(t, e, i2, n2, s2) { + n2[s2] || (n2[s2] = []), n2[s2].push(e + "(" + i2 + ")"); + }}, A = [], R = 0, H = function() { + function n2() { + R = requestAnimationFrame(t); + } + function t(t2) { + var e = A.length; + if (e) { + for (var i2 = 0; i2 < e; ) + A[i2] && A[i2].tick(t2), i2++; + n2(); + } else + cancelAnimationFrame(R), R = 0; + } + return n2; + }(); + return O.version = "2.2.0", O.speed = 1, O.running = A, O.remove = function(t) { + t = y(t); + for (var e = A.length; e--; ) + for (var i2 = A[e], n2 = i2.animations, s2 = n2.length; s2--; ) + a(t, n2[s2].animatable.target) && (n2.splice(s2, 1), n2.length || i2.pause()); + }, O.getValue = v, O.path = function(t, e) { + var i2 = B.str(t) ? s(t)[0] : t, n2 = e || 100; + return function(t2) { + return {el: i2, property: t2, totalLength: g(i2) * (n2 / 100)}; + }; + }, O.setDashoffset = function(t) { + var e = g(t); + return t.setAttribute("stroke-dasharray", e), e; + }, O.bezier = D, O.easings = S, O.timeline = function(n2) { + var s2 = O(n2); + return s2.pause(), s2.duration = 0, s2.add = function(t) { + return s2.children.forEach(function(t2) { + t2.began = true, t2.completed = true; + }), o(t).forEach(function(t2) { + var e = c(t2, u(T, n2 || {})); + e.targets = e.targets || n2.targets, t2 = s2.duration; + var i2 = e.offset; + e.autoplay = false, e.direction = s2.direction, e.offset = B.und(i2) ? t2 : f(i2, t2), s2.began = true, s2.completed = true, s2.seek(e.offset), (e = O(e)).began = true, e.completed = true, e.duration > t2 && (s2.duration = e.duration), s2.children.push(e); + }), s2.seek(0), s2.reset(), s2.autoplay && s2.restart(), s2; + }, s2; + }, O.random = function(t, e) { + return Math.floor(Math.random() * (e - t + 1)) + t; + }, O; + }(), function(r, l) { + "use strict"; + var e = {accordion: true, onOpenStart: void 0, onOpenEnd: void 0, onCloseStart: void 0, onCloseEnd: void 0, inDuration: 300, outDuration: 300}, t = function(t2) { + function s(t3, e2) { + _classCallCheck(this, s); + var i = _possibleConstructorReturn(this, (s.__proto__ || Object.getPrototypeOf(s)).call(this, s, t3, e2)); + (i.el.M_Collapsible = i).options = r.extend({}, s.defaults, e2), i.$headers = i.$el.children("li").children(".collapsible-header"), i.$headers.attr("tabindex", 0), i._setupEventHandlers(); + var n = i.$el.children("li.active").children(".collapsible-body"); + return i.options.accordion ? n.first().css("display", "block") : n.css("display", "block"), i; + } + return _inherits(s, Component), _createClass(s, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.el.M_Collapsible = void 0; + }}, {key: "_setupEventHandlers", value: function() { + var e2 = this; + this._handleCollapsibleClickBound = this._handleCollapsibleClick.bind(this), this._handleCollapsibleKeydownBound = this._handleCollapsibleKeydown.bind(this), this.el.addEventListener("click", this._handleCollapsibleClickBound), this.$headers.each(function(t3) { + t3.addEventListener("keydown", e2._handleCollapsibleKeydownBound); + }); + }}, {key: "_removeEventHandlers", value: function() { + var e2 = this; + this.el.removeEventListener("click", this._handleCollapsibleClickBound), this.$headers.each(function(t3) { + t3.removeEventListener("keydown", e2._handleCollapsibleKeydownBound); + }); + }}, {key: "_handleCollapsibleClick", value: function(t3) { + var e2 = r(t3.target).closest(".collapsible-header"); + if (t3.target && e2.length) { + var i = e2.closest(".collapsible"); + if (i[0] === this.el) { + var n = e2.closest("li"), s2 = i.children("li"), o = n[0].classList.contains("active"), a = s2.index(n); + o ? this.close(a) : this.open(a); + } + } + }}, {key: "_handleCollapsibleKeydown", value: function(t3) { + t3.keyCode === 13 && this._handleCollapsibleClickBound(t3); + }}, {key: "_animateIn", value: function(t3) { + var e2 = this, i = this.$el.children("li").eq(t3); + if (i.length) { + var n = i.children(".collapsible-body"); + l.remove(n[0]), n.css({display: "block", overflow: "hidden", height: 0, paddingTop: "", paddingBottom: ""}); + var s2 = n.css("padding-top"), o = n.css("padding-bottom"), a = n[0].scrollHeight; + n.css({paddingTop: 0, paddingBottom: 0}), l({targets: n[0], height: a, paddingTop: s2, paddingBottom: o, duration: this.options.inDuration, easing: "easeInOutCubic", complete: function(t4) { + n.css({overflow: "", paddingTop: "", paddingBottom: "", height: ""}), typeof e2.options.onOpenEnd == "function" && e2.options.onOpenEnd.call(e2, i[0]); + }}); + } + }}, {key: "_animateOut", value: function(t3) { + var e2 = this, i = this.$el.children("li").eq(t3); + if (i.length) { + var n = i.children(".collapsible-body"); + l.remove(n[0]), n.css("overflow", "hidden"), l({targets: n[0], height: 0, paddingTop: 0, paddingBottom: 0, duration: this.options.outDuration, easing: "easeInOutCubic", complete: function() { + n.css({height: "", overflow: "", padding: "", display: ""}), typeof e2.options.onCloseEnd == "function" && e2.options.onCloseEnd.call(e2, i[0]); + }}); + } + }}, {key: "open", value: function(t3) { + var i = this, e2 = this.$el.children("li").eq(t3); + if (e2.length && !e2[0].classList.contains("active")) { + if (typeof this.options.onOpenStart == "function" && this.options.onOpenStart.call(this, e2[0]), this.options.accordion) { + var n = this.$el.children("li"); + this.$el.children("li.active").each(function(t4) { + var e3 = n.index(r(t4)); + i.close(e3); + }); + } + e2[0].classList.add("active"), this._animateIn(t3); + } + }}, {key: "close", value: function(t3) { + var e2 = this.$el.children("li").eq(t3); + e2.length && e2[0].classList.contains("active") && (typeof this.options.onCloseStart == "function" && this.options.onCloseStart.call(this, e2[0]), e2[0].classList.remove("active"), this._animateOut(t3)); + }}], [{key: "init", value: function(t3, e2) { + return _get(s.__proto__ || Object.getPrototypeOf(s), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Collapsible; + }}, {key: "defaults", get: function() { + return e; + }}]), s; + }(); + M.Collapsible = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "collapsible", "M_Collapsible"); + }(cash, M.anime), function(h, i) { + "use strict"; + var e = {alignment: "left", autoFocus: true, constrainWidth: true, container: null, coverTrigger: true, closeOnClick: true, hover: false, inDuration: 150, outDuration: 250, onOpenStart: null, onOpenEnd: null, onCloseStart: null, onCloseEnd: null, onItemClick: null}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i2 = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return i2.el.M_Dropdown = i2, n._dropdowns.push(i2), i2.id = M.getIdFromTrigger(t3), i2.dropdownEl = document.getElementById(i2.id), i2.$dropdownEl = h(i2.dropdownEl), i2.options = h.extend({}, n.defaults, e2), i2.isOpen = false, i2.isScrollable = false, i2.isTouchMoving = false, i2.focusedIndex = -1, i2.filterQuery = [], i2.options.container ? h(i2.options.container).append(i2.dropdownEl) : i2.$el.after(i2.dropdownEl), i2._makeDropdownFocusable(), i2._resetFilterQueryBound = i2._resetFilterQuery.bind(i2), i2._handleDocumentClickBound = i2._handleDocumentClick.bind(i2), i2._handleDocumentTouchmoveBound = i2._handleDocumentTouchmove.bind(i2), i2._handleDropdownClickBound = i2._handleDropdownClick.bind(i2), i2._handleDropdownKeydownBound = i2._handleDropdownKeydown.bind(i2), i2._handleTriggerKeydownBound = i2._handleTriggerKeydown.bind(i2), i2._setupEventHandlers(), i2; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._resetDropdownStyles(), this._removeEventHandlers(), n._dropdowns.splice(n._dropdowns.indexOf(this), 1), this.el.M_Dropdown = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this.el.addEventListener("keydown", this._handleTriggerKeydownBound), this.dropdownEl.addEventListener("click", this._handleDropdownClickBound), this.options.hover ? (this._handleMouseEnterBound = this._handleMouseEnter.bind(this), this.el.addEventListener("mouseenter", this._handleMouseEnterBound), this._handleMouseLeaveBound = this._handleMouseLeave.bind(this), this.el.addEventListener("mouseleave", this._handleMouseLeaveBound), this.dropdownEl.addEventListener("mouseleave", this._handleMouseLeaveBound)) : (this._handleClickBound = this._handleClick.bind(this), this.el.addEventListener("click", this._handleClickBound)); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("keydown", this._handleTriggerKeydownBound), this.dropdownEl.removeEventListener("click", this._handleDropdownClickBound), this.options.hover ? (this.el.removeEventListener("mouseenter", this._handleMouseEnterBound), this.el.removeEventListener("mouseleave", this._handleMouseLeaveBound), this.dropdownEl.removeEventListener("mouseleave", this._handleMouseLeaveBound)) : this.el.removeEventListener("click", this._handleClickBound); + }}, {key: "_setupTemporaryEventHandlers", value: function() { + document.body.addEventListener("click", this._handleDocumentClickBound, true), document.body.addEventListener("touchend", this._handleDocumentClickBound), document.body.addEventListener("touchmove", this._handleDocumentTouchmoveBound), this.dropdownEl.addEventListener("keydown", this._handleDropdownKeydownBound); + }}, {key: "_removeTemporaryEventHandlers", value: function() { + document.body.removeEventListener("click", this._handleDocumentClickBound, true), document.body.removeEventListener("touchend", this._handleDocumentClickBound), document.body.removeEventListener("touchmove", this._handleDocumentTouchmoveBound), this.dropdownEl.removeEventListener("keydown", this._handleDropdownKeydownBound); + }}, {key: "_handleClick", value: function(t3) { + t3.preventDefault(), this.open(); + }}, {key: "_handleMouseEnter", value: function() { + this.open(); + }}, {key: "_handleMouseLeave", value: function(t3) { + var e2 = t3.toElement || t3.relatedTarget, i2 = !!h(e2).closest(".dropdown-content").length, n2 = false, s = h(e2).closest(".dropdown-trigger"); + s.length && s[0].M_Dropdown && s[0].M_Dropdown.isOpen && (n2 = true), n2 || i2 || this.close(); + }}, {key: "_handleDocumentClick", value: function(t3) { + var e2 = this, i2 = h(t3.target); + this.options.closeOnClick && i2.closest(".dropdown-content").length && !this.isTouchMoving ? setTimeout(function() { + e2.close(); + }, 0) : !i2.closest(".dropdown-trigger").length && i2.closest(".dropdown-content").length || setTimeout(function() { + e2.close(); + }, 0), this.isTouchMoving = false; + }}, {key: "_handleTriggerKeydown", value: function(t3) { + t3.which !== M.keys.ARROW_DOWN && t3.which !== M.keys.ENTER || this.isOpen || (t3.preventDefault(), this.open()); + }}, {key: "_handleDocumentTouchmove", value: function(t3) { + h(t3.target).closest(".dropdown-content").length && (this.isTouchMoving = true); + }}, {key: "_handleDropdownClick", value: function(t3) { + if (typeof this.options.onItemClick == "function") { + var e2 = h(t3.target).closest("li")[0]; + this.options.onItemClick.call(this, e2); + } + }}, {key: "_handleDropdownKeydown", value: function(t3) { + if (t3.which === M.keys.TAB) + t3.preventDefault(), this.close(); + else if (t3.which !== M.keys.ARROW_DOWN && t3.which !== M.keys.ARROW_UP || !this.isOpen) + if (t3.which === M.keys.ENTER && this.isOpen) { + var e2 = this.dropdownEl.children[this.focusedIndex], i2 = h(e2).find("a, button").first(); + i2.length ? i2[0].click() : e2 && e2.click(); + } else + t3.which === M.keys.ESC && this.isOpen && (t3.preventDefault(), this.close()); + else { + t3.preventDefault(); + var n2 = t3.which === M.keys.ARROW_DOWN ? 1 : -1, s = this.focusedIndex, o = false; + do { + if (s += n2, this.dropdownEl.children[s] && this.dropdownEl.children[s].tabIndex !== -1) { + o = true; + break; + } + } while (s < this.dropdownEl.children.length && 0 <= s); + o && (this.focusedIndex = s, this._focusFocusedItem()); + } + var a = String.fromCharCode(t3.which).toLowerCase(); + if (a && [9, 13, 27, 38, 40].indexOf(t3.which) === -1) { + this.filterQuery.push(a); + var r = this.filterQuery.join(""), l = h(this.dropdownEl).find("li").filter(function(t4) { + return h(t4).text().toLowerCase().indexOf(r) === 0; + })[0]; + l && (this.focusedIndex = h(l).index(), this._focusFocusedItem()); + } + this.filterTimeout = setTimeout(this._resetFilterQueryBound, 1e3); + }}, {key: "_resetFilterQuery", value: function() { + this.filterQuery = []; + }}, {key: "_resetDropdownStyles", value: function() { + this.$dropdownEl.css({display: "", width: "", height: "", left: "", top: "", "transform-origin": "", transform: "", opacity: ""}); + }}, {key: "_makeDropdownFocusable", value: function() { + this.dropdownEl.tabIndex = 0, h(this.dropdownEl).children().each(function(t3) { + t3.getAttribute("tabindex") || t3.setAttribute("tabindex", 0); + }); + }}, {key: "_focusFocusedItem", value: function() { + 0 <= this.focusedIndex && this.focusedIndex < this.dropdownEl.children.length && this.options.autoFocus && this.dropdownEl.children[this.focusedIndex].focus(); + }}, {key: "_getDropdownPosition", value: function() { + this.el.offsetParent.getBoundingClientRect(); + var t3 = this.el.getBoundingClientRect(), e2 = this.dropdownEl.getBoundingClientRect(), i2 = e2.height, n2 = e2.width, s = t3.left - e2.left, o = t3.top - e2.top, a = {left: s, top: o, height: i2, width: n2}, r = this.dropdownEl.offsetParent ? this.dropdownEl.offsetParent : this.dropdownEl.parentNode, l = M.checkPossibleAlignments(this.el, r, a, this.options.coverTrigger ? 0 : t3.height), h2 = "top", d = this.options.alignment; + if (o += this.options.coverTrigger ? 0 : t3.height, this.isScrollable = false, l.top || (l.bottom ? h2 = "bottom" : (this.isScrollable = true, l.spaceOnTop > l.spaceOnBottom ? (h2 = "bottom", i2 += l.spaceOnTop, o -= l.spaceOnTop) : i2 += l.spaceOnBottom)), !l[d]) { + var u = d === "left" ? "right" : "left"; + l[u] ? d = u : l.spaceOnLeft > l.spaceOnRight ? (d = "right", n2 += l.spaceOnLeft, s -= l.spaceOnLeft) : (d = "left", n2 += l.spaceOnRight); + } + return h2 === "bottom" && (o = o - e2.height + (this.options.coverTrigger ? t3.height : 0)), d === "right" && (s = s - e2.width + t3.width), {x: s, y: o, verticalAlignment: h2, horizontalAlignment: d, height: i2, width: n2}; + }}, {key: "_animateIn", value: function() { + var e2 = this; + i.remove(this.dropdownEl), i({targets: this.dropdownEl, opacity: {value: [0, 1], easing: "easeOutQuad"}, scaleX: [0.3, 1], scaleY: [0.3, 1], duration: this.options.inDuration, easing: "easeOutQuint", complete: function(t3) { + e2.options.autoFocus && e2.dropdownEl.focus(), typeof e2.options.onOpenEnd == "function" && e2.options.onOpenEnd.call(e2, e2.el); + }}); + }}, {key: "_animateOut", value: function() { + var e2 = this; + i.remove(this.dropdownEl), i({targets: this.dropdownEl, opacity: {value: 0, easing: "easeOutQuint"}, scaleX: 0.3, scaleY: 0.3, duration: this.options.outDuration, easing: "easeOutQuint", complete: function(t3) { + e2._resetDropdownStyles(), typeof e2.options.onCloseEnd == "function" && e2.options.onCloseEnd.call(e2, e2.el); + }}); + }}, {key: "_placeDropdown", value: function() { + var t3 = this.options.constrainWidth ? this.el.getBoundingClientRect().width : this.dropdownEl.getBoundingClientRect().width; + this.dropdownEl.style.width = t3 + "px"; + var e2 = this._getDropdownPosition(); + this.dropdownEl.style.left = e2.x + "px", this.dropdownEl.style.top = e2.y + "px", this.dropdownEl.style.height = e2.height + "px", this.dropdownEl.style.width = e2.width + "px", this.dropdownEl.style.transformOrigin = (e2.horizontalAlignment === "left" ? "0" : "100%") + " " + (e2.verticalAlignment === "top" ? "0" : "100%"); + }}, {key: "open", value: function() { + this.isOpen || (this.isOpen = true, typeof this.options.onOpenStart == "function" && this.options.onOpenStart.call(this, this.el), this._resetDropdownStyles(), this.dropdownEl.style.display = "block", this._placeDropdown(), this._animateIn(), this._setupTemporaryEventHandlers()); + }}, {key: "close", value: function() { + this.isOpen && (this.isOpen = false, this.focusedIndex = -1, typeof this.options.onCloseStart == "function" && this.options.onCloseStart.call(this, this.el), this._animateOut(), this._removeTemporaryEventHandlers(), this.options.autoFocus && this.el.focus()); + }}, {key: "recalculateDimensions", value: function() { + this.isOpen && (this.$dropdownEl.css({width: "", height: "", left: "", top: "", "transform-origin": ""}), this._placeDropdown()); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Dropdown; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + t._dropdowns = [], M.Dropdown = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "dropdown", "M_Dropdown"); + }(cash, M.anime), function(s, i) { + "use strict"; + var e = {opacity: 0.5, inDuration: 250, outDuration: 250, onOpenStart: null, onOpenEnd: null, onCloseStart: null, onCloseEnd: null, preventScrolling: true, dismissible: true, startingTop: "4%", endingTop: "10%"}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i2 = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i2.el.M_Modal = i2).options = s.extend({}, n.defaults, e2), i2.isOpen = false, i2.id = i2.$el.attr("id"), i2._openingTrigger = void 0, i2.$overlay = s(''), i2.el.tabIndex = 0, i2._nthModalOpened = 0, n._count++, i2._setupEventHandlers(), i2; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + n._count--, this._removeEventHandlers(), this.el.removeAttribute("style"), this.$overlay.remove(), this.el.M_Modal = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleOverlayClickBound = this._handleOverlayClick.bind(this), this._handleModalCloseClickBound = this._handleModalCloseClick.bind(this), n._count === 1 && document.body.addEventListener("click", this._handleTriggerClick), this.$overlay[0].addEventListener("click", this._handleOverlayClickBound), this.el.addEventListener("click", this._handleModalCloseClickBound); + }}, {key: "_removeEventHandlers", value: function() { + n._count === 0 && document.body.removeEventListener("click", this._handleTriggerClick), this.$overlay[0].removeEventListener("click", this._handleOverlayClickBound), this.el.removeEventListener("click", this._handleModalCloseClickBound); + }}, {key: "_handleTriggerClick", value: function(t3) { + var e2 = s(t3.target).closest(".modal-trigger"); + if (e2.length) { + var i2 = M.getIdFromTrigger(e2[0]), n2 = document.getElementById(i2).M_Modal; + n2 && n2.open(e2), t3.preventDefault(); + } + }}, {key: "_handleOverlayClick", value: function() { + this.options.dismissible && this.close(); + }}, {key: "_handleModalCloseClick", value: function(t3) { + s(t3.target).closest(".modal-close").length && this.close(); + }}, {key: "_handleKeydown", value: function(t3) { + t3.keyCode === 27 && this.options.dismissible && this.close(); + }}, {key: "_handleFocus", value: function(t3) { + this.el.contains(t3.target) || this._nthModalOpened !== n._modalsOpen || this.el.focus(); + }}, {key: "_animateIn", value: function() { + var t3 = this; + s.extend(this.el.style, {display: "block", opacity: 0}), s.extend(this.$overlay[0].style, {display: "block", opacity: 0}), i({targets: this.$overlay[0], opacity: this.options.opacity, duration: this.options.inDuration, easing: "easeOutQuad"}); + var e2 = {targets: this.el, duration: this.options.inDuration, easing: "easeOutCubic", complete: function() { + typeof t3.options.onOpenEnd == "function" && t3.options.onOpenEnd.call(t3, t3.el, t3._openingTrigger); + }}; + this.el.classList.contains("bottom-sheet") ? s.extend(e2, {bottom: 0, opacity: 1}) : s.extend(e2, {top: [this.options.startingTop, this.options.endingTop], opacity: 1, scaleX: [0.8, 1], scaleY: [0.8, 1]}), i(e2); + }}, {key: "_animateOut", value: function() { + var t3 = this; + i({targets: this.$overlay[0], opacity: 0, duration: this.options.outDuration, easing: "easeOutQuart"}); + var e2 = {targets: this.el, duration: this.options.outDuration, easing: "easeOutCubic", complete: function() { + t3.el.style.display = "none", t3.$overlay.remove(), typeof t3.options.onCloseEnd == "function" && t3.options.onCloseEnd.call(t3, t3.el); + }}; + this.el.classList.contains("bottom-sheet") ? s.extend(e2, {bottom: "-100%", opacity: 0}) : s.extend(e2, {top: [this.options.endingTop, this.options.startingTop], opacity: 0, scaleX: 0.8, scaleY: 0.8}), i(e2); + }}, {key: "open", value: function(t3) { + if (!this.isOpen) + return this.isOpen = true, n._modalsOpen++, this._nthModalOpened = n._modalsOpen, this.$overlay[0].style.zIndex = 1e3 + 2 * n._modalsOpen, this.el.style.zIndex = 1e3 + 2 * n._modalsOpen + 1, this._openingTrigger = t3 ? t3[0] : void 0, typeof this.options.onOpenStart == "function" && this.options.onOpenStart.call(this, this.el, this._openingTrigger), this.options.preventScrolling && (document.body.style.overflow = "hidden"), this.el.classList.add("open"), this.el.insertAdjacentElement("afterend", this.$overlay[0]), this.options.dismissible && (this._handleKeydownBound = this._handleKeydown.bind(this), this._handleFocusBound = this._handleFocus.bind(this), document.addEventListener("keydown", this._handleKeydownBound), document.addEventListener("focus", this._handleFocusBound, true)), i.remove(this.el), i.remove(this.$overlay[0]), this._animateIn(), this.el.focus(), this; + }}, {key: "close", value: function() { + if (this.isOpen) + return this.isOpen = false, n._modalsOpen--, this._nthModalOpened = 0, typeof this.options.onCloseStart == "function" && this.options.onCloseStart.call(this, this.el), this.el.classList.remove("open"), n._modalsOpen === 0 && (document.body.style.overflow = ""), this.options.dismissible && (document.removeEventListener("keydown", this._handleKeydownBound), document.removeEventListener("focus", this._handleFocusBound, true)), i.remove(this.el), i.remove(this.$overlay[0]), this._animateOut(), this; + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Modal; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + t._modalsOpen = 0, t._count = 0, M.Modal = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "modal", "M_Modal"); + }(cash, M.anime), function(o, a) { + "use strict"; + var e = {inDuration: 275, outDuration: 200, onOpenStart: null, onOpenEnd: null, onCloseStart: null, onCloseEnd: null}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_Materialbox = i).options = o.extend({}, n.defaults, e2), i.overlayActive = false, i.doneAnimating = true, i.placeholder = o("
").addClass("material-placeholder"), i.originalWidth = 0, i.originalHeight = 0, i.originInlineStyles = i.$el.attr("style"), i.caption = i.el.getAttribute("data-caption") || "", i.$el.before(i.placeholder), i.placeholder.append(i.$el), i._setupEventHandlers(), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.el.M_Materialbox = void 0, o(this.placeholder).after(this.el).remove(), this.$el.removeAttr("style"); + }}, {key: "_setupEventHandlers", value: function() { + this._handleMaterialboxClickBound = this._handleMaterialboxClick.bind(this), this.el.addEventListener("click", this._handleMaterialboxClickBound); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("click", this._handleMaterialboxClickBound); + }}, {key: "_handleMaterialboxClick", value: function(t3) { + this.doneAnimating === false || this.overlayActive && this.doneAnimating ? this.close() : this.open(); + }}, {key: "_handleWindowScroll", value: function() { + this.overlayActive && this.close(); + }}, {key: "_handleWindowResize", value: function() { + this.overlayActive && this.close(); + }}, {key: "_handleWindowEscape", value: function(t3) { + t3.keyCode === 27 && this.doneAnimating && this.overlayActive && this.close(); + }}, {key: "_makeAncestorsOverflowVisible", value: function() { + this.ancestorsChanged = o(); + for (var t3 = this.placeholder[0].parentNode; t3 !== null && !o(t3).is(document); ) { + var e2 = o(t3); + e2.css("overflow") !== "visible" && (e2.css("overflow", "visible"), this.ancestorsChanged === void 0 ? this.ancestorsChanged = e2 : this.ancestorsChanged = this.ancestorsChanged.add(e2)), t3 = t3.parentNode; + } + }}, {key: "_animateImageIn", value: function() { + var t3 = this, e2 = {targets: this.el, height: [this.originalHeight, this.newHeight], width: [this.originalWidth, this.newWidth], left: M.getDocumentScrollLeft() + this.windowWidth / 2 - this.placeholder.offset().left - this.newWidth / 2, top: M.getDocumentScrollTop() + this.windowHeight / 2 - this.placeholder.offset().top - this.newHeight / 2, duration: this.options.inDuration, easing: "easeOutQuad", complete: function() { + t3.doneAnimating = true, typeof t3.options.onOpenEnd == "function" && t3.options.onOpenEnd.call(t3, t3.el); + }}; + this.maxWidth = this.$el.css("max-width"), this.maxHeight = this.$el.css("max-height"), this.maxWidth !== "none" && (e2.maxWidth = this.newWidth), this.maxHeight !== "none" && (e2.maxHeight = this.newHeight), a(e2); + }}, {key: "_animateImageOut", value: function() { + var t3 = this, e2 = {targets: this.el, width: this.originalWidth, height: this.originalHeight, left: 0, top: 0, duration: this.options.outDuration, easing: "easeOutQuad", complete: function() { + t3.placeholder.css({height: "", width: "", position: "", top: "", left: ""}), t3.attrWidth && t3.$el.attr("width", t3.attrWidth), t3.attrHeight && t3.$el.attr("height", t3.attrHeight), t3.$el.removeAttr("style"), t3.originInlineStyles && t3.$el.attr("style", t3.originInlineStyles), t3.$el.removeClass("active"), t3.doneAnimating = true, t3.ancestorsChanged.length && t3.ancestorsChanged.css("overflow", ""), typeof t3.options.onCloseEnd == "function" && t3.options.onCloseEnd.call(t3, t3.el); + }}; + a(e2); + }}, {key: "_updateVars", value: function() { + this.windowWidth = window.innerWidth, this.windowHeight = window.innerHeight, this.caption = this.el.getAttribute("data-caption") || ""; + }}, {key: "open", value: function() { + var t3 = this; + this._updateVars(), this.originalWidth = this.el.getBoundingClientRect().width, this.originalHeight = this.el.getBoundingClientRect().height, this.doneAnimating = false, this.$el.addClass("active"), this.overlayActive = true, typeof this.options.onOpenStart == "function" && this.options.onOpenStart.call(this, this.el), this.placeholder.css({width: this.placeholder[0].getBoundingClientRect().width + "px", height: this.placeholder[0].getBoundingClientRect().height + "px", position: "relative", top: 0, left: 0}), this._makeAncestorsOverflowVisible(), this.$el.css({position: "absolute", "z-index": 1e3, "will-change": "left, top, width, height"}), this.attrWidth = this.$el.attr("width"), this.attrHeight = this.$el.attr("height"), this.attrWidth && (this.$el.css("width", this.attrWidth + "px"), this.$el.removeAttr("width")), this.attrHeight && (this.$el.css("width", this.attrHeight + "px"), this.$el.removeAttr("height")), this.$overlay = o('
').css({opacity: 0}).one("click", function() { + t3.doneAnimating && t3.close(); + }), this.$el.before(this.$overlay); + var e2 = this.$overlay[0].getBoundingClientRect(); + this.$overlay.css({width: this.windowWidth + "px", height: this.windowHeight + "px", left: -1 * e2.left + "px", top: -1 * e2.top + "px"}), a.remove(this.el), a.remove(this.$overlay[0]), a({targets: this.$overlay[0], opacity: 1, duration: this.options.inDuration, easing: "easeOutQuad"}), this.caption !== "" && (this.$photocaption && a.remove(this.$photoCaption[0]), this.$photoCaption = o('
'), this.$photoCaption.text(this.caption), o("body").append(this.$photoCaption), this.$photoCaption.css({display: "inline"}), a({targets: this.$photoCaption[0], opacity: 1, duration: this.options.inDuration, easing: "easeOutQuad"})); + var i = 0, n2 = this.originalWidth / this.windowWidth, s = this.originalHeight / this.windowHeight; + this.newWidth = 0, this.newHeight = 0, s < n2 ? (i = this.originalHeight / this.originalWidth, this.newWidth = 0.9 * this.windowWidth, this.newHeight = 0.9 * this.windowWidth * i) : (i = this.originalWidth / this.originalHeight, this.newWidth = 0.9 * this.windowHeight * i, this.newHeight = 0.9 * this.windowHeight), this._animateImageIn(), this._handleWindowScrollBound = this._handleWindowScroll.bind(this), this._handleWindowResizeBound = this._handleWindowResize.bind(this), this._handleWindowEscapeBound = this._handleWindowEscape.bind(this), window.addEventListener("scroll", this._handleWindowScrollBound), window.addEventListener("resize", this._handleWindowResizeBound), window.addEventListener("keyup", this._handleWindowEscapeBound); + }}, {key: "close", value: function() { + var t3 = this; + this._updateVars(), this.doneAnimating = false, typeof this.options.onCloseStart == "function" && this.options.onCloseStart.call(this, this.el), a.remove(this.el), a.remove(this.$overlay[0]), this.caption !== "" && a.remove(this.$photoCaption[0]), window.removeEventListener("scroll", this._handleWindowScrollBound), window.removeEventListener("resize", this._handleWindowResizeBound), window.removeEventListener("keyup", this._handleWindowEscapeBound), a({targets: this.$overlay[0], opacity: 0, duration: this.options.outDuration, easing: "easeOutQuad", complete: function() { + t3.overlayActive = false, t3.$overlay.remove(); + }}), this._animateImageOut(), this.caption !== "" && a({targets: this.$photoCaption[0], opacity: 0, duration: this.options.outDuration, easing: "easeOutQuad", complete: function() { + t3.$photoCaption.remove(); + }}); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Materialbox; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + M.Materialbox = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "materialbox", "M_Materialbox"); + }(cash, M.anime), function(s) { + "use strict"; + var e = {responsiveThreshold: 0}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_Parallax = i).options = s.extend({}, n.defaults, e2), i._enabled = window.innerWidth > i.options.responsiveThreshold, i.$img = i.$el.find("img").first(), i.$img.each(function() { + this.complete && s(this).trigger("load"); + }), i._updateParallax(), i._setupEventHandlers(), i._setupStyles(), n._parallaxes.push(i), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + n._parallaxes.splice(n._parallaxes.indexOf(this), 1), this.$img[0].style.transform = "", this._removeEventHandlers(), this.$el[0].M_Parallax = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleImageLoadBound = this._handleImageLoad.bind(this), this.$img[0].addEventListener("load", this._handleImageLoadBound), n._parallaxes.length === 0 && (n._handleScrollThrottled = M.throttle(n._handleScroll, 5), window.addEventListener("scroll", n._handleScrollThrottled), n._handleWindowResizeThrottled = M.throttle(n._handleWindowResize, 5), window.addEventListener("resize", n._handleWindowResizeThrottled)); + }}, {key: "_removeEventHandlers", value: function() { + this.$img[0].removeEventListener("load", this._handleImageLoadBound), n._parallaxes.length === 0 && (window.removeEventListener("scroll", n._handleScrollThrottled), window.removeEventListener("resize", n._handleWindowResizeThrottled)); + }}, {key: "_setupStyles", value: function() { + this.$img[0].style.opacity = 1; + }}, {key: "_handleImageLoad", value: function() { + this._updateParallax(); + }}, {key: "_updateParallax", value: function() { + var t3 = 0 < this.$el.height() ? this.el.parentNode.offsetHeight : 500, e2 = this.$img[0].offsetHeight - t3, i = this.$el.offset().top + t3, n2 = this.$el.offset().top, s2 = M.getDocumentScrollTop(), o = window.innerHeight, a = e2 * ((s2 + o - n2) / (t3 + o)); + this._enabled ? s2 < i && n2 < s2 + o && (this.$img[0].style.transform = "translate3D(-50%, " + a + "px, 0)") : this.$img[0].style.transform = ""; + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Parallax; + }}, {key: "_handleScroll", value: function() { + for (var t3 = 0; t3 < n._parallaxes.length; t3++) { + var e2 = n._parallaxes[t3]; + e2._updateParallax.call(e2); + } + }}, {key: "_handleWindowResize", value: function() { + for (var t3 = 0; t3 < n._parallaxes.length; t3++) { + var e2 = n._parallaxes[t3]; + e2._enabled = window.innerWidth > e2.options.responsiveThreshold; + } + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + t._parallaxes = [], M.Parallax = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "parallax", "M_Parallax"); + }(cash), function(a, s) { + "use strict"; + var e = {duration: 300, onShow: null, swipeable: false, responsiveThreshold: 1 / 0}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_Tabs = i).options = a.extend({}, n.defaults, e2), i.$tabLinks = i.$el.children("li.tab").children("a"), i.index = 0, i._setupActiveTabLink(), i.options.swipeable ? i._setupSwipeableTabs() : i._setupNormalTabs(), i._setTabsAndTabWidth(), i._createIndicator(), i._setupEventHandlers(), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this._indicator.parentNode.removeChild(this._indicator), this.options.swipeable ? this._teardownSwipeableTabs() : this._teardownNormalTabs(), this.$el[0].M_Tabs = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleWindowResizeBound = this._handleWindowResize.bind(this), window.addEventListener("resize", this._handleWindowResizeBound), this._handleTabClickBound = this._handleTabClick.bind(this), this.el.addEventListener("click", this._handleTabClickBound); + }}, {key: "_removeEventHandlers", value: function() { + window.removeEventListener("resize", this._handleWindowResizeBound), this.el.removeEventListener("click", this._handleTabClickBound); + }}, {key: "_handleWindowResize", value: function() { + this._setTabsAndTabWidth(), this.tabWidth !== 0 && this.tabsWidth !== 0 && (this._indicator.style.left = this._calcLeftPos(this.$activeTabLink) + "px", this._indicator.style.right = this._calcRightPos(this.$activeTabLink) + "px"); + }}, {key: "_handleTabClick", value: function(t3) { + var e2 = this, i = a(t3.target).closest("li.tab"), n2 = a(t3.target).closest("a"); + if (n2.length && n2.parent().hasClass("tab")) { + if (i.hasClass("disabled")) + t3.preventDefault(); + else if (!n2.attr("target")) { + this.$activeTabLink.removeClass("active"); + var s2 = this.$content; + this.$activeTabLink = n2, this.$content = a(M.escapeHash(n2[0].hash)), this.$tabLinks = this.$el.children("li.tab").children("a"), this.$activeTabLink.addClass("active"); + var o = this.index; + this.index = Math.max(this.$tabLinks.index(n2), 0), this.options.swipeable ? this._tabsCarousel && this._tabsCarousel.set(this.index, function() { + typeof e2.options.onShow == "function" && e2.options.onShow.call(e2, e2.$content[0]); + }) : this.$content.length && (this.$content[0].style.display = "block", this.$content.addClass("active"), typeof this.options.onShow == "function" && this.options.onShow.call(this, this.$content[0]), s2.length && !s2.is(this.$content) && (s2[0].style.display = "none", s2.removeClass("active"))), this._setTabsAndTabWidth(), this._animateIndicator(o), t3.preventDefault(); + } + } + }}, {key: "_createIndicator", value: function() { + var t3 = this, e2 = document.createElement("li"); + e2.classList.add("indicator"), this.el.appendChild(e2), this._indicator = e2, setTimeout(function() { + t3._indicator.style.left = t3._calcLeftPos(t3.$activeTabLink) + "px", t3._indicator.style.right = t3._calcRightPos(t3.$activeTabLink) + "px"; + }, 0); + }}, {key: "_setupActiveTabLink", value: function() { + this.$activeTabLink = a(this.$tabLinks.filter('[href="' + location.hash + '"]')), this.$activeTabLink.length === 0 && (this.$activeTabLink = this.$el.children("li.tab").children("a.active").first()), this.$activeTabLink.length === 0 && (this.$activeTabLink = this.$el.children("li.tab").children("a").first()), this.$tabLinks.removeClass("active"), this.$activeTabLink[0].classList.add("active"), this.index = Math.max(this.$tabLinks.index(this.$activeTabLink), 0), this.$activeTabLink.length && (this.$content = a(M.escapeHash(this.$activeTabLink[0].hash)), this.$content.addClass("active")); + }}, {key: "_setupSwipeableTabs", value: function() { + var i = this; + window.innerWidth > this.options.responsiveThreshold && (this.options.swipeable = false); + var n2 = a(); + this.$tabLinks.each(function(t4) { + var e3 = a(M.escapeHash(t4.hash)); + e3.addClass("carousel-item"), n2 = n2.add(e3); + }); + var t3 = a(''); + n2.first().before(t3), t3.append(n2), n2[0].style.display = ""; + var e2 = this.$activeTabLink.closest(".tab").index(); + this._tabsCarousel = M.Carousel.init(t3[0], {fullWidth: true, noWrap: true, onCycleTo: function(t4) { + var e3 = i.index; + i.index = a(t4).index(), i.$activeTabLink.removeClass("active"), i.$activeTabLink = i.$tabLinks.eq(i.index), i.$activeTabLink.addClass("active"), i._animateIndicator(e3), typeof i.options.onShow == "function" && i.options.onShow.call(i, i.$content[0]); + }}), this._tabsCarousel.set(e2); + }}, {key: "_teardownSwipeableTabs", value: function() { + var t3 = this._tabsCarousel.$el; + this._tabsCarousel.destroy(), t3.after(t3.children()), t3.remove(); + }}, {key: "_setupNormalTabs", value: function() { + this.$tabLinks.not(this.$activeTabLink).each(function(t3) { + if (t3.hash) { + var e2 = a(M.escapeHash(t3.hash)); + e2.length && (e2[0].style.display = "none"); + } + }); + }}, {key: "_teardownNormalTabs", value: function() { + this.$tabLinks.each(function(t3) { + if (t3.hash) { + var e2 = a(M.escapeHash(t3.hash)); + e2.length && (e2[0].style.display = ""); + } + }); + }}, {key: "_setTabsAndTabWidth", value: function() { + this.tabsWidth = this.$el.width(), this.tabWidth = Math.max(this.tabsWidth, this.el.scrollWidth) / this.$tabLinks.length; + }}, {key: "_calcRightPos", value: function(t3) { + return Math.ceil(this.tabsWidth - t3.position().left - t3[0].getBoundingClientRect().width); + }}, {key: "_calcLeftPos", value: function(t3) { + return Math.floor(t3.position().left); + }}, {key: "updateTabIndicator", value: function() { + this._setTabsAndTabWidth(), this._animateIndicator(this.index); + }}, {key: "_animateIndicator", value: function(t3) { + var e2 = 0, i = 0; + 0 <= this.index - t3 ? e2 = 90 : i = 90; + var n2 = {targets: this._indicator, left: {value: this._calcLeftPos(this.$activeTabLink), delay: e2}, right: {value: this._calcRightPos(this.$activeTabLink), delay: i}, duration: this.options.duration, easing: "easeOutQuad"}; + s.remove(this._indicator), s(n2); + }}, {key: "select", value: function(t3) { + var e2 = this.$tabLinks.filter('[href="#' + t3 + '"]'); + e2.length && e2.trigger("click"); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Tabs; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + M.Tabs = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "tabs", "M_Tabs"); + }(cash, M.anime), function(d, e) { + "use strict"; + var i = {exitDelay: 200, enterDelay: 0, html: null, margin: 5, inDuration: 250, outDuration: 200, position: "bottom", transitionMovement: 10}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i2 = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i2.el.M_Tooltip = i2).options = d.extend({}, n.defaults, e2), i2.isOpen = false, i2.isHovered = false, i2.isFocused = false, i2._appendTooltipEl(), i2._setupEventHandlers(), i2; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + d(this.tooltipEl).remove(), this._removeEventHandlers(), this.el.M_Tooltip = void 0; + }}, {key: "_appendTooltipEl", value: function() { + var t3 = document.createElement("div"); + t3.classList.add("material-tooltip"), this.tooltipEl = t3; + var e2 = document.createElement("div"); + e2.classList.add("tooltip-content"), e2.innerHTML = this.options.html, t3.appendChild(e2), document.body.appendChild(t3); + }}, {key: "_updateTooltipContent", value: function() { + this.tooltipEl.querySelector(".tooltip-content").innerHTML = this.options.html; + }}, {key: "_setupEventHandlers", value: function() { + this._handleMouseEnterBound = this._handleMouseEnter.bind(this), this._handleMouseLeaveBound = this._handleMouseLeave.bind(this), this._handleFocusBound = this._handleFocus.bind(this), this._handleBlurBound = this._handleBlur.bind(this), this.el.addEventListener("mouseenter", this._handleMouseEnterBound), this.el.addEventListener("mouseleave", this._handleMouseLeaveBound), this.el.addEventListener("focus", this._handleFocusBound, true), this.el.addEventListener("blur", this._handleBlurBound, true); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("mouseenter", this._handleMouseEnterBound), this.el.removeEventListener("mouseleave", this._handleMouseLeaveBound), this.el.removeEventListener("focus", this._handleFocusBound, true), this.el.removeEventListener("blur", this._handleBlurBound, true); + }}, {key: "open", value: function(t3) { + this.isOpen || (t3 = t3 === void 0 || void 0, this.isOpen = true, this.options = d.extend({}, this.options, this._getAttributeOptions()), this._updateTooltipContent(), this._setEnterDelayTimeout(t3)); + }}, {key: "close", value: function() { + this.isOpen && (this.isHovered = false, this.isFocused = false, this.isOpen = false, this._setExitDelayTimeout()); + }}, {key: "_setExitDelayTimeout", value: function() { + var t3 = this; + clearTimeout(this._exitDelayTimeout), this._exitDelayTimeout = setTimeout(function() { + t3.isHovered || t3.isFocused || t3._animateOut(); + }, this.options.exitDelay); + }}, {key: "_setEnterDelayTimeout", value: function(t3) { + var e2 = this; + clearTimeout(this._enterDelayTimeout), this._enterDelayTimeout = setTimeout(function() { + (e2.isHovered || e2.isFocused || t3) && e2._animateIn(); + }, this.options.enterDelay); + }}, {key: "_positionTooltip", value: function() { + var t3, e2 = this.el, i2 = this.tooltipEl, n2 = e2.offsetHeight, s = e2.offsetWidth, o = i2.offsetHeight, a = i2.offsetWidth, r = this.options.margin, l = void 0, h = void 0; + this.xMovement = 0, this.yMovement = 0, l = e2.getBoundingClientRect().top + M.getDocumentScrollTop(), h = e2.getBoundingClientRect().left + M.getDocumentScrollLeft(), this.options.position === "top" ? (l += -o - r, h += s / 2 - a / 2, this.yMovement = -this.options.transitionMovement) : this.options.position === "right" ? (l += n2 / 2 - o / 2, h += s + r, this.xMovement = this.options.transitionMovement) : this.options.position === "left" ? (l += n2 / 2 - o / 2, h += -a - r, this.xMovement = -this.options.transitionMovement) : (l += n2 + r, h += s / 2 - a / 2, this.yMovement = this.options.transitionMovement), t3 = this._repositionWithinScreen(h, l, a, o), d(i2).css({top: t3.y + "px", left: t3.x + "px"}); + }}, {key: "_repositionWithinScreen", value: function(t3, e2, i2, n2) { + var s = M.getDocumentScrollLeft(), o = M.getDocumentScrollTop(), a = t3 - s, r = e2 - o, l = {left: a, top: r, width: i2, height: n2}, h = this.options.margin + this.options.transitionMovement, d2 = M.checkWithinContainer(document.body, l, h); + return d2.left ? a = h : d2.right && (a -= a + i2 - window.innerWidth), d2.top ? r = h : d2.bottom && (r -= r + n2 - window.innerHeight), {x: a + s, y: r + o}; + }}, {key: "_animateIn", value: function() { + this._positionTooltip(), this.tooltipEl.style.visibility = "visible", e.remove(this.tooltipEl), e({targets: this.tooltipEl, opacity: 1, translateX: this.xMovement, translateY: this.yMovement, duration: this.options.inDuration, easing: "easeOutCubic"}); + }}, {key: "_animateOut", value: function() { + e.remove(this.tooltipEl), e({targets: this.tooltipEl, opacity: 0, translateX: 0, translateY: 0, duration: this.options.outDuration, easing: "easeOutCubic"}); + }}, {key: "_handleMouseEnter", value: function() { + this.isHovered = true, this.isFocused = false, this.open(false); + }}, {key: "_handleMouseLeave", value: function() { + this.isHovered = false, this.isFocused = false, this.close(); + }}, {key: "_handleFocus", value: function() { + M.tabPressed && (this.isFocused = true, this.open(false)); + }}, {key: "_handleBlur", value: function() { + this.isFocused = false, this.close(); + }}, {key: "_getAttributeOptions", value: function() { + var t3 = {}, e2 = this.el.getAttribute("data-tooltip"), i2 = this.el.getAttribute("data-position"); + return e2 && (t3.html = e2), i2 && (t3.position = i2), t3; + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Tooltip; + }}, {key: "defaults", get: function() { + return i; + }}]), n; + }(); + M.Tooltip = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "tooltip", "M_Tooltip"); + }(cash, M.anime), function(i) { + "use strict"; + var t = t || {}, e = document.querySelectorAll.bind(document); + function m(t2) { + var e2 = ""; + for (var i2 in t2) + t2.hasOwnProperty(i2) && (e2 += i2 + ":" + t2[i2] + ";"); + return e2; + } + var g = {duration: 750, show: function(t2, e2) { + if (t2.button === 2) + return false; + var i2 = e2 || this, n2 = document.createElement("div"); + n2.className = "waves-ripple", i2.appendChild(n2); + var s, o, a, r, l2, h, d, u = (h = {top: 0, left: 0}, d = (s = i2) && s.ownerDocument, o = d.documentElement, s.getBoundingClientRect !== void 0 && (h = s.getBoundingClientRect()), a = (l2 = r = d) !== null && l2 === l2.window ? r : r.nodeType === 9 && r.defaultView, {top: h.top + a.pageYOffset - o.clientTop, left: h.left + a.pageXOffset - o.clientLeft}), c = t2.pageY - u.top, p = t2.pageX - u.left, v = "scale(" + i2.clientWidth / 100 * 10 + ")"; + "touches" in t2 && (c = t2.touches[0].pageY - u.top, p = t2.touches[0].pageX - u.left), n2.setAttribute("data-hold", Date.now()), n2.setAttribute("data-scale", v), n2.setAttribute("data-x", p), n2.setAttribute("data-y", c); + var f = {top: c + "px", left: p + "px"}; + n2.className = n2.className + " waves-notransition", n2.setAttribute("style", m(f)), n2.className = n2.className.replace("waves-notransition", ""), f["-webkit-transform"] = v, f["-moz-transform"] = v, f["-ms-transform"] = v, f["-o-transform"] = v, f.transform = v, f.opacity = "1", f["-webkit-transition-duration"] = g.duration + "ms", f["-moz-transition-duration"] = g.duration + "ms", f["-o-transition-duration"] = g.duration + "ms", f["transition-duration"] = g.duration + "ms", f["-webkit-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", f["-moz-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", f["-o-transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", f["transition-timing-function"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)", n2.setAttribute("style", m(f)); + }, hide: function(t2) { + l.touchup(t2); + var e2 = this, i2 = (e2.clientWidth, null), n2 = e2.getElementsByClassName("waves-ripple"); + if (!(0 < n2.length)) + return false; + var s = (i2 = n2[n2.length - 1]).getAttribute("data-x"), o = i2.getAttribute("data-y"), a = i2.getAttribute("data-scale"), r = 350 - (Date.now() - Number(i2.getAttribute("data-hold"))); + r < 0 && (r = 0), setTimeout(function() { + var t3 = {top: o + "px", left: s + "px", opacity: "0", "-webkit-transition-duration": g.duration + "ms", "-moz-transition-duration": g.duration + "ms", "-o-transition-duration": g.duration + "ms", "transition-duration": g.duration + "ms", "-webkit-transform": a, "-moz-transform": a, "-ms-transform": a, "-o-transform": a, transform: a}; + i2.setAttribute("style", m(t3)), setTimeout(function() { + try { + e2.removeChild(i2); + } catch (t4) { + return false; + } + }, g.duration); + }, r); + }, wrapInput: function(t2) { + for (var e2 = 0; e2 < t2.length; e2++) { + var i2 = t2[e2]; + if (i2.tagName.toLowerCase() === "input") { + var n2 = i2.parentNode; + if (n2.tagName.toLowerCase() === "i" && n2.className.indexOf("waves-effect") !== -1) + continue; + var s = document.createElement("i"); + s.className = i2.className + " waves-input-wrapper"; + var o = i2.getAttribute("style"); + o || (o = ""), s.setAttribute("style", o), i2.className = "waves-button-input", i2.removeAttribute("style"), n2.replaceChild(s, i2), s.appendChild(i2); + } + } + }}, l = {touches: 0, allowEvent: function(t2) { + var e2 = true; + return t2.type === "touchstart" ? l.touches += 1 : t2.type === "touchend" || t2.type === "touchcancel" ? setTimeout(function() { + 0 < l.touches && (l.touches -= 1); + }, 500) : t2.type === "mousedown" && 0 < l.touches && (e2 = false), e2; + }, touchup: function(t2) { + l.allowEvent(t2); + }}; + function n(t2) { + var e2 = function(t3) { + if (l.allowEvent(t3) === false) + return null; + for (var e3 = null, i2 = t3.target || t3.srcElement; i2.parentNode !== null; ) { + if (!(i2 instanceof SVGElement) && i2.className.indexOf("waves-effect") !== -1) { + e3 = i2; + break; + } + i2 = i2.parentNode; + } + return e3; + }(t2); + e2 !== null && (g.show(t2, e2), "ontouchstart" in i && (e2.addEventListener("touchend", g.hide, false), e2.addEventListener("touchcancel", g.hide, false)), e2.addEventListener("mouseup", g.hide, false), e2.addEventListener("mouseleave", g.hide, false), e2.addEventListener("dragend", g.hide, false)); + } + t.displayEffect = function(t2) { + "duration" in (t2 = t2 || {}) && (g.duration = t2.duration), g.wrapInput(e(".waves-effect")), "ontouchstart" in i && document.body.addEventListener("touchstart", n, false), document.body.addEventListener("mousedown", n, false); + }, t.attach = function(t2) { + t2.tagName.toLowerCase() === "input" && (g.wrapInput([t2]), t2 = t2.parentNode), "ontouchstart" in i && t2.addEventListener("touchstart", n, false), t2.addEventListener("mousedown", n, false); + }, i.Waves = t, document.addEventListener("DOMContentLoaded", function() { + t.displayEffect(); + }, false); + }(window), function(i, n) { + "use strict"; + var t = {html: "", displayLength: 4e3, inDuration: 300, outDuration: 375, classes: "", completeCallback: null, activationPercent: 0.8}, e = function() { + function s(t2) { + _classCallCheck(this, s), this.options = i.extend({}, s.defaults, t2), this.message = this.options.html, this.panning = false, this.timeRemaining = this.options.displayLength, s._toasts.length === 0 && s._createContainer(), s._toasts.push(this); + var e2 = this._createToast(); + (e2.M_Toast = this).el = e2, this.$el = i(e2), this._animateIn(), this._setTimer(); + } + return _createClass(s, [{key: "_createToast", value: function() { + var t2 = document.createElement("div"); + return t2.classList.add("toast"), this.options.classes.length && i(t2).addClass(this.options.classes), (typeof HTMLElement == "object" ? this.message instanceof HTMLElement : this.message && typeof this.message == "object" && this.message !== null && this.message.nodeType === 1 && typeof this.message.nodeName == "string") ? t2.appendChild(this.message) : this.message.jquery ? i(t2).append(this.message[0]) : t2.innerHTML = this.message, s._container.appendChild(t2), t2; + }}, {key: "_animateIn", value: function() { + n({targets: this.el, top: 0, opacity: 1, duration: this.options.inDuration, easing: "easeOutCubic"}); + }}, {key: "_setTimer", value: function() { + var t2 = this; + this.timeRemaining !== 1 / 0 && (this.counterInterval = setInterval(function() { + t2.panning || (t2.timeRemaining -= 20), t2.timeRemaining <= 0 && t2.dismiss(); + }, 20)); + }}, {key: "dismiss", value: function() { + var t2 = this; + window.clearInterval(this.counterInterval); + var e2 = this.el.offsetWidth * this.options.activationPercent; + this.wasSwiped && (this.el.style.transition = "transform .05s, opacity .05s", this.el.style.transform = "translateX(" + e2 + "px)", this.el.style.opacity = 0), n({targets: this.el, opacity: 0, marginTop: -40, duration: this.options.outDuration, easing: "easeOutExpo", complete: function() { + typeof t2.options.completeCallback == "function" && t2.options.completeCallback(), t2.$el.remove(), s._toasts.splice(s._toasts.indexOf(t2), 1), s._toasts.length === 0 && s._removeContainer(); + }}); + }}], [{key: "getInstance", value: function(t2) { + return (t2.jquery ? t2[0] : t2).M_Toast; + }}, {key: "_createContainer", value: function() { + var t2 = document.createElement("div"); + t2.setAttribute("id", "toast-container"), t2.addEventListener("touchstart", s._onDragStart), t2.addEventListener("touchmove", s._onDragMove), t2.addEventListener("touchend", s._onDragEnd), t2.addEventListener("mousedown", s._onDragStart), document.addEventListener("mousemove", s._onDragMove), document.addEventListener("mouseup", s._onDragEnd), document.body.appendChild(t2), s._container = t2; + }}, {key: "_removeContainer", value: function() { + document.removeEventListener("mousemove", s._onDragMove), document.removeEventListener("mouseup", s._onDragEnd), i(s._container).remove(), s._container = null; + }}, {key: "_onDragStart", value: function(t2) { + if (t2.target && i(t2.target).closest(".toast").length) { + var e2 = i(t2.target).closest(".toast")[0].M_Toast; + e2.panning = true, (s._draggedToast = e2).el.classList.add("panning"), e2.el.style.transition = "", e2.startingXPos = s._xPos(t2), e2.time = Date.now(), e2.xPos = s._xPos(t2); + } + }}, {key: "_onDragMove", value: function(t2) { + if (s._draggedToast) { + t2.preventDefault(); + var e2 = s._draggedToast; + e2.deltaX = Math.abs(e2.xPos - s._xPos(t2)), e2.xPos = s._xPos(t2), e2.velocityX = e2.deltaX / (Date.now() - e2.time), e2.time = Date.now(); + var i2 = e2.xPos - e2.startingXPos, n2 = e2.el.offsetWidth * e2.options.activationPercent; + e2.el.style.transform = "translateX(" + i2 + "px)", e2.el.style.opacity = 1 - Math.abs(i2 / n2); + } + }}, {key: "_onDragEnd", value: function() { + if (s._draggedToast) { + var t2 = s._draggedToast; + t2.panning = false, t2.el.classList.remove("panning"); + var e2 = t2.xPos - t2.startingXPos, i2 = t2.el.offsetWidth * t2.options.activationPercent; + Math.abs(e2) > i2 || 1 < t2.velocityX ? (t2.wasSwiped = true, t2.dismiss()) : (t2.el.style.transition = "transform .2s, opacity .2s", t2.el.style.transform = "", t2.el.style.opacity = ""), s._draggedToast = null; + } + }}, {key: "_xPos", value: function(t2) { + return t2.targetTouches && 1 <= t2.targetTouches.length ? t2.targetTouches[0].clientX : t2.clientX; + }}, {key: "dismissAll", value: function() { + for (var t2 in s._toasts) + s._toasts[t2].dismiss(); + }}, {key: "defaults", get: function() { + return t; + }}]), s; + }(); + e._toasts = [], e._container = null, e._draggedToast = null, M.Toast = e, M.toast = function(t2) { + return new e(t2); + }; + }(cash, M.anime), function(s, o) { + "use strict"; + var e = {edge: "left", draggable: true, inDuration: 250, outDuration: 200, onOpenStart: null, onOpenEnd: null, onCloseStart: null, onCloseEnd: null, preventScrolling: true}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_Sidenav = i).id = i.$el.attr("id"), i.options = s.extend({}, n.defaults, e2), i.isOpen = false, i.isFixed = i.el.classList.contains("sidenav-fixed"), i.isDragged = false, i.lastWindowWidth = window.innerWidth, i.lastWindowHeight = window.innerHeight, i._createOverlay(), i._createDragTarget(), i._setupEventHandlers(), i._setupClasses(), i._setupFixed(), n._sidenavs.push(i), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this._enableBodyScrolling(), this._overlay.parentNode.removeChild(this._overlay), this.dragTarget.parentNode.removeChild(this.dragTarget), this.el.M_Sidenav = void 0, this.el.style.transform = ""; + var t3 = n._sidenavs.indexOf(this); + 0 <= t3 && n._sidenavs.splice(t3, 1); + }}, {key: "_createOverlay", value: function() { + var t3 = document.createElement("div"); + this._closeBound = this.close.bind(this), t3.classList.add("sidenav-overlay"), t3.addEventListener("click", this._closeBound), document.body.appendChild(t3), this._overlay = t3; + }}, {key: "_setupEventHandlers", value: function() { + n._sidenavs.length === 0 && document.body.addEventListener("click", this._handleTriggerClick), this._handleDragTargetDragBound = this._handleDragTargetDrag.bind(this), this._handleDragTargetReleaseBound = this._handleDragTargetRelease.bind(this), this._handleCloseDragBound = this._handleCloseDrag.bind(this), this._handleCloseReleaseBound = this._handleCloseRelease.bind(this), this._handleCloseTriggerClickBound = this._handleCloseTriggerClick.bind(this), this.dragTarget.addEventListener("touchmove", this._handleDragTargetDragBound), this.dragTarget.addEventListener("touchend", this._handleDragTargetReleaseBound), this._overlay.addEventListener("touchmove", this._handleCloseDragBound), this._overlay.addEventListener("touchend", this._handleCloseReleaseBound), this.el.addEventListener("touchmove", this._handleCloseDragBound), this.el.addEventListener("touchend", this._handleCloseReleaseBound), this.el.addEventListener("click", this._handleCloseTriggerClickBound), this.isFixed && (this._handleWindowResizeBound = this._handleWindowResize.bind(this), window.addEventListener("resize", this._handleWindowResizeBound)); + }}, {key: "_removeEventHandlers", value: function() { + n._sidenavs.length === 1 && document.body.removeEventListener("click", this._handleTriggerClick), this.dragTarget.removeEventListener("touchmove", this._handleDragTargetDragBound), this.dragTarget.removeEventListener("touchend", this._handleDragTargetReleaseBound), this._overlay.removeEventListener("touchmove", this._handleCloseDragBound), this._overlay.removeEventListener("touchend", this._handleCloseReleaseBound), this.el.removeEventListener("touchmove", this._handleCloseDragBound), this.el.removeEventListener("touchend", this._handleCloseReleaseBound), this.el.removeEventListener("click", this._handleCloseTriggerClickBound), this.isFixed && window.removeEventListener("resize", this._handleWindowResizeBound); + }}, {key: "_handleTriggerClick", value: function(t3) { + var e2 = s(t3.target).closest(".sidenav-trigger"); + if (t3.target && e2.length) { + var i = M.getIdFromTrigger(e2[0]), n2 = document.getElementById(i).M_Sidenav; + n2 && n2.open(e2), t3.preventDefault(); + } + }}, {key: "_startDrag", value: function(t3) { + var e2 = t3.targetTouches[0].clientX; + this.isDragged = true, this._startingXpos = e2, this._xPos = this._startingXpos, this._time = Date.now(), this._width = this.el.getBoundingClientRect().width, this._overlay.style.display = "block", this._initialScrollTop = this.isOpen ? this.el.scrollTop : M.getDocumentScrollTop(), this._verticallyScrolling = false, o.remove(this.el), o.remove(this._overlay); + }}, {key: "_dragMoveUpdate", value: function(t3) { + var e2 = t3.targetTouches[0].clientX, i = this.isOpen ? this.el.scrollTop : M.getDocumentScrollTop(); + this.deltaX = Math.abs(this._xPos - e2), this._xPos = e2, this.velocityX = this.deltaX / (Date.now() - this._time), this._time = Date.now(), this._initialScrollTop !== i && (this._verticallyScrolling = true); + }}, {key: "_handleDragTargetDrag", value: function(t3) { + if (this.options.draggable && !this._isCurrentlyFixed() && !this._verticallyScrolling) { + this.isDragged || this._startDrag(t3), this._dragMoveUpdate(t3); + var e2 = this._xPos - this._startingXpos, i = 0 < e2 ? "right" : "left"; + e2 = Math.min(this._width, Math.abs(e2)), this.options.edge === i && (e2 = 0); + var n2 = e2, s2 = "translateX(-100%)"; + this.options.edge === "right" && (s2 = "translateX(100%)", n2 = -n2), this.percentOpen = Math.min(1, e2 / this._width), this.el.style.transform = s2 + " translateX(" + n2 + "px)", this._overlay.style.opacity = this.percentOpen; + } + }}, {key: "_handleDragTargetRelease", value: function() { + this.isDragged && (0.2 < this.percentOpen ? this.open() : this._animateOut(), this.isDragged = false, this._verticallyScrolling = false); + }}, {key: "_handleCloseDrag", value: function(t3) { + if (this.isOpen) { + if (!this.options.draggable || this._isCurrentlyFixed() || this._verticallyScrolling) + return; + this.isDragged || this._startDrag(t3), this._dragMoveUpdate(t3); + var e2 = this._xPos - this._startingXpos, i = 0 < e2 ? "right" : "left"; + e2 = Math.min(this._width, Math.abs(e2)), this.options.edge !== i && (e2 = 0); + var n2 = -e2; + this.options.edge === "right" && (n2 = -n2), this.percentOpen = Math.min(1, 1 - e2 / this._width), this.el.style.transform = "translateX(" + n2 + "px)", this._overlay.style.opacity = this.percentOpen; + } + }}, {key: "_handleCloseRelease", value: function() { + this.isOpen && this.isDragged && (0.8 < this.percentOpen ? this._animateIn() : this.close(), this.isDragged = false, this._verticallyScrolling = false); + }}, {key: "_handleCloseTriggerClick", value: function(t3) { + s(t3.target).closest(".sidenav-close").length && !this._isCurrentlyFixed() && this.close(); + }}, {key: "_handleWindowResize", value: function() { + this.lastWindowWidth !== window.innerWidth && (992 < window.innerWidth ? this.open() : this.close()), this.lastWindowWidth = window.innerWidth, this.lastWindowHeight = window.innerHeight; + }}, {key: "_setupClasses", value: function() { + this.options.edge === "right" && (this.el.classList.add("right-aligned"), this.dragTarget.classList.add("right-aligned")); + }}, {key: "_removeClasses", value: function() { + this.el.classList.remove("right-aligned"), this.dragTarget.classList.remove("right-aligned"); + }}, {key: "_setupFixed", value: function() { + this._isCurrentlyFixed() && this.open(); + }}, {key: "_isCurrentlyFixed", value: function() { + return this.isFixed && 992 < window.innerWidth; + }}, {key: "_createDragTarget", value: function() { + var t3 = document.createElement("div"); + t3.classList.add("drag-target"), document.body.appendChild(t3), this.dragTarget = t3; + }}, {key: "_preventBodyScrolling", value: function() { + document.body.style.overflow = "hidden"; + }}, {key: "_enableBodyScrolling", value: function() { + document.body.style.overflow = ""; + }}, {key: "open", value: function() { + this.isOpen !== true && (this.isOpen = true, typeof this.options.onOpenStart == "function" && this.options.onOpenStart.call(this, this.el), this._isCurrentlyFixed() ? (o.remove(this.el), o({targets: this.el, translateX: 0, duration: 0, easing: "easeOutQuad"}), this._enableBodyScrolling(), this._overlay.style.display = "none") : (this.options.preventScrolling && this._preventBodyScrolling(), this.isDragged && this.percentOpen == 1 || this._animateIn())); + }}, {key: "close", value: function() { + if (this.isOpen !== false) + if (this.isOpen = false, typeof this.options.onCloseStart == "function" && this.options.onCloseStart.call(this, this.el), this._isCurrentlyFixed()) { + var t3 = this.options.edge === "left" ? "-105%" : "105%"; + this.el.style.transform = "translateX(" + t3 + ")"; + } else + this._enableBodyScrolling(), this.isDragged && this.percentOpen == 0 ? this._overlay.style.display = "none" : this._animateOut(); + }}, {key: "_animateIn", value: function() { + this._animateSidenavIn(), this._animateOverlayIn(); + }}, {key: "_animateSidenavIn", value: function() { + var t3 = this, e2 = this.options.edge === "left" ? -1 : 1; + this.isDragged && (e2 = this.options.edge === "left" ? e2 + this.percentOpen : e2 - this.percentOpen), o.remove(this.el), o({targets: this.el, translateX: [100 * e2 + "%", 0], duration: this.options.inDuration, easing: "easeOutQuad", complete: function() { + typeof t3.options.onOpenEnd == "function" && t3.options.onOpenEnd.call(t3, t3.el); + }}); + }}, {key: "_animateOverlayIn", value: function() { + var t3 = 0; + this.isDragged ? t3 = this.percentOpen : s(this._overlay).css({display: "block"}), o.remove(this._overlay), o({targets: this._overlay, opacity: [t3, 1], duration: this.options.inDuration, easing: "easeOutQuad"}); + }}, {key: "_animateOut", value: function() { + this._animateSidenavOut(), this._animateOverlayOut(); + }}, {key: "_animateSidenavOut", value: function() { + var t3 = this, e2 = this.options.edge === "left" ? -1 : 1, i = 0; + this.isDragged && (i = this.options.edge === "left" ? e2 + this.percentOpen : e2 - this.percentOpen), o.remove(this.el), o({targets: this.el, translateX: [100 * i + "%", 105 * e2 + "%"], duration: this.options.outDuration, easing: "easeOutQuad", complete: function() { + typeof t3.options.onCloseEnd == "function" && t3.options.onCloseEnd.call(t3, t3.el); + }}); + }}, {key: "_animateOverlayOut", value: function() { + var t3 = this; + o.remove(this._overlay), o({targets: this._overlay, opacity: 0, duration: this.options.outDuration, easing: "easeOutQuad", complete: function() { + s(t3._overlay).css("display", "none"); + }}); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Sidenav; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + t._sidenavs = [], M.Sidenav = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "sidenav", "M_Sidenav"); + }(cash, M.anime), function(o, a) { + "use strict"; + var e = {throttle: 100, scrollOffset: 200, activeClass: "active", getActiveElement: function(t2) { + return 'a[href="#' + t2 + '"]'; + }}, t = function(t2) { + function c(t3, e2) { + _classCallCheck(this, c); + var i = _possibleConstructorReturn(this, (c.__proto__ || Object.getPrototypeOf(c)).call(this, c, t3, e2)); + return (i.el.M_ScrollSpy = i).options = o.extend({}, c.defaults, e2), c._elements.push(i), c._count++, c._increment++, i.tickId = -1, i.id = c._increment, i._setupEventHandlers(), i._handleWindowScroll(), i; + } + return _inherits(c, Component), _createClass(c, [{key: "destroy", value: function() { + c._elements.splice(c._elements.indexOf(this), 1), c._elementsInView.splice(c._elementsInView.indexOf(this), 1), c._visibleElements.splice(c._visibleElements.indexOf(this.$el), 1), c._count--, this._removeEventHandlers(), o(this.options.getActiveElement(this.$el.attr("id"))).removeClass(this.options.activeClass), this.el.M_ScrollSpy = void 0; + }}, {key: "_setupEventHandlers", value: function() { + var t3 = M.throttle(this._handleWindowScroll, 200); + this._handleThrottledResizeBound = t3.bind(this), this._handleWindowScrollBound = this._handleWindowScroll.bind(this), c._count === 1 && (window.addEventListener("scroll", this._handleWindowScrollBound), window.addEventListener("resize", this._handleThrottledResizeBound), document.body.addEventListener("click", this._handleTriggerClick)); + }}, {key: "_removeEventHandlers", value: function() { + c._count === 0 && (window.removeEventListener("scroll", this._handleWindowScrollBound), window.removeEventListener("resize", this._handleThrottledResizeBound), document.body.removeEventListener("click", this._handleTriggerClick)); + }}, {key: "_handleTriggerClick", value: function(t3) { + for (var e2 = o(t3.target), i = c._elements.length - 1; 0 <= i; i--) { + var n = c._elements[i]; + if (e2.is('a[href="#' + n.$el.attr("id") + '"]')) { + t3.preventDefault(); + var s = n.$el.offset().top + 1; + a({targets: [document.documentElement, document.body], scrollTop: s - n.options.scrollOffset, duration: 400, easing: "easeOutCubic"}); + break; + } + } + }}, {key: "_handleWindowScroll", value: function() { + c._ticks++; + for (var t3 = M.getDocumentScrollTop(), e2 = M.getDocumentScrollLeft(), i = e2 + window.innerWidth, n = t3 + window.innerHeight, s = c._findElements(t3, i, n, e2), o2 = 0; o2 < s.length; o2++) { + var a2 = s[o2]; + a2.tickId < 0 && a2._enter(), a2.tickId = c._ticks; + } + for (var r = 0; r < c._elementsInView.length; r++) { + var l = c._elementsInView[r], h = l.tickId; + 0 <= h && h !== c._ticks && (l._exit(), l.tickId = -1); + } + c._elementsInView = s; + }}, {key: "_enter", value: function() { + (c._visibleElements = c._visibleElements.filter(function(t3) { + return t3.height() != 0; + }))[0] ? (o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).removeClass(this.options.activeClass), c._visibleElements[0][0].M_ScrollSpy && this.id < c._visibleElements[0][0].M_ScrollSpy.id ? c._visibleElements.unshift(this.$el) : c._visibleElements.push(this.$el)) : c._visibleElements.push(this.$el), o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).addClass(this.options.activeClass); + }}, {key: "_exit", value: function() { + var e2 = this; + (c._visibleElements = c._visibleElements.filter(function(t3) { + return t3.height() != 0; + }))[0] && (o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).removeClass(this.options.activeClass), (c._visibleElements = c._visibleElements.filter(function(t3) { + return t3.attr("id") != e2.$el.attr("id"); + }))[0] && o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).addClass(this.options.activeClass)); + }}], [{key: "init", value: function(t3, e2) { + return _get(c.__proto__ || Object.getPrototypeOf(c), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_ScrollSpy; + }}, {key: "_findElements", value: function(t3, e2, i, n) { + for (var s = [], o2 = 0; o2 < c._elements.length; o2++) { + var a2 = c._elements[o2], r = t3 + a2.options.scrollOffset || 200; + if (0 < a2.$el.height()) { + var l = a2.$el.offset().top, h = a2.$el.offset().left, d = h + a2.$el.width(), u = l + a2.$el.height(); + !(e2 < h || d < n || i < l || u < r) && s.push(a2); + } + } + return s; + }}, {key: "defaults", get: function() { + return e; + }}]), c; + }(); + t._elements = [], t._elementsInView = [], t._visibleElements = [], t._count = 0, t._increment = 0, t._ticks = 0, M.ScrollSpy = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "scrollSpy", "M_ScrollSpy"); + }(cash, M.anime), function(h) { + "use strict"; + var e = {data: {}, limit: 1 / 0, onAutocomplete: null, minLength: 1, sortFunction: function(t2, e2, i) { + return t2.indexOf(i) - e2.indexOf(i); + }}, t = function(t2) { + function s(t3, e2) { + _classCallCheck(this, s); + var i = _possibleConstructorReturn(this, (s.__proto__ || Object.getPrototypeOf(s)).call(this, s, t3, e2)); + return (i.el.M_Autocomplete = i).options = h.extend({}, s.defaults, e2), i.isOpen = false, i.count = 0, i.activeIndex = -1, i.oldVal, i.$inputField = i.$el.closest(".input-field"), i.$active = h(), i._mousedown = false, i._setupDropdown(), i._setupEventHandlers(), i; + } + return _inherits(s, Component), _createClass(s, [{key: "destroy", value: function() { + this._removeEventHandlers(), this._removeDropdown(), this.el.M_Autocomplete = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleInputBlurBound = this._handleInputBlur.bind(this), this._handleInputKeyupAndFocusBound = this._handleInputKeyupAndFocus.bind(this), this._handleInputKeydownBound = this._handleInputKeydown.bind(this), this._handleInputClickBound = this._handleInputClick.bind(this), this._handleContainerMousedownAndTouchstartBound = this._handleContainerMousedownAndTouchstart.bind(this), this._handleContainerMouseupAndTouchendBound = this._handleContainerMouseupAndTouchend.bind(this), this.el.addEventListener("blur", this._handleInputBlurBound), this.el.addEventListener("keyup", this._handleInputKeyupAndFocusBound), this.el.addEventListener("focus", this._handleInputKeyupAndFocusBound), this.el.addEventListener("keydown", this._handleInputKeydownBound), this.el.addEventListener("click", this._handleInputClickBound), this.container.addEventListener("mousedown", this._handleContainerMousedownAndTouchstartBound), this.container.addEventListener("mouseup", this._handleContainerMouseupAndTouchendBound), window.ontouchstart !== void 0 && (this.container.addEventListener("touchstart", this._handleContainerMousedownAndTouchstartBound), this.container.addEventListener("touchend", this._handleContainerMouseupAndTouchendBound)); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("blur", this._handleInputBlurBound), this.el.removeEventListener("keyup", this._handleInputKeyupAndFocusBound), this.el.removeEventListener("focus", this._handleInputKeyupAndFocusBound), this.el.removeEventListener("keydown", this._handleInputKeydownBound), this.el.removeEventListener("click", this._handleInputClickBound), this.container.removeEventListener("mousedown", this._handleContainerMousedownAndTouchstartBound), this.container.removeEventListener("mouseup", this._handleContainerMouseupAndTouchendBound), window.ontouchstart !== void 0 && (this.container.removeEventListener("touchstart", this._handleContainerMousedownAndTouchstartBound), this.container.removeEventListener("touchend", this._handleContainerMouseupAndTouchendBound)); + }}, {key: "_setupDropdown", value: function() { + var e2 = this; + this.container = document.createElement("ul"), this.container.id = "autocomplete-options-" + M.guid(), h(this.container).addClass("autocomplete-content dropdown-content"), this.$inputField.append(this.container), this.el.setAttribute("data-target", this.container.id), this.dropdown = M.Dropdown.init(this.el, {autoFocus: false, closeOnClick: false, coverTrigger: false, onItemClick: function(t3) { + e2.selectOption(h(t3)); + }}), this.el.removeEventListener("click", this.dropdown._handleClickBound); + }}, {key: "_removeDropdown", value: function() { + this.container.parentNode.removeChild(this.container); + }}, {key: "_handleInputBlur", value: function() { + this._mousedown || (this.close(), this._resetAutocomplete()); + }}, {key: "_handleInputKeyupAndFocus", value: function(t3) { + t3.type === "keyup" && (s._keydown = false), this.count = 0; + var e2 = this.el.value.toLowerCase(); + t3.keyCode !== 13 && t3.keyCode !== 38 && t3.keyCode !== 40 && (this.oldVal === e2 || !M.tabPressed && t3.type === "focus" || this.open(), this.oldVal = e2); + }}, {key: "_handleInputKeydown", value: function(t3) { + s._keydown = true; + var e2 = t3.keyCode, i = void 0, n = h(this.container).children("li").length; + e2 === M.keys.ENTER && 0 <= this.activeIndex ? (i = h(this.container).children("li").eq(this.activeIndex)).length && (this.selectOption(i), t3.preventDefault()) : e2 !== M.keys.ARROW_UP && e2 !== M.keys.ARROW_DOWN || (t3.preventDefault(), e2 === M.keys.ARROW_UP && 0 < this.activeIndex && this.activeIndex--, e2 === M.keys.ARROW_DOWN && this.activeIndex < n - 1 && this.activeIndex++, this.$active.removeClass("active"), 0 <= this.activeIndex && (this.$active = h(this.container).children("li").eq(this.activeIndex), this.$active.addClass("active"))); + }}, {key: "_handleInputClick", value: function(t3) { + this.open(); + }}, {key: "_handleContainerMousedownAndTouchstart", value: function(t3) { + this._mousedown = true; + }}, {key: "_handleContainerMouseupAndTouchend", value: function(t3) { + this._mousedown = false; + }}, {key: "_highlight", value: function(t3, e2) { + var i = e2.find("img"), n = e2.text().toLowerCase().indexOf("" + t3.toLowerCase()), s2 = n + t3.length - 1, o = e2.text().slice(0, n), a = e2.text().slice(n, s2 + 1), r = e2.text().slice(s2 + 1); + e2.html("" + o + "" + a + "" + r + ""), i.length && e2.prepend(i); + }}, {key: "_resetCurrentElement", value: function() { + this.activeIndex = -1, this.$active.removeClass("active"); + }}, {key: "_resetAutocomplete", value: function() { + h(this.container).empty(), this._resetCurrentElement(), this.oldVal = null, this.isOpen = false, this._mousedown = false; + }}, {key: "selectOption", value: function(t3) { + var e2 = t3.text().trim(); + this.el.value = e2, this.$el.trigger("change"), this._resetAutocomplete(), this.close(), typeof this.options.onAutocomplete == "function" && this.options.onAutocomplete.call(this, e2); + }}, {key: "_renderDropdown", value: function(t3, i) { + var n = this; + this._resetAutocomplete(); + var e2 = []; + for (var s2 in t3) + if (t3.hasOwnProperty(s2) && s2.toLowerCase().indexOf(i) !== -1) { + if (this.count >= this.options.limit) + break; + var o = {data: t3[s2], key: s2}; + e2.push(o), this.count++; + } + if (this.options.sortFunction) { + e2.sort(function(t4, e3) { + return n.options.sortFunction(t4.key.toLowerCase(), e3.key.toLowerCase(), i.toLowerCase()); + }); + } + for (var a = 0; a < e2.length; a++) { + var r = e2[a], l = h("
  • "); + r.data ? l.append('' + r.key + "") : l.append("" + r.key + ""), h(this.container).append(l), this._highlight(i, l); + } + }}, {key: "open", value: function() { + var t3 = this.el.value.toLowerCase(); + this._resetAutocomplete(), t3.length >= this.options.minLength && (this.isOpen = true, this._renderDropdown(this.options.data, t3)), this.dropdown.isOpen ? this.dropdown.recalculateDimensions() : this.dropdown.open(); + }}, {key: "close", value: function() { + this.dropdown.close(); + }}, {key: "updateData", value: function(t3) { + var e2 = this.el.value.toLowerCase(); + this.options.data = t3, this.isOpen && this._renderDropdown(t3, e2); + }}], [{key: "init", value: function(t3, e2) { + return _get(s.__proto__ || Object.getPrototypeOf(s), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Autocomplete; + }}, {key: "defaults", get: function() { + return e; + }}]), s; + }(); + t._keydown = false, M.Autocomplete = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "autocomplete", "M_Autocomplete"); + }(cash), function(d) { + M.updateTextFields = function() { + d("input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea").each(function(t, e) { + var i = d(this); + 0 < t.value.length || d(t).is(":focus") || t.autofocus || i.attr("placeholder") !== null ? i.siblings("label").addClass("active") : t.validity ? i.siblings("label").toggleClass("active", t.validity.badInput === true) : i.siblings("label").removeClass("active"); + }); + }, M.validate_field = function(t) { + var e = t.attr("data-length") !== null, i = parseInt(t.attr("data-length")), n = t[0].value.length; + n !== 0 || t[0].validity.badInput !== false || t.is(":required") ? t.hasClass("validate") && (t.is(":valid") && e && n <= i || t.is(":valid") && !e ? (t.removeClass("invalid"), t.addClass("valid")) : (t.removeClass("valid"), t.addClass("invalid"))) : t.hasClass("validate") && (t.removeClass("valid"), t.removeClass("invalid")); + }, M.textareaAutoResize = function(t) { + if (t instanceof Element && (t = d(t)), t.length) { + var e = d(".hiddendiv").first(); + e.length || (e = d('
    '), d("body").append(e)); + var i = t.css("font-family"), n = t.css("font-size"), s = t.css("line-height"), o = t.css("padding-top"), a = t.css("padding-right"), r = t.css("padding-bottom"), l = t.css("padding-left"); + n && e.css("font-size", n), i && e.css("font-family", i), s && e.css("line-height", s), o && e.css("padding-top", o), a && e.css("padding-right", a), r && e.css("padding-bottom", r), l && e.css("padding-left", l), t.data("original-height") || t.data("original-height", t.height()), t.attr("wrap") === "off" && e.css("overflow-wrap", "normal").css("white-space", "pre"), e.text(t[0].value + "\n"); + var h = e.html().replace(/\n/g, "
    "); + e.html(h), 0 < t[0].offsetWidth && 0 < t[0].offsetHeight ? e.css("width", t.width() + "px") : e.css("width", window.innerWidth / 2 + "px"), t.data("original-height") <= e.innerHeight() ? t.css("height", e.innerHeight() + "px") : t[0].value.length < t.data("previous-length") && t.css("height", t.data("original-height") + "px"), t.data("previous-length", t[0].value.length); + } else + console.error("No textarea element found"); + }, d(document).ready(function() { + var n = "input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea"; + d(document).on("change", n, function() { + this.value.length === 0 && d(this).attr("placeholder") === null || d(this).siblings("label").addClass("active"), M.validate_field(d(this)); + }), d(document).ready(function() { + M.updateTextFields(); + }), d(document).on("reset", function(t2) { + var e = d(t2.target); + e.is("form") && (e.find(n).removeClass("valid").removeClass("invalid"), e.find(n).each(function(t3) { + this.value.length && d(this).siblings("label").removeClass("active"); + }), setTimeout(function() { + e.find("select").each(function() { + this.M_FormSelect && d(this).trigger("change"); + }); + }, 0)); + }), document.addEventListener("focus", function(t2) { + d(t2.target).is(n) && d(t2.target).siblings("label, .prefix").addClass("active"); + }, true), document.addEventListener("blur", function(t2) { + var e = d(t2.target); + if (e.is(n)) { + var i = ".prefix"; + e[0].value.length === 0 && e[0].validity.badInput !== true && e.attr("placeholder") === null && (i += ", label"), e.siblings(i).removeClass("active"), M.validate_field(e); + } + }, true); + d(document).on("keyup", "input[type=radio], input[type=checkbox]", function(t2) { + if (t2.which === M.keys.TAB) + return d(this).addClass("tabbed"), void d(this).one("blur", function(t3) { + d(this).removeClass("tabbed"); + }); + }); + var t = ".materialize-textarea"; + d(t).each(function() { + var t2 = d(this); + t2.data("original-height", t2.height()), t2.data("previous-length", this.value.length), M.textareaAutoResize(t2); + }), d(document).on("keyup", t, function() { + M.textareaAutoResize(d(this)); + }), d(document).on("keydown", t, function() { + M.textareaAutoResize(d(this)); + }), d(document).on("change", '.file-field input[type="file"]', function() { + for (var t2 = d(this).closest(".file-field").find("input.file-path"), e = d(this)[0].files, i = [], n2 = 0; n2 < e.length; n2++) + i.push(e[n2].name); + t2[0].value = i.join(", "), t2.trigger("change"); + }); + }); + }(cash), function(s, o) { + "use strict"; + var e = {indicators: true, height: 400, duration: 500, interval: 6e3}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_Slider = i).options = s.extend({}, n.defaults, e2), i.$slider = i.$el.find(".slides"), i.$slides = i.$slider.children("li"), i.activeIndex = i.$slides.filter(function(t4) { + return s(t4).hasClass("active"); + }).first().index(), i.activeIndex != -1 && (i.$active = i.$slides.eq(i.activeIndex)), i._setSliderHeight(), i.$slides.find(".caption").each(function(t4) { + i._animateCaptionIn(t4, 0); + }), i.$slides.find("img").each(function(t4) { + var e3 = "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + s(t4).attr("src") !== e3 && (s(t4).css("background-image", 'url("' + s(t4).attr("src") + '")'), s(t4).attr("src", e3)); + }), i._setupIndicators(), i.$active ? i.$active.css("display", "block") : (i.$slides.first().addClass("active"), o({targets: i.$slides.first()[0], opacity: 1, duration: i.options.duration, easing: "easeOutQuad"}), i.activeIndex = 0, i.$active = i.$slides.eq(i.activeIndex), i.options.indicators && i.$indicators.eq(i.activeIndex).addClass("active")), i.$active.find("img").each(function(t4) { + o({targets: i.$active.find(".caption")[0], opacity: 1, translateX: 0, translateY: 0, duration: i.options.duration, easing: "easeOutQuad"}); + }), i._setupEventHandlers(), i.start(), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this.pause(), this._removeIndicators(), this._removeEventHandlers(), this.el.M_Slider = void 0; + }}, {key: "_setupEventHandlers", value: function() { + var e2 = this; + this._handleIntervalBound = this._handleInterval.bind(this), this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this), this.options.indicators && this.$indicators.each(function(t3) { + t3.addEventListener("click", e2._handleIndicatorClickBound); + }); + }}, {key: "_removeEventHandlers", value: function() { + var e2 = this; + this.options.indicators && this.$indicators.each(function(t3) { + t3.removeEventListener("click", e2._handleIndicatorClickBound); + }); + }}, {key: "_handleIndicatorClick", value: function(t3) { + var e2 = s(t3.target).index(); + this.set(e2); + }}, {key: "_handleInterval", value: function() { + var t3 = this.$slider.find(".active").index(); + this.$slides.length === t3 + 1 ? t3 = 0 : t3 += 1, this.set(t3); + }}, {key: "_animateCaptionIn", value: function(t3, e2) { + var i = {targets: t3, opacity: 0, duration: e2, easing: "easeOutQuad"}; + s(t3).hasClass("center-align") ? i.translateY = -100 : s(t3).hasClass("right-align") ? i.translateX = 100 : s(t3).hasClass("left-align") && (i.translateX = -100), o(i); + }}, {key: "_setSliderHeight", value: function() { + this.$el.hasClass("fullscreen") || (this.options.indicators ? this.$el.css("height", this.options.height + 40 + "px") : this.$el.css("height", this.options.height + "px"), this.$slider.css("height", this.options.height + "px")); + }}, {key: "_setupIndicators", value: function() { + var n2 = this; + this.options.indicators && (this.$indicators = s('
      '), this.$slides.each(function(t3, e2) { + var i = s('
    • '); + n2.$indicators.append(i[0]); + }), this.$el.append(this.$indicators[0]), this.$indicators = this.$indicators.children("li.indicator-item")); + }}, {key: "_removeIndicators", value: function() { + this.$el.find("ul.indicators").remove(); + }}, {key: "set", value: function(t3) { + var e2 = this; + if (t3 >= this.$slides.length ? t3 = 0 : t3 < 0 && (t3 = this.$slides.length - 1), this.activeIndex != t3) { + this.$active = this.$slides.eq(this.activeIndex); + var i = this.$active.find(".caption"); + this.$active.removeClass("active"), o({targets: this.$active[0], opacity: 0, duration: this.options.duration, easing: "easeOutQuad", complete: function() { + e2.$slides.not(".active").each(function(t4) { + o({targets: t4, opacity: 0, translateX: 0, translateY: 0, duration: 0, easing: "easeOutQuad"}); + }); + }}), this._animateCaptionIn(i[0], this.options.duration), this.options.indicators && (this.$indicators.eq(this.activeIndex).removeClass("active"), this.$indicators.eq(t3).addClass("active")), o({targets: this.$slides.eq(t3)[0], opacity: 1, duration: this.options.duration, easing: "easeOutQuad"}), o({targets: this.$slides.eq(t3).find(".caption")[0], opacity: 1, translateX: 0, translateY: 0, duration: this.options.duration, delay: this.options.duration, easing: "easeOutQuad"}), this.$slides.eq(t3).addClass("active"), this.activeIndex = t3, this.start(); + } + }}, {key: "pause", value: function() { + clearInterval(this.interval); + }}, {key: "start", value: function() { + clearInterval(this.interval), this.interval = setInterval(this._handleIntervalBound, this.options.duration + this.options.interval); + }}, {key: "next", value: function() { + var t3 = this.activeIndex + 1; + t3 >= this.$slides.length ? t3 = 0 : t3 < 0 && (t3 = this.$slides.length - 1), this.set(t3); + }}, {key: "prev", value: function() { + var t3 = this.activeIndex - 1; + t3 >= this.$slides.length ? t3 = 0 : t3 < 0 && (t3 = this.$slides.length - 1), this.set(t3); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Slider; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + M.Slider = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "slider", "M_Slider"); + }(cash, M.anime), function(n, s) { + n(document).on("click", ".card", function(t) { + if (n(this).children(".card-reveal").length) { + var i = n(t.target).closest(".card"); + i.data("initialOverflow") === void 0 && i.data("initialOverflow", i.css("overflow") === void 0 ? "" : i.css("overflow")); + var e = n(this).find(".card-reveal"); + n(t.target).is(n(".card-reveal .card-title")) || n(t.target).is(n(".card-reveal .card-title i")) ? s({targets: e[0], translateY: 0, duration: 225, easing: "easeInOutQuad", complete: function(t2) { + var e2 = t2.animatables[0].target; + n(e2).css({display: "none"}), i.css("overflow", i.data("initialOverflow")); + }}) : (n(t.target).is(n(".card .activator")) || n(t.target).is(n(".card .activator i"))) && (i.css("overflow", "hidden"), e.css({display: "block"}), s({targets: e[0], translateY: "-100%", duration: 300, easing: "easeInOutQuad"})); + } + }); + }(cash, M.anime), function(h) { + "use strict"; + var e = {data: [], placeholder: "", secondaryPlaceholder: "", autocompleteOptions: {}, limit: 1 / 0, onChipAdd: null, onChipSelect: null, onChipDelete: null}, t = function(t2) { + function l(t3, e2) { + _classCallCheck(this, l); + var i = _possibleConstructorReturn(this, (l.__proto__ || Object.getPrototypeOf(l)).call(this, l, t3, e2)); + return (i.el.M_Chips = i).options = h.extend({}, l.defaults, e2), i.$el.addClass("chips input-field"), i.chipsData = [], i.$chips = h(), i._setupInput(), i.hasAutocomplete = 0 < Object.keys(i.options.autocompleteOptions).length, i.$input.attr("id") || i.$input.attr("id", M.guid()), i.options.data.length && (i.chipsData = i.options.data, i._renderChips(i.chipsData)), i.hasAutocomplete && i._setupAutocomplete(), i._setPlaceholder(), i._setupLabel(), i._setupEventHandlers(), i; + } + return _inherits(l, Component), _createClass(l, [{key: "getData", value: function() { + return this.chipsData; + }}, {key: "destroy", value: function() { + this._removeEventHandlers(), this.$chips.remove(), this.el.M_Chips = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleChipClickBound = this._handleChipClick.bind(this), this._handleInputKeydownBound = this._handleInputKeydown.bind(this), this._handleInputFocusBound = this._handleInputFocus.bind(this), this._handleInputBlurBound = this._handleInputBlur.bind(this), this.el.addEventListener("click", this._handleChipClickBound), document.addEventListener("keydown", l._handleChipsKeydown), document.addEventListener("keyup", l._handleChipsKeyup), this.el.addEventListener("blur", l._handleChipsBlur, true), this.$input[0].addEventListener("focus", this._handleInputFocusBound), this.$input[0].addEventListener("blur", this._handleInputBlurBound), this.$input[0].addEventListener("keydown", this._handleInputKeydownBound); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("click", this._handleChipClickBound), document.removeEventListener("keydown", l._handleChipsKeydown), document.removeEventListener("keyup", l._handleChipsKeyup), this.el.removeEventListener("blur", l._handleChipsBlur, true), this.$input[0].removeEventListener("focus", this._handleInputFocusBound), this.$input[0].removeEventListener("blur", this._handleInputBlurBound), this.$input[0].removeEventListener("keydown", this._handleInputKeydownBound); + }}, {key: "_handleChipClick", value: function(t3) { + var e2 = h(t3.target).closest(".chip"), i = h(t3.target).is(".close"); + if (e2.length) { + var n = e2.index(); + i ? (this.deleteChip(n), this.$input[0].focus()) : this.selectChip(n); + } else + this.$input[0].focus(); + }}, {key: "_handleInputFocus", value: function() { + this.$el.addClass("focus"); + }}, {key: "_handleInputBlur", value: function() { + this.$el.removeClass("focus"); + }}, {key: "_handleInputKeydown", value: function(t3) { + if (l._keydown = true, t3.keyCode === 13) { + if (this.hasAutocomplete && this.autocomplete && this.autocomplete.isOpen) + return; + t3.preventDefault(), this.addChip({tag: this.$input[0].value}), this.$input[0].value = ""; + } else + t3.keyCode !== 8 && t3.keyCode !== 37 || this.$input[0].value !== "" || !this.chipsData.length || (t3.preventDefault(), this.selectChip(this.chipsData.length - 1)); + }}, {key: "_renderChip", value: function(t3) { + if (t3.tag) { + var e2 = document.createElement("div"), i = document.createElement("i"); + if (e2.classList.add("chip"), e2.textContent = t3.tag, e2.setAttribute("tabindex", 0), h(i).addClass("material-icons close"), i.textContent = "close", t3.image) { + var n = document.createElement("img"); + n.setAttribute("src", t3.image), e2.insertBefore(n, e2.firstChild); + } + return e2.appendChild(i), e2; + } + }}, {key: "_renderChips", value: function() { + this.$chips.remove(); + for (var t3 = 0; t3 < this.chipsData.length; t3++) { + var e2 = this._renderChip(this.chipsData[t3]); + this.$el.append(e2), this.$chips.add(e2); + } + this.$el.append(this.$input[0]); + }}, {key: "_setupAutocomplete", value: function() { + var e2 = this; + this.options.autocompleteOptions.onAutocomplete = function(t3) { + e2.addChip({tag: t3}), e2.$input[0].value = "", e2.$input[0].focus(); + }, this.autocomplete = M.Autocomplete.init(this.$input[0], this.options.autocompleteOptions); + }}, {key: "_setupInput", value: function() { + this.$input = this.$el.find("input"), this.$input.length || (this.$input = h(""), this.$el.append(this.$input)), this.$input.addClass("input"); + }}, {key: "_setupLabel", value: function() { + this.$label = this.$el.find("label"), this.$label.length && this.$label.setAttribute("for", this.$input.attr("id")); + }}, {key: "_setPlaceholder", value: function() { + this.chipsData !== void 0 && !this.chipsData.length && this.options.placeholder ? h(this.$input).prop("placeholder", this.options.placeholder) : (this.chipsData === void 0 || this.chipsData.length) && this.options.secondaryPlaceholder && h(this.$input).prop("placeholder", this.options.secondaryPlaceholder); + }}, {key: "_isValid", value: function(t3) { + if (t3.hasOwnProperty("tag") && t3.tag !== "") { + for (var e2 = false, i = 0; i < this.chipsData.length; i++) + if (this.chipsData[i].tag === t3.tag) { + e2 = true; + break; + } + return !e2; + } + return false; + }}, {key: "addChip", value: function(t3) { + if (this._isValid(t3) && !(this.chipsData.length >= this.options.limit)) { + var e2 = this._renderChip(t3); + this.$chips.add(e2), this.chipsData.push(t3), h(this.$input).before(e2), this._setPlaceholder(), typeof this.options.onChipAdd == "function" && this.options.onChipAdd.call(this, this.$el, e2); + } + }}, {key: "deleteChip", value: function(t3) { + var e2 = this.$chips.eq(t3); + this.$chips.eq(t3).remove(), this.$chips = this.$chips.filter(function(t4) { + return 0 <= h(t4).index(); + }), this.chipsData.splice(t3, 1), this._setPlaceholder(), typeof this.options.onChipDelete == "function" && this.options.onChipDelete.call(this, this.$el, e2[0]); + }}, {key: "selectChip", value: function(t3) { + var e2 = this.$chips.eq(t3); + (this._selectedChip = e2)[0].focus(), typeof this.options.onChipSelect == "function" && this.options.onChipSelect.call(this, this.$el, e2[0]); + }}], [{key: "init", value: function(t3, e2) { + return _get(l.__proto__ || Object.getPrototypeOf(l), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Chips; + }}, {key: "_handleChipsKeydown", value: function(t3) { + l._keydown = true; + var e2 = h(t3.target).closest(".chips"), i = t3.target && e2.length; + if (!h(t3.target).is("input, textarea") && i) { + var n = e2[0].M_Chips; + if (t3.keyCode === 8 || t3.keyCode === 46) { + t3.preventDefault(); + var s = n.chipsData.length; + if (n._selectedChip) { + var o = n._selectedChip.index(); + n.deleteChip(o), n._selectedChip = null, s = Math.max(o - 1, 0); + } + n.chipsData.length && n.selectChip(s); + } else if (t3.keyCode === 37) { + if (n._selectedChip) { + var a = n._selectedChip.index() - 1; + if (a < 0) + return; + n.selectChip(a); + } + } else if (t3.keyCode === 39 && n._selectedChip) { + var r = n._selectedChip.index() + 1; + r >= n.chipsData.length ? n.$input[0].focus() : n.selectChip(r); + } + } + }}, {key: "_handleChipsKeyup", value: function(t3) { + l._keydown = false; + }}, {key: "_handleChipsBlur", value: function(t3) { + l._keydown || (h(t3.target).closest(".chips")[0].M_Chips._selectedChip = null); + }}, {key: "defaults", get: function() { + return e; + }}]), l; + }(); + t._keydown = false, M.Chips = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "chips", "M_Chips"), h(document).ready(function() { + h(document.body).on("click", ".chip .close", function() { + var t2 = h(this).closest(".chips"); + t2.length && t2[0].M_Chips || h(this).closest(".chip").remove(); + }); + }); + }(cash), function(s) { + "use strict"; + var e = {top: 0, bottom: 1 / 0, offset: 0, onPositionChange: null}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_Pushpin = i).options = s.extend({}, n.defaults, e2), i.originalOffset = i.el.offsetTop, n._pushpins.push(i), i._setupEventHandlers(), i._updatePosition(), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this.el.style.top = null, this._removePinClasses(), this._removeEventHandlers(); + var t3 = n._pushpins.indexOf(this); + n._pushpins.splice(t3, 1); + }}, {key: "_setupEventHandlers", value: function() { + document.addEventListener("scroll", n._updateElements); + }}, {key: "_removeEventHandlers", value: function() { + document.removeEventListener("scroll", n._updateElements); + }}, {key: "_updatePosition", value: function() { + var t3 = M.getDocumentScrollTop() + this.options.offset; + this.options.top <= t3 && this.options.bottom >= t3 && !this.el.classList.contains("pinned") && (this._removePinClasses(), this.el.style.top = this.options.offset + "px", this.el.classList.add("pinned"), typeof this.options.onPositionChange == "function" && this.options.onPositionChange.call(this, "pinned")), t3 < this.options.top && !this.el.classList.contains("pin-top") && (this._removePinClasses(), this.el.style.top = 0, this.el.classList.add("pin-top"), typeof this.options.onPositionChange == "function" && this.options.onPositionChange.call(this, "pin-top")), t3 > this.options.bottom && !this.el.classList.contains("pin-bottom") && (this._removePinClasses(), this.el.classList.add("pin-bottom"), this.el.style.top = this.options.bottom - this.originalOffset + "px", typeof this.options.onPositionChange == "function" && this.options.onPositionChange.call(this, "pin-bottom")); + }}, {key: "_removePinClasses", value: function() { + this.el.classList.remove("pin-top"), this.el.classList.remove("pinned"), this.el.classList.remove("pin-bottom"); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Pushpin; + }}, {key: "_updateElements", value: function() { + for (var t3 in n._pushpins) { + n._pushpins[t3]._updatePosition(); + } + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + t._pushpins = [], M.Pushpin = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "pushpin", "M_Pushpin"); + }(cash), function(r, s) { + "use strict"; + var e = {direction: "top", hoverEnabled: true, toolbarEnabled: false}; + r.fn.reverse = [].reverse; + var t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_FloatingActionButton = i).options = r.extend({}, n.defaults, e2), i.isOpen = false, i.$anchor = i.$el.children("a").first(), i.$menu = i.$el.children("ul").first(), i.$floatingBtns = i.$el.find("ul .btn-floating"), i.$floatingBtnsReverse = i.$el.find("ul .btn-floating").reverse(), i.offsetY = 0, i.offsetX = 0, i.$el.addClass("direction-" + i.options.direction), i.options.direction === "top" ? i.offsetY = 40 : i.options.direction === "right" ? i.offsetX = -40 : i.options.direction === "bottom" ? i.offsetY = -40 : i.offsetX = 40, i._setupEventHandlers(), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.el.M_FloatingActionButton = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleFABClickBound = this._handleFABClick.bind(this), this._handleOpenBound = this.open.bind(this), this._handleCloseBound = this.close.bind(this), this.options.hoverEnabled && !this.options.toolbarEnabled ? (this.el.addEventListener("mouseenter", this._handleOpenBound), this.el.addEventListener("mouseleave", this._handleCloseBound)) : this.el.addEventListener("click", this._handleFABClickBound); + }}, {key: "_removeEventHandlers", value: function() { + this.options.hoverEnabled && !this.options.toolbarEnabled ? (this.el.removeEventListener("mouseenter", this._handleOpenBound), this.el.removeEventListener("mouseleave", this._handleCloseBound)) : this.el.removeEventListener("click", this._handleFABClickBound); + }}, {key: "_handleFABClick", value: function() { + this.isOpen ? this.close() : this.open(); + }}, {key: "_handleDocumentClick", value: function(t3) { + r(t3.target).closest(this.$menu).length || this.close(); + }}, {key: "open", value: function() { + this.isOpen || (this.options.toolbarEnabled ? this._animateInToolbar() : this._animateInFAB(), this.isOpen = true); + }}, {key: "close", value: function() { + this.isOpen && (this.options.toolbarEnabled ? (window.removeEventListener("scroll", this._handleCloseBound, true), document.body.removeEventListener("click", this._handleDocumentClickBound, true), this._animateOutToolbar()) : this._animateOutFAB(), this.isOpen = false); + }}, {key: "_animateInFAB", value: function() { + var e2 = this; + this.$el.addClass("active"); + var i = 0; + this.$floatingBtnsReverse.each(function(t3) { + s({targets: t3, opacity: 1, scale: [0.4, 1], translateY: [e2.offsetY, 0], translateX: [e2.offsetX, 0], duration: 275, delay: i, easing: "easeInOutQuad"}), i += 40; + }); + }}, {key: "_animateOutFAB", value: function() { + var e2 = this; + this.$floatingBtnsReverse.each(function(t3) { + s.remove(t3), s({targets: t3, opacity: 0, scale: 0.4, translateY: e2.offsetY, translateX: e2.offsetX, duration: 175, easing: "easeOutQuad", complete: function() { + e2.$el.removeClass("active"); + }}); + }); + }}, {key: "_animateInToolbar", value: function() { + var t3, e2 = this, i = window.innerWidth, n2 = window.innerHeight, s2 = this.el.getBoundingClientRect(), o = r('
      '), a = this.$anchor.css("background-color"); + this.$anchor.append(o), this.offsetX = s2.left - i / 2 + s2.width / 2, this.offsetY = n2 - s2.bottom, t3 = i / o[0].clientWidth, this.btnBottom = s2.bottom, this.btnLeft = s2.left, this.btnWidth = s2.width, this.$el.addClass("active"), this.$el.css({"text-align": "center", width: "100%", bottom: 0, left: 0, transform: "translateX(" + this.offsetX + "px)", transition: "none"}), this.$anchor.css({transform: "translateY(" + -this.offsetY + "px)", transition: "none"}), o.css({"background-color": a}), setTimeout(function() { + e2.$el.css({transform: "", transition: "transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"}), e2.$anchor.css({overflow: "visible", transform: "", transition: "transform .2s"}), setTimeout(function() { + e2.$el.css({overflow: "hidden", "background-color": a}), o.css({transform: "scale(" + t3 + ")", transition: "transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}), e2.$menu.children("li").children("a").css({opacity: 1}), e2._handleDocumentClickBound = e2._handleDocumentClick.bind(e2), window.addEventListener("scroll", e2._handleCloseBound, true), document.body.addEventListener("click", e2._handleDocumentClickBound, true); + }, 100); + }, 0); + }}, {key: "_animateOutToolbar", value: function() { + var t3 = this, e2 = window.innerWidth, i = window.innerHeight, n2 = this.$el.find(".fab-backdrop"), s2 = this.$anchor.css("background-color"); + this.offsetX = this.btnLeft - e2 / 2 + this.btnWidth / 2, this.offsetY = i - this.btnBottom, this.$el.removeClass("active"), this.$el.css({"background-color": "transparent", transition: "none"}), this.$anchor.css({transition: "none"}), n2.css({transform: "scale(0)", "background-color": s2}), this.$menu.children("li").children("a").css({opacity: ""}), setTimeout(function() { + n2.remove(), t3.$el.css({"text-align": "", width: "", bottom: "", left: "", overflow: "", "background-color": "", transform: "translate3d(" + -t3.offsetX + "px,0,0)"}), t3.$anchor.css({overflow: "", transform: "translate3d(0," + t3.offsetY + "px,0)"}), setTimeout(function() { + t3.$el.css({transform: "translate3d(0,0,0)", transition: "transform .2s"}), t3.$anchor.css({transform: "translate3d(0,0,0)", transition: "transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}); + }, 20); + }, 200); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_FloatingActionButton; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + M.FloatingActionButton = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "floatingActionButton", "M_FloatingActionButton"); + }(cash, M.anime), function(g) { + "use strict"; + var e = {autoClose: false, format: "mmm dd, yyyy", parse: null, defaultDate: null, setDefaultDate: false, disableWeekends: false, disableDayFn: null, firstDay: 0, minDate: null, maxDate: null, yearRange: 10, minYear: 0, maxYear: 9999, minMonth: void 0, maxMonth: void 0, startRange: null, endRange: null, isRTL: false, showMonthAfterYear: false, showDaysInNextAndPreviousMonths: false, container: null, showClearBtn: false, i18n: {cancel: "Cancel", clear: "Clear", done: "Ok", previousMonth: "\u2039", nextMonth: "\u203A", months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], weekdays: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], weekdaysAbbrev: ["S", "M", "T", "W", "T", "F", "S"]}, events: [], onSelect: null, onOpen: null, onClose: null, onDraw: null}, t = function(t2) { + function B(t3, e2) { + _classCallCheck(this, B); + var i = _possibleConstructorReturn(this, (B.__proto__ || Object.getPrototypeOf(B)).call(this, B, t3, e2)); + (i.el.M_Datepicker = i).options = g.extend({}, B.defaults, e2), e2 && e2.hasOwnProperty("i18n") && typeof e2.i18n == "object" && (i.options.i18n = g.extend({}, B.defaults.i18n, e2.i18n)), i.options.minDate && i.options.minDate.setHours(0, 0, 0, 0), i.options.maxDate && i.options.maxDate.setHours(0, 0, 0, 0), i.id = M.guid(), i._setupVariables(), i._insertHTMLIntoDOM(), i._setupModal(), i._setupEventHandlers(), i.options.defaultDate || (i.options.defaultDate = new Date(Date.parse(i.el.value))); + var n = i.options.defaultDate; + return B._isDate(n) ? i.options.setDefaultDate ? (i.setDate(n, true), i.setInputValue()) : i.gotoDate(n) : i.gotoDate(new Date()), i.isOpen = false, i; + } + return _inherits(B, Component), _createClass(B, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.modal.destroy(), g(this.modalEl).remove(), this.destroySelects(), this.el.M_Datepicker = void 0; + }}, {key: "destroySelects", value: function() { + var t3 = this.calendarEl.querySelector(".orig-select-year"); + t3 && M.FormSelect.getInstance(t3).destroy(); + var e2 = this.calendarEl.querySelector(".orig-select-month"); + e2 && M.FormSelect.getInstance(e2).destroy(); + }}, {key: "_insertHTMLIntoDOM", value: function() { + this.options.showClearBtn && (g(this.clearBtn).css({visibility: ""}), this.clearBtn.innerHTML = this.options.i18n.clear), this.doneBtn.innerHTML = this.options.i18n.done, this.cancelBtn.innerHTML = this.options.i18n.cancel, this.options.container ? this.$modalEl.appendTo(this.options.container) : this.$modalEl.insertBefore(this.el); + }}, {key: "_setupModal", value: function() { + var t3 = this; + this.modalEl.id = "modal-" + this.id, this.modal = M.Modal.init(this.modalEl, {onCloseEnd: function() { + t3.isOpen = false; + }}); + }}, {key: "toString", value: function(t3) { + var e2 = this; + return t3 = t3 || this.options.format, B._isDate(this.date) ? t3.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g).map(function(t4) { + return e2.formats[t4] ? e2.formats[t4]() : t4; + }).join("") : ""; + }}, {key: "setDate", value: function(t3, e2) { + if (!t3) + return this.date = null, this._renderDateDisplay(), this.draw(); + if (typeof t3 == "string" && (t3 = new Date(Date.parse(t3))), B._isDate(t3)) { + var i = this.options.minDate, n = this.options.maxDate; + B._isDate(i) && t3 < i ? t3 = i : B._isDate(n) && n < t3 && (t3 = n), this.date = new Date(t3.getTime()), this._renderDateDisplay(), B._setToStartOfDay(this.date), this.gotoDate(this.date), e2 || typeof this.options.onSelect != "function" || this.options.onSelect.call(this, this.date); + } + }}, {key: "setInputValue", value: function() { + this.el.value = this.toString(), this.$el.trigger("change", {firedBy: this}); + }}, {key: "_renderDateDisplay", value: function() { + var t3 = B._isDate(this.date) ? this.date : new Date(), e2 = this.options.i18n, i = e2.weekdaysShort[t3.getDay()], n = e2.monthsShort[t3.getMonth()], s = t3.getDate(); + this.yearTextEl.innerHTML = t3.getFullYear(), this.dateTextEl.innerHTML = i + ", " + n + " " + s; + }}, {key: "gotoDate", value: function(t3) { + var e2 = true; + if (B._isDate(t3)) { + if (this.calendars) { + var i = new Date(this.calendars[0].year, this.calendars[0].month, 1), n = new Date(this.calendars[this.calendars.length - 1].year, this.calendars[this.calendars.length - 1].month, 1), s = t3.getTime(); + n.setMonth(n.getMonth() + 1), n.setDate(n.getDate() - 1), e2 = s < i.getTime() || n.getTime() < s; + } + e2 && (this.calendars = [{month: t3.getMonth(), year: t3.getFullYear()}]), this.adjustCalendars(); + } + }}, {key: "adjustCalendars", value: function() { + this.calendars[0] = this.adjustCalendar(this.calendars[0]), this.draw(); + }}, {key: "adjustCalendar", value: function(t3) { + return t3.month < 0 && (t3.year -= Math.ceil(Math.abs(t3.month) / 12), t3.month += 12), 11 < t3.month && (t3.year += Math.floor(Math.abs(t3.month) / 12), t3.month -= 12), t3; + }}, {key: "nextMonth", value: function() { + this.calendars[0].month++, this.adjustCalendars(); + }}, {key: "prevMonth", value: function() { + this.calendars[0].month--, this.adjustCalendars(); + }}, {key: "render", value: function(t3, e2, i) { + var n = this.options, s = new Date(), o = B._getDaysInMonth(t3, e2), a = new Date(t3, e2, 1).getDay(), r = [], l = []; + B._setToStartOfDay(s), 0 < n.firstDay && (a -= n.firstDay) < 0 && (a += 7); + for (var h = e2 === 0 ? 11 : e2 - 1, d = e2 === 11 ? 0 : e2 + 1, u = e2 === 0 ? t3 - 1 : t3, c = e2 === 11 ? t3 + 1 : t3, p = B._getDaysInMonth(u, h), v = o + a, f = v; 7 < f; ) + f -= 7; + v += 7 - f; + for (var m = false, g2 = 0, _2 = 0; g2 < v; g2++) { + var y = new Date(t3, e2, g2 - a + 1), k = !!B._isDate(this.date) && B._compareDates(y, this.date), b = B._compareDates(y, s), w = n.events.indexOf(y.toDateString()) !== -1, C = g2 < a || o + a <= g2, E = g2 - a + 1, M2 = e2, O = t3, x = n.startRange && B._compareDates(n.startRange, y), L = n.endRange && B._compareDates(n.endRange, y), T = n.startRange && n.endRange && n.startRange < y && y < n.endRange; + C && (g2 < a ? (E = p + E, M2 = h, O = u) : (E -= o, M2 = d, O = c)); + var $2 = {day: E, month: M2, year: O, hasEvent: w, isSelected: k, isToday: b, isDisabled: n.minDate && y < n.minDate || n.maxDate && y > n.maxDate || n.disableWeekends && B._isWeekend(y) || n.disableDayFn && n.disableDayFn(y), isEmpty: C, isStartRange: x, isEndRange: L, isInRange: T, showDaysInNextAndPreviousMonths: n.showDaysInNextAndPreviousMonths}; + l.push(this.renderDay($2)), ++_2 == 7 && (r.push(this.renderRow(l, n.isRTL, m)), _2 = 0, m = !(l = [])); + } + return this.renderTable(n, r, i); + }}, {key: "renderDay", value: function(t3) { + var e2 = [], i = "false"; + if (t3.isEmpty) { + if (!t3.showDaysInNextAndPreviousMonths) + return ''; + e2.push("is-outside-current-month"), e2.push("is-selection-disabled"); + } + return t3.isDisabled && e2.push("is-disabled"), t3.isToday && e2.push("is-today"), t3.isSelected && (e2.push("is-selected"), i = "true"), t3.hasEvent && e2.push("has-event"), t3.isInRange && e2.push("is-inrange"), t3.isStartRange && e2.push("is-startrange"), t3.isEndRange && e2.push("is-endrange"), '"; + }}, {key: "renderRow", value: function(t3, e2, i) { + return '' + (e2 ? t3.reverse() : t3).join("") + ""; + }}, {key: "renderTable", value: function(t3, e2, i) { + return '
      ' + this.renderHead(t3) + this.renderBody(e2) + "
      "; + }}, {key: "renderHead", value: function(t3) { + var e2 = void 0, i = []; + for (e2 = 0; e2 < 7; e2++) + i.push('' + this.renderDayName(t3, e2, true) + ""); + return "" + (t3.isRTL ? i.reverse() : i).join("") + ""; + }}, {key: "renderBody", value: function(t3) { + return "" + t3.join("") + ""; + }}, {key: "renderTitle", value: function(t3, e2, i, n, s, o) { + var a, r, l = void 0, h = void 0, d = void 0, u = this.options, c = i === u.minYear, p = i === u.maxYear, v = '
      ', f = true, m = true; + for (d = [], l = 0; l < 12; l++) + d.push('"); + for (a = '", g.isArray(u.yearRange) ? (l = u.yearRange[0], h = u.yearRange[1] + 1) : (l = i - u.yearRange, h = 1 + i + u.yearRange), d = []; l < h && l <= u.maxYear; l++) + l >= u.minYear && d.push('"); + r = '"; + v += '', v += '
      ', u.showMonthAfterYear ? v += r + a : v += a + r, v += "
      ", c && (n === 0 || u.minMonth >= n) && (f = false), p && (n === 11 || u.maxMonth <= n) && (m = false); + return (v += '') + "
      "; + }}, {key: "draw", value: function(t3) { + if (this.isOpen || t3) { + var e2, i = this.options, n = i.minYear, s = i.maxYear, o = i.minMonth, a = i.maxMonth, r = ""; + this._y <= n && (this._y = n, !isNaN(o) && this._m < o && (this._m = o)), this._y >= s && (this._y = s, !isNaN(a) && this._m > a && (this._m = a)), e2 = "datepicker-title-" + Math.random().toString(36).replace(/[^a-z]+/g, "").substr(0, 2); + for (var l = 0; l < 1; l++) + this._renderDateDisplay(), r += this.renderTitle(this, l, this.calendars[l].year, this.calendars[l].month, this.calendars[0].year, e2) + this.render(this.calendars[l].year, this.calendars[l].month, e2); + this.destroySelects(), this.calendarEl.innerHTML = r; + var h = this.calendarEl.querySelector(".orig-select-year"), d = this.calendarEl.querySelector(".orig-select-month"); + M.FormSelect.init(h, {classes: "select-year", dropdownOptions: {container: document.body, constrainWidth: false}}), M.FormSelect.init(d, {classes: "select-month", dropdownOptions: {container: document.body, constrainWidth: false}}), h.addEventListener("change", this._handleYearChange.bind(this)), d.addEventListener("change", this._handleMonthChange.bind(this)), typeof this.options.onDraw == "function" && this.options.onDraw(this); + } + }}, {key: "_setupEventHandlers", value: function() { + this._handleInputKeydownBound = this._handleInputKeydown.bind(this), this._handleInputClickBound = this._handleInputClick.bind(this), this._handleInputChangeBound = this._handleInputChange.bind(this), this._handleCalendarClickBound = this._handleCalendarClick.bind(this), this._finishSelectionBound = this._finishSelection.bind(this), this._handleMonthChange = this._handleMonthChange.bind(this), this._closeBound = this.close.bind(this), this.el.addEventListener("click", this._handleInputClickBound), this.el.addEventListener("keydown", this._handleInputKeydownBound), this.el.addEventListener("change", this._handleInputChangeBound), this.calendarEl.addEventListener("click", this._handleCalendarClickBound), this.doneBtn.addEventListener("click", this._finishSelectionBound), this.cancelBtn.addEventListener("click", this._closeBound), this.options.showClearBtn && (this._handleClearClickBound = this._handleClearClick.bind(this), this.clearBtn.addEventListener("click", this._handleClearClickBound)); + }}, {key: "_setupVariables", value: function() { + var e2 = this; + this.$modalEl = g(B._template), this.modalEl = this.$modalEl[0], this.calendarEl = this.modalEl.querySelector(".datepicker-calendar"), this.yearTextEl = this.modalEl.querySelector(".year-text"), this.dateTextEl = this.modalEl.querySelector(".date-text"), this.options.showClearBtn && (this.clearBtn = this.modalEl.querySelector(".datepicker-clear")), this.doneBtn = this.modalEl.querySelector(".datepicker-done"), this.cancelBtn = this.modalEl.querySelector(".datepicker-cancel"), this.formats = {d: function() { + return e2.date.getDate(); + }, dd: function() { + var t3 = e2.date.getDate(); + return (t3 < 10 ? "0" : "") + t3; + }, ddd: function() { + return e2.options.i18n.weekdaysShort[e2.date.getDay()]; + }, dddd: function() { + return e2.options.i18n.weekdays[e2.date.getDay()]; + }, m: function() { + return e2.date.getMonth() + 1; + }, mm: function() { + var t3 = e2.date.getMonth() + 1; + return (t3 < 10 ? "0" : "") + t3; + }, mmm: function() { + return e2.options.i18n.monthsShort[e2.date.getMonth()]; + }, mmmm: function() { + return e2.options.i18n.months[e2.date.getMonth()]; + }, yy: function() { + return ("" + e2.date.getFullYear()).slice(2); + }, yyyy: function() { + return e2.date.getFullYear(); + }}; + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("click", this._handleInputClickBound), this.el.removeEventListener("keydown", this._handleInputKeydownBound), this.el.removeEventListener("change", this._handleInputChangeBound), this.calendarEl.removeEventListener("click", this._handleCalendarClickBound); + }}, {key: "_handleInputClick", value: function() { + this.open(); + }}, {key: "_handleInputKeydown", value: function(t3) { + t3.which === M.keys.ENTER && (t3.preventDefault(), this.open()); + }}, {key: "_handleCalendarClick", value: function(t3) { + if (this.isOpen) { + var e2 = g(t3.target); + e2.hasClass("is-disabled") || (!e2.hasClass("datepicker-day-button") || e2.hasClass("is-empty") || e2.parent().hasClass("is-disabled") ? e2.closest(".month-prev").length ? this.prevMonth() : e2.closest(".month-next").length && this.nextMonth() : (this.setDate(new Date(t3.target.getAttribute("data-year"), t3.target.getAttribute("data-month"), t3.target.getAttribute("data-day"))), this.options.autoClose && this._finishSelection())); + } + }}, {key: "_handleClearClick", value: function() { + this.date = null, this.setInputValue(), this.close(); + }}, {key: "_handleMonthChange", value: function(t3) { + this.gotoMonth(t3.target.value); + }}, {key: "_handleYearChange", value: function(t3) { + this.gotoYear(t3.target.value); + }}, {key: "gotoMonth", value: function(t3) { + isNaN(t3) || (this.calendars[0].month = parseInt(t3, 10), this.adjustCalendars()); + }}, {key: "gotoYear", value: function(t3) { + isNaN(t3) || (this.calendars[0].year = parseInt(t3, 10), this.adjustCalendars()); + }}, {key: "_handleInputChange", value: function(t3) { + var e2 = void 0; + t3.firedBy !== this && (e2 = this.options.parse ? this.options.parse(this.el.value, this.options.format) : new Date(Date.parse(this.el.value)), B._isDate(e2) && this.setDate(e2)); + }}, {key: "renderDayName", value: function(t3, e2, i) { + for (e2 += t3.firstDay; 7 <= e2; ) + e2 -= 7; + return i ? t3.i18n.weekdaysAbbrev[e2] : t3.i18n.weekdays[e2]; + }}, {key: "_finishSelection", value: function() { + this.setInputValue(), this.close(); + }}, {key: "open", value: function() { + if (!this.isOpen) + return this.isOpen = true, typeof this.options.onOpen == "function" && this.options.onOpen.call(this), this.draw(), this.modal.open(), this; + }}, {key: "close", value: function() { + if (this.isOpen) + return this.isOpen = false, typeof this.options.onClose == "function" && this.options.onClose.call(this), this.modal.close(), this; + }}], [{key: "init", value: function(t3, e2) { + return _get(B.__proto__ || Object.getPrototypeOf(B), "init", this).call(this, this, t3, e2); + }}, {key: "_isDate", value: function(t3) { + return /Date/.test(Object.prototype.toString.call(t3)) && !isNaN(t3.getTime()); + }}, {key: "_isWeekend", value: function(t3) { + var e2 = t3.getDay(); + return e2 === 0 || e2 === 6; + }}, {key: "_setToStartOfDay", value: function(t3) { + B._isDate(t3) && t3.setHours(0, 0, 0, 0); + }}, {key: "_getDaysInMonth", value: function(t3, e2) { + return [31, B._isLeapYear(t3) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e2]; + }}, {key: "_isLeapYear", value: function(t3) { + return t3 % 4 == 0 && t3 % 100 != 0 || t3 % 400 == 0; + }}, {key: "_compareDates", value: function(t3, e2) { + return t3.getTime() === e2.getTime(); + }}, {key: "_setToStartOfDay", value: function(t3) { + B._isDate(t3) && t3.setHours(0, 0, 0, 0); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Datepicker; + }}, {key: "defaults", get: function() { + return e; + }}]), B; + }(); + t._template = ['"].join(""), M.Datepicker = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "datepicker", "M_Datepicker"); + }(cash), function(h) { + "use strict"; + var e = {dialRadius: 135, outerRadius: 105, innerRadius: 70, tickRadius: 20, duration: 350, container: null, defaultTime: "now", fromNow: 0, showClearBtn: false, i18n: {cancel: "Cancel", clear: "Clear", done: "Ok"}, autoClose: false, twelveHour: true, vibrate: true, onOpenStart: null, onOpenEnd: null, onCloseStart: null, onCloseEnd: null, onSelect: null}, t = function(t2) { + function f(t3, e2) { + _classCallCheck(this, f); + var i = _possibleConstructorReturn(this, (f.__proto__ || Object.getPrototypeOf(f)).call(this, f, t3, e2)); + return (i.el.M_Timepicker = i).options = h.extend({}, f.defaults, e2), i.id = M.guid(), i._insertHTMLIntoDOM(), i._setupModal(), i._setupVariables(), i._setupEventHandlers(), i._clockSetup(), i._pickerSetup(), i; + } + return _inherits(f, Component), _createClass(f, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.modal.destroy(), h(this.modalEl).remove(), this.el.M_Timepicker = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleInputKeydownBound = this._handleInputKeydown.bind(this), this._handleInputClickBound = this._handleInputClick.bind(this), this._handleClockClickStartBound = this._handleClockClickStart.bind(this), this._handleDocumentClickMoveBound = this._handleDocumentClickMove.bind(this), this._handleDocumentClickEndBound = this._handleDocumentClickEnd.bind(this), this.el.addEventListener("click", this._handleInputClickBound), this.el.addEventListener("keydown", this._handleInputKeydownBound), this.plate.addEventListener("mousedown", this._handleClockClickStartBound), this.plate.addEventListener("touchstart", this._handleClockClickStartBound), h(this.spanHours).on("click", this.showView.bind(this, "hours")), h(this.spanMinutes).on("click", this.showView.bind(this, "minutes")); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("click", this._handleInputClickBound), this.el.removeEventListener("keydown", this._handleInputKeydownBound); + }}, {key: "_handleInputClick", value: function() { + this.open(); + }}, {key: "_handleInputKeydown", value: function(t3) { + t3.which === M.keys.ENTER && (t3.preventDefault(), this.open()); + }}, {key: "_handleClockClickStart", value: function(t3) { + t3.preventDefault(); + var e2 = this.plate.getBoundingClientRect(), i = e2.left, n = e2.top; + this.x0 = i + this.options.dialRadius, this.y0 = n + this.options.dialRadius, this.moved = false; + var s = f._Pos(t3); + this.dx = s.x - this.x0, this.dy = s.y - this.y0, this.setHand(this.dx, this.dy, false), document.addEventListener("mousemove", this._handleDocumentClickMoveBound), document.addEventListener("touchmove", this._handleDocumentClickMoveBound), document.addEventListener("mouseup", this._handleDocumentClickEndBound), document.addEventListener("touchend", this._handleDocumentClickEndBound); + }}, {key: "_handleDocumentClickMove", value: function(t3) { + t3.preventDefault(); + var e2 = f._Pos(t3), i = e2.x - this.x0, n = e2.y - this.y0; + this.moved = true, this.setHand(i, n, false, true); + }}, {key: "_handleDocumentClickEnd", value: function(t3) { + var e2 = this; + t3.preventDefault(), document.removeEventListener("mouseup", this._handleDocumentClickEndBound), document.removeEventListener("touchend", this._handleDocumentClickEndBound); + var i = f._Pos(t3), n = i.x - this.x0, s = i.y - this.y0; + this.moved && n === this.dx && s === this.dy && this.setHand(n, s), this.currentView === "hours" ? this.showView("minutes", this.options.duration / 2) : this.options.autoClose && (h(this.minutesView).addClass("timepicker-dial-out"), setTimeout(function() { + e2.done(); + }, this.options.duration / 2)), typeof this.options.onSelect == "function" && this.options.onSelect.call(this, this.hours, this.minutes), document.removeEventListener("mousemove", this._handleDocumentClickMoveBound), document.removeEventListener("touchmove", this._handleDocumentClickMoveBound); + }}, {key: "_insertHTMLIntoDOM", value: function() { + this.$modalEl = h(f._template), this.modalEl = this.$modalEl[0], this.modalEl.id = "modal-" + this.id; + var t3 = document.querySelector(this.options.container); + this.options.container && t3 ? this.$modalEl.appendTo(t3) : this.$modalEl.insertBefore(this.el); + }}, {key: "_setupModal", value: function() { + var t3 = this; + this.modal = M.Modal.init(this.modalEl, {onOpenStart: this.options.onOpenStart, onOpenEnd: this.options.onOpenEnd, onCloseStart: this.options.onCloseStart, onCloseEnd: function() { + typeof t3.options.onCloseEnd == "function" && t3.options.onCloseEnd.call(t3), t3.isOpen = false; + }}); + }}, {key: "_setupVariables", value: function() { + this.currentView = "hours", this.vibrate = navigator.vibrate ? "vibrate" : navigator.webkitVibrate ? "webkitVibrate" : null, this._canvas = this.modalEl.querySelector(".timepicker-canvas"), this.plate = this.modalEl.querySelector(".timepicker-plate"), this.hoursView = this.modalEl.querySelector(".timepicker-hours"), this.minutesView = this.modalEl.querySelector(".timepicker-minutes"), this.spanHours = this.modalEl.querySelector(".timepicker-span-hours"), this.spanMinutes = this.modalEl.querySelector(".timepicker-span-minutes"), this.spanAmPm = this.modalEl.querySelector(".timepicker-span-am-pm"), this.footer = this.modalEl.querySelector(".timepicker-footer"), this.amOrPm = "PM"; + }}, {key: "_pickerSetup", value: function() { + var t3 = h('").appendTo(this.footer).on("click", this.clear.bind(this)); + this.options.showClearBtn && t3.css({visibility: ""}); + var e2 = h('
      '); + h('").appendTo(e2).on("click", this.close.bind(this)), h('").appendTo(e2).on("click", this.done.bind(this)), e2.appendTo(this.footer); + }}, {key: "_clockSetup", value: function() { + this.options.twelveHour && (this.$amBtn = h('
      AM
      '), this.$pmBtn = h('
      PM
      '), this.$amBtn.on("click", this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm), this.$pmBtn.on("click", this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm)), this._buildHoursView(), this._buildMinutesView(), this._buildSVGClock(); + }}, {key: "_buildSVGClock", value: function() { + var t3 = this.options.dialRadius, e2 = this.options.tickRadius, i = 2 * t3, n = f._createSVGEl("svg"); + n.setAttribute("class", "timepicker-svg"), n.setAttribute("width", i), n.setAttribute("height", i); + var s = f._createSVGEl("g"); + s.setAttribute("transform", "translate(" + t3 + "," + t3 + ")"); + var o = f._createSVGEl("circle"); + o.setAttribute("class", "timepicker-canvas-bearing"), o.setAttribute("cx", 0), o.setAttribute("cy", 0), o.setAttribute("r", 4); + var a = f._createSVGEl("line"); + a.setAttribute("x1", 0), a.setAttribute("y1", 0); + var r = f._createSVGEl("circle"); + r.setAttribute("class", "timepicker-canvas-bg"), r.setAttribute("r", e2), s.appendChild(a), s.appendChild(r), s.appendChild(o), n.appendChild(s), this._canvas.appendChild(n), this.hand = a, this.bg = r, this.bearing = o, this.g = s; + }}, {key: "_buildHoursView", value: function() { + var t3 = h('
      '); + if (this.options.twelveHour) + for (var e2 = 1; e2 < 13; e2 += 1) { + var i = t3.clone(), n = e2 / 6 * Math.PI, s = this.options.outerRadius; + i.css({left: this.options.dialRadius + Math.sin(n) * s - this.options.tickRadius + "px", top: this.options.dialRadius - Math.cos(n) * s - this.options.tickRadius + "px"}), i.html(e2 === 0 ? "00" : e2), this.hoursView.appendChild(i[0]); + } + else + for (var o = 0; o < 24; o += 1) { + var a = t3.clone(), r = o / 6 * Math.PI, l = 0 < o && o < 13 ? this.options.innerRadius : this.options.outerRadius; + a.css({left: this.options.dialRadius + Math.sin(r) * l - this.options.tickRadius + "px", top: this.options.dialRadius - Math.cos(r) * l - this.options.tickRadius + "px"}), a.html(o === 0 ? "00" : o), this.hoursView.appendChild(a[0]); + } + }}, {key: "_buildMinutesView", value: function() { + for (var t3 = h('
      '), e2 = 0; e2 < 60; e2 += 5) { + var i = t3.clone(), n = e2 / 30 * Math.PI; + i.css({left: this.options.dialRadius + Math.sin(n) * this.options.outerRadius - this.options.tickRadius + "px", top: this.options.dialRadius - Math.cos(n) * this.options.outerRadius - this.options.tickRadius + "px"}), i.html(f._addLeadingZero(e2)), this.minutesView.appendChild(i[0]); + } + }}, {key: "_handleAmPmClick", value: function(t3) { + var e2 = h(t3.target); + this.amOrPm = e2.hasClass("am-btn") ? "AM" : "PM", this._updateAmPmView(); + }}, {key: "_updateAmPmView", value: function() { + this.options.twelveHour && (this.$amBtn.toggleClass("text-primary", this.amOrPm === "AM"), this.$pmBtn.toggleClass("text-primary", this.amOrPm === "PM")); + }}, {key: "_updateTimeFromInput", value: function() { + var t3 = ((this.el.value || this.options.defaultTime || "") + "").split(":"); + if (this.options.twelveHour && t3[1] !== void 0 && (0 < t3[1].toUpperCase().indexOf("AM") ? this.amOrPm = "AM" : this.amOrPm = "PM", t3[1] = t3[1].replace("AM", "").replace("PM", "")), t3[0] === "now") { + var e2 = new Date(+new Date() + this.options.fromNow); + t3 = [e2.getHours(), e2.getMinutes()], this.options.twelveHour && (this.amOrPm = 12 <= t3[0] && t3[0] < 24 ? "PM" : "AM"); + } + this.hours = +t3[0] || 0, this.minutes = +t3[1] || 0, this.spanHours.innerHTML = this.hours, this.spanMinutes.innerHTML = f._addLeadingZero(this.minutes), this._updateAmPmView(); + }}, {key: "showView", value: function(t3, e2) { + t3 === "minutes" && h(this.hoursView).css("visibility"); + var i = t3 === "hours", n = i ? this.hoursView : this.minutesView, s = i ? this.minutesView : this.hoursView; + this.currentView = t3, h(this.spanHours).toggleClass("text-primary", i), h(this.spanMinutes).toggleClass("text-primary", !i), s.classList.add("timepicker-dial-out"), h(n).css("visibility", "visible").removeClass("timepicker-dial-out"), this.resetClock(e2), clearTimeout(this.toggleViewTimer), this.toggleViewTimer = setTimeout(function() { + h(s).css("visibility", "hidden"); + }, this.options.duration); + }}, {key: "resetClock", value: function(t3) { + var e2 = this.currentView, i = this[e2], n = e2 === "hours", s = i * (Math.PI / (n ? 6 : 30)), o = n && 0 < i && i < 13 ? this.options.innerRadius : this.options.outerRadius, a = Math.sin(s) * o, r = -Math.cos(s) * o, l = this; + t3 ? (h(this.canvas).addClass("timepicker-canvas-out"), setTimeout(function() { + h(l.canvas).removeClass("timepicker-canvas-out"), l.setHand(a, r); + }, t3)) : this.setHand(a, r); + }}, {key: "setHand", value: function(t3, e2, i) { + var n = this, s = Math.atan2(t3, -e2), o = this.currentView === "hours", a = Math.PI / (o || i ? 6 : 30), r = Math.sqrt(t3 * t3 + e2 * e2), l = o && r < (this.options.outerRadius + this.options.innerRadius) / 2, h2 = l ? this.options.innerRadius : this.options.outerRadius; + this.options.twelveHour && (h2 = this.options.outerRadius), s < 0 && (s = 2 * Math.PI + s); + var d = Math.round(s / a); + s = d * a, this.options.twelveHour ? o ? d === 0 && (d = 12) : (i && (d *= 5), d === 60 && (d = 0)) : o ? (d === 12 && (d = 0), d = l ? d === 0 ? 12 : d : d === 0 ? 0 : d + 12) : (i && (d *= 5), d === 60 && (d = 0)), this[this.currentView] !== d && this.vibrate && this.options.vibrate && (this.vibrateTimer || (navigator[this.vibrate](10), this.vibrateTimer = setTimeout(function() { + n.vibrateTimer = null; + }, 100))), this[this.currentView] = d, o ? this.spanHours.innerHTML = d : this.spanMinutes.innerHTML = f._addLeadingZero(d); + var u = Math.sin(s) * (h2 - this.options.tickRadius), c = -Math.cos(s) * (h2 - this.options.tickRadius), p = Math.sin(s) * h2, v = -Math.cos(s) * h2; + this.hand.setAttribute("x2", u), this.hand.setAttribute("y2", c), this.bg.setAttribute("cx", p), this.bg.setAttribute("cy", v); + }}, {key: "open", value: function() { + this.isOpen || (this.isOpen = true, this._updateTimeFromInput(), this.showView("hours"), this.modal.open()); + }}, {key: "close", value: function() { + this.isOpen && (this.isOpen = false, this.modal.close()); + }}, {key: "done", value: function(t3, e2) { + var i = this.el.value, n = e2 ? "" : f._addLeadingZero(this.hours) + ":" + f._addLeadingZero(this.minutes); + this.time = n, !e2 && this.options.twelveHour && (n = n + " " + this.amOrPm), (this.el.value = n) !== i && this.$el.trigger("change"), this.close(), this.el.focus(); + }}, {key: "clear", value: function() { + this.done(null, true); + }}], [{key: "init", value: function(t3, e2) { + return _get(f.__proto__ || Object.getPrototypeOf(f), "init", this).call(this, this, t3, e2); + }}, {key: "_addLeadingZero", value: function(t3) { + return (t3 < 10 ? "0" : "") + t3; + }}, {key: "_createSVGEl", value: function(t3) { + return document.createElementNS("http://www.w3.org/2000/svg", t3); + }}, {key: "_Pos", value: function(t3) { + return t3.targetTouches && 1 <= t3.targetTouches.length ? {x: t3.targetTouches[0].clientX, y: t3.targetTouches[0].clientY} : {x: t3.clientX, y: t3.clientY}; + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Timepicker; + }}, {key: "defaults", get: function() { + return e; + }}]), f; + }(); + t._template = ['"].join(""), M.Timepicker = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "timepicker", "M_Timepicker"); + }(cash), function(s) { + "use strict"; + var e = {}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_CharacterCounter = i).options = s.extend({}, n.defaults, e2), i.isInvalid = false, i.isValidLength = false, i._setupCounter(), i._setupEventHandlers(), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.el.CharacterCounter = void 0, this._removeCounter(); + }}, {key: "_setupEventHandlers", value: function() { + this._handleUpdateCounterBound = this.updateCounter.bind(this), this.el.addEventListener("focus", this._handleUpdateCounterBound, true), this.el.addEventListener("input", this._handleUpdateCounterBound, true); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("focus", this._handleUpdateCounterBound, true), this.el.removeEventListener("input", this._handleUpdateCounterBound, true); + }}, {key: "_setupCounter", value: function() { + this.counterEl = document.createElement("span"), s(this.counterEl).addClass("character-counter").css({float: "right", "font-size": "12px", height: 1}), this.$el.parent().append(this.counterEl); + }}, {key: "_removeCounter", value: function() { + s(this.counterEl).remove(); + }}, {key: "updateCounter", value: function() { + var t3 = +this.$el.attr("data-length"), e2 = this.el.value.length; + this.isValidLength = e2 <= t3; + var i = e2; + t3 && (i += "/" + t3, this._validateInput()), s(this.counterEl).html(i); + }}, {key: "_validateInput", value: function() { + this.isValidLength && this.isInvalid ? (this.isInvalid = false, this.$el.removeClass("invalid")) : this.isValidLength || this.isInvalid || (this.isInvalid = true, this.$el.removeClass("valid"), this.$el.addClass("invalid")); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_CharacterCounter; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + M.CharacterCounter = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "characterCounter", "M_CharacterCounter"); + }(cash), function(b) { + "use strict"; + var e = {duration: 200, dist: -100, shift: 0, padding: 0, numVisible: 5, fullWidth: false, indicators: false, noWrap: false, onCycleTo: null}, t = function(t2) { + function i(t3, e2) { + _classCallCheck(this, i); + var n = _possibleConstructorReturn(this, (i.__proto__ || Object.getPrototypeOf(i)).call(this, i, t3, e2)); + return (n.el.M_Carousel = n).options = b.extend({}, i.defaults, e2), n.hasMultipleSlides = 1 < n.$el.find(".carousel-item").length, n.showIndicators = n.options.indicators && n.hasMultipleSlides, n.noWrap = n.options.noWrap || !n.hasMultipleSlides, n.pressed = false, n.dragged = false, n.offset = n.target = 0, n.images = [], n.itemWidth = n.$el.find(".carousel-item").first().innerWidth(), n.itemHeight = n.$el.find(".carousel-item").first().innerHeight(), n.dim = 2 * n.itemWidth + n.options.padding || 1, n._autoScrollBound = n._autoScroll.bind(n), n._trackBound = n._track.bind(n), n.options.fullWidth && (n.options.dist = 0, n._setCarouselHeight(), n.showIndicators && n.$el.find(".carousel-fixed-item").addClass("with-indicators")), n.$indicators = b('
        '), n.$el.find(".carousel-item").each(function(t4, e3) { + if (n.images.push(t4), n.showIndicators) { + var i2 = b('
      • '); + e3 === 0 && i2[0].classList.add("active"), n.$indicators.append(i2); + } + }), n.showIndicators && n.$el.append(n.$indicators), n.count = n.images.length, n.options.numVisible = Math.min(n.count, n.options.numVisible), n.xform = "transform", ["webkit", "Moz", "O", "ms"].every(function(t4) { + var e3 = t4 + "Transform"; + return document.body.style[e3] === void 0 || (n.xform = e3, false); + }), n._setupEventHandlers(), n._scroll(n.offset), n; + } + return _inherits(i, Component), _createClass(i, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.el.M_Carousel = void 0; + }}, {key: "_setupEventHandlers", value: function() { + var i2 = this; + this._handleCarouselTapBound = this._handleCarouselTap.bind(this), this._handleCarouselDragBound = this._handleCarouselDrag.bind(this), this._handleCarouselReleaseBound = this._handleCarouselRelease.bind(this), this._handleCarouselClickBound = this._handleCarouselClick.bind(this), window.ontouchstart !== void 0 && (this.el.addEventListener("touchstart", this._handleCarouselTapBound), this.el.addEventListener("touchmove", this._handleCarouselDragBound), this.el.addEventListener("touchend", this._handleCarouselReleaseBound)), this.el.addEventListener("mousedown", this._handleCarouselTapBound), this.el.addEventListener("mousemove", this._handleCarouselDragBound), this.el.addEventListener("mouseup", this._handleCarouselReleaseBound), this.el.addEventListener("mouseleave", this._handleCarouselReleaseBound), this.el.addEventListener("click", this._handleCarouselClickBound), this.showIndicators && this.$indicators && (this._handleIndicatorClickBound = this._handleIndicatorClick.bind(this), this.$indicators.find(".indicator-item").each(function(t4, e2) { + t4.addEventListener("click", i2._handleIndicatorClickBound); + })); + var t3 = M.throttle(this._handleResize, 200); + this._handleThrottledResizeBound = t3.bind(this), window.addEventListener("resize", this._handleThrottledResizeBound); + }}, {key: "_removeEventHandlers", value: function() { + var i2 = this; + window.ontouchstart !== void 0 && (this.el.removeEventListener("touchstart", this._handleCarouselTapBound), this.el.removeEventListener("touchmove", this._handleCarouselDragBound), this.el.removeEventListener("touchend", this._handleCarouselReleaseBound)), this.el.removeEventListener("mousedown", this._handleCarouselTapBound), this.el.removeEventListener("mousemove", this._handleCarouselDragBound), this.el.removeEventListener("mouseup", this._handleCarouselReleaseBound), this.el.removeEventListener("mouseleave", this._handleCarouselReleaseBound), this.el.removeEventListener("click", this._handleCarouselClickBound), this.showIndicators && this.$indicators && this.$indicators.find(".indicator-item").each(function(t3, e2) { + t3.removeEventListener("click", i2._handleIndicatorClickBound); + }), window.removeEventListener("resize", this._handleThrottledResizeBound); + }}, {key: "_handleCarouselTap", value: function(t3) { + t3.type === "mousedown" && b(t3.target).is("img") && t3.preventDefault(), this.pressed = true, this.dragged = false, this.verticalDragged = false, this.reference = this._xpos(t3), this.referenceY = this._ypos(t3), this.velocity = this.amplitude = 0, this.frame = this.offset, this.timestamp = Date.now(), clearInterval(this.ticker), this.ticker = setInterval(this._trackBound, 100); + }}, {key: "_handleCarouselDrag", value: function(t3) { + var e2 = void 0, i2 = void 0, n = void 0; + if (this.pressed) + if (e2 = this._xpos(t3), i2 = this._ypos(t3), n = this.reference - e2, Math.abs(this.referenceY - i2) < 30 && !this.verticalDragged) + (2 < n || n < -2) && (this.dragged = true, this.reference = e2, this._scroll(this.offset + n)); + else { + if (this.dragged) + return t3.preventDefault(), t3.stopPropagation(), false; + this.verticalDragged = true; + } + if (this.dragged) + return t3.preventDefault(), t3.stopPropagation(), false; + }}, {key: "_handleCarouselRelease", value: function(t3) { + if (this.pressed) + return this.pressed = false, clearInterval(this.ticker), this.target = this.offset, (10 < this.velocity || this.velocity < -10) && (this.amplitude = 0.9 * this.velocity, this.target = this.offset + this.amplitude), this.target = Math.round(this.target / this.dim) * this.dim, this.noWrap && (this.target >= this.dim * (this.count - 1) ? this.target = this.dim * (this.count - 1) : this.target < 0 && (this.target = 0)), this.amplitude = this.target - this.offset, this.timestamp = Date.now(), requestAnimationFrame(this._autoScrollBound), this.dragged && (t3.preventDefault(), t3.stopPropagation()), false; + }}, {key: "_handleCarouselClick", value: function(t3) { + if (this.dragged) + return t3.preventDefault(), t3.stopPropagation(), false; + if (!this.options.fullWidth) { + var e2 = b(t3.target).closest(".carousel-item").index(); + this._wrap(this.center) - e2 !== 0 && (t3.preventDefault(), t3.stopPropagation()), this._cycleTo(e2); + } + }}, {key: "_handleIndicatorClick", value: function(t3) { + t3.stopPropagation(); + var e2 = b(t3.target).closest(".indicator-item"); + e2.length && this._cycleTo(e2.index()); + }}, {key: "_handleResize", value: function(t3) { + this.options.fullWidth ? (this.itemWidth = this.$el.find(".carousel-item").first().innerWidth(), this.imageHeight = this.$el.find(".carousel-item.active").height(), this.dim = 2 * this.itemWidth + this.options.padding, this.offset = 2 * this.center * this.itemWidth, this.target = this.offset, this._setCarouselHeight(true)) : this._scroll(); + }}, {key: "_setCarouselHeight", value: function(t3) { + var i2 = this, e2 = this.$el.find(".carousel-item.active").length ? this.$el.find(".carousel-item.active").first() : this.$el.find(".carousel-item").first(), n = e2.find("img").first(); + if (n.length) + if (n[0].complete) { + var s = n.height(); + if (0 < s) + this.$el.css("height", s + "px"); + else { + var o = n[0].naturalWidth, a = n[0].naturalHeight, r = this.$el.width() / o * a; + this.$el.css("height", r + "px"); + } + } else + n.one("load", function(t4, e3) { + i2.$el.css("height", t4.offsetHeight + "px"); + }); + else if (!t3) { + var l = e2.height(); + this.$el.css("height", l + "px"); + } + }}, {key: "_xpos", value: function(t3) { + return t3.targetTouches && 1 <= t3.targetTouches.length ? t3.targetTouches[0].clientX : t3.clientX; + }}, {key: "_ypos", value: function(t3) { + return t3.targetTouches && 1 <= t3.targetTouches.length ? t3.targetTouches[0].clientY : t3.clientY; + }}, {key: "_wrap", value: function(t3) { + return t3 >= this.count ? t3 % this.count : t3 < 0 ? this._wrap(this.count + t3 % this.count) : t3; + }}, {key: "_track", value: function() { + var t3, e2, i2, n; + e2 = (t3 = Date.now()) - this.timestamp, this.timestamp = t3, i2 = this.offset - this.frame, this.frame = this.offset, n = 1e3 * i2 / (1 + e2), this.velocity = 0.8 * n + 0.2 * this.velocity; + }}, {key: "_autoScroll", value: function() { + var t3 = void 0, e2 = void 0; + this.amplitude && (t3 = Date.now() - this.timestamp, 2 < (e2 = this.amplitude * Math.exp(-t3 / this.options.duration)) || e2 < -2 ? (this._scroll(this.target - e2), requestAnimationFrame(this._autoScrollBound)) : this._scroll(this.target)); + }}, {key: "_scroll", value: function(t3) { + var e2 = this; + this.$el.hasClass("scrolling") || this.el.classList.add("scrolling"), this.scrollingTimeout != null && window.clearTimeout(this.scrollingTimeout), this.scrollingTimeout = window.setTimeout(function() { + e2.$el.removeClass("scrolling"); + }, this.options.duration); + var i2, n, s, o, a = void 0, r = void 0, l = void 0, h = void 0, d = void 0, u = void 0, c = this.center, p = 1 / this.options.numVisible; + if (this.offset = typeof t3 == "number" ? t3 : this.offset, this.center = Math.floor((this.offset + this.dim / 2) / this.dim), o = -(s = (n = this.offset - this.center * this.dim) < 0 ? 1 : -1) * n * 2 / this.dim, i2 = this.count >> 1, this.options.fullWidth ? (l = "translateX(0)", u = 1) : (l = "translateX(" + (this.el.clientWidth - this.itemWidth) / 2 + "px) ", l += "translateY(" + (this.el.clientHeight - this.itemHeight) / 2 + "px)", u = 1 - p * o), this.showIndicators) { + var v = this.center % this.count, f = this.$indicators.find(".indicator-item.active"); + f.index() !== v && (f.removeClass("active"), this.$indicators.find(".indicator-item").eq(v)[0].classList.add("active")); + } + if (!this.noWrap || 0 <= this.center && this.center < this.count) { + r = this.images[this._wrap(this.center)], b(r).hasClass("active") || (this.$el.find(".carousel-item").removeClass("active"), r.classList.add("active")); + var m = l + " translateX(" + -n / 2 + "px) translateX(" + s * this.options.shift * o * a + "px) translateZ(" + this.options.dist * o + "px)"; + this._updateItemStyle(r, u, 0, m); + } + for (a = 1; a <= i2; ++a) { + if (this.options.fullWidth ? (h = this.options.dist, d = a === i2 && n < 0 ? 1 - o : 1) : (h = this.options.dist * (2 * a + o * s), d = 1 - p * (2 * a + o * s)), !this.noWrap || this.center + a < this.count) { + r = this.images[this._wrap(this.center + a)]; + var g = l + " translateX(" + (this.options.shift + (this.dim * a - n) / 2) + "px) translateZ(" + h + "px)"; + this._updateItemStyle(r, d, -a, g); + } + if (this.options.fullWidth ? (h = this.options.dist, d = a === i2 && 0 < n ? 1 - o : 1) : (h = this.options.dist * (2 * a - o * s), d = 1 - p * (2 * a - o * s)), !this.noWrap || 0 <= this.center - a) { + r = this.images[this._wrap(this.center - a)]; + var _2 = l + " translateX(" + (-this.options.shift + (-this.dim * a - n) / 2) + "px) translateZ(" + h + "px)"; + this._updateItemStyle(r, d, -a, _2); + } + } + if (!this.noWrap || 0 <= this.center && this.center < this.count) { + r = this.images[this._wrap(this.center)]; + var y = l + " translateX(" + -n / 2 + "px) translateX(" + s * this.options.shift * o + "px) translateZ(" + this.options.dist * o + "px)"; + this._updateItemStyle(r, u, 0, y); + } + var k = this.$el.find(".carousel-item").eq(this._wrap(this.center)); + c !== this.center && typeof this.options.onCycleTo == "function" && this.options.onCycleTo.call(this, k[0], this.dragged), typeof this.oneTimeCallback == "function" && (this.oneTimeCallback.call(this, k[0], this.dragged), this.oneTimeCallback = null); + }}, {key: "_updateItemStyle", value: function(t3, e2, i2, n) { + t3.style[this.xform] = n, t3.style.zIndex = i2, t3.style.opacity = e2, t3.style.visibility = "visible"; + }}, {key: "_cycleTo", value: function(t3, e2) { + var i2 = this.center % this.count - t3; + this.noWrap || (i2 < 0 ? Math.abs(i2 + this.count) < Math.abs(i2) && (i2 += this.count) : 0 < i2 && Math.abs(i2 - this.count) < i2 && (i2 -= this.count)), this.target = this.dim * Math.round(this.offset / this.dim), i2 < 0 ? this.target += this.dim * Math.abs(i2) : 0 < i2 && (this.target -= this.dim * i2), typeof e2 == "function" && (this.oneTimeCallback = e2), this.offset !== this.target && (this.amplitude = this.target - this.offset, this.timestamp = Date.now(), requestAnimationFrame(this._autoScrollBound)); + }}, {key: "next", value: function(t3) { + (t3 === void 0 || isNaN(t3)) && (t3 = 1); + var e2 = this.center + t3; + if (e2 >= this.count || e2 < 0) { + if (this.noWrap) + return; + e2 = this._wrap(e2); + } + this._cycleTo(e2); + }}, {key: "prev", value: function(t3) { + (t3 === void 0 || isNaN(t3)) && (t3 = 1); + var e2 = this.center - t3; + if (e2 >= this.count || e2 < 0) { + if (this.noWrap) + return; + e2 = this._wrap(e2); + } + this._cycleTo(e2); + }}, {key: "set", value: function(t3, e2) { + if ((t3 === void 0 || isNaN(t3)) && (t3 = 0), t3 > this.count || t3 < 0) { + if (this.noWrap) + return; + t3 = this._wrap(t3); + } + this._cycleTo(t3, e2); + }}], [{key: "init", value: function(t3, e2) { + return _get(i.__proto__ || Object.getPrototypeOf(i), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Carousel; + }}, {key: "defaults", get: function() { + return e; + }}]), i; + }(); + M.Carousel = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "carousel", "M_Carousel"); + }(cash), function(S) { + "use strict"; + var e = {onOpen: void 0, onClose: void 0}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i.el.M_TapTarget = i).options = S.extend({}, n.defaults, e2), i.isOpen = false, i.$origin = S("#" + i.$el.attr("data-target")), i._setup(), i._calculatePositioning(), i._setupEventHandlers(), i; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this.el.TapTarget = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleDocumentClickBound = this._handleDocumentClick.bind(this), this._handleTargetClickBound = this._handleTargetClick.bind(this), this._handleOriginClickBound = this._handleOriginClick.bind(this), this.el.addEventListener("click", this._handleTargetClickBound), this.originEl.addEventListener("click", this._handleOriginClickBound); + var t3 = M.throttle(this._handleResize, 200); + this._handleThrottledResizeBound = t3.bind(this), window.addEventListener("resize", this._handleThrottledResizeBound); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("click", this._handleTargetClickBound), this.originEl.removeEventListener("click", this._handleOriginClickBound), window.removeEventListener("resize", this._handleThrottledResizeBound); + }}, {key: "_handleTargetClick", value: function(t3) { + this.open(); + }}, {key: "_handleOriginClick", value: function(t3) { + this.close(); + }}, {key: "_handleResize", value: function(t3) { + this._calculatePositioning(); + }}, {key: "_handleDocumentClick", value: function(t3) { + S(t3.target).closest(".tap-target-wrapper").length || (this.close(), t3.preventDefault(), t3.stopPropagation()); + }}, {key: "_setup", value: function() { + this.wrapper = this.$el.parent()[0], this.waveEl = S(this.wrapper).find(".tap-target-wave")[0], this.originEl = S(this.wrapper).find(".tap-target-origin")[0], this.contentEl = this.$el.find(".tap-target-content")[0], S(this.wrapper).hasClass(".tap-target-wrapper") || (this.wrapper = document.createElement("div"), this.wrapper.classList.add("tap-target-wrapper"), this.$el.before(S(this.wrapper)), this.wrapper.append(this.el)), this.contentEl || (this.contentEl = document.createElement("div"), this.contentEl.classList.add("tap-target-content"), this.$el.append(this.contentEl)), this.waveEl || (this.waveEl = document.createElement("div"), this.waveEl.classList.add("tap-target-wave"), this.originEl || (this.originEl = this.$origin.clone(true, true), this.originEl.addClass("tap-target-origin"), this.originEl.removeAttr("id"), this.originEl.removeAttr("style"), this.originEl = this.originEl[0], this.waveEl.append(this.originEl)), this.wrapper.append(this.waveEl)); + }}, {key: "_calculatePositioning", value: function() { + var t3 = this.$origin.css("position") === "fixed"; + if (!t3) + for (var e2 = this.$origin.parents(), i = 0; i < e2.length && !(t3 = S(e2[i]).css("position") == "fixed"); i++) + ; + var n2 = this.$origin.outerWidth(), s = this.$origin.outerHeight(), o = t3 ? this.$origin.offset().top - M.getDocumentScrollTop() : this.$origin.offset().top, a = t3 ? this.$origin.offset().left - M.getDocumentScrollLeft() : this.$origin.offset().left, r = window.innerWidth, l = window.innerHeight, h = r / 2, d = l / 2, u = a <= h, c = h < a, p = o <= d, v = d < o, f = 0.25 * r <= a && a <= 0.75 * r, m = this.$el.outerWidth(), g = this.$el.outerHeight(), _2 = o + s / 2 - g / 2, y = a + n2 / 2 - m / 2, k = t3 ? "fixed" : "absolute", b = f ? m : m / 2 + n2, w = g / 2, C = p ? g / 2 : 0, E = u && !f ? m / 2 - n2 : 0, O = n2, x = v ? "bottom" : "top", L = 2 * n2, T = L, $2 = g / 2 - T / 2, B = m / 2 - L / 2, D = {}; + D.top = p ? _2 + "px" : "", D.right = c ? r - y - m + "px" : "", D.bottom = v ? l - _2 - g + "px" : "", D.left = u ? y + "px" : "", D.position = k, S(this.wrapper).css(D), S(this.contentEl).css({width: b + "px", height: w + "px", top: C + "px", right: "0px", bottom: "0px", left: E + "px", padding: O + "px", verticalAlign: x}), S(this.waveEl).css({top: $2 + "px", left: B + "px", width: L + "px", height: T + "px"}); + }}, {key: "open", value: function() { + this.isOpen || (typeof this.options.onOpen == "function" && this.options.onOpen.call(this, this.$origin[0]), this.isOpen = true, this.wrapper.classList.add("open"), document.body.addEventListener("click", this._handleDocumentClickBound, true), document.body.addEventListener("touchend", this._handleDocumentClickBound)); + }}, {key: "close", value: function() { + this.isOpen && (typeof this.options.onClose == "function" && this.options.onClose.call(this, this.$origin[0]), this.isOpen = false, this.wrapper.classList.remove("open"), document.body.removeEventListener("click", this._handleDocumentClickBound, true), document.body.removeEventListener("touchend", this._handleDocumentClickBound)); + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_TapTarget; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + M.TapTarget = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "tapTarget", "M_TapTarget"); + }(cash), function(d) { + "use strict"; + var e = {classes: "", dropdownOptions: {}}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return i.$el.hasClass("browser-default") ? _possibleConstructorReturn(i) : ((i.el.M_FormSelect = i).options = d.extend({}, n.defaults, e2), i.isMultiple = i.$el.prop("multiple"), i.el.tabIndex = -1, i._keysSelected = {}, i._valueDict = {}, i._setupDropdown(), i._setupEventHandlers(), i); + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this._removeDropdown(), this.el.M_FormSelect = void 0; + }}, {key: "_setupEventHandlers", value: function() { + var e2 = this; + this._handleSelectChangeBound = this._handleSelectChange.bind(this), this._handleOptionClickBound = this._handleOptionClick.bind(this), this._handleInputClickBound = this._handleInputClick.bind(this), d(this.dropdownOptions).find("li:not(.optgroup)").each(function(t3) { + t3.addEventListener("click", e2._handleOptionClickBound); + }), this.el.addEventListener("change", this._handleSelectChangeBound), this.input.addEventListener("click", this._handleInputClickBound); + }}, {key: "_removeEventHandlers", value: function() { + var e2 = this; + d(this.dropdownOptions).find("li:not(.optgroup)").each(function(t3) { + t3.removeEventListener("click", e2._handleOptionClickBound); + }), this.el.removeEventListener("change", this._handleSelectChangeBound), this.input.removeEventListener("click", this._handleInputClickBound); + }}, {key: "_handleSelectChange", value: function(t3) { + this._setValueToInput(); + }}, {key: "_handleOptionClick", value: function(t3) { + t3.preventDefault(); + var e2 = d(t3.target).closest("li")[0], i = e2.id; + if (!d(e2).hasClass("disabled") && !d(e2).hasClass("optgroup") && i.length) { + var n2 = true; + if (this.isMultiple) { + var s = d(this.dropdownOptions).find("li.disabled.selected"); + s.length && (s.removeClass("selected"), s.find('input[type="checkbox"]').prop("checked", false), this._toggleEntryFromArray(s[0].id)), n2 = this._toggleEntryFromArray(i); + } else + d(this.dropdownOptions).find("li").removeClass("selected"), d(e2).toggleClass("selected", n2); + d(this._valueDict[i].el).prop("selected") !== n2 && (d(this._valueDict[i].el).prop("selected", n2), this.$el.trigger("change")); + } + t3.stopPropagation(); + }}, {key: "_handleInputClick", value: function() { + this.dropdown && this.dropdown.isOpen && (this._setValueToInput(), this._setSelectedStates()); + }}, {key: "_setupDropdown", value: function() { + var n2 = this; + this.wrapper = document.createElement("div"), d(this.wrapper).addClass("select-wrapper " + this.options.classes), this.$el.before(d(this.wrapper)), this.wrapper.appendChild(this.el), this.el.disabled && this.wrapper.classList.add("disabled"), this.$selectOptions = this.$el.children("option, optgroup"), this.dropdownOptions = document.createElement("ul"), this.dropdownOptions.id = "select-options-" + M.guid(), d(this.dropdownOptions).addClass("dropdown-content select-dropdown " + (this.isMultiple ? "multiple-select-dropdown" : "")), this.$selectOptions.length && this.$selectOptions.each(function(t4) { + if (d(t4).is("option")) { + var e3 = void 0; + e3 = n2.isMultiple ? n2._appendOptionWithIcon(n2.$el, t4, "multiple") : n2._appendOptionWithIcon(n2.$el, t4), n2._addOptionToValueDict(t4, e3); + } else if (d(t4).is("optgroup")) { + var i = d(t4).children("option"); + d(n2.dropdownOptions).append(d('
      • ' + t4.getAttribute("label") + "
      • ")[0]), i.each(function(t5) { + var e4 = n2._appendOptionWithIcon(n2.$el, t5, "optgroup-option"); + n2._addOptionToValueDict(t5, e4); + }); + } + }), this.$el.after(this.dropdownOptions), this.input = document.createElement("input"), d(this.input).addClass("select-dropdown dropdown-trigger"), this.input.setAttribute("type", "text"), this.input.setAttribute("readonly", "true"), this.input.setAttribute("data-target", this.dropdownOptions.id), this.el.disabled && d(this.input).prop("disabled", "true"), this.$el.before(this.input), this._setValueToInput(); + var t3 = d(''); + if (this.$el.before(t3[0]), !this.el.disabled) { + var e2 = d.extend({}, this.options.dropdownOptions); + e2.onOpenEnd = function(t4) { + var e3 = d(n2.dropdownOptions).find(".selected").first(); + if (e3.length && (M.keyDown = true, n2.dropdown.focusedIndex = e3.index(), n2.dropdown._focusFocusedItem(), M.keyDown = false, n2.dropdown.isScrollable)) { + var i = e3[0].getBoundingClientRect().top - n2.dropdownOptions.getBoundingClientRect().top; + i -= n2.dropdownOptions.clientHeight / 2, n2.dropdownOptions.scrollTop = i; + } + }, this.isMultiple && (e2.closeOnClick = false), this.dropdown = M.Dropdown.init(this.input, e2); + } + this._setSelectedStates(); + }}, {key: "_addOptionToValueDict", value: function(t3, e2) { + var i = Object.keys(this._valueDict).length, n2 = this.dropdownOptions.id + i, s = {}; + e2.id = n2, s.el = t3, s.optionEl = e2, this._valueDict[n2] = s; + }}, {key: "_removeDropdown", value: function() { + d(this.wrapper).find(".caret").remove(), d(this.input).remove(), d(this.dropdownOptions).remove(), d(this.wrapper).before(this.$el), d(this.wrapper).remove(); + }}, {key: "_appendOptionWithIcon", value: function(t3, e2, i) { + var n2 = e2.disabled ? "disabled " : "", s = i === "optgroup-option" ? "optgroup-option " : "", o = this.isMultiple ? '" : e2.innerHTML, a = d("
      • "), r = d(""); + r.html(o), a.addClass(n2 + " " + s), a.append(r); + var l = e2.getAttribute("data-icon"); + if (l) { + var h = d(''); + a.prepend(h); + } + return d(this.dropdownOptions).append(a[0]), a[0]; + }}, {key: "_toggleEntryFromArray", value: function(t3) { + var e2 = !this._keysSelected.hasOwnProperty(t3), i = d(this._valueDict[t3].optionEl); + return e2 ? this._keysSelected[t3] = true : delete this._keysSelected[t3], i.toggleClass("selected", e2), i.find('input[type="checkbox"]').prop("checked", e2), i.prop("selected", e2), e2; + }}, {key: "_setValueToInput", value: function() { + var i = []; + if (this.$el.find("option").each(function(t4) { + if (d(t4).prop("selected")) { + var e2 = d(t4).text(); + i.push(e2); + } + }), !i.length) { + var t3 = this.$el.find("option:disabled").eq(0); + t3.length && t3[0].value === "" && i.push(t3.text()); + } + this.input.value = i.join(", "); + }}, {key: "_setSelectedStates", value: function() { + for (var t3 in this._keysSelected = {}, this._valueDict) { + var e2 = this._valueDict[t3], i = d(e2.el).prop("selected"); + d(e2.optionEl).find('input[type="checkbox"]').prop("checked", i), i ? (this._activateOption(d(this.dropdownOptions), d(e2.optionEl)), this._keysSelected[t3] = true) : d(e2.optionEl).removeClass("selected"); + } + }}, {key: "_activateOption", value: function(t3, e2) { + e2 && (this.isMultiple || t3.find("li.selected").removeClass("selected"), d(e2).addClass("selected")); + }}, {key: "getSelectedValues", value: function() { + var t3 = []; + for (var e2 in this._keysSelected) + t3.push(this._valueDict[e2].el.value); + return t3; + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_FormSelect; + }}, {key: "defaults", get: function() { + return e; + }}]), n; + }(); + M.FormSelect = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "formSelect", "M_FormSelect"); + }(cash), function(s, e) { + "use strict"; + var i = {}, t = function(t2) { + function n(t3, e2) { + _classCallCheck(this, n); + var i2 = _possibleConstructorReturn(this, (n.__proto__ || Object.getPrototypeOf(n)).call(this, n, t3, e2)); + return (i2.el.M_Range = i2).options = s.extend({}, n.defaults, e2), i2._mousedown = false, i2._setupThumb(), i2._setupEventHandlers(), i2; + } + return _inherits(n, Component), _createClass(n, [{key: "destroy", value: function() { + this._removeEventHandlers(), this._removeThumb(), this.el.M_Range = void 0; + }}, {key: "_setupEventHandlers", value: function() { + this._handleRangeChangeBound = this._handleRangeChange.bind(this), this._handleRangeMousedownTouchstartBound = this._handleRangeMousedownTouchstart.bind(this), this._handleRangeInputMousemoveTouchmoveBound = this._handleRangeInputMousemoveTouchmove.bind(this), this._handleRangeMouseupTouchendBound = this._handleRangeMouseupTouchend.bind(this), this._handleRangeBlurMouseoutTouchleaveBound = this._handleRangeBlurMouseoutTouchleave.bind(this), this.el.addEventListener("change", this._handleRangeChangeBound), this.el.addEventListener("mousedown", this._handleRangeMousedownTouchstartBound), this.el.addEventListener("touchstart", this._handleRangeMousedownTouchstartBound), this.el.addEventListener("input", this._handleRangeInputMousemoveTouchmoveBound), this.el.addEventListener("mousemove", this._handleRangeInputMousemoveTouchmoveBound), this.el.addEventListener("touchmove", this._handleRangeInputMousemoveTouchmoveBound), this.el.addEventListener("mouseup", this._handleRangeMouseupTouchendBound), this.el.addEventListener("touchend", this._handleRangeMouseupTouchendBound), this.el.addEventListener("blur", this._handleRangeBlurMouseoutTouchleaveBound), this.el.addEventListener("mouseout", this._handleRangeBlurMouseoutTouchleaveBound), this.el.addEventListener("touchleave", this._handleRangeBlurMouseoutTouchleaveBound); + }}, {key: "_removeEventHandlers", value: function() { + this.el.removeEventListener("change", this._handleRangeChangeBound), this.el.removeEventListener("mousedown", this._handleRangeMousedownTouchstartBound), this.el.removeEventListener("touchstart", this._handleRangeMousedownTouchstartBound), this.el.removeEventListener("input", this._handleRangeInputMousemoveTouchmoveBound), this.el.removeEventListener("mousemove", this._handleRangeInputMousemoveTouchmoveBound), this.el.removeEventListener("touchmove", this._handleRangeInputMousemoveTouchmoveBound), this.el.removeEventListener("mouseup", this._handleRangeMouseupTouchendBound), this.el.removeEventListener("touchend", this._handleRangeMouseupTouchendBound), this.el.removeEventListener("blur", this._handleRangeBlurMouseoutTouchleaveBound), this.el.removeEventListener("mouseout", this._handleRangeBlurMouseoutTouchleaveBound), this.el.removeEventListener("touchleave", this._handleRangeBlurMouseoutTouchleaveBound); + }}, {key: "_handleRangeChange", value: function() { + s(this.value).html(this.$el.val()), s(this.thumb).hasClass("active") || this._showRangeBubble(); + var t3 = this._calcRangeOffset(); + s(this.thumb).addClass("active").css("left", t3 + "px"); + }}, {key: "_handleRangeMousedownTouchstart", value: function(t3) { + if (s(this.value).html(this.$el.val()), this._mousedown = true, this.$el.addClass("active"), s(this.thumb).hasClass("active") || this._showRangeBubble(), t3.type !== "input") { + var e2 = this._calcRangeOffset(); + s(this.thumb).addClass("active").css("left", e2 + "px"); + } + }}, {key: "_handleRangeInputMousemoveTouchmove", value: function() { + if (this._mousedown) { + s(this.thumb).hasClass("active") || this._showRangeBubble(); + var t3 = this._calcRangeOffset(); + s(this.thumb).addClass("active").css("left", t3 + "px"), s(this.value).html(this.$el.val()); + } + }}, {key: "_handleRangeMouseupTouchend", value: function() { + this._mousedown = false, this.$el.removeClass("active"); + }}, {key: "_handleRangeBlurMouseoutTouchleave", value: function() { + if (!this._mousedown) { + var t3 = 7 + parseInt(this.$el.css("padding-left")) + "px"; + s(this.thumb).hasClass("active") && (e.remove(this.thumb), e({targets: this.thumb, height: 0, width: 0, top: 10, easing: "easeOutQuad", marginLeft: t3, duration: 100})), s(this.thumb).removeClass("active"); + } + }}, {key: "_setupThumb", value: function() { + this.thumb = document.createElement("span"), this.value = document.createElement("span"), s(this.thumb).addClass("thumb"), s(this.value).addClass("value"), s(this.thumb).append(this.value), this.$el.after(this.thumb); + }}, {key: "_removeThumb", value: function() { + s(this.thumb).remove(); + }}, {key: "_showRangeBubble", value: function() { + var t3 = -7 + parseInt(s(this.thumb).parent().css("padding-left")) + "px"; + e.remove(this.thumb), e({targets: this.thumb, height: 30, width: 30, top: -30, marginLeft: t3, duration: 300, easing: "easeOutQuint"}); + }}, {key: "_calcRangeOffset", value: function() { + var t3 = this.$el.width() - 15, e2 = parseFloat(this.$el.attr("max")) || 100, i2 = parseFloat(this.$el.attr("min")) || 0; + return (parseFloat(this.$el.val()) - i2) / (e2 - i2) * t3; + }}], [{key: "init", value: function(t3, e2) { + return _get(n.__proto__ || Object.getPrototypeOf(n), "init", this).call(this, this, t3, e2); + }}, {key: "getInstance", value: function(t3) { + return (t3.jquery ? t3[0] : t3).M_Range; + }}, {key: "defaults", get: function() { + return i; + }}]), n; + }(); + M.Range = t, M.jQueryLoaded && M.initializeJqueryWrapper(t, "range", "M_Range"), t.init(s("input[type=range]")); + }(cash, M.anime); + }); + + // node_modules/seedrandom/lib/alea.js + var require_alea = __commonJS((exports, module) => { + (function(global2, module2, define2) { + function Alea(seed) { + var me = this, mash = Mash(); + me.next = function() { + var t = 2091639 * me.s0 + me.c * 23283064365386963e-26; + me.s0 = me.s1; + me.s1 = me.s2; + return me.s2 = t - (me.c = t | 0); + }; + me.c = 1; + me.s0 = mash(" "); + me.s1 = mash(" "); + me.s2 = mash(" "); + me.s0 -= mash(seed); + if (me.s0 < 0) { + me.s0 += 1; + } + me.s1 -= mash(seed); + if (me.s1 < 0) { + me.s1 += 1; + } + me.s2 -= mash(seed); + if (me.s2 < 0) { + me.s2 += 1; + } + mash = null; + } + function copy(f, t) { + t.c = f.c; + t.s0 = f.s0; + t.s1 = f.s1; + t.s2 = f.s2; + return t; + } + function impl(seed, opts) { + var xg = new Alea(seed), state = opts && opts.state, prng = xg.next; + prng.int32 = function() { + return xg.next() * 4294967296 | 0; + }; + prng.double = function() { + return prng() + (prng() * 2097152 | 0) * 11102230246251565e-32; + }; + prng.quick = prng; + if (state) { + if (typeof state == "object") + copy(state, xg); + prng.state = function() { + return copy(xg, {}); + }; + } + return prng; + } + function Mash() { + var n = 4022871197; + var mash = function(data) { + data = String(data); + for (var i = 0; i < data.length; i++) { + n += data.charCodeAt(i); + var h = 0.02519603282416938 * n; + n = h >>> 0; + h -= n; + h *= n; + n = h >>> 0; + h -= n; + n += h * 4294967296; + } + return (n >>> 0) * 23283064365386963e-26; + }; + return mash; + } + if (module2 && module2.exports) { + module2.exports = impl; + } else if (define2 && define2.amd) { + define2(function() { + return impl; + }); + } else { + this.alea = impl; + } + })(exports, typeof module == "object" && module, typeof define == "function" && define); + }); + + // node_modules/seedrandom/lib/xor128.js + var require_xor128 = __commonJS((exports, module) => { + (function(global2, module2, define2) { + function XorGen(seed) { + var me = this, strseed = ""; + me.x = 0; + me.y = 0; + me.z = 0; + me.w = 0; + me.next = function() { + var t = me.x ^ me.x << 11; + me.x = me.y; + me.y = me.z; + me.z = me.w; + return me.w ^= me.w >>> 19 ^ t ^ t >>> 8; + }; + if (seed === (seed | 0)) { + me.x = seed; + } else { + strseed += seed; + } + for (var k = 0; k < strseed.length + 64; k++) { + me.x ^= strseed.charCodeAt(k) | 0; + me.next(); + } + } + function copy(f, t) { + t.x = f.x; + t.y = f.y; + t.z = f.z; + t.w = f.w; + return t; + } + function impl(seed, opts) { + var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + return (xg.next() >>> 0) / 4294967296; + }; + prng.double = function() { + do { + var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21); + } while (result === 0); + return result; + }; + prng.int32 = xg.next; + prng.quick = prng; + if (state) { + if (typeof state == "object") + copy(state, xg); + prng.state = function() { + return copy(xg, {}); + }; + } + return prng; + } + if (module2 && module2.exports) { + module2.exports = impl; + } else if (define2 && define2.amd) { + define2(function() { + return impl; + }); + } else { + this.xor128 = impl; + } + })(exports, typeof module == "object" && module, typeof define == "function" && define); + }); + + // node_modules/seedrandom/lib/xorwow.js + var require_xorwow = __commonJS((exports, module) => { + (function(global2, module2, define2) { + function XorGen(seed) { + var me = this, strseed = ""; + me.next = function() { + var t = me.x ^ me.x >>> 2; + me.x = me.y; + me.y = me.z; + me.z = me.w; + me.w = me.v; + return (me.d = me.d + 362437 | 0) + (me.v = me.v ^ me.v << 4 ^ (t ^ t << 1)) | 0; + }; + me.x = 0; + me.y = 0; + me.z = 0; + me.w = 0; + me.v = 0; + if (seed === (seed | 0)) { + me.x = seed; + } else { + strseed += seed; + } + for (var k = 0; k < strseed.length + 64; k++) { + me.x ^= strseed.charCodeAt(k) | 0; + if (k == strseed.length) { + me.d = me.x << 10 ^ me.x >>> 4; + } + me.next(); + } + } + function copy(f, t) { + t.x = f.x; + t.y = f.y; + t.z = f.z; + t.w = f.w; + t.v = f.v; + t.d = f.d; + return t; + } + function impl(seed, opts) { + var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + return (xg.next() >>> 0) / 4294967296; + }; + prng.double = function() { + do { + var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21); + } while (result === 0); + return result; + }; + prng.int32 = xg.next; + prng.quick = prng; + if (state) { + if (typeof state == "object") + copy(state, xg); + prng.state = function() { + return copy(xg, {}); + }; + } + return prng; + } + if (module2 && module2.exports) { + module2.exports = impl; + } else if (define2 && define2.amd) { + define2(function() { + return impl; + }); + } else { + this.xorwow = impl; + } + })(exports, typeof module == "object" && module, typeof define == "function" && define); + }); + + // node_modules/seedrandom/lib/xorshift7.js + var require_xorshift7 = __commonJS((exports, module) => { + (function(global2, module2, define2) { + function XorGen(seed) { + var me = this; + me.next = function() { + var X = me.x, i = me.i, t, v, w; + t = X[i]; + t ^= t >>> 7; + v = t ^ t << 24; + t = X[i + 1 & 7]; + v ^= t ^ t >>> 10; + t = X[i + 3 & 7]; + v ^= t ^ t >>> 3; + t = X[i + 4 & 7]; + v ^= t ^ t << 7; + t = X[i + 7 & 7]; + t = t ^ t << 13; + v ^= t ^ t << 9; + X[i] = v; + me.i = i + 1 & 7; + return v; + }; + function init(me2, seed2) { + var j, w, X = []; + if (seed2 === (seed2 | 0)) { + w = X[0] = seed2; + } else { + seed2 = "" + seed2; + for (j = 0; j < seed2.length; ++j) { + X[j & 7] = X[j & 7] << 15 ^ seed2.charCodeAt(j) + X[j + 1 & 7] << 13; + } + } + while (X.length < 8) + X.push(0); + for (j = 0; j < 8 && X[j] === 0; ++j) + ; + if (j == 8) + w = X[7] = -1; + else + w = X[j]; + me2.x = X; + me2.i = 0; + for (j = 256; j > 0; --j) { + me2.next(); + } + } + init(me, seed); + } + function copy(f, t) { + t.x = f.x.slice(); + t.i = f.i; + return t; + } + function impl(seed, opts) { + if (seed == null) + seed = +new Date(); + var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + return (xg.next() >>> 0) / 4294967296; + }; + prng.double = function() { + do { + var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21); + } while (result === 0); + return result; + }; + prng.int32 = xg.next; + prng.quick = prng; + if (state) { + if (state.x) + copy(state, xg); + prng.state = function() { + return copy(xg, {}); + }; + } + return prng; + } + if (module2 && module2.exports) { + module2.exports = impl; + } else if (define2 && define2.amd) { + define2(function() { + return impl; + }); + } else { + this.xorshift7 = impl; + } + })(exports, typeof module == "object" && module, typeof define == "function" && define); + }); + + // node_modules/seedrandom/lib/xor4096.js + var require_xor4096 = __commonJS((exports, module) => { + (function(global2, module2, define2) { + function XorGen(seed) { + var me = this; + me.next = function() { + var w = me.w, X = me.X, i = me.i, t, v; + me.w = w = w + 1640531527 | 0; + v = X[i + 34 & 127]; + t = X[i = i + 1 & 127]; + v ^= v << 13; + t ^= t << 17; + v ^= v >>> 15; + t ^= t >>> 12; + v = X[i] = v ^ t; + me.i = i; + return v + (w ^ w >>> 16) | 0; + }; + function init(me2, seed2) { + var t, v, i, j, w, X = [], limit = 128; + if (seed2 === (seed2 | 0)) { + v = seed2; + seed2 = null; + } else { + seed2 = seed2 + "\0"; + v = 0; + limit = Math.max(limit, seed2.length); + } + for (i = 0, j = -32; j < limit; ++j) { + if (seed2) + v ^= seed2.charCodeAt((j + 32) % seed2.length); + if (j === 0) + w = v; + v ^= v << 10; + v ^= v >>> 15; + v ^= v << 4; + v ^= v >>> 13; + if (j >= 0) { + w = w + 1640531527 | 0; + t = X[j & 127] ^= v + w; + i = t == 0 ? i + 1 : 0; + } + } + if (i >= 128) { + X[(seed2 && seed2.length || 0) & 127] = -1; + } + i = 127; + for (j = 4 * 128; j > 0; --j) { + v = X[i + 34 & 127]; + t = X[i = i + 1 & 127]; + v ^= v << 13; + t ^= t << 17; + v ^= v >>> 15; + t ^= t >>> 12; + X[i] = v ^ t; + } + me2.w = w; + me2.X = X; + me2.i = i; + } + init(me, seed); + } + function copy(f, t) { + t.i = f.i; + t.w = f.w; + t.X = f.X.slice(); + return t; + } + ; + function impl(seed, opts) { + if (seed == null) + seed = +new Date(); + var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + return (xg.next() >>> 0) / 4294967296; + }; + prng.double = function() { + do { + var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21); + } while (result === 0); + return result; + }; + prng.int32 = xg.next; + prng.quick = prng; + if (state) { + if (state.X) + copy(state, xg); + prng.state = function() { + return copy(xg, {}); + }; + } + return prng; + } + if (module2 && module2.exports) { + module2.exports = impl; + } else if (define2 && define2.amd) { + define2(function() { + return impl; + }); + } else { + this.xor4096 = impl; + } + })(exports, typeof module == "object" && module, typeof define == "function" && define); + }); + + // node_modules/seedrandom/lib/tychei.js + var require_tychei = __commonJS((exports, module) => { + (function(global2, module2, define2) { + function XorGen(seed) { + var me = this, strseed = ""; + me.next = function() { + var b = me.b, c = me.c, d = me.d, a = me.a; + b = b << 25 ^ b >>> 7 ^ c; + c = c - d | 0; + d = d << 24 ^ d >>> 8 ^ a; + a = a - b | 0; + me.b = b = b << 20 ^ b >>> 12 ^ c; + me.c = c = c - d | 0; + me.d = d << 16 ^ c >>> 16 ^ a; + return me.a = a - b | 0; + }; + me.a = 0; + me.b = 0; + me.c = 2654435769 | 0; + me.d = 1367130551; + if (seed === Math.floor(seed)) { + me.a = seed / 4294967296 | 0; + me.b = seed | 0; + } else { + strseed += seed; + } + for (var k = 0; k < strseed.length + 20; k++) { + me.b ^= strseed.charCodeAt(k) | 0; + me.next(); + } + } + function copy(f, t) { + t.a = f.a; + t.b = f.b; + t.c = f.c; + t.d = f.d; + return t; + } + ; + function impl(seed, opts) { + var xg = new XorGen(seed), state = opts && opts.state, prng = function() { + return (xg.next() >>> 0) / 4294967296; + }; + prng.double = function() { + do { + var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21); + } while (result === 0); + return result; + }; + prng.int32 = xg.next; + prng.quick = prng; + if (state) { + if (typeof state == "object") + copy(state, xg); + prng.state = function() { + return copy(xg, {}); + }; + } + return prng; + } + if (module2 && module2.exports) { + module2.exports = impl; + } else if (define2 && define2.amd) { + define2(function() { + return impl; + }); + } else { + this.tychei = impl; + } + })(exports, typeof module == "object" && module, typeof define == "function" && define); + }); + + // (disabled):crypto + var require_crypto = __commonJS(() => { + }); + + // node_modules/seedrandom/seedrandom.js + var require_seedrandom = __commonJS((exports, module) => { + (function(global2, pool, math) { + var width = 256, chunks = 6, digits = 52, rngname = "random", startdenom = math.pow(width, chunks), significance = math.pow(2, digits), overflow = significance * 2, mask = width - 1, nodecrypto; + function seedrandom(seed, options, callback) { + var key = []; + options = options == true ? {entropy: true} : options || {}; + var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed == null ? autoseed() : seed, 3), key); + var arc4 = new ARC4(key); + var prng = function() { + var n = arc4.g(chunks), d = startdenom, x = 0; + while (n < significance) { + n = (n + x) * width; + d *= width; + x = arc4.g(1); + } + while (n >= overflow) { + n /= 2; + d /= 2; + x >>>= 1; + } + return (n + x) / d; + }; + prng.int32 = function() { + return arc4.g(4) | 0; + }; + prng.quick = function() { + return arc4.g(4) / 4294967296; + }; + prng.double = prng; + mixkey(tostring(arc4.S), pool); + return (options.pass || callback || function(prng2, seed2, is_math_call, state) { + if (state) { + if (state.S) { + copy(state, arc4); + } + prng2.state = function() { + return copy(arc4, {}); + }; + } + if (is_math_call) { + math[rngname] = prng2; + return seed2; + } else + return prng2; + })(prng, shortseed, "global" in options ? options.global : this == math, options.state); + } + function ARC4(key) { + var t, keylen = key.length, me = this, i = 0, j = me.i = me.j = 0, s = me.S = []; + if (!keylen) { + key = [keylen++]; + } + while (i < width) { + s[i] = i++; + } + for (i = 0; i < width; i++) { + s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])]; + s[j] = t; + } + (me.g = function(count) { + var t2, r = 0, i2 = me.i, j2 = me.j, s2 = me.S; + while (count--) { + t2 = s2[i2 = mask & i2 + 1]; + r = r * width + s2[mask & (s2[i2] = s2[j2 = mask & j2 + t2]) + (s2[j2] = t2)]; + } + me.i = i2; + me.j = j2; + return r; + })(width); + } + function copy(f, t) { + t.i = f.i; + t.j = f.j; + t.S = f.S.slice(); + return t; + } + ; + function flatten(obj, depth) { + var result = [], typ = typeof obj, prop; + if (depth && typ == "object") { + for (prop in obj) { + try { + result.push(flatten(obj[prop], depth - 1)); + } catch (e) { + } + } + } + return result.length ? result : typ == "string" ? obj : obj + "\0"; + } + function mixkey(seed, key) { + var stringseed = seed + "", smear, j = 0; + while (j < stringseed.length) { + key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++); + } + return tostring(key); + } + function autoseed() { + try { + var out; + if (nodecrypto && (out = nodecrypto.randomBytes)) { + out = out(width); + } else { + out = new Uint8Array(width); + (global2.crypto || global2.msCrypto).getRandomValues(out); + } + return tostring(out); + } catch (e) { + var browser = global2.navigator, plugins = browser && browser.plugins; + return [+new Date(), global2, plugins, global2.screen, tostring(pool)]; + } + } + function tostring(a) { + return String.fromCharCode.apply(0, a); + } + mixkey(math.random(), pool); + if (typeof module == "object" && module.exports) { + module.exports = seedrandom; + try { + nodecrypto = require_crypto(); + } catch (ex) { + } + } else if (typeof define == "function" && define.amd) { + define(function() { + return seedrandom; + }); + } else { + math["seed" + rngname] = seedrandom; + } + })(typeof self !== "undefined" ? self : exports, [], Math); + }); + + // node_modules/seedrandom/index.js + var require_seedrandom2 = __commonJS((exports, module) => { + var alea = require_alea(); + var xor128 = require_xor128(); + var xorwow = require_xorwow(); + var xorshift7 = require_xorshift7(); + var xor4096 = require_xor4096(); + var tychei = require_tychei(); + var sr = require_seedrandom(); + sr.alea = alea; + sr.xor128 = xor128; + sr.xorwow = xorwow; + sr.xorshift7 = xorshift7; + sr.xor4096 = xor4096; + sr.tychei = tychei; + module.exports = sr; + }); + + // node_modules/cloverleaf/data/sites.json + var require_sites = __commonJS((exports, module) => { + module.exports = { + Ada: { + minLength: 8 + }, + Adobe: { + minLength: 8, + maxLength: 100, + requirements: ["num", "low", "cap"] + }, + Airbnb: { + minLength: 8, + maxLength: 128, + requirements: ["low", "num", "special"] + }, + AliExpress: { + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + minLength: 6, + maxLength: 20 + }, + Alipay: { + alias: "AliExpress" + }, + allegorithmic: { + minLength: 1 + }, + AlternativeTo: { + minLength: 8, + requirements: ["low", "num"] + }, + Amazon: { + minLength: 6 + }, + Amino: { + minLength: 6 + }, + Apple: { + minLength: 8, + maxLength: 32, + requirements: ["low", "num", "cap"] + }, + Artsy: { + minLength: 6, + maxLength: 128 + }, + Baidu: { + minLength: 6, + maxLength: 14 + }, + BBC: { + minLength: 8, + maxLength: 50, + requirements: ["low", "num", "cap"], + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\\]^_`{|}~" + }, + Behance: { + alias: "Adobe" + }, + Bing: { + alias: "Microsoft" + }, + "Blend Swap": { + minLength: 8 + }, + Blizzard: { + minLength: 8, + maxLength: 16, + requirements: ["low", "num"] + }, + "Channel 4": { + minLength: 6, + maxLength: 255 + }, + "Chrono.gg": { + minLength: 8 + }, + CodePen: { + minLength: 1 + }, + DeviantArt: { + minLength: 6 + }, + Discord: { + minLength: 6, + maxLength: 128 + }, + Disqus: { + minLength: 6 + }, + Dribbble: { + minLength: 6, + maxLength: 128 + }, + Dropbox: { + minLength: 6 + }, + Duolingo: { + minLength: 6 + }, + eBay: { + minLength: 6, + maxLength: 64, + requirements: ["low", "num"], + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+,-.;=?@\\^_`{|}~" + }, + "Epic Games": { + minLength: 7, + requirements: ["low", "num"], + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\\]^_`{|}~" + }, + Etsy: { + minLength: 6, + maxLength: 152 + }, + Evernote: { + minLength: 6, + maxLength: 64 + }, + Facebook: { + minLength: 6 + }, + Factorio: { + minLength: 5 + }, + Fanatical: { + minLength: 6 + }, + FANDOM: { + minLength: 1, + maxLength: 50 + }, + Firebox: { + minLength: 7, + requirements: ["low", "num"] + }, + Firefox: { + minLength: 8 + }, + Flickr: { + alias: "Yahoo" + }, + Forvo: { + minLength: 4, + maxLength: 28 + }, + Freelancer: { + minLength: 6, + requirements: ["low", "num"] + }, + Genius: { + minLength: 4, + maxLength: 128 + }, + GeoGuessr: { + minLength: 5 + }, + Gfycat: { + minLength: 8, + maxLength: 25 + }, + giffgaff: { + requirements: ["cap", "low", "num"], + minLength: 8 + }, + GIPHY: { + minLength: 1, + maxLength: 128 + }, + GitHub: { + minLength: 7, + maxLength: 72, + requirements: ["low", "num"] + }, + GitLab: { + minLength: 8, + maxLength: 128 + }, + "Government Gateway": { + minLength: 8, + maxLength: 12, + requirements: ["low", "num"], + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + }, + Guilded: { + minLength: 8, + maxLength: 128 + }, + GOG: { + minLength: 2 + }, + Google: { + minLength: 8, + maxLength: 100 + }, + "The Guardian": { + minLength: 6, + maxLength: 72 + }, + HitFilm: { + minLength: 8, + maxLength: 25 + }, + "Hi-Rez": { + minLength: 7, + maxLength: 20, + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + }, + "Humble Bundle": { + minLength: 4 + }, + IFTTT: { + minLength: 6 + }, + IMDb: { + minLength: 8, + maxLength: 1024 + }, + imgur: { + minLength: 6, + maxLength: 255, + requirements: ["num", "low"] + }, + Instagram: { + minLength: 6, + maxLength: 255 + }, + "itch.io": { + minLength: 2 + }, + itv: { + minLength: 6, + maxLength: 100 + }, + JustGiving: { + minLength: 6 + }, + Keybase: { + minLength: 6 + }, + "Ko-fi": { + minLength: 6, + maxLength: 100 + }, + "last.fm": { + minLength: 6, + maxLength: 128, + requirements: ["num", "special"] + }, + lernu: { + minLength: 5 + }, + Lingvist: { + minLength: 8 + }, + LinkedIn: { + minLength: 6 + }, + "Lloyds Bank": { + minLength: 8, + maxLength: 15, + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + }, + "mailbox.org": { + minLength: 6, + requirements: ["cap", "low", "num"], + chars: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!$"%&/()=*+-#.,;:@?{}[]' + }, + "Mail.Ru": { + requirements: ["special", "num", "low"], + minLength: 6, + maxLength: 40 + }, + Mapbox: { + minLength: 8, + maxLength: 512 + }, + Mega: { + minLength: 8 + }, + Messenger: { + alias: "Facebook" + }, + Microsoft: { + requirements: ["cap", "low"], + minLength: 8, + maxLength: 127 + }, + Minecraft: { + alias: "Mojang" + }, + Mojang: { + minLength: 8, + maxLength: 256 + }, + MSN: { + alias: "Microsoft" + }, + MuseScore: { + minLength: 1, + maxLength: 128 + }, + "My Nintendo": { + minLength: 8, + maxLength: 20, + requirements: ["cap", "low"] + }, + "Native Instruments": { + minLength: 10, + maxLength: 60, + requirements: ["special"] + }, + Nectar: { + minLength: 8, + maxLength: 100, + requirements: ["num", "cap", "low"], + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*,-./:;<=>?@[\\]^_`{|}~" + }, + Netflix: { + minLength: 4, + maxLength: 50 + }, + Opera: { + minLength: 12, + maxLength: 1e3 + }, + OpenStreetMap: { + minLength: 8, + maxLength: 255 + }, + Origin: { + minLength: 8, + maxLength: 16, + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + requirements: ["cap", "low", "num"] + }, + "osu!": { + minLength: 8 + }, + Oxfam: { + minLength: 6 + }, + Pastebin: { + minLength: 4 + }, + "Patient Access": { + minLength: 8, + maxLength: 99, + requirements: ["num", "cap", "low"] + }, + Patreon: { + minLength: 6 + }, + PayPal: { + requirements: ["num"], + minLength: 8, + maxLength: 20 + }, + paysafecard: { + minLength: 8, + requirements: ["cap", "special"], + maxLength: 110 + }, + PCPartPicker: { + minLength: 1 + }, + Pinterest: { + minLength: 6, + requirements: ["low", "num"] + }, + pixiv: { + minLength: 6, + maxLength: 72, + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + }, + "plug.dj": { + minLength: 8, + maxLength: 128, + requirements: ["low"] + }, + Pocket: { + minLength: 6 + }, + Prezi: { + minLength: 8, + maxLength: 128 + }, + QQ: { + minLength: 8, + maxLength: 16, + requirements: ["low", "num"] + }, + Reddit: { + minLength: 6 + }, + "Riot Games": { + minLength: 8, + maxLength: 128, + requirements: ["low", "num"] + }, + "Rockstar Games Social Club": { + minLength: 8, + maxLength: 30, + requirements: ["num", "cap"] + }, + "Sainsbury's": { + minLength: 8, + maxLength: 100, + requirements: ["num", "cap", "low"], + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*,-./:;<=>?@[\\]^_`{|}~" + }, + Skype: { + alias: "Microsoft" + }, + Snapchat: { + minLength: 8, + requirements: ["num", "cap"] + }, + Songsterr: { + minLength: 5, + maxLength: 200 + }, + Soundcloud: { + minLength: 6, + maxLength: 2048 + }, + Spotify: { + minLength: 4 + }, + "Square Enix": { + minLength: 6, + maxLength: 32, + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"(#$%&')=~|`{+*}<>?_-^@[;:],./" + }, + "Stack Overflow": { + minLength: 8, + requirements: ["low", "num"] + }, + Steam: { + minLength: 8 + }, + StellarX: { + minLength: 8, + maxLength: 50, + requirements: ["cap", "low", "num"], + regex: "^(?!.*(.)\\1{2,}).+" + }, + Streamable: { + minLength: 6 + }, + Tesco: { + minLength: 8, + maxLength: 45, + requirements: ["low", "cap", "special"] + }, + "TheCubicle.us": { + minLength: 5 + }, + "tic.computer": { + minLength: 6 + }, + TikTok: { + minLength: 8, + maxLength: 20, + requirements: ["low", "num", "special"], + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\\]^_|~" + }, + Trello: { + minLength: 8 + }, + Tumblr: { + alias: "Yahoo" + }, + Twitch: { + minLength: 8 + }, + Twitter: { + minLength: 6 + }, + Uber: { + minLength: 5, + maxLength: 512 + }, + Ubisoft: { + minLength: 8, + maxLength: 16 + }, + UCAS: { + minLength: 8, + maxLength: 14, + requirements: ["cap", "low", "num", "special"] + }, + "Unity ID": { + minLength: 8, + maxLength: 72, + requirements: ["cap", "low", "num"] + }, + Uplay: { + alias: "Ubisoft" + }, + Venmo: { + minLength: 8, + maxLength: 32 + }, + Vimeo: { + requirements: ["cap", "low", "num", "special"], + minLength: 8, + maxLength: 72 + }, + "Visa Checkout": { + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + minLength: 8, + maxLength: 32 + }, + Vivaldi: { + minLength: 8, + maxLength: 254 + }, + VK: { + minLength: 6 + }, + WeChat: { + alias: "QQ" + }, + Wikipedia: { + minLength: 1 + }, + Wordpress: { + minLength: 6, + chars: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+,-./:;<=>?@[]^_`{|}~", + requirements: ["cap", "low", "num", "special"] + }, + Xbox: { + alias: "Microsoft" + }, + "XDA Developers": { + minLength: 1, + maxLength: 50 + }, + Yahoo: { + minLength: 8, + requirements: ["low", "num"] + }, + YouTube: { + alias: "Google" + }, + "YoYo Games": { + minLength: 6 + } + }; + }); + + // node_modules/js-sha3/src/sha3.js + var require_sha3 = __commonJS((exports, module) => { + /** + * [js-sha3]{@link https://github.com/emn178/js-sha3} + * + * @version 0.8.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2015-2018 + * @license MIT + */ + (function() { + "use strict"; + var INPUT_ERROR = "input is invalid type"; + var FINALIZE_ERROR = "finalize already called"; + var WINDOW = typeof window === "object"; + var root = WINDOW ? window : {}; + if (root.JS_SHA3_NO_WINDOW) { + WINDOW = false; + } + var WEB_WORKER = !WINDOW && typeof self === "object"; + var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node; + if (NODE_JS) { + root = global; + } else if (WEB_WORKER) { + root = self; + } + var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === "object" && module.exports; + var AMD = typeof define === "function" && define.amd; + var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined"; + var HEX_CHARS = "0123456789abcdef".split(""); + var SHAKE_PADDING = [31, 7936, 2031616, 520093696]; + var CSHAKE_PADDING = [4, 1024, 262144, 67108864]; + var KECCAK_PADDING = [1, 256, 65536, 16777216]; + var PADDING = [6, 1536, 393216, 100663296]; + var SHIFT = [0, 8, 16, 24]; + var RC = [ + 1, + 0, + 32898, + 0, + 32906, + 2147483648, + 2147516416, + 2147483648, + 32907, + 0, + 2147483649, + 0, + 2147516545, + 2147483648, + 32777, + 2147483648, + 138, + 0, + 136, + 0, + 2147516425, + 0, + 2147483658, + 0, + 2147516555, + 0, + 139, + 2147483648, + 32905, + 2147483648, + 32771, + 2147483648, + 32770, + 2147483648, + 128, + 2147483648, + 32778, + 0, + 2147483658, + 2147483648, + 2147516545, + 2147483648, + 32896, + 2147483648, + 2147483649, + 0, + 2147516424, + 2147483648 + ]; + var BITS = [224, 256, 384, 512]; + var SHAKE_BITS = [128, 256]; + var OUTPUT_TYPES = ["hex", "buffer", "arrayBuffer", "array", "digest"]; + var CSHAKE_BYTEPAD = { + "128": 168, + "256": 136 + }; + if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) { + Array.isArray = function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + } + if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { + ArrayBuffer.isView = function(obj) { + return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer; + }; + } + var createOutputMethod = function(bits2, padding, outputType) { + return function(message) { + return new Keccak(bits2, padding, bits2).update(message)[outputType](); + }; + }; + var createShakeOutputMethod = function(bits2, padding, outputType) { + return function(message, outputBits) { + return new Keccak(bits2, padding, outputBits).update(message)[outputType](); + }; + }; + var createCshakeOutputMethod = function(bits2, padding, outputType) { + return function(message, outputBits, n, s) { + return methods["cshake" + bits2].update(message, outputBits, n, s)[outputType](); + }; + }; + var createKmacOutputMethod = function(bits2, padding, outputType) { + return function(key, message, outputBits, s) { + return methods["kmac" + bits2].update(key, message, outputBits, s)[outputType](); + }; + }; + var createOutputMethods = function(method, createMethod2, bits2, padding) { + for (var i2 = 0; i2 < OUTPUT_TYPES.length; ++i2) { + var type = OUTPUT_TYPES[i2]; + method[type] = createMethod2(bits2, padding, type); + } + return method; + }; + var createMethod = function(bits2, padding) { + var method = createOutputMethod(bits2, padding, "hex"); + method.create = function() { + return new Keccak(bits2, padding, bits2); + }; + method.update = function(message) { + return method.create().update(message); + }; + return createOutputMethods(method, createOutputMethod, bits2, padding); + }; + var createShakeMethod = function(bits2, padding) { + var method = createShakeOutputMethod(bits2, padding, "hex"); + method.create = function(outputBits) { + return new Keccak(bits2, padding, outputBits); + }; + method.update = function(message, outputBits) { + return method.create(outputBits).update(message); + }; + return createOutputMethods(method, createShakeOutputMethod, bits2, padding); + }; + var createCshakeMethod = function(bits2, padding) { + var w = CSHAKE_BYTEPAD[bits2]; + var method = createCshakeOutputMethod(bits2, padding, "hex"); + method.create = function(outputBits, n, s) { + if (!n && !s) { + return methods["shake" + bits2].create(outputBits); + } else { + return new Keccak(bits2, padding, outputBits).bytepad([n, s], w); + } + }; + method.update = function(message, outputBits, n, s) { + return method.create(outputBits, n, s).update(message); + }; + return createOutputMethods(method, createCshakeOutputMethod, bits2, padding); + }; + var createKmacMethod = function(bits2, padding) { + var w = CSHAKE_BYTEPAD[bits2]; + var method = createKmacOutputMethod(bits2, padding, "hex"); + method.create = function(key, outputBits, s) { + return new Kmac(bits2, padding, outputBits).bytepad(["KMAC", s], w).bytepad([key], w); + }; + method.update = function(key, message, outputBits, s) { + return method.create(key, outputBits, s).update(message); + }; + return createOutputMethods(method, createKmacOutputMethod, bits2, padding); + }; + var algorithms = [ + {name: "keccak", padding: KECCAK_PADDING, bits: BITS, createMethod}, + {name: "sha3", padding: PADDING, bits: BITS, createMethod}, + {name: "shake", padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod}, + {name: "cshake", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod}, + {name: "kmac", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod} + ]; + var methods = {}, methodNames = []; + for (var i = 0; i < algorithms.length; ++i) { + var algorithm = algorithms[i]; + var bits = algorithm.bits; + for (var j = 0; j < bits.length; ++j) { + var methodName = algorithm.name + "_" + bits[j]; + methodNames.push(methodName); + methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding); + if (algorithm.name !== "sha3") { + var newMethodName = algorithm.name + bits[j]; + methodNames.push(newMethodName); + methods[newMethodName] = methods[methodName]; + } + } + } + function Keccak(bits2, padding, outputBits) { + this.blocks = []; + this.s = []; + this.padding = padding; + this.outputBits = outputBits; + this.reset = true; + this.finalized = false; + this.block = 0; + this.start = 0; + this.blockCount = 1600 - (bits2 << 1) >> 5; + this.byteCount = this.blockCount << 2; + this.outputBlocks = outputBits >> 5; + this.extraBytes = (outputBits & 31) >> 3; + for (var i2 = 0; i2 < 50; ++i2) { + this.s[i2] = 0; + } + } + Keccak.prototype.update = function(message) { + if (this.finalized) { + throw new Error(FINALIZE_ERROR); + } + var notString, type = typeof message; + if (type !== "string") { + if (type === "object") { + if (message === null) { + throw new Error(INPUT_ERROR); + } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } else if (!Array.isArray(message)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { + throw new Error(INPUT_ERROR); + } + } + } else { + throw new Error(INPUT_ERROR); + } + notString = true; + } + var blocks = this.blocks, byteCount = this.byteCount, length = message.length, blockCount = this.blockCount, index = 0, s = this.s, i2, code; + while (index < length) { + if (this.reset) { + this.reset = false; + blocks[0] = this.block; + for (i2 = 1; i2 < blockCount + 1; ++i2) { + blocks[i2] = 0; + } + } + if (notString) { + for (i2 = this.start; index < length && i2 < byteCount; ++index) { + blocks[i2 >> 2] |= message[index] << SHIFT[i2++ & 3]; + } + } else { + for (i2 = this.start; index < length && i2 < byteCount; ++index) { + code = message.charCodeAt(index); + if (code < 128) { + blocks[i2 >> 2] |= code << SHIFT[i2++ & 3]; + } else if (code < 2048) { + blocks[i2 >> 2] |= (192 | code >> 6) << SHIFT[i2++ & 3]; + blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; + } else if (code < 55296 || code >= 57344) { + blocks[i2 >> 2] |= (224 | code >> 12) << SHIFT[i2++ & 3]; + blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3]; + blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; + } else { + code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index) & 1023); + blocks[i2 >> 2] |= (240 | code >> 18) << SHIFT[i2++ & 3]; + blocks[i2 >> 2] |= (128 | code >> 12 & 63) << SHIFT[i2++ & 3]; + blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3]; + blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; + } + } + } + this.lastByteIndex = i2; + if (i2 >= byteCount) { + this.start = i2 - byteCount; + this.block = blocks[blockCount]; + for (i2 = 0; i2 < blockCount; ++i2) { + s[i2] ^= blocks[i2]; + } + f(s); + this.reset = true; + } else { + this.start = i2; + } + } + return this; + }; + Keccak.prototype.encode = function(x, right) { + var o = x & 255, n = 1; + var bytes = [o]; + x = x >> 8; + o = x & 255; + while (o > 0) { + bytes.unshift(o); + x = x >> 8; + o = x & 255; + ++n; + } + if (right) { + bytes.push(n); + } else { + bytes.unshift(n); + } + this.update(bytes); + return bytes.length; + }; + Keccak.prototype.encodeString = function(str) { + var notString, type = typeof str; + if (type !== "string") { + if (type === "object") { + if (str === null) { + throw new Error(INPUT_ERROR); + } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) { + str = new Uint8Array(str); + } else if (!Array.isArray(str)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) { + throw new Error(INPUT_ERROR); + } + } + } else { + throw new Error(INPUT_ERROR); + } + notString = true; + } + var bytes = 0, length = str.length; + if (notString) { + bytes = length; + } else { + for (var i2 = 0; i2 < str.length; ++i2) { + var code = str.charCodeAt(i2); + if (code < 128) { + bytes += 1; + } else if (code < 2048) { + bytes += 2; + } else if (code < 55296 || code >= 57344) { + bytes += 3; + } else { + code = 65536 + ((code & 1023) << 10 | str.charCodeAt(++i2) & 1023); + bytes += 4; + } + } + } + bytes += this.encode(bytes * 8); + this.update(str); + return bytes; + }; + Keccak.prototype.bytepad = function(strs, w) { + var bytes = this.encode(w); + for (var i2 = 0; i2 < strs.length; ++i2) { + bytes += this.encodeString(strs[i2]); + } + var paddingBytes = w - bytes % w; + var zeros = []; + zeros.length = paddingBytes; + this.update(zeros); + return this; + }; + Keccak.prototype.finalize = function() { + if (this.finalized) { + return; + } + this.finalized = true; + var blocks = this.blocks, i2 = this.lastByteIndex, blockCount = this.blockCount, s = this.s; + blocks[i2 >> 2] |= this.padding[i2 & 3]; + if (this.lastByteIndex === this.byteCount) { + blocks[0] = blocks[blockCount]; + for (i2 = 1; i2 < blockCount + 1; ++i2) { + blocks[i2] = 0; + } + } + blocks[blockCount - 1] |= 2147483648; + for (i2 = 0; i2 < blockCount; ++i2) { + s[i2] ^= blocks[i2]; + } + f(s); + }; + Keccak.prototype.toString = Keccak.prototype.hex = function() { + this.finalize(); + var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; + var hex = "", block; + while (j2 < outputBlocks) { + for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { + block = s[i2]; + hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15] + HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15] + HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15] + HEX_CHARS[block >> 28 & 15] + HEX_CHARS[block >> 24 & 15]; + } + if (j2 % blockCount === 0) { + f(s); + i2 = 0; + } + } + if (extraBytes) { + block = s[i2]; + hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15]; + if (extraBytes > 1) { + hex += HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15]; + } + if (extraBytes > 2) { + hex += HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15]; + } + } + return hex; + }; + Keccak.prototype.arrayBuffer = function() { + this.finalize(); + var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; + var bytes = this.outputBits >> 3; + var buffer; + if (extraBytes) { + buffer = new ArrayBuffer(outputBlocks + 1 << 2); + } else { + buffer = new ArrayBuffer(bytes); + } + var array = new Uint32Array(buffer); + while (j2 < outputBlocks) { + for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { + array[j2] = s[i2]; + } + if (j2 % blockCount === 0) { + f(s); + } + } + if (extraBytes) { + array[i2] = s[i2]; + buffer = buffer.slice(0, bytes); + } + return buffer; + }; + Keccak.prototype.buffer = Keccak.prototype.arrayBuffer; + Keccak.prototype.digest = Keccak.prototype.array = function() { + this.finalize(); + var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; + var array = [], offset, block; + while (j2 < outputBlocks) { + for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { + offset = j2 << 2; + block = s[i2]; + array[offset] = block & 255; + array[offset + 1] = block >> 8 & 255; + array[offset + 2] = block >> 16 & 255; + array[offset + 3] = block >> 24 & 255; + } + if (j2 % blockCount === 0) { + f(s); + } + } + if (extraBytes) { + offset = j2 << 2; + block = s[i2]; + array[offset] = block & 255; + if (extraBytes > 1) { + array[offset + 1] = block >> 8 & 255; + } + if (extraBytes > 2) { + array[offset + 2] = block >> 16 & 255; + } + } + return array; + }; + function Kmac(bits2, padding, outputBits) { + Keccak.call(this, bits2, padding, outputBits); + } + Kmac.prototype = new Keccak(); + Kmac.prototype.finalize = function() { + this.encode(this.outputBits, true); + return Keccak.prototype.finalize.call(this); + }; + var f = function(s) { + var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49; + for (n = 0; n < 48; n += 2) { + c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]; + c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]; + c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]; + c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]; + c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]; + c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]; + c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]; + c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]; + c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]; + c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]; + h = c8 ^ (c2 << 1 | c3 >>> 31); + l = c9 ^ (c3 << 1 | c2 >>> 31); + s[0] ^= h; + s[1] ^= l; + s[10] ^= h; + s[11] ^= l; + s[20] ^= h; + s[21] ^= l; + s[30] ^= h; + s[31] ^= l; + s[40] ^= h; + s[41] ^= l; + h = c0 ^ (c4 << 1 | c5 >>> 31); + l = c1 ^ (c5 << 1 | c4 >>> 31); + s[2] ^= h; + s[3] ^= l; + s[12] ^= h; + s[13] ^= l; + s[22] ^= h; + s[23] ^= l; + s[32] ^= h; + s[33] ^= l; + s[42] ^= h; + s[43] ^= l; + h = c2 ^ (c6 << 1 | c7 >>> 31); + l = c3 ^ (c7 << 1 | c6 >>> 31); + s[4] ^= h; + s[5] ^= l; + s[14] ^= h; + s[15] ^= l; + s[24] ^= h; + s[25] ^= l; + s[34] ^= h; + s[35] ^= l; + s[44] ^= h; + s[45] ^= l; + h = c4 ^ (c8 << 1 | c9 >>> 31); + l = c5 ^ (c9 << 1 | c8 >>> 31); + s[6] ^= h; + s[7] ^= l; + s[16] ^= h; + s[17] ^= l; + s[26] ^= h; + s[27] ^= l; + s[36] ^= h; + s[37] ^= l; + s[46] ^= h; + s[47] ^= l; + h = c6 ^ (c0 << 1 | c1 >>> 31); + l = c7 ^ (c1 << 1 | c0 >>> 31); + s[8] ^= h; + s[9] ^= l; + s[18] ^= h; + s[19] ^= l; + s[28] ^= h; + s[29] ^= l; + s[38] ^= h; + s[39] ^= l; + s[48] ^= h; + s[49] ^= l; + b0 = s[0]; + b1 = s[1]; + b32 = s[11] << 4 | s[10] >>> 28; + b33 = s[10] << 4 | s[11] >>> 28; + b14 = s[20] << 3 | s[21] >>> 29; + b15 = s[21] << 3 | s[20] >>> 29; + b46 = s[31] << 9 | s[30] >>> 23; + b47 = s[30] << 9 | s[31] >>> 23; + b28 = s[40] << 18 | s[41] >>> 14; + b29 = s[41] << 18 | s[40] >>> 14; + b20 = s[2] << 1 | s[3] >>> 31; + b21 = s[3] << 1 | s[2] >>> 31; + b2 = s[13] << 12 | s[12] >>> 20; + b3 = s[12] << 12 | s[13] >>> 20; + b34 = s[22] << 10 | s[23] >>> 22; + b35 = s[23] << 10 | s[22] >>> 22; + b16 = s[33] << 13 | s[32] >>> 19; + b17 = s[32] << 13 | s[33] >>> 19; + b48 = s[42] << 2 | s[43] >>> 30; + b49 = s[43] << 2 | s[42] >>> 30; + b40 = s[5] << 30 | s[4] >>> 2; + b41 = s[4] << 30 | s[5] >>> 2; + b22 = s[14] << 6 | s[15] >>> 26; + b23 = s[15] << 6 | s[14] >>> 26; + b4 = s[25] << 11 | s[24] >>> 21; + b5 = s[24] << 11 | s[25] >>> 21; + b36 = s[34] << 15 | s[35] >>> 17; + b37 = s[35] << 15 | s[34] >>> 17; + b18 = s[45] << 29 | s[44] >>> 3; + b19 = s[44] << 29 | s[45] >>> 3; + b10 = s[6] << 28 | s[7] >>> 4; + b11 = s[7] << 28 | s[6] >>> 4; + b42 = s[17] << 23 | s[16] >>> 9; + b43 = s[16] << 23 | s[17] >>> 9; + b24 = s[26] << 25 | s[27] >>> 7; + b25 = s[27] << 25 | s[26] >>> 7; + b6 = s[36] << 21 | s[37] >>> 11; + b7 = s[37] << 21 | s[36] >>> 11; + b38 = s[47] << 24 | s[46] >>> 8; + b39 = s[46] << 24 | s[47] >>> 8; + b30 = s[8] << 27 | s[9] >>> 5; + b31 = s[9] << 27 | s[8] >>> 5; + b12 = s[18] << 20 | s[19] >>> 12; + b13 = s[19] << 20 | s[18] >>> 12; + b44 = s[29] << 7 | s[28] >>> 25; + b45 = s[28] << 7 | s[29] >>> 25; + b26 = s[38] << 8 | s[39] >>> 24; + b27 = s[39] << 8 | s[38] >>> 24; + b8 = s[48] << 14 | s[49] >>> 18; + b9 = s[49] << 14 | s[48] >>> 18; + s[0] = b0 ^ ~b2 & b4; + s[1] = b1 ^ ~b3 & b5; + s[10] = b10 ^ ~b12 & b14; + s[11] = b11 ^ ~b13 & b15; + s[20] = b20 ^ ~b22 & b24; + s[21] = b21 ^ ~b23 & b25; + s[30] = b30 ^ ~b32 & b34; + s[31] = b31 ^ ~b33 & b35; + s[40] = b40 ^ ~b42 & b44; + s[41] = b41 ^ ~b43 & b45; + s[2] = b2 ^ ~b4 & b6; + s[3] = b3 ^ ~b5 & b7; + s[12] = b12 ^ ~b14 & b16; + s[13] = b13 ^ ~b15 & b17; + s[22] = b22 ^ ~b24 & b26; + s[23] = b23 ^ ~b25 & b27; + s[32] = b32 ^ ~b34 & b36; + s[33] = b33 ^ ~b35 & b37; + s[42] = b42 ^ ~b44 & b46; + s[43] = b43 ^ ~b45 & b47; + s[4] = b4 ^ ~b6 & b8; + s[5] = b5 ^ ~b7 & b9; + s[14] = b14 ^ ~b16 & b18; + s[15] = b15 ^ ~b17 & b19; + s[24] = b24 ^ ~b26 & b28; + s[25] = b25 ^ ~b27 & b29; + s[34] = b34 ^ ~b36 & b38; + s[35] = b35 ^ ~b37 & b39; + s[44] = b44 ^ ~b46 & b48; + s[45] = b45 ^ ~b47 & b49; + s[6] = b6 ^ ~b8 & b0; + s[7] = b7 ^ ~b9 & b1; + s[16] = b16 ^ ~b18 & b10; + s[17] = b17 ^ ~b19 & b11; + s[26] = b26 ^ ~b28 & b20; + s[27] = b27 ^ ~b29 & b21; + s[36] = b36 ^ ~b38 & b30; + s[37] = b37 ^ ~b39 & b31; + s[46] = b46 ^ ~b48 & b40; + s[47] = b47 ^ ~b49 & b41; + s[8] = b8 ^ ~b0 & b2; + s[9] = b9 ^ ~b1 & b3; + s[18] = b18 ^ ~b10 & b12; + s[19] = b19 ^ ~b11 & b13; + s[28] = b28 ^ ~b20 & b22; + s[29] = b29 ^ ~b21 & b23; + s[38] = b38 ^ ~b30 & b32; + s[39] = b39 ^ ~b31 & b33; + s[48] = b48 ^ ~b40 & b42; + s[49] = b49 ^ ~b41 & b43; + s[0] ^= RC[n]; + s[1] ^= RC[n + 1]; + } + }; + if (COMMON_JS) { + module.exports = methods; + } else { + for (i = 0; i < methodNames.length; ++i) { + root[methodNames[i]] = methods[methodNames[i]]; + } + if (AMD) { + define(function() { + return methods; + }); + } + } + })(); + }); + + // node_modules/cloverleaf/index.js + var require_cloverleaf = __commonJS((exports) => { + var jsonData2 = require_sites(); + var keccak512 = require_sha3().keccak512; + Math.seedrandom = require_seedrandom2(); + var defaultMinLength = 4; + var defaultMaxLength = 512; + var defaultLength = 16; + var possibleRequirements = { + cap: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + low: "abcdefghijklmnopqrstuvwxyz", + num: "0123456789", + special: "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" + }; + function process2(appName, masterPass, presetToggle = false, length = defaultLength) { + let minLength = defaultMinLength; + let maxLength = defaultMaxLength; + let chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"; + const requirements = []; + let regex; + appName = appName.trim(); + length = Math.trunc(length); + let result = ""; + if (presetToggle) { + try { + if (jsonData2[appName].alias) { + appName = jsonData2[appName].alias; + } + } catch (TypeError2) { + throw new Error("Invalid preset"); + } + if ("minLength" in jsonData2[appName]) { + minLength = jsonData2[appName].minLength; + } + if ("maxLength" in jsonData2[appName]) { + maxLength = jsonData2[appName].maxLength; + } + if ("chars" in jsonData2[appName]) { + chars = jsonData2[appName].chars; + } + if ("regex" in jsonData2[appName]) { + try { + regex = new RegExp(jsonData2[appName].regex); + } catch (SyntaxError) { + throw new Error(`Invalid regex from ${appName} "${jsonData2[appName].regex}"`); + } + } + if ("requirements" in jsonData2[appName]) { + for (let i = 0; i < jsonData2[appName].requirements.length; i++) { + requirements.push(possibleRequirements[jsonData2[appName].requirements[i]]); + } + } + } + if (!(minLength <= length && length <= maxLength)) { + if (length > maxLength) { + length = maxLength; + } else if (length < minLength) { + length = minLength; + } + } + if (appName === "" || masterPass === "" || length === "") { + return null; + } + appName = appName.toLowerCase(); + Math.seedrandom(keccak512(appName + masterPass)); + while (true) { + result = ""; + while (result.length < length) { + result += chars[Math.floor(Math.random() * chars.length)]; + } + if (requirements.length !== 0 || regex) { + let nope = false; + for (let j = 0; j < requirements.length; j++) { + for (let c = 0; c < requirements[j].length; c++) { + if (result.indexOf(requirements[j][c]) !== -1) { + break; + } + if (requirements[j].indexOf(requirements[j][c]) === requirements[j].length - 1) { + nope = true; + break; + } + } + if (nope) { + break; + } + } + if (regex && !nope) { + if (!regex.test(result)) { + nope = true; + } + } + if (!nope) { + break; + } + } else { + break; + } + } + return result; + } + exports.process = process2; + exports.siteData = jsonData2; + }); + + // data/logos.json + var require_logos = __commonJS((exports, module) => { + module.exports = { + Airbnb: { + mini: true + }, + Alipay: { + alias: "AliExpress", + mini: true + }, + Amazon: { + mini: true + }, + Amino: { + mini: true + }, + Artsy: { + mini: true + }, + Baidu: { + mini: true + }, + Behance: { + alias: "Adobe", + mini: true + }, + Bing: { + alias: "Microsoft", + mini: true + }, + "Chrono.gg": { + mini: true + }, + CodePen: { + mini: true + }, + DeviantArt: { + mini: true + }, + Discord: { + mini: true + }, + Disqus: { + mini: true + }, + Dribbble: { + mini: true + }, + Dropbox: { + mini: true + }, + Duolingo: { + mini: true + }, + Etsy: { + mini: true + }, + Evernote: { + mini: true + }, + Facebook: { + mini: true + }, + Fanatical: { + mini: true + }, + FANDOM: { + mini: true + }, + Firebox: { + mini: true + }, + Firefox: { + mini: true + }, + Flickr: { + alias: "Yahoo", + mini: true + }, + Freelancer: { + mini: true + }, + Genius: { + mini: true + }, + GeoGuessr: { + mini: true + }, + Gfycat: { + mini: true + }, + GIPHY: { + mini: true + }, + GitLab: { + mini: true + }, + "Hi-Rez": { + logo: "logos/Hi-Rez.png" + }, + imgur: { + mini: true + }, + "mailbox.org": { + mini: true + }, + Messenger: { + alias: "Facebook" + }, + Minecraft: { + alias: "Mojang" + }, + MSN: { + alias: "Microsoft" + }, + Nectar: { + logo: "logos/Nectar.png" + }, + Netflix: { + mini: true + }, + "osu!": { + logo: "logos/osu!.png" + }, + Pastebin: { + logo: "logos/Pastebin.png" + }, + Patreon: { + mini: true + }, + PayPal: { + mini: true + }, + paysafecard: { + mini: true + }, + Pinterest: { + mini: true + }, + pixiv: { + mini: true + }, + "Riot Games": { + mini: true + }, + Skype: { + alias: "Microsoft" + }, + Spotify: { + mini: true + }, + "Square Enix": { + mini: true + }, + StellarX: { + mini: true + }, + TikTok: { + mini: true + }, + Tumblr: { + alias: "Yahoo", + mini: true + }, + Twitch: { + mini: true + }, + Uplay: { + alias: "Ubisoft" + }, + WeChat: { + alias: "QQ" + }, + Xbox: { + alias: "Microsoft" + }, + Yahoo: { + mini: true + }, + YouTube: { + alias: "Google" + } + }; + }); + + // data/themes.json + var require_themes = __commonJS((exports, module) => { + module.exports = { + Vanilla: { + accent: "#3f51b5", + lightAccent: "#7280ce", + text: "#535353", + background: "#fff", + internal: "#fff", + incorrect: "#f44336", + correct: "#8fff66", + inputColor: "#000", + linkColor: "#00539b", + highlightColor: "#eee" + }, + Discord: { + accent: "#7289da", + lightAccent: "#9aabe5", + text: "#dcddde", + background: "#2f3136", + internal: "#393c43", + incorrect: "#f04747", + correct: "#43b581", + inputColor: "#fff", + linkColor: "#00b0f4", + highlightColor: "#393c43" + }, + "Solarized Dark": { + accent: "#6c71c4", + lightAccent: "#9094d3", + text: "#93a1a1", + background: "#073642", + internal: "#002b36", + incorrect: "#ce2726", + correct: "#7c9114", + inputColor: "#839496", + linkColor: "#268bd2", + highlightColor: "#002b36" + }, + OLED: { + accent: "#3f51b5", + lightAccent: "#6d78b5", + text: "#d4d4d4", + background: "#000", + internal: "#000", + incorrect: "#f44336", + correct: "#8fff66", + inputColor: "#839496", + linkColor: "#268bd2", + highlightColor: "#0e0e0e" + }, + Dracula: { + accent: "#3f51b5", + lightAccent: "#6272a4", + text: "#bcc2cd", + background: "#282a36", + internal: "#343746", + incorrect: "#f55", + correct: "#50fa7b", + inputColor: "#f8f8f2", + linkColor: "#6272a4", + highlightColor: "#343746" + } + }; + }); + + // langs/langs.json + var require_langs = __commonJS((exports, module) => { + module.exports = {"de-DE": {native: "Deutsch"}, "en-GB": {native: "English"}, "eo-UY": {native: "Esperanto"}, "es-ES": {native: "Espa\xF1ol"}, "fr-FR": {native: "Fran\xE7ais"}}; + }); + + // src/debug.js + var require_debug = __commonJS(() => { + var themeData2 = require_themes(); + var debug = false; + if (debug) { + document.title += ` - Debug ${new Date().getTime()}`; + console.debug("Enabling debug css"); + const link = document.createElement("link"); + link.setAttribute("rel", "stylesheet"); + link.setAttribute("type", "text/css"); + link.setAttribute("href", "debug.css"); + document.getElementsByTagName("head")[0].appendChild(link); + themeData2.testTheme = { + accent: "#ff00ff", + lightAccent: "#ff00ff", + text: "#ff00ff", + background: "#ff00ff", + internal: "#ff00ff", + incorrect: "#ff00ff", + correct: "#ff00ff", + inputColor: "#ff00ff", + linkColor: "#ff00ff", + highlightColor: "#ff00ff" + }; + const themeOption = document.createElement("option"); + themeOption.onclick = "changeTheme('testTheme')"; + themeOption.id = "testTheme"; + themeOption.innerHTML = "testTheme"; + document.querySelector("#options .input-field select").appendChild(themeOption); + const css = "a[id=testTheme]{background-color: #ff00ff !important; border: 1px ;}a[id=testTheme] i {color: #ff00ff"; + const style = document.createElement("style"); + style.type = "text/css"; + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + style.appendChild(document.createTextNode(css)); + } + document.getElementsByTagName("head")[0].appendChild(style); + } + if (location.hostname === "localhost" || location.hostname === "127.0.0.1") { + document.title += " - LocalHost"; + document.getElementById("faq").href += ".html"; + } + }); + + // src/main.js + var import_materialize_min = __toModule(require_materialize_min()); + + // node_modules/workbox-core/_version.js + "use strict"; + try { + self["workbox:core:6.1.2"] && _(); + } catch (e) { + } + + // node_modules/workbox-core/models/messages/messages.js + var messages = { + "invalid-value": ({paramName, validValueDescription, value}) => { + if (!paramName || !validValueDescription) { + throw new Error(`Unexpected input to 'invalid-value' error.`); + } + return `The '${paramName}' parameter was given a value with an unexpected value. ${validValueDescription} Received a value of ${JSON.stringify(value)}.`; + }, + "not-an-array": ({moduleName, className, funcName, paramName}) => { + if (!moduleName || !className || !funcName || !paramName) { + throw new Error(`Unexpected input to 'not-an-array' error.`); + } + return `The parameter '${paramName}' passed into '${moduleName}.${className}.${funcName}()' must be an array.`; + }, + "incorrect-type": ({expectedType, paramName, moduleName, className, funcName}) => { + if (!expectedType || !paramName || !moduleName || !funcName) { + throw new Error(`Unexpected input to 'incorrect-type' error.`); + } + return `The parameter '${paramName}' passed into '${moduleName}.${className ? className + "." : ""}${funcName}()' must be of type ${expectedType}.`; + }, + "incorrect-class": ({expectedClass, paramName, moduleName, className, funcName, isReturnValueProblem}) => { + if (!expectedClass || !moduleName || !funcName) { + throw new Error(`Unexpected input to 'incorrect-class' error.`); + } + if (isReturnValueProblem) { + return `The return value from '${moduleName}.${className ? className + "." : ""}${funcName}()' must be an instance of class ${expectedClass.name}.`; + } + return `The parameter '${paramName}' passed into '${moduleName}.${className ? className + "." : ""}${funcName}()' must be an instance of class ${expectedClass.name}.`; + }, + "missing-a-method": ({expectedMethod, paramName, moduleName, className, funcName}) => { + if (!expectedMethod || !paramName || !moduleName || !className || !funcName) { + throw new Error(`Unexpected input to 'missing-a-method' error.`); + } + return `${moduleName}.${className}.${funcName}() expected the '${paramName}' parameter to expose a '${expectedMethod}' method.`; + }, + "add-to-cache-list-unexpected-type": ({entry}) => { + return `An unexpected entry was passed to 'workbox-precaching.PrecacheController.addToCacheList()' The entry '${JSON.stringify(entry)}' isn't supported. You must supply an array of strings with one or more characters, objects with a url property or Request objects.`; + }, + "add-to-cache-list-conflicting-entries": ({firstEntry, secondEntry}) => { + if (!firstEntry || !secondEntry) { + throw new Error(`Unexpected input to 'add-to-cache-list-duplicate-entries' error.`); + } + return `Two of the entries passed to 'workbox-precaching.PrecacheController.addToCacheList()' had the URL ${firstEntry._entryId} but different revision details. Workbox is unable to cache and version the asset correctly. Please remove one of the entries.`; + }, + "plugin-error-request-will-fetch": ({thrownError}) => { + if (!thrownError) { + throw new Error(`Unexpected input to 'plugin-error-request-will-fetch', error.`); + } + return `An error was thrown by a plugins 'requestWillFetch()' method. The thrown error message was: '${thrownError.message}'.`; + }, + "invalid-cache-name": ({cacheNameId, value}) => { + if (!cacheNameId) { + throw new Error(`Expected a 'cacheNameId' for error 'invalid-cache-name'`); + } + return `You must provide a name containing at least one character for setCacheDetails({${cacheNameId}: '...'}). Received a value of '${JSON.stringify(value)}'`; + }, + "unregister-route-but-not-found-with-method": ({method}) => { + if (!method) { + throw new Error(`Unexpected input to 'unregister-route-but-not-found-with-method' error.`); + } + return `The route you're trying to unregister was not previously registered for the method type '${method}'.`; + }, + "unregister-route-route-not-registered": () => { + return `The route you're trying to unregister was not previously registered.`; + }, + "queue-replay-failed": ({name: name2}) => { + return `Replaying the background sync queue '${name2}' failed.`; + }, + "duplicate-queue-name": ({name: name2}) => { + return `The Queue name '${name2}' is already being used. All instances of backgroundSync.Queue must be given unique names.`; + }, + "expired-test-without-max-age": ({methodName, paramName}) => { + return `The '${methodName}()' method can only be used when the '${paramName}' is used in the constructor.`; + }, + "unsupported-route-type": ({moduleName, className, funcName, paramName}) => { + return `The supplied '${paramName}' parameter was an unsupported type. Please check the docs for ${moduleName}.${className}.${funcName} for valid input types.`; + }, + "not-array-of-class": ({value, expectedClass, moduleName, className, funcName, paramName}) => { + return `The supplied '${paramName}' parameter must be an array of '${expectedClass}' objects. Received '${JSON.stringify(value)},'. Please check the call to ${moduleName}.${className}.${funcName}() to fix the issue.`; + }, + "max-entries-or-age-required": ({moduleName, className, funcName}) => { + return `You must define either config.maxEntries or config.maxAgeSecondsin ${moduleName}.${className}.${funcName}`; + }, + "statuses-or-headers-required": ({moduleName, className, funcName}) => { + return `You must define either config.statuses or config.headersin ${moduleName}.${className}.${funcName}`; + }, + "invalid-string": ({moduleName, funcName, paramName}) => { + if (!paramName || !moduleName || !funcName) { + throw new Error(`Unexpected input to 'invalid-string' error.`); + } + return `When using strings, the '${paramName}' parameter must start with 'http' (for cross-origin matches) or '/' (for same-origin matches). Please see the docs for ${moduleName}.${funcName}() for more info.`; + }, + "channel-name-required": () => { + return `You must provide a channelName to construct a BroadcastCacheUpdate instance.`; + }, + "invalid-responses-are-same-args": () => { + return `The arguments passed into responsesAreSame() appear to be invalid. Please ensure valid Responses are used.`; + }, + "expire-custom-caches-only": () => { + return `You must provide a 'cacheName' property when using the expiration plugin with a runtime caching strategy.`; + }, + "unit-must-be-bytes": ({normalizedRangeHeader}) => { + if (!normalizedRangeHeader) { + throw new Error(`Unexpected input to 'unit-must-be-bytes' error.`); + } + return `The 'unit' portion of the Range header must be set to 'bytes'. The Range header provided was "${normalizedRangeHeader}"`; + }, + "single-range-only": ({normalizedRangeHeader}) => { + if (!normalizedRangeHeader) { + throw new Error(`Unexpected input to 'single-range-only' error.`); + } + return `Multiple ranges are not supported. Please use a single start value, and optional end value. The Range header provided was "${normalizedRangeHeader}"`; + }, + "invalid-range-values": ({normalizedRangeHeader}) => { + if (!normalizedRangeHeader) { + throw new Error(`Unexpected input to 'invalid-range-values' error.`); + } + return `The Range header is missing both start and end values. At least one of those values is needed. The Range header provided was "${normalizedRangeHeader}"`; + }, + "no-range-header": () => { + return `No Range header was found in the Request provided.`; + }, + "range-not-satisfiable": ({size, start, end}) => { + return `The start (${start}) and end (${end}) values in the Range are not satisfiable by the cached response, which is ${size} bytes.`; + }, + "attempt-to-cache-non-get-request": ({url, method}) => { + return `Unable to cache '${url}' because it is a '${method}' request and only 'GET' requests can be cached.`; + }, + "cache-put-with-no-response": ({url}) => { + return `There was an attempt to cache '${url}' but the response was not defined.`; + }, + "no-response": ({url, error}) => { + let message = `The strategy could not generate a response for '${url}'.`; + if (error) { + message += ` The underlying error is ${error}.`; + } + return message; + }, + "bad-precaching-response": ({url, status}) => { + return `The precaching request for '${url}' failed` + (status ? ` with an HTTP status of ${status}.` : `.`); + }, + "non-precached-url": ({url}) => { + return `createHandlerBoundToURL('${url}') was called, but that URL is not precached. Please pass in a URL that is precached instead.`; + }, + "add-to-cache-list-conflicting-integrities": ({url}) => { + return `Two of the entries passed to 'workbox-precaching.PrecacheController.addToCacheList()' had the URL ${url} with different integrity values. Please remove one of them.`; + }, + "missing-precache-entry": ({cacheName, url}) => { + return `Unable to find a precached response in ${cacheName} for ${url}.`; + }, + "cross-origin-copy-response": ({origin}) => { + return `workbox-core.copyResponse() can only be used with same-origin responses. It was passed a response with origin ${origin}.`; + } + }; + + // node_modules/workbox-core/models/messages/messageGenerator.js + var generatorFunction = (code, details = {}) => { + const message = messages[code]; + if (!message) { + throw new Error(`Unable to find message for code '${code}'.`); + } + return message(details); + }; + var messageGenerator = false ? fallback : generatorFunction; + + // node_modules/workbox-core/_private/WorkboxError.js + var WorkboxError = class extends Error { + constructor(errorCode, details) { + const message = messageGenerator(errorCode, details); + super(message); + this.name = errorCode; + this.details = details; + } + }; + + // node_modules/workbox-core/_private/assert.js + var isArray = (value, details) => { + if (!Array.isArray(value)) { + throw new WorkboxError("not-an-array", details); + } + }; + var hasMethod = (object, expectedMethod, details) => { + const type = typeof object[expectedMethod]; + if (type !== "function") { + details["expectedMethod"] = expectedMethod; + throw new WorkboxError("missing-a-method", details); + } + }; + var isType = (object, expectedType, details) => { + if (typeof object !== expectedType) { + details["expectedType"] = expectedType; + throw new WorkboxError("incorrect-type", details); + } + }; + var isInstance = (object, expectedClass, details) => { + if (!(object instanceof expectedClass)) { + details["expectedClass"] = expectedClass; + throw new WorkboxError("incorrect-class", details); + } + }; + var isOneOf = (value, validValues, details) => { + if (!validValues.includes(value)) { + details["validValueDescription"] = `Valid values are ${JSON.stringify(validValues)}.`; + throw new WorkboxError("invalid-value", details); + } + }; + var isArrayOfClass = (value, expectedClass, details) => { + const error = new WorkboxError("not-array-of-class", details); + if (!Array.isArray(value)) { + throw error; + } + for (const item of value) { + if (!(item instanceof expectedClass)) { + throw error; + } + } + }; + var finalAssertExports = false ? null : { + hasMethod, + isArray, + isInstance, + isOneOf, + isType, + isArrayOfClass + }; + + // node_modules/workbox-core/_private/logger.js + var logger = false ? null : (() => { + if (!("__WB_DISABLE_DEV_LOGS" in self)) { + self.__WB_DISABLE_DEV_LOGS = false; + } + let inGroup = false; + const methodToColorMap = { + debug: `#7f8c8d`, + log: `#2ecc71`, + warn: `#f39c12`, + error: `#c0392b`, + groupCollapsed: `#3498db`, + groupEnd: null + }; + const print = function(method, args) { + if (self.__WB_DISABLE_DEV_LOGS) { + return; + } + if (method === "groupCollapsed") { + if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + console[method](...args); + return; + } + } + const styles = [ + `background: ${methodToColorMap[method]}`, + `border-radius: 0.5em`, + `color: white`, + `font-weight: bold`, + `padding: 2px 0.5em` + ]; + const logPrefix = inGroup ? [] : ["%cworkbox", styles.join(";")]; + console[method](...logPrefix, ...args); + if (method === "groupCollapsed") { + inGroup = true; + } + if (method === "groupEnd") { + inGroup = false; + } + }; + const api = {}; + const loggerMethods = Object.keys(methodToColorMap); + for (const key of loggerMethods) { + const method = key; + api[method] = (...args) => { + print(method, args); + }; + } + return api; + })(); + + // node_modules/workbox-core/_private/cacheNames.js + var _cacheNameDetails = { + googleAnalytics: "googleAnalytics", + precache: "precache-v2", + prefix: "workbox", + runtime: "runtime", + suffix: typeof registration !== "undefined" ? registration.scope : "" + }; + var _createCacheName = (cacheName) => { + return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix].filter((value) => value && value.length > 0).join("-"); + }; + var eachCacheNameDetail = (fn) => { + for (const key of Object.keys(_cacheNameDetails)) { + fn(key); + } + }; + var cacheNames = { + updateDetails: (details) => { + eachCacheNameDetail((key) => { + if (typeof details[key] === "string") { + _cacheNameDetails[key] = details[key]; + } + }); + }, + getGoogleAnalyticsName: (userCacheName) => { + return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics); + }, + getPrecacheName: (userCacheName) => { + return userCacheName || _createCacheName(_cacheNameDetails.precache); + }, + getPrefix: () => { + return _cacheNameDetails.prefix; + }, + getRuntimeName: (userCacheName) => { + return userCacheName || _createCacheName(_cacheNameDetails.runtime); + }, + getSuffix: () => { + return _cacheNameDetails.suffix; + } + }; + + // node_modules/workbox-core/_private/getFriendlyURL.js + var getFriendlyURL = (url) => { + const urlObj = new URL(String(url), location.href); + return urlObj.href.replace(new RegExp(`^${location.origin}`), ""); + }; + + // node_modules/workbox-core/_private/cacheMatchIgnoreParams.js + function stripParams(fullURL, ignoreParams) { + const strippedURL = new URL(fullURL); + for (const param of ignoreParams) { + strippedURL.searchParams.delete(param); + } + return strippedURL.href; + } + async function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) { + const strippedRequestURL = stripParams(request.url, ignoreParams); + if (request.url === strippedRequestURL) { + return cache.match(request, matchOptions); + } + const keysOptions = {...matchOptions, ignoreSearch: true}; + const cacheKeys = await cache.keys(request, keysOptions); + for (const cacheKey of cacheKeys) { + const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams); + if (strippedRequestURL === strippedCacheKeyURL) { + return cache.match(cacheKey, matchOptions); + } + } + return; + } + + // node_modules/workbox-core/_private/Deferred.js + var Deferred = class { + constructor() { + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve; + this.reject = reject; + }); + } + }; + + // node_modules/workbox-core/models/quotaErrorCallbacks.js + var quotaErrorCallbacks = new Set(); + + // node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js + async function executeQuotaErrorCallbacks() { + if (true) { + logger.log(`About to run ${quotaErrorCallbacks.size} callbacks to clean up caches.`); + } + for (const callback of quotaErrorCallbacks) { + await callback(); + if (true) { + logger.log(callback, "is complete."); + } + } + if (true) { + logger.log("Finished running callbacks."); + } + } + + // node_modules/workbox-core/_private/timeout.js + function timeout(ms) { + return new Promise((resolve) => setTimeout(resolve, ms)); + } + + // node_modules/workbox-strategies/_version.js + "use strict"; + try { + self["workbox:strategies:6.1.2"] && _(); + } catch (e) { + } + + // node_modules/workbox-strategies/StrategyHandler.js + function toRequest(input) { + return typeof input === "string" ? new Request(input) : input; + } + var StrategyHandler = class { + constructor(strategy, options) { + this._cacheKeys = {}; + if (true) { + finalAssertExports.isInstance(options.event, ExtendableEvent, { + moduleName: "workbox-strategies", + className: "StrategyHandler", + funcName: "constructor", + paramName: "options.event" + }); + } + Object.assign(this, options); + this.event = options.event; + this._strategy = strategy; + this._handlerDeferred = new Deferred(); + this._extendLifetimePromises = []; + this._plugins = [...strategy.plugins]; + this._pluginStateMap = new Map(); + for (const plugin of this._plugins) { + this._pluginStateMap.set(plugin, {}); + } + this.event.waitUntil(this._handlerDeferred.promise); + } + async fetch(input) { + const {event} = this; + let request = toRequest(input); + if (request.mode === "navigate" && event instanceof FetchEvent && event.preloadResponse) { + const possiblePreloadResponse = await event.preloadResponse; + if (possiblePreloadResponse) { + if (true) { + logger.log(`Using a preloaded navigation response for '${getFriendlyURL(request.url)}'`); + } + return possiblePreloadResponse; + } + } + const originalRequest = this.hasCallback("fetchDidFail") ? request.clone() : null; + try { + for (const cb of this.iterateCallbacks("requestWillFetch")) { + request = await cb({request: request.clone(), event}); + } + } catch (err) { + throw new WorkboxError("plugin-error-request-will-fetch", { + thrownError: err + }); + } + const pluginFilteredRequest = request.clone(); + try { + let fetchResponse; + fetchResponse = await fetch(request, request.mode === "navigate" ? void 0 : this._strategy.fetchOptions); + if (true) { + logger.debug(`Network request for '${getFriendlyURL(request.url)}' returned a response with status '${fetchResponse.status}'.`); + } + for (const callback of this.iterateCallbacks("fetchDidSucceed")) { + fetchResponse = await callback({ + event, + request: pluginFilteredRequest, + response: fetchResponse + }); + } + return fetchResponse; + } catch (error) { + if (true) { + logger.log(`Network request for '${getFriendlyURL(request.url)}' threw an error.`, error); + } + if (originalRequest) { + await this.runCallbacks("fetchDidFail", { + error, + event, + originalRequest: originalRequest.clone(), + request: pluginFilteredRequest.clone() + }); + } + throw error; + } + } + async fetchAndCachePut(input) { + const response = await this.fetch(input); + const responseClone = response.clone(); + this.waitUntil(this.cachePut(input, responseClone)); + return response; + } + async cacheMatch(key) { + const request = toRequest(key); + let cachedResponse; + const {cacheName, matchOptions} = this._strategy; + const effectiveRequest = await this.getCacheKey(request, "read"); + const multiMatchOptions = {...matchOptions, ...{cacheName}}; + cachedResponse = await caches.match(effectiveRequest, multiMatchOptions); + if (true) { + if (cachedResponse) { + logger.debug(`Found a cached response in '${cacheName}'.`); + } else { + logger.debug(`No cached response found in '${cacheName}'.`); + } + } + for (const callback of this.iterateCallbacks("cachedResponseWillBeUsed")) { + cachedResponse = await callback({ + cacheName, + matchOptions, + cachedResponse, + request: effectiveRequest, + event: this.event + }) || void 0; + } + return cachedResponse; + } + async cachePut(key, response) { + const request = toRequest(key); + await timeout(0); + const effectiveRequest = await this.getCacheKey(request, "write"); + if (true) { + if (effectiveRequest.method && effectiveRequest.method !== "GET") { + throw new WorkboxError("attempt-to-cache-non-get-request", { + url: getFriendlyURL(effectiveRequest.url), + method: effectiveRequest.method + }); + } + } + if (!response) { + if (true) { + logger.error(`Cannot cache non-existent response for '${getFriendlyURL(effectiveRequest.url)}'.`); + } + throw new WorkboxError("cache-put-with-no-response", { + url: getFriendlyURL(effectiveRequest.url) + }); + } + const responseToCache = await this._ensureResponseSafeToCache(response); + if (!responseToCache) { + if (true) { + logger.debug(`Response '${getFriendlyURL(effectiveRequest.url)}' will not be cached.`, responseToCache); + } + return false; + } + const {cacheName, matchOptions} = this._strategy; + const cache = await self.caches.open(cacheName); + const hasCacheUpdateCallback = this.hasCallback("cacheDidUpdate"); + const oldResponse = hasCacheUpdateCallback ? await cacheMatchIgnoreParams(cache, effectiveRequest.clone(), ["__WB_REVISION__"], matchOptions) : null; + if (true) { + logger.debug(`Updating the '${cacheName}' cache with a new Response for ${getFriendlyURL(effectiveRequest.url)}.`); + } + try { + await cache.put(effectiveRequest, hasCacheUpdateCallback ? responseToCache.clone() : responseToCache); + } catch (error) { + if (error.name === "QuotaExceededError") { + await executeQuotaErrorCallbacks(); + } + throw error; + } + for (const callback of this.iterateCallbacks("cacheDidUpdate")) { + await callback({ + cacheName, + oldResponse, + newResponse: responseToCache.clone(), + request: effectiveRequest, + event: this.event + }); + } + return true; + } + async getCacheKey(request, mode) { + if (!this._cacheKeys[mode]) { + let effectiveRequest = request; + for (const callback of this.iterateCallbacks("cacheKeyWillBeUsed")) { + effectiveRequest = toRequest(await callback({ + mode, + request: effectiveRequest, + event: this.event, + params: this.params + })); + } + this._cacheKeys[mode] = effectiveRequest; + } + return this._cacheKeys[mode]; + } + hasCallback(name2) { + for (const plugin of this._strategy.plugins) { + if (name2 in plugin) { + return true; + } + } + return false; + } + async runCallbacks(name2, param) { + for (const callback of this.iterateCallbacks(name2)) { + await callback(param); + } + } + *iterateCallbacks(name2) { + for (const plugin of this._strategy.plugins) { + if (typeof plugin[name2] === "function") { + const state = this._pluginStateMap.get(plugin); + const statefulCallback = (param) => { + const statefulParam = {...param, state}; + return plugin[name2](statefulParam); + }; + yield statefulCallback; + } + } + } + waitUntil(promise) { + this._extendLifetimePromises.push(promise); + return promise; + } + async doneWaiting() { + let promise; + while (promise = this._extendLifetimePromises.shift()) { + await promise; + } + } + destroy() { + this._handlerDeferred.resolve(); + } + async _ensureResponseSafeToCache(response) { + let responseToCache = response; + let pluginsUsed = false; + for (const callback of this.iterateCallbacks("cacheWillUpdate")) { + responseToCache = await callback({ + request: this.request, + response: responseToCache, + event: this.event + }) || void 0; + pluginsUsed = true; + if (!responseToCache) { + break; + } + } + if (!pluginsUsed) { + if (responseToCache && responseToCache.status !== 200) { + responseToCache = void 0; + } + if (true) { + if (responseToCache) { + if (responseToCache.status !== 200) { + if (responseToCache.status === 0) { + logger.warn(`The response for '${this.request.url}' is an opaque response. The caching strategy that you're using will not cache opaque responses by default.`); + } else { + logger.debug(`The response for '${this.request.url}' returned a status code of '${response.status}' and won't be cached as a result.`); + } + } + } + } + } + return responseToCache; + } + }; + + // node_modules/workbox-strategies/Strategy.js + var Strategy = class { + constructor(options = {}) { + this.cacheName = cacheNames.getRuntimeName(options.cacheName); + this.plugins = options.plugins || []; + this.fetchOptions = options.fetchOptions; + this.matchOptions = options.matchOptions; + } + handle(options) { + const [responseDone] = this.handleAll(options); + return responseDone; + } + handleAll(options) { + if (options instanceof FetchEvent) { + options = { + event: options, + request: options.request + }; + } + const event = options.event; + const request = typeof options.request === "string" ? new Request(options.request) : options.request; + const params = "params" in options ? options.params : void 0; + const handler = new StrategyHandler(this, {event, request, params}); + const responseDone = this._getResponse(handler, request, event); + const handlerDone = this._awaitComplete(responseDone, handler, request, event); + return [responseDone, handlerDone]; + } + async _getResponse(handler, request, event) { + await handler.runCallbacks("handlerWillStart", {event, request}); + let response = void 0; + try { + response = await this._handle(request, handler); + if (!response || response.type === "error") { + throw new WorkboxError("no-response", {url: request.url}); + } + } catch (error) { + for (const callback of handler.iterateCallbacks("handlerDidError")) { + response = await callback({error, event, request}); + if (response) { + break; + } + } + if (!response) { + throw error; + } else if (true) { + logger.log(`While responding to '${getFriendlyURL(request.url)}', an ${error} error occurred. Using a fallback response provided by a handlerDidError plugin.`); + } + } + for (const callback of handler.iterateCallbacks("handlerWillRespond")) { + response = await callback({event, request, response}); + } + return response; + } + async _awaitComplete(responseDone, handler, request, event) { + let response; + let error; + try { + response = await responseDone; + } catch (error2) { + } + try { + await handler.runCallbacks("handlerDidRespond", { + event, + request, + response + }); + await handler.doneWaiting(); + } catch (waitUntilError) { + error = waitUntilError; + } + await handler.runCallbacks("handlerDidComplete", { + event, + request, + response, + error + }); + handler.destroy(); + if (error) { + throw error; + } + } + }; + + // node_modules/workbox-strategies/utils/messages.js + var messages2 = { + strategyStart: (strategyName, request) => `Using ${strategyName} to respond to '${getFriendlyURL(request.url)}'`, + printFinalResponse: (response) => { + if (response) { + logger.groupCollapsed(`View the final response here.`); + logger.log(response || "[No response returned]"); + logger.groupEnd(); + } + } + }; + + // node_modules/workbox-strategies/CacheFirst.js + var CacheFirst = class extends Strategy { + async _handle(request, handler) { + const logs = []; + if (true) { + finalAssertExports.isInstance(request, Request, { + moduleName: "workbox-strategies", + className: this.constructor.name, + funcName: "makeRequest", + paramName: "request" + }); + } + let response = await handler.cacheMatch(request); + let error; + if (!response) { + if (true) { + logs.push(`No response found in the '${this.cacheName}' cache. Will respond with a network request.`); + } + try { + response = await handler.fetchAndCachePut(request); + } catch (err) { + error = err; + } + if (true) { + if (response) { + logs.push(`Got response from network.`); + } else { + logs.push(`Unable to get a response from the network.`); + } + } + } else { + if (true) { + logs.push(`Found a cached response in the '${this.cacheName}' cache.`); + } + } + if (true) { + logger.groupCollapsed(messages2.strategyStart(this.constructor.name, request)); + for (const log of logs) { + logger.log(log); + } + messages2.printFinalResponse(response); + logger.groupEnd(); + } + if (!response) { + throw new WorkboxError("no-response", {url: request.url, error}); + } + return response; + } + }; + + // node_modules/workbox-strategies/plugins/cacheOkAndOpaquePlugin.js + var cacheOkAndOpaquePlugin = { + cacheWillUpdate: async ({response}) => { + if (response.status === 200 || response.status === 0) { + return response; + } + return null; + } + }; + + // node_modules/workbox-strategies/NetworkFirst.js + var NetworkFirst = class extends Strategy { + constructor(options = {}) { + super(options); + if (!this.plugins.some((p) => "cacheWillUpdate" in p)) { + this.plugins.unshift(cacheOkAndOpaquePlugin); + } + this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0; + if (true) { + if (this._networkTimeoutSeconds) { + finalAssertExports.isType(this._networkTimeoutSeconds, "number", { + moduleName: "workbox-strategies", + className: this.constructor.name, + funcName: "constructor", + paramName: "networkTimeoutSeconds" + }); + } + } + } + async _handle(request, handler) { + const logs = []; + if (true) { + finalAssertExports.isInstance(request, Request, { + moduleName: "workbox-strategies", + className: this.constructor.name, + funcName: "handle", + paramName: "makeRequest" + }); + } + const promises = []; + let timeoutId; + if (this._networkTimeoutSeconds) { + const {id, promise} = this._getTimeoutPromise({request, logs, handler}); + timeoutId = id; + promises.push(promise); + } + const networkPromise = this._getNetworkPromise({timeoutId, request, logs, handler}); + promises.push(networkPromise); + const response = await handler.waitUntil((async () => { + return await handler.waitUntil(Promise.race(promises)) || await networkPromise; + })()); + if (true) { + logger.groupCollapsed(messages2.strategyStart(this.constructor.name, request)); + for (const log of logs) { + logger.log(log); + } + messages2.printFinalResponse(response); + logger.groupEnd(); + } + if (!response) { + throw new WorkboxError("no-response", {url: request.url}); + } + return response; + } + _getTimeoutPromise({request, logs, handler}) { + let timeoutId; + const timeoutPromise = new Promise((resolve) => { + const onNetworkTimeout = async () => { + if (true) { + logs.push(`Timing out the network response at ${this._networkTimeoutSeconds} seconds.`); + } + resolve(await handler.cacheMatch(request)); + }; + timeoutId = setTimeout(onNetworkTimeout, this._networkTimeoutSeconds * 1e3); + }); + return { + promise: timeoutPromise, + id: timeoutId + }; + } + async _getNetworkPromise({timeoutId, request, logs, handler}) { + let error; + let response; + try { + response = await handler.fetchAndCachePut(request); + } catch (fetchError) { + error = fetchError; + } + if (timeoutId) { + clearTimeout(timeoutId); + } + if (true) { + if (response) { + logs.push(`Got response from network.`); + } else { + logs.push(`Unable to get a response from the network. Will respond with a cached response.`); + } + } + if (error || !response) { + response = await handler.cacheMatch(request); + if (true) { + if (response) { + logs.push(`Found a cached response in the '${this.cacheName}' cache.`); + } else { + logs.push(`No response found in the '${this.cacheName}' cache.`); + } + } + } + return response; + } + }; + + // node_modules/workbox-strategies/StaleWhileRevalidate.js + var StaleWhileRevalidate = class extends Strategy { + constructor(options) { + super(options); + if (!this.plugins.some((p) => "cacheWillUpdate" in p)) { + this.plugins.unshift(cacheOkAndOpaquePlugin); + } + } + async _handle(request, handler) { + const logs = []; + if (true) { + finalAssertExports.isInstance(request, Request, { + moduleName: "workbox-strategies", + className: this.constructor.name, + funcName: "handle", + paramName: "request" + }); + } + const fetchAndCachePromise = handler.fetchAndCachePut(request).catch(() => { + }); + let response = await handler.cacheMatch(request); + let error; + if (response) { + if (true) { + logs.push(`Found a cached response in the '${this.cacheName}' cache. Will update with the network response in the background.`); + } + } else { + if (true) { + logs.push(`No response found in the '${this.cacheName}' cache. Will wait for the network response.`); + } + try { + response = await fetchAndCachePromise; + } catch (err) { + error = err; + } + } + if (true) { + logger.groupCollapsed(messages2.strategyStart(this.constructor.name, request)); + for (const log of logs) { + logger.log(log); + } + messages2.printFinalResponse(response); + logger.groupEnd(); + } + if (!response) { + throw new WorkboxError("no-response", {url: request.url, error}); + } + return response; + } + }; + + // node_modules/workbox-routing/_version.js + "use strict"; + try { + self["workbox:routing:6.1.2"] && _(); + } catch (e) { + } + + // node_modules/workbox-routing/utils/constants.js + var defaultMethod = "GET"; + var validMethods = [ + "DELETE", + "GET", + "HEAD", + "PATCH", + "POST", + "PUT" + ]; + + // node_modules/workbox-routing/utils/normalizeHandler.js + var normalizeHandler = (handler) => { + if (handler && typeof handler === "object") { + if (true) { + finalAssertExports.hasMethod(handler, "handle", { + moduleName: "workbox-routing", + className: "Route", + funcName: "constructor", + paramName: "handler" + }); + } + return handler; + } else { + if (true) { + finalAssertExports.isType(handler, "function", { + moduleName: "workbox-routing", + className: "Route", + funcName: "constructor", + paramName: "handler" + }); + } + return {handle: handler}; + } + }; + + // node_modules/workbox-routing/Route.js + var Route = class { + constructor(match, handler, method = defaultMethod) { + if (true) { + finalAssertExports.isType(match, "function", { + moduleName: "workbox-routing", + className: "Route", + funcName: "constructor", + paramName: "match" + }); + if (method) { + finalAssertExports.isOneOf(method, validMethods, {paramName: "method"}); + } + } + this.handler = normalizeHandler(handler); + this.match = match; + this.method = method; + } + setCatchHandler(handler) { + this.catchHandler = normalizeHandler(handler); + } + }; + + // node_modules/workbox-routing/RegExpRoute.js + var RegExpRoute = class extends Route { + constructor(regExp, handler, method) { + if (true) { + finalAssertExports.isInstance(regExp, RegExp, { + moduleName: "workbox-routing", + className: "RegExpRoute", + funcName: "constructor", + paramName: "pattern" + }); + } + const match = ({url}) => { + const result = regExp.exec(url.href); + if (!result) { + return; + } + if (url.origin !== location.origin && result.index !== 0) { + if (true) { + logger.debug(`The regular expression '${regExp}' only partially matched against the cross-origin URL '${url}'. RegExpRoute's will only handle cross-origin requests if they match the entire URL.`); + } + return; + } + return result.slice(1); + }; + super(match, handler, method); + } + }; + + // node_modules/workbox-routing/Router.js + var Router = class { + constructor() { + this._routes = new Map(); + this._defaultHandlerMap = new Map(); + } + get routes() { + return this._routes; + } + addFetchListener() { + self.addEventListener("fetch", (event) => { + const {request} = event; + const responsePromise = this.handleRequest({request, event}); + if (responsePromise) { + event.respondWith(responsePromise); + } + }); + } + addCacheListener() { + self.addEventListener("message", (event) => { + if (event.data && event.data.type === "CACHE_URLS") { + const {payload} = event.data; + if (true) { + logger.debug(`Caching URLs from the window`, payload.urlsToCache); + } + const requestPromises = Promise.all(payload.urlsToCache.map((entry) => { + if (typeof entry === "string") { + entry = [entry]; + } + const request = new Request(...entry); + return this.handleRequest({request, event}); + })); + event.waitUntil(requestPromises); + if (event.ports && event.ports[0]) { + requestPromises.then(() => event.ports[0].postMessage(true)); + } + } + }); + } + handleRequest({request, event}) { + if (true) { + finalAssertExports.isInstance(request, Request, { + moduleName: "workbox-routing", + className: "Router", + funcName: "handleRequest", + paramName: "options.request" + }); + } + const url = new URL(request.url, location.href); + if (!url.protocol.startsWith("http")) { + if (true) { + logger.debug(`Workbox Router only supports URLs that start with 'http'.`); + } + return; + } + const sameOrigin = url.origin === location.origin; + const {params, route} = this.findMatchingRoute({ + event, + request, + sameOrigin, + url + }); + let handler = route && route.handler; + const debugMessages = []; + if (true) { + if (handler) { + debugMessages.push([ + `Found a route to handle this request:`, + route + ]); + if (params) { + debugMessages.push([ + `Passing the following params to the route's handler:`, + params + ]); + } + } + } + const method = request.method; + if (!handler && this._defaultHandlerMap.has(method)) { + if (true) { + debugMessages.push(`Failed to find a matching route. Falling back to the default handler for ${method}.`); + } + handler = this._defaultHandlerMap.get(method); + } + if (!handler) { + if (true) { + logger.debug(`No route found for: ${getFriendlyURL(url)}`); + } + return; + } + if (true) { + logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`); + debugMessages.forEach((msg) => { + if (Array.isArray(msg)) { + logger.log(...msg); + } else { + logger.log(msg); + } + }); + logger.groupEnd(); + } + let responsePromise; + try { + responsePromise = handler.handle({url, request, event, params}); + } catch (err) { + responsePromise = Promise.reject(err); + } + const catchHandler = route && route.catchHandler; + if (responsePromise instanceof Promise && (this._catchHandler || catchHandler)) { + responsePromise = responsePromise.catch(async (err) => { + if (catchHandler) { + if (true) { + logger.groupCollapsed(`Error thrown when responding to: ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`); + logger.error(`Error thrown by:`, route); + logger.error(err); + logger.groupEnd(); + } + try { + return await catchHandler.handle({url, request, event, params}); + } catch (catchErr) { + err = catchErr; + } + } + if (this._catchHandler) { + if (true) { + logger.groupCollapsed(`Error thrown when responding to: ${getFriendlyURL(url)}. Falling back to global Catch Handler.`); + logger.error(`Error thrown by:`, route); + logger.error(err); + logger.groupEnd(); + } + return this._catchHandler.handle({url, request, event}); + } + throw err; + }); + } + return responsePromise; + } + findMatchingRoute({url, sameOrigin, request, event}) { + const routes = this._routes.get(request.method) || []; + for (const route of routes) { + let params; + const matchResult = route.match({url, sameOrigin, request, event}); + if (matchResult) { + if (true) { + if (matchResult instanceof Promise) { + logger.warn(`While routing ${getFriendlyURL(url)}, an async matchCallback function was used. Please convert the following route to use a synchronous matchCallback function:`, route); + } + } + params = matchResult; + if (Array.isArray(matchResult) && matchResult.length === 0) { + params = void 0; + } else if (matchResult.constructor === Object && Object.keys(matchResult).length === 0) { + params = void 0; + } else if (typeof matchResult === "boolean") { + params = void 0; + } + return {route, params}; + } + } + return {}; + } + setDefaultHandler(handler, method = defaultMethod) { + this._defaultHandlerMap.set(method, normalizeHandler(handler)); + } + setCatchHandler(handler) { + this._catchHandler = normalizeHandler(handler); + } + registerRoute(route) { + if (true) { + finalAssertExports.isType(route, "object", { + moduleName: "workbox-routing", + className: "Router", + funcName: "registerRoute", + paramName: "route" + }); + finalAssertExports.hasMethod(route, "match", { + moduleName: "workbox-routing", + className: "Router", + funcName: "registerRoute", + paramName: "route" + }); + finalAssertExports.isType(route.handler, "object", { + moduleName: "workbox-routing", + className: "Router", + funcName: "registerRoute", + paramName: "route" + }); + finalAssertExports.hasMethod(route.handler, "handle", { + moduleName: "workbox-routing", + className: "Router", + funcName: "registerRoute", + paramName: "route.handler" + }); + finalAssertExports.isType(route.method, "string", { + moduleName: "workbox-routing", + className: "Router", + funcName: "registerRoute", + paramName: "route.method" + }); + } + if (!this._routes.has(route.method)) { + this._routes.set(route.method, []); + } + this._routes.get(route.method).push(route); + } + unregisterRoute(route) { + if (!this._routes.has(route.method)) { + throw new WorkboxError("unregister-route-but-not-found-with-method", { + method: route.method + }); + } + const routeIndex = this._routes.get(route.method).indexOf(route); + if (routeIndex > -1) { + this._routes.get(route.method).splice(routeIndex, 1); + } else { + throw new WorkboxError("unregister-route-route-not-registered"); + } + } + }; + + // node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js + var defaultRouter; + var getOrCreateDefaultRouter = () => { + if (!defaultRouter) { + defaultRouter = new Router(); + defaultRouter.addFetchListener(); + defaultRouter.addCacheListener(); + } + return defaultRouter; + }; + + // node_modules/workbox-routing/registerRoute.js + function registerRoute(capture, handler, method) { + let route; + if (typeof capture === "string") { + const captureUrl = new URL(capture, location.href); + if (true) { + if (!(capture.startsWith("/") || capture.startsWith("http"))) { + throw new WorkboxError("invalid-string", { + moduleName: "workbox-routing", + funcName: "registerRoute", + paramName: "capture" + }); + } + const valueToCheck = capture.startsWith("http") ? captureUrl.pathname : capture; + const wildcards = "[*:?+]"; + if (new RegExp(`${wildcards}`).exec(valueToCheck)) { + logger.debug(`The '$capture' parameter contains an Express-style wildcard character (${wildcards}). Strings are now always interpreted as exact matches; use a RegExp for partial or wildcard matches.`); + } + } + const matchCallback = ({url}) => { + if (true) { + if (url.pathname === captureUrl.pathname && url.origin !== captureUrl.origin) { + logger.debug(`${capture} only partially matches the cross-origin URL ${url}. This route will only handle cross-origin requests if they match the entire URL.`); + } + } + return url.href === captureUrl.href; + }; + route = new Route(matchCallback, handler, method); + } else if (capture instanceof RegExp) { + route = new RegExpRoute(capture, handler, method); + } else if (typeof capture === "function") { + route = new Route(capture, handler, method); + } else if (capture instanceof Route) { + route = capture; + } else { + throw new WorkboxError("unsupported-route-type", { + moduleName: "workbox-routing", + funcName: "registerRoute", + paramName: "capture" + }); + } + const defaultRouter2 = getOrCreateDefaultRouter(); + defaultRouter2.registerRoute(route); + return route; + } + + // node_modules/workbox-routing/setCatchHandler.js + function setCatchHandler(handler) { + const defaultRouter2 = getOrCreateDefaultRouter(); + defaultRouter2.setCatchHandler(handler); + } + + // node_modules/workbox-routing/setDefaultHandler.js + function setDefaultHandler(handler) { + const defaultRouter2 = getOrCreateDefaultRouter(); + defaultRouter2.setDefaultHandler(handler); + } + + // node_modules/workbox-core/_private/dontWaitFor.js + function dontWaitFor(promise) { + promise.then(() => { + }); + } + + // node_modules/workbox-core/_private/DBWrapper.js + var DBWrapper = class { + constructor(name2, version, {onupgradeneeded, onversionchange} = {}) { + this._db = null; + this._name = name2; + this._version = version; + this._onupgradeneeded = onupgradeneeded; + this._onversionchange = onversionchange || (() => this.close()); + } + get db() { + return this._db; + } + async open() { + if (this._db) + return; + this._db = await new Promise((resolve, reject) => { + let openRequestTimedOut = false; + setTimeout(() => { + openRequestTimedOut = true; + reject(new Error("The open request was blocked and timed out")); + }, this.OPEN_TIMEOUT); + const openRequest = indexedDB.open(this._name, this._version); + openRequest.onerror = () => reject(openRequest.error); + openRequest.onupgradeneeded = (evt) => { + if (openRequestTimedOut) { + openRequest.transaction.abort(); + openRequest.result.close(); + } else if (typeof this._onupgradeneeded === "function") { + this._onupgradeneeded(evt); + } + }; + openRequest.onsuccess = () => { + const db = openRequest.result; + if (openRequestTimedOut) { + db.close(); + } else { + db.onversionchange = this._onversionchange.bind(this); + resolve(db); + } + }; + }); + return this; + } + async getKey(storeName, query) { + return (await this.getAllKeys(storeName, query, 1))[0]; + } + async getAll(storeName, query, count) { + return await this.getAllMatching(storeName, {query, count}); + } + async getAllKeys(storeName, query, count) { + const entries = await this.getAllMatching(storeName, {query, count, includeKeys: true}); + return entries.map((entry) => entry.key); + } + async getAllMatching(storeName, { + index, + query = null, + direction = "next", + count, + includeKeys = false + } = {}) { + return await this.transaction([storeName], "readonly", (txn, done) => { + const store = txn.objectStore(storeName); + const target = index ? store.index(index) : store; + const results = []; + const request = target.openCursor(query, direction); + request.onsuccess = () => { + const cursor = request.result; + if (cursor) { + results.push(includeKeys ? cursor : cursor.value); + if (count && results.length >= count) { + done(results); + } else { + cursor.continue(); + } + } else { + done(results); + } + }; + }); + } + async transaction(storeNames, type, callback) { + await this.open(); + return await new Promise((resolve, reject) => { + const txn = this._db.transaction(storeNames, type); + txn.onabort = () => reject(txn.error); + txn.oncomplete = () => resolve(); + callback(txn, (value) => resolve(value)); + }); + } + async _call(method, storeName, type, ...args) { + const callback = (txn, done) => { + const objStore = txn.objectStore(storeName); + const request = objStore[method].apply(objStore, args); + request.onsuccess = () => done(request.result); + }; + return await this.transaction([storeName], type, callback); + } + close() { + if (this._db) { + this._db.close(); + this._db = null; + } + } + }; + DBWrapper.prototype.OPEN_TIMEOUT = 2e3; + var methodsToWrap = { + readonly: ["get", "count", "getKey", "getAll", "getAllKeys"], + readwrite: ["add", "put", "clear", "delete"] + }; + for (const [mode, methods] of Object.entries(methodsToWrap)) { + for (const method of methods) { + if (method in IDBObjectStore.prototype) { + DBWrapper.prototype[method] = async function(storeName, ...args) { + return await this._call(method, storeName, mode, ...args); + }; + } + } + } + + // node_modules/workbox-core/_private/deleteDatabase.js + var deleteDatabase = async (name2) => { + await new Promise((resolve, reject) => { + const request = indexedDB.deleteDatabase(name2); + request.onerror = () => { + reject(request.error); + }; + request.onblocked = () => { + reject(new Error("Delete blocked")); + }; + request.onsuccess = () => { + resolve(); + }; + }); + }; + + // node_modules/workbox-expiration/_version.js + "use strict"; + try { + self["workbox:expiration:6.1.2"] && _(); + } catch (e) { + } + + // node_modules/workbox-expiration/models/CacheTimestampsModel.js + var DB_NAME = "workbox-expiration"; + var OBJECT_STORE_NAME = "cache-entries"; + var normalizeURL = (unNormalizedUrl) => { + const url = new URL(unNormalizedUrl, location.href); + url.hash = ""; + return url.href; + }; + var CacheTimestampsModel = class { + constructor(cacheName) { + this._cacheName = cacheName; + this._db = new DBWrapper(DB_NAME, 1, { + onupgradeneeded: (event) => this._handleUpgrade(event) + }); + } + _handleUpgrade(event) { + const db = event.target.result; + const objStore = db.createObjectStore(OBJECT_STORE_NAME, {keyPath: "id"}); + objStore.createIndex("cacheName", "cacheName", {unique: false}); + objStore.createIndex("timestamp", "timestamp", {unique: false}); + deleteDatabase(this._cacheName); + } + async setTimestamp(url, timestamp) { + url = normalizeURL(url); + const entry = { + url, + timestamp, + cacheName: this._cacheName, + id: this._getId(url) + }; + await this._db.put(OBJECT_STORE_NAME, entry); + } + async getTimestamp(url) { + const entry = await this._db.get(OBJECT_STORE_NAME, this._getId(url)); + return entry.timestamp; + } + async expireEntries(minTimestamp, maxCount) { + const entriesToDelete = await this._db.transaction(OBJECT_STORE_NAME, "readwrite", (txn, done) => { + const store = txn.objectStore(OBJECT_STORE_NAME); + const request = store.index("timestamp").openCursor(null, "prev"); + const entriesToDelete2 = []; + let entriesNotDeletedCount = 0; + request.onsuccess = () => { + const cursor = request.result; + if (cursor) { + const result = cursor.value; + if (result.cacheName === this._cacheName) { + if (minTimestamp && result.timestamp < minTimestamp || maxCount && entriesNotDeletedCount >= maxCount) { + entriesToDelete2.push(cursor.value); + } else { + entriesNotDeletedCount++; + } + } + cursor.continue(); + } else { + done(entriesToDelete2); + } + }; + }); + const urlsDeleted = []; + for (const entry of entriesToDelete) { + await this._db.delete(OBJECT_STORE_NAME, entry.id); + urlsDeleted.push(entry.url); + } + return urlsDeleted; + } + _getId(url) { + return this._cacheName + "|" + normalizeURL(url); + } + }; + + // node_modules/workbox-expiration/CacheExpiration.js + var CacheExpiration = class { + constructor(cacheName, config = {}) { + this._isRunning = false; + this._rerunRequested = false; + if (true) { + finalAssertExports.isType(cacheName, "string", { + moduleName: "workbox-expiration", + className: "CacheExpiration", + funcName: "constructor", + paramName: "cacheName" + }); + if (!(config.maxEntries || config.maxAgeSeconds)) { + throw new WorkboxError("max-entries-or-age-required", { + moduleName: "workbox-expiration", + className: "CacheExpiration", + funcName: "constructor" + }); + } + if (config.maxEntries) { + finalAssertExports.isType(config.maxEntries, "number", { + moduleName: "workbox-expiration", + className: "CacheExpiration", + funcName: "constructor", + paramName: "config.maxEntries" + }); + } + if (config.maxAgeSeconds) { + finalAssertExports.isType(config.maxAgeSeconds, "number", { + moduleName: "workbox-expiration", + className: "CacheExpiration", + funcName: "constructor", + paramName: "config.maxAgeSeconds" + }); + } + } + this._maxEntries = config.maxEntries; + this._maxAgeSeconds = config.maxAgeSeconds; + this._matchOptions = config.matchOptions; + this._cacheName = cacheName; + this._timestampModel = new CacheTimestampsModel(cacheName); + } + async expireEntries() { + if (this._isRunning) { + this._rerunRequested = true; + return; + } + this._isRunning = true; + const minTimestamp = this._maxAgeSeconds ? Date.now() - this._maxAgeSeconds * 1e3 : 0; + const urlsExpired = await this._timestampModel.expireEntries(minTimestamp, this._maxEntries); + const cache = await self.caches.open(this._cacheName); + for (const url of urlsExpired) { + await cache.delete(url, this._matchOptions); + } + if (true) { + if (urlsExpired.length > 0) { + logger.groupCollapsed(`Expired ${urlsExpired.length} ${urlsExpired.length === 1 ? "entry" : "entries"} and removed ${urlsExpired.length === 1 ? "it" : "them"} from the '${this._cacheName}' cache.`); + logger.log(`Expired the following ${urlsExpired.length === 1 ? "URL" : "URLs"}:`); + urlsExpired.forEach((url) => logger.log(` ${url}`)); + logger.groupEnd(); + } else { + logger.debug(`Cache expiration ran and found no entries to remove.`); + } + } + this._isRunning = false; + if (this._rerunRequested) { + this._rerunRequested = false; + dontWaitFor(this.expireEntries()); + } + } + async updateTimestamp(url) { + if (true) { + finalAssertExports.isType(url, "string", { + moduleName: "workbox-expiration", + className: "CacheExpiration", + funcName: "updateTimestamp", + paramName: "url" + }); + } + await this._timestampModel.setTimestamp(url, Date.now()); + } + async isURLExpired(url) { + if (!this._maxAgeSeconds) { + if (true) { + throw new WorkboxError(`expired-test-without-max-age`, { + methodName: "isURLExpired", + paramName: "maxAgeSeconds" + }); + } + return false; + } else { + const timestamp = await this._timestampModel.getTimestamp(url); + const expireOlderThan = Date.now() - this._maxAgeSeconds * 1e3; + return timestamp < expireOlderThan; + } + } + async delete() { + this._rerunRequested = false; + await this._timestampModel.expireEntries(Infinity); + } + }; + + // node_modules/workbox-core/registerQuotaErrorCallback.js + function registerQuotaErrorCallback(callback) { + if (true) { + finalAssertExports.isType(callback, "function", { + moduleName: "workbox-core", + funcName: "register", + paramName: "callback" + }); + } + quotaErrorCallbacks.add(callback); + if (true) { + logger.log("Registered a callback to respond to quota errors.", callback); + } + } + + // node_modules/workbox-expiration/ExpirationPlugin.js + var ExpirationPlugin = class { + constructor(config = {}) { + this.cachedResponseWillBeUsed = async ({event, request, cacheName, cachedResponse}) => { + if (!cachedResponse) { + return null; + } + const isFresh = this._isResponseDateFresh(cachedResponse); + const cacheExpiration = this._getCacheExpiration(cacheName); + dontWaitFor(cacheExpiration.expireEntries()); + const updateTimestampDone = cacheExpiration.updateTimestamp(request.url); + if (event) { + try { + event.waitUntil(updateTimestampDone); + } catch (error) { + if (true) { + if ("request" in event) { + logger.warn(`Unable to ensure service worker stays alive when updating cache entry for '${getFriendlyURL(event.request.url)}'.`); + } + } + } + } + return isFresh ? cachedResponse : null; + }; + this.cacheDidUpdate = async ({cacheName, request}) => { + if (true) { + finalAssertExports.isType(cacheName, "string", { + moduleName: "workbox-expiration", + className: "Plugin", + funcName: "cacheDidUpdate", + paramName: "cacheName" + }); + finalAssertExports.isInstance(request, Request, { + moduleName: "workbox-expiration", + className: "Plugin", + funcName: "cacheDidUpdate", + paramName: "request" + }); + } + const cacheExpiration = this._getCacheExpiration(cacheName); + await cacheExpiration.updateTimestamp(request.url); + await cacheExpiration.expireEntries(); + }; + if (true) { + if (!(config.maxEntries || config.maxAgeSeconds)) { + throw new WorkboxError("max-entries-or-age-required", { + moduleName: "workbox-expiration", + className: "Plugin", + funcName: "constructor" + }); + } + if (config.maxEntries) { + finalAssertExports.isType(config.maxEntries, "number", { + moduleName: "workbox-expiration", + className: "Plugin", + funcName: "constructor", + paramName: "config.maxEntries" + }); + } + if (config.maxAgeSeconds) { + finalAssertExports.isType(config.maxAgeSeconds, "number", { + moduleName: "workbox-expiration", + className: "Plugin", + funcName: "constructor", + paramName: "config.maxAgeSeconds" + }); + } + } + this._config = config; + this._maxAgeSeconds = config.maxAgeSeconds; + this._cacheExpirations = new Map(); + if (config.purgeOnQuotaError) { + registerQuotaErrorCallback(() => this.deleteCacheAndMetadata()); + } + } + _getCacheExpiration(cacheName) { + if (cacheName === cacheNames.getRuntimeName()) { + throw new WorkboxError("expire-custom-caches-only"); + } + let cacheExpiration = this._cacheExpirations.get(cacheName); + if (!cacheExpiration) { + cacheExpiration = new CacheExpiration(cacheName, this._config); + this._cacheExpirations.set(cacheName, cacheExpiration); + } + return cacheExpiration; + } + _isResponseDateFresh(cachedResponse) { + if (!this._maxAgeSeconds) { + return true; + } + const dateHeaderTimestamp = this._getDateHeaderTimestamp(cachedResponse); + if (dateHeaderTimestamp === null) { + return true; + } + const now = Date.now(); + return dateHeaderTimestamp >= now - this._maxAgeSeconds * 1e3; + } + _getDateHeaderTimestamp(cachedResponse) { + if (!cachedResponse.headers.has("date")) { + return null; + } + const dateHeader = cachedResponse.headers.get("date"); + const parsedDate = new Date(dateHeader); + const headerTime = parsedDate.getTime(); + if (isNaN(headerTime)) { + return null; + } + return headerTime; + } + async deleteCacheAndMetadata() { + for (const [cacheName, cacheExpiration] of this._cacheExpirations) { + await self.caches.delete(cacheName); + await cacheExpiration.delete(); + } + this._cacheExpirations = new Map(); + } + }; + + // src/sw.js + registerRoute(({request}) => request.destination === "document" || request.destination === "style", new StaleWhileRevalidate()); + registerRoute(({request}) => request.destination === "script", new NetworkFirst()); + registerRoute(({request}) => request.destination === "font" || request.destination === "image", new CacheFirst({ + plugins: [ + new ExpirationPlugin({ + maxAgeSeconds: 24 * 60 * 60 * 7 + }) + ] + })); + setDefaultHandler(new CacheFirst()); + setCatchHandler(new CacheFirst()); + + // src/main.js + Math.seedrandom = require_seedrandom2(); + var cloverleaf = require_cloverleaf(); + function isObject(item) { + return item && typeof item === "object" && !Array.isArray(item); + } + function mergeDeep(target, ...sources) { + if (!sources.length) + return target; + const source = sources.shift(); + if (isObject(target) && isObject(source)) { + for (const key in source) { + if (isObject(source[key])) { + if (!target[key]) + Object.assign(target, {[key]: {}}); + mergeDeep(target[key], source[key]); + } else { + Object.assign(target, {[key]: source[key]}); + } + } + } + return mergeDeep(target, ...sources); + } + var jsonData = mergeDeep(require_logos(), cloverleaf.siteData); + var themeData = require_themes(); + var langData = require_langs(); + var autoCompleteData = {}; + window.defaultMinLength = 4; + window.defaultMaxLength = 512; + window.minLength = window.defaultMinLength; + window.maxLength = window.defaultMaxLength; + var defaultTheme = "Vanilla"; + var extension = location.hostname === "localhost" || location.hostname === "127.0.0.1" ? ".html" : ""; + var targetLength = 16; + var presetInUse = false; + var installPromptEvent; + window.generate = function() { + document.getElementById("result").value = cloverleaf.process(document.getElementById("app").value, document.getElementById("pass").value, presetInUse, document.getElementById("length").value); + }; + window.changeTheme = function(passedTheme) { + if (!themeData[passedTheme]) { + console.error(`Invalid theme "${passedTheme}", defaulting to ${defaultTheme}`); + passedTheme = defaultTheme; + } + setStored("theme", passedTheme); + document.documentElement.style.setProperty("--accentColor", themeData[passedTheme].accent); + document.documentElement.style.setProperty("--lightAccent", themeData[passedTheme].lightAccent); + document.documentElement.style.setProperty("--textColor", themeData[passedTheme].text); + document.documentElement.style.setProperty("--backgroundColor", themeData[passedTheme].background); + document.documentElement.style.setProperty("--internalColor", themeData[passedTheme].internal); + document.documentElement.style.setProperty("--incorrectColor", themeData[passedTheme].incorrect); + document.documentElement.style.setProperty("--correctColor", themeData[passedTheme].correct); + document.documentElement.style.setProperty("--inputColor", themeData[passedTheme].inputColor); + document.documentElement.style.setProperty("--linkColor", themeData[passedTheme].linkColor); + document.documentElement.style.setProperty("--highlightColor", themeData[passedTheme].highlightColor); + }; + window.changeTheme(getStored("theme") ? getStored("theme") : defaultTheme); + function getStored(name2) { + return localStorage.getItem(name2); + } + function setStored(name2, value) { + localStorage.setItem(name2, value); + } + function getQueryStrings() { + const assoc = {}; + const decode = function(s) { + return decodeURIComponent(s.replace(/\+/g, " ")); + }; + const queryString = location.search.substring(1); + const keyValues = queryString.split("&"); + keyValues.forEach((product) => { + const key = product.split("="); + if (key.length > 1) { + assoc[decode(key[0])] = decode(key[1]); + } + }); + return assoc; + } + window.passwordToggle = function() { + if (document.getElementById("passwordToggle").checked) { + document.getElementById("pass").type = "password"; + } else { + document.getElementById("pass").type = "text"; + } + }; + window.copy = function() { + const pass = document.getElementById("result").value; + if (pass === "") { + M.toast({ + html: "You have no password to copy.", + displayLength: 4e3, + classes: "warning" + }); + } else { + let copyElement = document.createElement("input"); + copyElement.setAttribute("type", "text"); + copyElement.setAttribute("value", pass); + copyElement = document.body.appendChild(copyElement); + copyElement.select(); + document.execCommand("copy"); + copyElement.remove(); + M.toast({ + html: "Successfully copied!", + displayLength: 4e3, + classes: "success" + }); + } + }; + window.resultToggle = function() { + if (document.getElementById("resultToggle").checked) { + document.getElementById("result").type = "password"; + } else { + document.getElementById("result").type = "text"; + } + }; + window.getRandomArbitrary = function(min, max) { + return Math.trunc(Math.random() * (max - min) + min); + }; + window.changeLang = function(passedLang) { + if (!langData[passedLang]) { + throw new Error(`Invalid language "${passedLang}"`); + } + setStored("lang", passedLang); + const file = passedLang === "en-GB" ? "/" : "/" + passedLang + extension; + if (window.location.pathname.toLowerCase() !== file.toLowerCase()) { + window.location.pathname = file; + } + }; + function setLogo(appName) { + let logo; + switch (typeof jsonData[appName].mini) { + case "string": + logo = jsonData[appName].mini; + break; + case "boolean": + if (jsonData[appName].mini) { + logo = `logos/${appName}-MINI.svg`; + } else { + if (jsonData[appName].logo) { + logo = jsonData[appName].logo; + } else { + logo = `logos/${appName}.svg`; + } + } + break; + case "undefined": + if (jsonData[appName].logo) { + logo = jsonData[appName].logo; + } else { + logo = `logos/${appName}.svg`; + } + break; + default: + throw new Error(`Invalid mini value "${typeof jsonData[appName].mini}" for ${jsonData[appName]} preset`); + } + document.getElementById("logoContainer").style.display = "flex"; + document.getElementById("logo").src = logo; + document.getElementById("logo").alt = appName; + document.getElementById("logo").title = appName; + } + window.fixLength = function() { + const length = document.getElementById("length").value; + if (!(window.minLength <= length && length <= window.maxLength)) { + if (length > window.maxLength) { + document.getElementById("length").value = window.maxLength; + } else if (length < window.minLength) { + document.getElementById("length").value = window.minLength; + } + } + }; + window.onload = function() { + for (const key in langData) { + const option = document.createElement("option"); + option.innerHTML = langData[key].native; + option.dataset.short = key; + document.querySelector("#lang").appendChild(option); + } + let usingLang; + if (getStored("lang") !== null) { + document.getElementById("lang").value = langData[getStored("lang")].native; + usingLang = getStored("lang"); + } else { + const lang = navigator.language || navigator.userLanguage; + const first = lang.split("-")[0]; + const matches = Object.keys(langData).filter((x) => x.startsWith(first)); + if (matches.length !== 0) { + document.getElementById("lang").value = langData[matches[0]].native; + setStored("lang", matches[0]); + usingLang = matches[0]; + } else { + document.getElementById("lang").value = "English"; + setStored("lang", "en-GB"); + usingLang = "en-GB"; + } + } + window.changeLang(usingLang); + for (const key in themeData) { + const themeOption = document.createElement("option"); + themeOption.id = key; + themeOption.innerHTML = key; + document.querySelector("#theme").appendChild(themeOption); + } + document.getElementById("theme").value = getStored("theme") ? getStored("theme") : defaultTheme; + M.Tooltip.init(document.querySelectorAll(".tooltipped")); + M.Sidenav.init(document.querySelectorAll(".sidenav"), {edge: "left"}); + window.side = M.Sidenav.getInstance(document.getElementById("slide-out")); + if (getStored("store") !== "false") { + if (getStored("password")) { + document.getElementById("pass").value = getStored("password"); + document.querySelector("label[for='pass']").classList.add("active"); + colourUnderline(); + } + document.getElementById("session-toggle").click(); + } + if (getStored("length")) { + targetLength = getStored("length"); + document.getElementById("length-pref").value = targetLength; + document.getElementById("length").value = targetLength; + } + for (const key in jsonData) { + if (jsonData[key].logo) { + autoCompleteData[key] = jsonData[key].logo; + } else { + autoCompleteData[key] = `logos/${key}.svg`; + } + } + M.Autocomplete.init(document.getElementById("app"), { + data: autoCompleteData, + onAutocomplete(val) { + setLogo(val); + let length = targetLength; + if (jsonData[val].alias) { + val = jsonData[val].alias; + console.debug(`Using alias: ${val}`); + } + if (jsonData[val].minLength) { + window.minLength = jsonData[val].minLength; + } else { + window.minLength = window.defaultMinLength; + } + document.getElementById("length").min = window.minLength; + if (jsonData[val].maxLength) { + window.maxLength = jsonData[val].maxLength; + } else { + window.maxLength = window.defaultMaxLength; + } + document.getElementById("length").max = window.maxLength; + if (!(window.minLength <= length && length <= window.maxLength)) { + length = window.maxLength; + } + document.getElementById("length").max = window.maxLength; + window.fixLength(); + presetInUse = true; + window.generate(); + }, + minLength: 0, + sortFunction(a, b, inputString) { + if (inputString) { + if (a.startsWith(inputString) && !b.startsWith(inputString)) { + return -1; + } + if (!a.startsWith(inputString) && b.startsWith(inputString)) { + return 1; + } + } + if (a < b) { + return -1; + } + if (a > b) { + return 1; + } + return 0; + } + }); + document.getElementById("app").focus(); + document.querySelector("label[for='app']").classList.add("active"); + const qs = getQueryStrings(); + if (qs.app) { + const appName = String(qs.app); + document.getElementById("app").value = appName; + if (jsonData[appName]) { + document.getElementById("app").click(); + document.querySelector(".autocomplete-content.dropdown-content :first-child").click(); + } + window.generate(); + document.getElementById("pass").focus(); + document.querySelector("label[for='pass']").classList.add("active"); + } + document.body.addEventListener("keydown", (e) => { + if (e.ctrlKey && e.code === "KeyC") { + if (window.getSelection().toString() === "") { + window.copy(); + } + } + }); + switch (location.hostname) { + case "dev.cloverleaf.app": { + document.title += " - Dev Build"; + const ico = document.createElement("link"); + ico.rel = "shortcut icon"; + ico.href = "dev.ico"; + document.head.appendChild(ico); + break; + } + case "cloverleaf.app": + break; + default: + document.title += " - localhost"; + break; + } + if (true) + require_debug(); + }; + function colourUnderline() { + if (document.getElementById("pass").value) { + Math.seedrandom(document.getElementById("pass").value); + const colour = `HSL(${window.getRandomArbitrary(0, 360)}, ${window.getRandomArbitrary(60, 100)}%, ${window.getRandomArbitrary(45, 80)}%)`; + document.getElementById("pass").style.setProperty("--accentColor", colour); + } else { + document.getElementById("pass").removeAttribute("style"); + } + } + window.appInput = function() { + presetInUse = false; + document.getElementById("logoContainer").style.display = "none"; + document.getElementById("logo").removeAttribute("src"); + document.getElementById("logo").removeAttribute("alt"); + document.getElementById("logo").removeAttribute("title"); + window.minLength = window.defaultMinLength; + window.maxLength = window.defaultMaxLength; + document.getElementById("length").max = window.maxLength; + document.getElementById("length").min = window.minLength; + document.getElementById("length").value = targetLength; + window.generate(); + }; + window.passwordUp = function() { + colourUnderline(); + if (getStored("store") === "true") { + if (document.getElementById("pass").value) { + setStored("password", document.getElementById("pass").value); + } else { + localStorage.removeItem("password"); + } + } + window.generate(); + }; + window.addEventListener("beforeinstallprompt", (e) => { + installPromptEvent = e; + e.preventDefault(); + document.getElementById("install").style = ""; + }); + window.appDown = function(e) { + if ((e.key === "Enter" || e.code === "Enter" || e.keyCode === 13) && document.querySelector(".autocomplete-content.dropdown-content").offsetHeight > 0) { + if (document.querySelector(".autocomplete-content.dropdown-content .active") === null) { + document.querySelector(".autocomplete-content.dropdown-content :first-child").click(); + } + } + }; + window.sessionToggle = function() { + if (document.getElementById("session-toggle").checked) { + setStored("store", true); + if (document.getElementById("pass").value) { + setStored("password", document.getElementById("pass").value); + } else { + localStorage.removeItem("password"); + } + } else { + setStored("store", false); + localStorage.removeItem("password"); + } + }; + window.lengthPref = function(passedLength) { + if (!(window.defaultMinLength <= passedLength && passedLength <= window.defaultMaxLength)) { + if (passedLength > window.defaultMaxLength) { + passedLength = window.defaultMaxLength; + } else if (passedLength < window.defaultMinLength) { + passedLength = window.defaultMinLength; + } + document.getElementById("length-pref").value = passedLength; + } + targetLength = passedLength; + setStored("length", passedLength); + document.getElementById("length").value = passedLength; + window.generate(); + }; + window.presetScroll = function() { + const selected = document.querySelector(".autocomplete-content.dropdown-content .active"); + if (selected) + selected.scrollIntoView({behavior: "smooth", block: "nearest", inline: "nearest"}); + }; + window.install = function() { + try { + installPromptEvent.prompt(); + } catch (TypeError2) { + M.toast({ + html: "Failed to install app.", + displayLength: 4e3, + classes: "warning" + }); + } + }; +})(); diff --git a/package-lock.json b/package-lock.json index 4afab3f0..bc71aaf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11380 +1,9186 @@ -{ - "name": "cloverleaf-web", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.8.tgz", - "integrity": "sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog==", - "dev": true - }, - "@babel/core": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.8.tgz", - "integrity": "sha512-oYapIySGw1zGhEFRd6lzWNLWFX2s5dA/jm+Pw/+59ZdXtjyIuwlXbrId22Md0rgZVop+aVoqow2riXhBLNyuQg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-compilation-targets": "^7.13.8", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helpers": "^7.13.0", - "@babel/parser": "^7.13.4", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/parser": { - "version": "7.13.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", - "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.0.tgz", - "integrity": "sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw==", - "dev": true, - "requires": { - "@babel/types": "^7.13.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.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", - "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz", - "integrity": "sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - }, - "dependencies": { - "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - } - }, - "caniuse-lite": { - "version": "1.0.30001192", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001192.tgz", - "integrity": "sha512-63OrUnwJj5T1rUmoyqYTdRWBqFFxZFlyZnRRjDR8NSUQFB6A+j/uBORU/SyJ5WzDLg4SPiZH40hQCBNdZ/jmAw==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.675", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.675.tgz", - "integrity": "sha512-GEQw+6dNWjueXGkGfjgm7dAMtXfEqrfDG3uWcZdeaD4cZ3dKYdPRQVruVXQRXtPLtOr5GNVVlNLRMChOZ611pQ==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz", - "integrity": "sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", - "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.4.tgz", - "integrity": "sha512-K5V2GaQZ1gpB+FTXM4AFVG2p1zzhm67n9wrQCJYNzvuLzQybhJyftW7qeDd2uUxPDNdl5Rkon1rOAeUeNDZ28Q==", - "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": { - "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", - "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", - "dev": true, - "requires": { - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-hoist-variables": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", - "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", - "dev": true, - "requires": { - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", - "dev": true, - "requires": { - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", - "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", - "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", - "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helpers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.0.tgz", - "integrity": "sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ==", - "dev": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", - "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", - "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", - "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", - "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", - "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", - "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", - "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", - "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", - "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", - "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.13.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", - "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", - "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", - "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", - "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@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-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-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-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-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-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-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", - "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", - "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", - "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", - "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", - "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13", - "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.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", - "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", - "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", - "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", - "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", - "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", - "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", - "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", - "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", - "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", - "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", - "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.13.0", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-identifier": "^7.12.11", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", - "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", - "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", - "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", - "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", - "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", - "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", - "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", - "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.9.tgz", - "integrity": "sha512-XCxkY/wBI6M6Jj2mlWxkmqbKPweRanszWbF3Tyut+hKh+PHcuIH/rSr/7lmmE7C3WW+HSIm2GT+d5jwmheuB0g==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-polyfill-corejs2": "^0.1.4", - "babel-plugin-polyfill-corejs3": "^0.1.3", - "babel-plugin-polyfill-regenerator": "^0.1.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/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", - "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", - "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", - "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", - "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", - "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", - "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", - "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/preset-env": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.9.tgz", - "integrity": "sha512-mcsHUlh2rIhViqMG823JpscLMesRt3QbMsv1+jhopXEb3W2wXvQ9QoiOlZI9ZbR3XqPtaFpZwEZKYqGJnGMZTQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-proposal-async-generator-functions": "^7.13.8", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-dynamic-import": "^7.13.8", - "@babel/plugin-proposal-export-namespace-from": "^7.12.13", - "@babel/plugin-proposal-json-strings": "^7.13.8", - "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-numeric-separator": "^7.12.13", - "@babel/plugin-proposal-object-rest-spread": "^7.13.8", - "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.8", - "@babel/plugin-proposal-private-methods": "^7.13.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@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-top-level-await": "^7.12.13", - "@babel/plugin-transform-arrow-functions": "^7.13.0", - "@babel/plugin-transform-async-to-generator": "^7.13.0", - "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", - "@babel/plugin-transform-classes": "^7.13.0", - "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.0", - "@babel/plugin-transform-dotall-regex": "^7.12.13", - "@babel/plugin-transform-duplicate-keys": "^7.12.13", - "@babel/plugin-transform-exponentiation-operator": "^7.12.13", - "@babel/plugin-transform-for-of": "^7.13.0", - "@babel/plugin-transform-function-name": "^7.12.13", - "@babel/plugin-transform-literals": "^7.12.13", - "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.13.0", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.13.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", - "@babel/plugin-transform-new-target": "^7.12.13", - "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.13.0", - "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.12.13", - "@babel/plugin-transform-reserved-words": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.12.13", - "@babel/plugin-transform-spread": "^7.13.0", - "@babel/plugin-transform-sticky-regex": "^7.12.13", - "@babel/plugin-transform-template-literals": "^7.13.0", - "@babel/plugin-transform-typeof-symbol": "^7.12.13", - "@babel/plugin-transform-unicode-escapes": "^7.12.13", - "@babel/plugin-transform-unicode-regex": "^7.12.13", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.0", - "babel-plugin-polyfill-corejs2": "^0.1.4", - "babel-plugin-polyfill-corejs3": "^0.1.3", - "babel-plugin-polyfill-regenerator": "^0.1.2", - "core-js-compat": "^3.9.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/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz", - "integrity": "sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/parser": { - "version": "7.13.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", - "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.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 - }, - "@discoveryjs/json-ext": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", - "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", - "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.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" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@types/eslint": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz", - "integrity": "sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", - "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", - "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", - "dev": true - }, - "@types/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==", - "dev": true - }, - "@types/http-proxy": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz", - "integrity": "sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "@types/node": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz", - "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==", - "dev": true - }, - "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", - "dev": true - }, - "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "@types/sax": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.1.tgz", - "integrity": "sha512-dqYdvN7Sbw8QT/0Ci5rhjE4/iCMJEM0Y9rHpCu+gGXD9Lwbz28t6HI2yegsB6BoV1sShRMU6lAmAcgRjmFy7LA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", - "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", - "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", - "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", - "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", - "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", - "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", - "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", - "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", - "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", - "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", - "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/helper-wasm-section": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-opt": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "@webassemblyjs/wast-printer": "1.11.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", - "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", - "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", - "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", - "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz", - "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz", - "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz", - "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", - "dev": true - }, - "@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", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true - }, - "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, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "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 - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "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" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "arg": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.0.tgz", - "integrity": "sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "autoprefixer": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.5.tgz", - "integrity": "sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA==", - "dev": true, - "requires": { - "browserslist": "^4.16.3", - "caniuse-lite": "^1.0.30001196", - "colorette": "^1.2.2", - "fraction.js": "^4.0.13", - "normalize-range": "^0.1.2", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - } - }, - "caniuse-lite": { - "version": "1.0.30001197", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001197.tgz", - "integrity": "sha512-8aE+sqBqtXz4G8g35Eg/XEaFr2N7rd/VQ6eABGBmNtcB8cN6qNJhMi6oSFy4UWWZgqgL3filHT8Nha4meu3tsw==", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.682", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.682.tgz", - "integrity": "sha512-zok2y37qR00U14uM6qBz/3iIjWHom2eRfC2S1StA0RslP7x34jX+j4mxv80t8OEOHLJPVG54ZPeaFxEI7gPrwg==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", - "dev": true - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - } - } - }, - "available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dev": true, - "requires": { - "array-filter": "^1.0.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", - "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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 - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.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" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "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" - } - }, - "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-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-polyfill-corejs2": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.8.tgz", - "integrity": "sha512-kB5/xNR9GYDuRmVlL9EGfdKBSUVI/9xAU7PCahA/1hbC2Jbmks9dlBBYjHF9IHMNY2jV/G2lIG7z0tJIW27Rog==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.0", - "@babel/helper-define-polyfill-provider": "^0.1.4", - "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.1.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.6.tgz", - "integrity": "sha512-IkYhCxPrjrUWigEmkMDXYzM5iblzKCdCD8cZrSAkQOyhhJm26DcG+Mxbx13QT//Olkpkg/AlRdT2L+Ww4Ciphw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.1.4", - "core-js-compat": "^3.8.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.5.tgz", - "integrity": "sha512-EyhBA6uN94W97lR7ecQVTvH9F5tIIdEw3ZqHuU4zekMlW82k5cXNXniiB7PRxQm06BqAjVr4sDT1mOy4RcphIA==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.1.4" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", - "dev": true - }, - "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 - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz", - "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001017", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.44" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-indexof-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.1.tgz", - "integrity": "sha1-qfuAbOgUXVQoUQznLyeLs2OmOL8=", - "dev": true - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "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" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } - } - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001066", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", - "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "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", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "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" - } - }, - "cloverleaf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cloverleaf/-/cloverleaf-1.0.2.tgz", - "integrity": "sha512-F3M0NSaQKXkxUWjL3zmKdWQKv63ANJ2XR8o6Ef/dOXlkiAMjg70qiU9D3XRDxKdllhmrnupXcd2mnz8evUfdIw==", - "requires": { - "js-sha3": "^0.8.0", - "seedrandom": "^3.0.5" - } - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "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 - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "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 - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - }, - "dependencies": { - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true - } - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "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" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "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==", - "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 - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "core-js-compat": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", - "integrity": "sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ==", - "dev": true, - "requires": { - "browserslist": "^4.16.3", - "semver": "7.0.0" - }, - "dependencies": { - "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - } - }, - "caniuse-lite": { - "version": "1.0.30001189", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001189.tgz", - "integrity": "sha512-BSfxClP/UWCD0RX1h1L+vLDexNSJY7SfOtbJtW10bcnatfj3BcoietUFYNwWreOCk+SNvGUaNapGqUNPiGAiSA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.669", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.669.tgz", - "integrity": "sha512-VNj10fmGC6SbE7s4tKG7y2OopVXYoTIfjE1MetflPd77KmeRuHtkl+HYsfF00BGg5hyaorTUn6lTToEHaciOSw==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", - "dev": true - }, - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-blank-pseudo": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", - "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "css-has-pseudo": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", - "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "css-loader": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.1.1.tgz", - "integrity": "sha512-5FfhpjwtuRgxqmusDidowqmLlcb+1HgnEDMsi2JhiUrZUcoc+cqw+mUtMIF/+OfeMYaaFCLYp1TaIt9H6I/fKA==", - "dev": true, - "requires": { - "camelcase": "^6.2.0", - "cssesc": "^3.0.0", - "icss-utils": "^5.1.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.6", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "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 - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true - }, - "cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", - "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 - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", - "dev": true, - "requires": { - "css-tree": "1.0.0-alpha.39" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "dev": true, - "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==", - "dev": true - } - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "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" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-gateway": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.2.tgz", - "integrity": "sha512-bWrj9HZWNXJ/RUkWmBIp67JawNrPGz0il43IGWU84dazEYbNFQ52HbIiqgRQdYUHK3RyGrENrDV9QkwArt6IAQ==", - "dev": true, - "requires": { - "execa": "^4.0.3" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", - "dev": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "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": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "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" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.322", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", - "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", - "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - } - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - } - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", - "dev": true - }, - "env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", - "dev": true - }, - "envinfo": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", - "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", - "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", - "dev": true, - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "es-module-lexer": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.0.tgz", - "integrity": "sha512-iuEGihqqhKWFgh72Q/Jtch7V2t/ft8w8IPP2aEN8ArYKO+IWyo6hsi96hCdgyeEDQIV3InhYQ9BlwUFPGXrbEQ==", - "dev": true - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz", - "integrity": "sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "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": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.21.0.tgz", - "integrity": "sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.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", - "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", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.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": "^4.17.20", - "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.4", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "eslint-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-4.0.2.tgz", - "integrity": "sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "loader-utils": "^2.0.0", - "object-hash": "^2.0.3", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "schema-utils": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz", - "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==", - "dev": true, - "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "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, - "requires": { - "eslint-visitor-keys": "^1.1.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 - } - } - }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - }, - "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 - } - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exports-loader": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.7.0.tgz", - "integrity": "sha512-RKwCrO4A6IiKm0pG3c9V46JxIHcDplwwGJn6+JJ1RcVnh/WSGJa0xkmk5cRVtgOPzCAtTMGj2F7nluh9L0vpSA==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "source-map": "0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.0.tgz", - "integrity": "sha1-D+llA6yGpa213mP05BKuSHLNvoY=", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "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.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "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.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fibers": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.0.tgz", - "integrity": "sha512-UpGv/YAZp7mhKHxDvC1tColrroGRX90sSvh8RMZV9leo+e5+EkRVgCEZPlmXeo3BUNQTZxUaVdLskq1Q2FyCPg==", - "dev": true, - "requires": { - "detect-libc": "^1.0.3" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "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": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "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" - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", - "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 - }, - "follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fraction.js": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", - "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "friendly-errors-webpack-plugin": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz", - "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "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, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-monkey": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz", - "integrity": "sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "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" - } - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "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 - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - } - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", - "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", - "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" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "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 - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } - } - }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", - "dev": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - } - } - }, - "hard-source-webpack-plugin": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/hard-source-webpack-plugin/-/hard-source-webpack-plugin-0.13.1.tgz", - "integrity": "sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "find-cache-dir": "^2.0.0", - "graceful-fs": "^4.1.11", - "lodash": "^4.15.0", - "mkdirp": "^0.5.1", - "node-object-hash": "^1.2.0", - "parse-json": "^4.0.0", - "pkg-dir": "^3.0.0", - "rimraf": "^2.6.2", - "semver": "^5.6.0", - "tapable": "^1.0.0-beta.5", - "webpack-sources": "^1.0.1", - "write-json-file": "^2.3.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "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" - } - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.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 - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "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 - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "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" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - } - } - }, - "html-webpack-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.2.0.tgz", - "integrity": "sha512-0wkVlJKq7edCN793gdLgdAm5m196qI2vb5SGXy4AtGOFB/lYKyS10+3Vkhe6Bo0acddAW3QVw+0ysgWoko/IEQ==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^2.0.0", - "lodash": "^4.17.20", - "pretty-error": "^2.1.1", - "tapable": "^2.0.0" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "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" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.0.6.tgz", - "integrity": "sha512-NyL6ZB6cVni7pl+/IT2W0ni5ME00xR0sN27AQZZrpKn1b+qRh+mLbBxIq9Cq1oGfmTc7BUq4HB77mxwCaxAYNg==", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.4", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.20", - "micromatch": "^4.0.2" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "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 - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.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-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-ip": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", - "integrity": "sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==", - "dev": true, - "requires": { - "default-gateway": "^6.0.0", - "ipaddr.js": "^1.9.1", - "is-ip": "^3.1.0", - "p-event": "^4.2.0" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.2.0.tgz", - "integrity": "sha512-n5cDDeTWWRwK1EBoWwRti+8nP4NbytBBY0pldmnIkq6Z55KNFmWofh4rl9dPZpj+U/nVq7gweR3ylrvMt4YZ5A==", - "dev": true - }, - "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==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-generator-function": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", - "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dev": true, - "requires": { - "ip-regex": "^4.0.0" - } - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "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 - }, - "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 - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - } - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz", - "integrity": "sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "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" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "iso-3166-1-alpha-2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iso-3166-1-alpha-2/-/iso-3166-1-alpha-2-1.0.0.tgz", - "integrity": "sha1-vJ4LuU5YTfVGipMpl6KFUuJvl6w=", - "dev": true, - "requires": { - "mout": "^0.11.0" - } - }, - "iso-639-1": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.1.tgz", - "integrity": "sha512-JRHJrXzf+4tNrLb25Xthb+ocvv2w6Xn+9g13rd7jaaQIk41r1WGmprPPf2pqZQ4bYmx8SZfKCHTuTSledKuaSQ==", - "dev": true - }, - "iso-639-1-zh": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/iso-639-1-zh/-/iso-639-1-zh-2.0.4.tgz", - "integrity": "sha1-YbV30U7osMLI5zaXo8iU/gLb1UE=", - "dev": true, - "requires": { - "iso-639-1": "^2.0.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "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" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "klona": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", - "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "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 - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "locale-code": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/locale-code/-/locale-code-2.0.2.tgz", - "integrity": "sha512-wNcUMwk6Nlc10pnZZXWtKArAOZHhH8p2vohPEIENg7ImwMrib/CwKSvyV4g9Wm7KjylyHzXnEMz4i/W3w57wlw==", - "dev": true, - "requires": { - "iso-3166-1-alpha-2": "~1.0.0", - "iso-639-1-zh": "^2.0.4" - } - }, - "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" - } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "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.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 - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "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" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "material-design-icons-iconfont": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.1.0.tgz", - "integrity": "sha512-wRJtOo1v1ch+gN8PRsj0IGJznk+kQ8mz13ds/nuhLI+Qyf/931ZlRpd92oq0IRPpZIb+bhX8pRjzIVdcPDKmiQ==" - }, - "materialize-css": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/materialize-css/-/materialize-css-1.0.0.tgz", - "integrity": "sha512-4/oecXl8y/1i8RDZvyvwAICyqwNoKU4or5uf8uoAd74k76KzZ0Llym4zhJ5lLNUskcqjO0AuMcvNyDkpz8Z6zw==" - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "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=", - "dev": true - }, - "mem": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.0.0.tgz", - "integrity": "sha512-qrcJOe6uD+EW8Wrci1Vdiua/15Xw3n/QnaNXE7varnB6InxSk7nu3/i5jfy3S6kWxr8WYJ6R1o0afMUtvorTsA==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true - } - } - }, - "memfs": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz", - "integrity": "sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==", - "dev": true, - "requires": { - "fs-monkey": "1.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "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" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "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 - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, - "requires": { - "mime-db": "1.40.0" - } - }, - "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 - }, - "mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "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 - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mout": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", - "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true - }, - "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "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" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-object-hash": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-1.4.2.tgz", - "integrity": "sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==", - "dev": true - }, - "node-releases": { - "version": "1.1.44", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.44.tgz", - "integrity": "sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "node-sass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-5.0.0.tgz", - "integrity": "sha512-opNgmlu83ZCF792U281Ry7tak9IbVC+AKnXGovcQ8LG8wFaJv6cLnRlc6DIHlmNxWEexB5bZxi9SZ9JyUuOYjw==", - "dev": true, - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^7.0.3", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^7.1.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "2.2.5", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "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" - } - }, - "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 - }, - "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 - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-hash": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", - "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==", - "dev": true - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true - }, - "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", - "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "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" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-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-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-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, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz", - "integrity": "sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==", - "dev": true, - "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.12.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "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" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "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" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "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" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "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" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "postcss": { - "version": "8.2.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.7.tgz", - "integrity": "sha512-DsVLH3xJzut+VT+rYr0mtvOtpTjSyqDwPf5EZWXcb0uAKfitGpTY9Ec+afi2+TgdN8rWS9Cs88UDYehKo/RvOw==", - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.20", - "source-map": "^0.6.1" - }, - "dependencies": { - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz", - "integrity": "sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-color-functional-notation": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-color-gray": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", - "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", - "dev": true, - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-color-hex-alpha": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", - "dev": true, - "requires": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.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.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-color-rebeccapurple": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-custom-media": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", - "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-custom-properties": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", - "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", - "dev": true, - "requires": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-custom-selectors": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-dir-pseudo-class": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-double-position-gradients": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", - "dev": true, - "requires": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-env-function": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", - "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-focus-visible": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-focus-within": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", - "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-font-variant": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", - "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-image-set-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", - "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", - "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-initial": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", - "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", - "dev": true, - "requires": { - "lodash.template": "^4.5.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-lab-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", - "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", - "dev": true, - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-media-minmax": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - } - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - } - } - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-overflow-shorthand": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-page-break": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", - "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-preset-env": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", - "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", - "dev": true, - "requires": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "css-blank-pseudo": "^0.1.4", - "css-has-pseudo": "^0.10.0", - "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.4.0", - "postcss": "^7.0.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "postcss-color-functional-notation": "^2.0.1", - "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.3", - "postcss-color-mod-function": "^3.0.3", - "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.8", - "postcss-custom-properties": "^8.0.11", - "postcss-custom-selectors": "^5.1.2", - "postcss-dir-pseudo-class": "^5.0.0", - "postcss-double-position-gradients": "^1.0.0", - "postcss-env-function": "^2.0.2", - "postcss-focus-visible": "^4.0.0", - "postcss-focus-within": "^3.0.0", - "postcss-font-variant": "^4.0.0", - "postcss-gap-properties": "^2.0.0", - "postcss-image-set-function": "^3.0.1", - "postcss-initial": "^3.0.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "postcss-overflow-shorthand": "^2.0.0", - "postcss-page-break": "^2.0.0", - "postcss-place": "^4.0.1", - "postcss-pseudo-class-any-link": "^6.0.0", - "postcss-replace-overflow-wrap": "^3.0.0", - "postcss-selector-matches": "^4.0.0", - "postcss-selector-not": "^4.0.0" - }, - "dependencies": { - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "browserslist": { - "version": "4.14.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", - "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001135", - "electron-to-chromium": "^1.3.571", - "escalade": "^3.1.0", - "node-releases": "^1.1.61" - } - }, - "caniuse-lite": { - "version": "1.0.30001147", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001147.tgz", - "integrity": "sha512-CPyN875geYk46eIqPl5jlmotCr5YZC2KxIVfb4z0FrNfLxPM+MyodWD2irJGDG8vUUE1fmg3De9vt8uaC6Nf6w==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "electron-to-chromium": { - "version": "1.3.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz", - "integrity": "sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q==", - "dev": true - }, - "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - } - } - }, - "postcss-pseudo-class-any-link": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", - "dev": true, - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-selector-not": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", - "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "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 - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - } - } - }, - "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", - "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" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "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" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "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 - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "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 - }, - "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" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "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" - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", - "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "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": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "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" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", - "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", - "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 - }, - "renderkid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", - "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", - "dev": true, - "requires": { - "css-select": "^2.0.2", - "dom-converter": "^0.2", - "htmlparser2": "^3.10.1", - "lodash": "^4.17.20", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } - } - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "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, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sass": { - "version": "1.32.8", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz", - "integrity": "sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==", - "dev": true, - "requires": { - "chokidar": ">=2.0.0 <4.0.0" - } - }, - "sass-graph": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", - "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - } - }, - "sass-loader": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-11.0.1.tgz", - "integrity": "sha512-Vp1LcP4slTsTNLEiDkTcm8zGN/XYYrZz2BZybQbliWA8eXveqA/AxsEjllQTpJbg2MzCsx/qNO48sHdZtOaxTw==", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "dependencies": { - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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 - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - } - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "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.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "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 - } - } - }, - "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-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "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 - }, - "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.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "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" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "sitemap": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-6.3.6.tgz", - "integrity": "sha512-L+gSUOJrUuXP3XHnJ0VcV0rmBImwm0aVmJb0YGoafG7YcIblNdRs9vKpeyFXlcbY2S8x6e+kMpNlty6lqdBopg==", - "dev": true, - "requires": { - "@types/node": "^14.14.25", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "dependencies": { - "@types/node": { - "version": "14.14.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.26.tgz", - "integrity": "sha512-skWxepWOs+VArEBWd2S/VR3wUavioIIx9/HzW+UJiIjtwa6+kNXdsOeq7FfxDXf56hIcL0ieo2brwMgBJ1+lhw==", - "dev": true - } - } - }, - "sitemap-webpack-plugin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/sitemap-webpack-plugin/-/sitemap-webpack-plugin-1.1.0.tgz", - "integrity": "sha512-grxE9s76zDJvlQS64SzFxiWz0F3pw7BqXgneR2oPw/bB+7KlgWKwK61asfaDrWTqyVW6O7KTT3QkG7gtmgIb6Q==", - "dev": true, - "requires": { - "schema-utils": "^3.0.0", - "sitemap": "^6.0.0", - "webpack-sources": "^1.4.3" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "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 - } - } - }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "sockjs-client": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", - "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.4.7" - }, - "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" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "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", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true - }, - "source-map-loader": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-2.0.1.tgz", - "integrity": "sha512-UzOTTQhoNPeTNzOxwFw220RSRzdGSyH4lpNyWjR7Qm34P4/N0W669YSUFdH07+YNeN75h765XLHmNsF/bm97RQ==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.2", - "source-map-js": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "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" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", - "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "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" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "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 - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.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 - }, - "style-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", - "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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 - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==", - "dev": true - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - } - } - }, - "table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", - "dev": true, - "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "ajv": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.1.tgz", - "integrity": "sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "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 - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "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 - }, - "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 - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "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.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "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": "5.1.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", - "dev": true, - "requires": { - "jest-worker": "^26.6.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.5.1" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "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 - } - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "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-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "requires": { - "glob": "^7.1.2" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "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-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - } - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "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 - } - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", - "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "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", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "watchpack": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", - "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webpack": { - "version": "5.24.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.24.2.tgz", - "integrity": "sha512-uxxKYEY4kMNjP+D2Y+8aw5Vd7ar4pMuKCNemxV26ysr1nk0YDiQTylg9U3VZIdkmI0YHa0uC8ABxL+uGxGWWJg==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.46", - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/wasm-edit": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.0.4", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.7.0", - "es-module-lexer": "^0.4.0", - "eslint-scope": "^5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "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.0.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", - "watchpack": "^2.0.0", - "webpack-sources": "^2.1.1" - }, - "dependencies": { - "acorn": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.5.tgz", - "integrity": "sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==", - "dev": true - }, - "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - } - }, - "caniuse-lite": { - "version": "1.0.30001191", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", - "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.673", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.673.tgz", - "integrity": "sha512-ms+QR2ckfrrpEAjXweLx6kNCbpAl66DcW//3BZD4BV5KhUgr0RZRce1ON/9J3QyA3JO28nzgb5Xv8DnPr05ILg==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", - "dev": true, - "requires": { - "mime-db": "1.46.0" - } - }, - "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", - "dev": true - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - }, - "webpack-sources": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", - "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "webpack-cli": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz", - "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.1", - "@webpack-cli/info": "^1.2.2", - "@webpack-cli/serve": "^1.3.0", - "colorette": "^1.2.1", - "commander": "^7.0.0", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz", - "integrity": "sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==", - "dev": true - }, - "execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "requires": { - "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" - } - }, - "get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", - "dev": true - }, - "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 - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.0.2.tgz", - "integrity": "sha512-xyAICqIugWtT1RRH5aMMmZlPhDhEqPTDL0TWhmMZsuZ+cFlAvRxv4thCbuxdk9MW+OYK4c9BkfmgdQ1/7imkJA==", - "dev": true, - "requires": { - "mem": "^8.0.0", - "memfs": "^3.2.0", - "mime-types": "^2.1.27", - "range-parser": "^1.2.1", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "requires": { - "mime-db": "1.44.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.0.0-beta.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.0.tgz", - "integrity": "sha512-mVD4Hn3bsMdcq6qE0y8xvH6KAu9NwS6F0NNgFe+n6gbsTQ7YgffUDydvy2iieyyKjAcBJDT5PZexv9tKv8kTNQ==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^3.4.3", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "del": "^6.0.0", - "express": "^4.17.1", - "find-cache-dir": "^3.3.1", - "graceful-fs": "^4.2.4", - "html-entities": "^1.3.1", - "http-proxy-middleware": "^1.0.6", - "internal-ip": "^6.2.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "open": "^7.3.0", - "p-retry": "^4.2.0", - "portfinder": "^1.0.28", - "schema-utils": "^3.0.0", - "selfsigned": "^1.10.8", - "serve-index": "^1.9.1", - "sockjs": "0.3.21", - "sockjs-client": "1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^6.0.0", - "url": "^0.11.0", - "util": "^0.12.3", - "webpack-dev-middleware": "^4.0.2", - "ws": "^7.4.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "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-subresource-integrity": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", - "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", - "dev": true, - "requires": { - "webpack-sources": "^1.3.0" - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - } - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "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" - } - }, - "write-json-file": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", - "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", - "dev": true, - "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - } - } - }, - "ws": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", - "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} +{ + "name": "cloverleaf-web", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", + "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", + "dev": true + }, + "@babel/core": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz", + "integrity": "sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.15", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.14", + "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" + } + }, + "@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.12", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", + "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", + "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" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "dev": true, + "requires": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "dev": true, + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", + "dev": true + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", + "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.13.12" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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-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-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-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-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-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-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz", + "integrity": "sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/preset-env": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", + "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.15", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.13.15", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@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-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.13.15", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.14", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@eslint/eslintrc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.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" + }, + "dependencies": { + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "@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 + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "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" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "apache-crypt": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.4.tgz", + "integrity": "sha512-Icze5ny5W5uv3xgMgl8U+iGmRCC0iIDrb2PVPuRBtL3Zy1Y5TMewXP1Vtc4r5X9eNNBEk7KYPu0Qby9m/PmcHg==", + "dev": true, + "requires": { + "unix-crypt-td-js": "^1.1.4" + } + }, + "apache-md5": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.5.tgz", + "integrity": "sha512-sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "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-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "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 + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "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 + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.5.tgz", + "integrity": "sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA==", + "dev": true, + "requires": { + "browserslist": "^4.16.3", + "caniuse-lite": "^1.0.30001196", + "colorette": "^1.2.2", + "fraction.js": "^4.0.13", + "normalize-range": "^0.1.2", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "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-polyfill-corejs2": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", + "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.0", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", + "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0", + "core-js-compat": "^3.9.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", + "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "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" + } + }, + "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-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-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" + } + } + } + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", + "dev": true + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", + "dev": true + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "dev": true, + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "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 + }, + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "dev": true + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "dev": true + }, + "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" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001202", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001202.tgz", + "integrity": "sha512-ZcijQNqrcF8JNLjzvEiXqX4JUYxoZa7Pvcsd9UD8Kz4TvhTonOSNRsK+qtvpVL4l6+T1Rh4LFtLfnNWg6BGWCQ==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "dev": true, + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, + "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" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "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" + } + } + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "cloverleaf": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cloverleaf/-/cloverleaf-2.0.0.tgz", + "integrity": "sha512-DMJGn42CNZ8kZtQtMUJ6wftI276LpIpBun6eluTkbdLdSq3DzB9t5OkfM9GUD6gQZLqMl/s0Fslo3ppEaSbIUA==", + "requires": { + "js-sha3": "^0.8.0", + "seedrandom": "^3.0.5" + } + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "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.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "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 + }, + "color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js-compat": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz", + "integrity": "sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==", + "dev": true, + "requires": { + "browserslist": "^4.16.3", + "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-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "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 + }, + "cssnano": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.8", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-preset-default": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.3", + "postcss-unique-selectors": "^4.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "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 + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "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": { + "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-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-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" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "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" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "dev": true, + "requires": { + "jake": "^10.6.1" + } + }, + "electron-to-chromium": { + "version": "1.3.690", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.690.tgz", + "integrity": "sha512-zPbaSv1c8LUKqQ+scNxJKv01RYFkVVF1xli+b+3Ty8ONujHjAMg+t/COmdZqrtnS1gT+g4hbSodHillymt1Lww==", + "dev": true + }, + "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 + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "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 + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.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.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.13.tgz", + "integrity": "sha512-d5coY4dd4rVWle0WzrR8+32ukKtZroVJ/wJzOwbBEmoSFB/H3QME0l+3IAN5Sf3LtuoUSivdv1/b5rD7OykXeg==", + "dev": true + }, + "esbuild-plugin-sass": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/esbuild-plugin-sass/-/esbuild-plugin-sass-0.3.4.tgz", + "integrity": "sha512-ySvaIQL7aMBYHDNsVbcUsLKhXqEsst6gwiBf1casidqI4c4hCi47M1Vi6n9hLc4c1MOffBfVWsxqJjC/gRA6CA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2", + "fs-extra": "^9.0.1", + "sass": "^1.32.4", + "tmp": "^0.2.1" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "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": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz", + "integrity": "sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.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", + "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", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "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": "^4.17.21", + "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.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "globals": { + "version": "13.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz", + "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "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 + } + } + }, + "eslint-config-standard": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", + "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", + "dev": true + }, + "eslint-config-standard-jsx": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz", + "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.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 + } + } + }, + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + } + }, + "eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.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" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", + "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.18.1", + "string.prototype.matchall": "^4.0.2" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "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, + "requires": { + "eslint-visitor-keys": "^1.1.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 + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "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 + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "essass": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/essass/-/essass-1.1.0.tgz", + "integrity": "sha512-cVVO8xmNT8qRq6rjT8Y6gwyEKwtte2QSOjrhmcW7/G6/6oXQ3PRyTUQOrk7hXG59uyrs448O5C7Lbqg7IZ+ywg==", + "dev": true, + "requires": { + "sass": "^1.32.5" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "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" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "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" + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "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-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-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" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fibers": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.0.tgz", + "integrity": "sha512-UpGv/YAZp7mhKHxDvC1tColrroGRX90sSvh8RMZV9leo+e5+EkRVgCEZPlmXeo3BUNQTZxUaVdLskq1Q2FyCPg==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "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" + }, + "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 + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fraction.js": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", + "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==", + "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", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "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" + } + }, + "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, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "dependencies": { + "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" + } + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "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" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "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 + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "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 + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "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-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" + } + } + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", + "dev": true, + "requires": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.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 + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "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, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^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-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "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-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "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 + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "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", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "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-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, + "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 + }, + "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-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "iso-3166-1-alpha-2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/iso-3166-1-alpha-2/-/iso-3166-1-alpha-2-1.0.0.tgz", + "integrity": "sha1-vJ4LuU5YTfVGipMpl6KFUuJvl6w=", + "dev": true, + "requires": { + "mout": "^0.11.0" + } + }, + "iso-639-1": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.8.tgz", + "integrity": "sha512-Ol0R5oepQmWTMrlzSx8giSQ4hQsh2SZI/fsAy+nYc5O+RsYeixy2tsGUYJNadqqoOcbanSbFTqK17PRKpuNCAw==", + "dev": true + }, + "iso-639-1-zh": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/iso-639-1-zh/-/iso-639-1-zh-2.0.4.tgz", + "integrity": "sha1-YbV30U7osMLI5zaXo8iU/gLb1UE=", + "dev": true, + "requires": { + "iso-639-1": "^2.0.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + } + }, + "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-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "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" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", + "dev": true + }, + "live-server": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", + "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==", + "dev": true, + "requires": { + "chokidar": "^2.0.4", + "colors": "^1.4.0", + "connect": "^3.6.6", + "cors": "^2.8.5", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "^4.1.1", + "opn": "^6.0.0", + "proxy-middleware": "^0.15.0", + "send": "^0.17.1", + "serve-index": "^1.9.1" + }, + "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" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.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 + }, + "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" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "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" + } + }, + "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" + } + }, + "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": { + "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, + "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" + } + } + } + }, + "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, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "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" + } + }, + "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-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "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, + "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, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + } + } + }, + "locale-code": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/locale-code/-/locale-code-2.0.2.tgz", + "integrity": "sha512-wNcUMwk6Nlc10pnZZXWtKArAOZHhH8p2vohPEIENg7ImwMrib/CwKSvyV4g9Wm7KjylyHzXnEMz4i/W3w57wlw==", + "dev": true, + "requires": { + "iso-3166-1-alpha-2": "~1.0.0", + "iso-639-1-zh": "^2.0.4" + } + }, + "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" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "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.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "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 + }, + "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 + }, + "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", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "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": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "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" + } + }, + "material-design-icons-iconfont": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.1.0.tgz", + "integrity": "sha512-wRJtOo1v1ch+gN8PRsj0IGJznk+kQ8mz13ds/nuhLI+Qyf/931ZlRpd92oq0IRPpZIb+bhX8pRjzIVdcPDKmiQ==" + }, + "materialize-css": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/materialize-css/-/materialize-css-1.0.0.tgz", + "integrity": "sha512-4/oecXl8y/1i8RDZvyvwAICyqwNoKU4or5uf8uoAd74k76KzZ0Llym4zhJ5lLNUskcqjO0AuMcvNyDkpz8Z6zw==" + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "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" + } + }, + "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": { + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + } + } + }, + "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" + } + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "requires": { + "mime-db": "1.46.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "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" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "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 + } + } + }, + "mout": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", + "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true + }, + "nanoid": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", + "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "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" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true + }, + "node-sass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-5.0.0.tgz", + "integrity": "sha512-opNgmlu83ZCF792U281Ry7tak9IbVC+AKnXGovcQ8LG8wFaJv6cLnRlc6DIHlmNxWEexB5bZxi9SZ9JyUuOYjw==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^7.0.3", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^7.1.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 + }, + "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-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "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" + } + }, + "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.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "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" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "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" + } + }, + "object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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" + } + }, + "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" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.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" + } + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "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.2.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz", + "integrity": "sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.22", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", + "dev": true + }, + "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 + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "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 + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "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": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "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" + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "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 + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "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", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "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 + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "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" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.32.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz", + "integrity": "sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "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.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.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" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "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 + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "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" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "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 + }, + "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": { + "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" + } + } + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "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" + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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" + } + }, + "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-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-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" + } + } + } + }, + "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": { + "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" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "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-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 + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "dev": true, + "requires": { + "through": "2" + } + }, + "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" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "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 + }, + "standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", + "integrity": "sha512-70F7NH0hSkNXosXRltjSv6KpTAOkUkSfyu3ynyM5dtRUiLtR+yX9EGZ7RKwuGUqCJiX/cnkceVM6HTZ4JpaqDg==", + "dev": true, + "requires": { + "eslint": "~7.13.0", + "eslint-config-standard": "16.0.2", + "eslint-config-standard-jsx": "10.0.0", + "eslint-plugin-import": "~2.22.1", + "eslint-plugin-node": "~11.1.0", + "eslint-plugin-promise": "~4.2.1", + "eslint-plugin-react": "~7.21.5", + "standard-engine": "^14.0.1" + }, + "dependencies": { + "@eslint/eslintrc": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "eslint": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz", + "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.1", + "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", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.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": "^4.17.19", + "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": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rimraf": { + "version": "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" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.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" + } + }, + "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 + } + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + } + } + } + }, + "standard-engine": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-14.0.1.tgz", + "integrity": "sha512-7FEzDwmHDOGva7r9ifOzD3BGdTbA7ujJ50afLVdW/tK14zQEptJjbFuUfn50irqdHDcTbNh0DTIoMPynMCXb0Q==", + "dev": true, + "requires": { + "get-stdin": "^8.0.0", + "minimist": "^1.2.5", + "pkg-conf": "^3.1.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "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" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "~0.1.1" + } + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz", + "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.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 + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "table": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz", + "integrity": "sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "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 + } + } + }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "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": { + "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-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" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "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 + }, + "unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "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 + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "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 + } + } + }, + "unzipper": { + "version": "0.10.11", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", + "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", + "dev": true, + "requires": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "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 + }, + "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 + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "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 + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "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" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "workbox-cacheable-response": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.1.2.tgz", + "integrity": "sha512-zSTQWJU+CBHC90N/Dccb9n0IzbTsmnl28usKOlVYbfHS5wit3izpD7djqqHzgzyS+gdemRjY4s02VV9WvyeD1w==", + "requires": { + "workbox-core": "^6.1.2" + } + }, + "workbox-core": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.1.2.tgz", + "integrity": "sha512-69rch7EyPsNAx5Y5YlSoHV39/EEE1oDeb5zmLIy6+mgB4BnaG6u/tlDtvjvKqHcPM0gz2L5SzYtTEvWmk5WRTQ==" + }, + "workbox-expiration": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.1.2.tgz", + "integrity": "sha512-86cXz8Ae5cAJMgJ6aD/8E1NMNON4qGnE4ir1G3VuOu1xLsx2ItbbXmz6b0BB2dZ+kX6BDwqE0wkgS5As5Sds7g==", + "requires": { + "workbox-core": "^6.1.2" + } + }, + "workbox-precaching": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.1.2.tgz", + "integrity": "sha512-jGwv6tMdIecsyBSdVCgXoD7bHxLRI972lvYOfvcosGjP3oFKe8p2DVPsn3TIzEVYTl+b3j59utC7yrOP9oEHSg==", + "requires": { + "workbox-core": "^6.1.2", + "workbox-routing": "^6.1.2", + "workbox-strategies": "^6.1.2" + } + }, + "workbox-recipes": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.1.2.tgz", + "integrity": "sha512-KT9qome7svIajmXP6/4kmZYr8UzWua6MO2GIeM0Th+mr28WzrHfw2iCeo3362hCW/yMiNMlP5uuXiqsaFxUjHg==", + "requires": { + "workbox-cacheable-response": "^6.1.2", + "workbox-core": "^6.1.2", + "workbox-expiration": "^6.1.2", + "workbox-precaching": "^6.1.2", + "workbox-routing": "^6.1.2", + "workbox-strategies": "^6.1.2" + } + }, + "workbox-routing": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.1.2.tgz", + "integrity": "sha512-aRcqO+KX9A0J5W6hEeEpGhT6Lesqd3WfgaqlSD5LRajm0vAgYnlQzY37w6uC55Ev7M5Gh/xg0lA99qKc6ozsEA==", + "requires": { + "workbox-core": "^6.1.2" + } + }, + "workbox-strategies": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.1.2.tgz", + "integrity": "sha512-IX7UNePHmmfb1dcXSxgcephYShnLc0pmP3MRT/TZGjv8f0qcZYH7Sr/lTmwaxGXQL8yCSCrQICZwJnHLw2G5Ng==", + "requires": { + "workbox-core": "^6.1.2" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "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" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.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 + } + } + } + } +} diff --git a/package.json b/package.json index 661ec6ac..de1491eb 100644 --- a/package.json +++ b/package.json @@ -1,79 +1,70 @@ -{ - "name": "cloverleaf-web", - "version": "1.0.0", - "description": "Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.", - "main": "jssource.js", - "scripts": { - "build": "cross-env NODE_ENV=production node config/webpack/config.js", - "start": "cross-env NODE_ENV=dev webpack-dev-server --config config/webpack/config.development.js", - "server-test": "npx http-server", - "pytest": "cd unit_tests && py -3 -m pytest -s", - "pytest-first": "cd unit_tests && py -3 -m pytest -s -x" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/cloverleaf/web.git" - }, - "keywords": [ - "password", - "password-manager", - "password-generator", - "security", - "password-vault", - "web-app", - "web-application", - "material" - ], - "author": "ChildishGiant", - "license": "MIT", - "bugs": { - "url": "https://github.com/cloverleaf/web/issues" - }, - "homepage": "https://github.com/cloverleaf/web#readme", - "dependencies": { - "cloverleaf": "^1.0.2", - "js-sha3": "^0.8.0", - "material-design-icons-iconfont": "^6.1.0", - "materialize-css": "^1.0.0", - "postcss": "^8.2.7", - "seedrandom": "^3.0.5" - }, - "devDependencies": { - "@babel/core": "^7.13.8", - "@babel/plugin-transform-runtime": "^7.13.9", - "@babel/preset-env": "^7.13.9", - "autoprefixer": "^10.2.5", - "babel-loader": "^8.2.2", - "cross-env": "^7.0.3", - "css-loader": "^5.1.1", - "cssnano": "^4.1.10", - "eslint": "^7.21.0", - "eslint-loader": "^4.0.2", - "exports-loader": "0.7.0", - "fibers": "^5.0.0", - "file-loader": "^6.2.0", - "friendly-errors-webpack-plugin": "^1.7.0", - "hard-source-webpack-plugin": "^0.13.1", - "html-webpack-plugin": "5.2.0", - "locale-code": "^2.0.2", - "mini-css-extract-plugin": "^1.3.9", - "node-fetch": "^2.6.1", - "node-sass": "^5.0.0", - "postcss-import": "^12.0.1", - "postcss-loader": "^3.0.0", - "postcss-preset-env": "^6.7.0", - "rimraf": "^3.0.2", - "sass": "^1.32.8", - "sass-loader": "^11.0.1", - "sitemap-webpack-plugin": "^1.1.0", - "source-map-loader": "^2.0.1", - "style-loader": "^2.0.0", - "terser-webpack-plugin": "^5.1.1", - "unzipper": "^0.10.11", - "webpack": "^5.20.2", - "webpack-cli": "^4.5.0", - "webpack": "^5.24.2", - "webpack-dev-server": "^4.0.0-beta.0", - "webpack-subresource-integrity": "^1.5.2" - } -} +{ + "name": "cloverleaf-web", + "version": "1.0.0", + "description": "Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.", + "main": "jssource.js", + "scripts": { + "build": "cross-env NODE_ENV=production node config/esbuild/build.js", + "watch": "cross-env NODE_ENV=development node config/esbuild/dev.js", + "server-test": "cd public && npx http-server", + "pytest": "cd unit_tests && py -3 -m pytest -s", + "pytest-first": "cd unit_tests && py -3 -m pytest -s -x", + "style": "standard" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/cloverleaf/web.git" + }, + "keywords": [ + "password", + "password-manager", + "password-generator", + "security", + "password-vault", + "web-app", + "web-application", + "material" + ], + "author": "ChildishGiant", + "license": "MIT", + "bugs": { + "url": "https://github.com/cloverleaf/web/issues" + }, + "homepage": "https://github.com/cloverleaf/web#readme", + "dependencies": { + "cloverleaf": "^2.0.0", + "js-sha3": "^0.8.0", + "material-design-icons-iconfont": "^6.1.0", + "materialize-css": "^1.0.0", + "seedrandom": "^3.0.5", + "workbox-recipes": "^6.1.2" + }, + "devDependencies": { + "@babel/core": "^7.13.15", + "@babel/plugin-transform-runtime": "^7.13.15", + "@babel/preset-env": "^7.13.15", + "autoprefixer": "^10.2.5", + "cross-env": "^7.0.3", + "cssnano": "^4.1.11", + "ejs": "^3.1.6", + "esbuild": "^0.11.13", + "esbuild-plugin-sass": "^0.3.4", + "eslint": "^7.24.0", + "essass": "^1.1.0", + "fibers": "^5.0.0", + "fs-extra": "^9.1.0", + "live-server": "^1.2.1", + "locale-code": "^2.0.2", + "node-fetch": "^2.6.1", + "node-sass": "^5.0.0", + "postcss": "^8.2.10", + "rimraf": "^3.0.2", + "sass": "^1.32.8", + "ssri": "^8.0.1", + "standard": "^16.0.3", + "unzipper": "^0.10.11" + }, + "standard": { + "env": "browser" + } +} diff --git a/debug.css b/src/debug.css similarity index 100% rename from debug.css rename to src/debug.css diff --git a/src/debug.js b/src/debug.js index 412adfa8..d6a097df 100644 --- a/src/debug.js +++ b/src/debug.js @@ -1,58 +1,54 @@ -const themeData = require("../data/themes.json"); - -const debug = false; - -if (debug) { - - document.title += ` - Debug ${new Date().getTime()}`; - console.debug("Enabling debug css"); - const link = document.createElement("link"); - link.setAttribute("rel", "stylesheet"); - link.setAttribute("type", "text/css"); - link.setAttribute("href", "debug.css"); - document.getElementsByTagName("head")[0].appendChild(link); - - // Add select option for an all #ff00ff theme - - themeData.testTheme = { - "accent": "#ff00ff", - "lightAccent": "#ff00ff", - "text": "#ff00ff", - "background": "#ff00ff", - "internal": "#ff00ff", - "incorrect": "#ff00ff", - "correct": "#ff00ff", - "inputColor": "#ff00ff", - "linkColor": "#ff00ff", - "highlightColor": "#ff00ff" - }; - - const themeOption = document.createElement("option"); - themeOption.onclick = "changeTheme('testTheme')"; - themeOption.id = "testTheme"; - themeOption.innerHTML = "testTheme"; - document.querySelector("#options .input-field select").appendChild(themeOption); - - const css = "a[id=testTheme]{background-color: #ff00ff !important; border: 1px ;}a[id=testTheme] i {color: #ff00ff"; - const style = document.createElement("style"); - style.type = "text/css"; - if (style.styleSheet) { - // This is required for IE8 and below. - style.styleSheet.cssText = css; - } else { - style.appendChild(document.createTextNode(css)); - } - document.getElementsByTagName("head")[0].appendChild(style); -} - - -// If running locally -if (location.hostname === "localhost" || location.hostname === "127.0.0.1") { - - // Change the page title so I can tell the tabs apart - document.title += " - LocalHost"; - - // Fix faq link - document.getElementById("faq").href += ".html"; - -} \ No newline at end of file +const themeData = require('../data/themes.json') + +const debug = false + +if (debug) { + document.title += ` - Debug ${new Date().getTime()}` + console.debug('Enabling debug css') + const link = document.createElement('link') + link.setAttribute('rel', 'stylesheet') + link.setAttribute('type', 'text/css') + link.setAttribute('href', 'debug.css') + document.getElementsByTagName('head')[0].appendChild(link) + + // Add select option for an all #ff00ff theme + + themeData.testTheme = { + accent: '#ff00ff', + lightAccent: '#ff00ff', + text: '#ff00ff', + background: '#ff00ff', + internal: '#ff00ff', + incorrect: '#ff00ff', + correct: '#ff00ff', + inputColor: '#ff00ff', + linkColor: '#ff00ff', + highlightColor: '#ff00ff' + } + + const themeOption = document.createElement('option') + themeOption.onclick = "changeTheme('testTheme')" + themeOption.id = 'testTheme' + themeOption.innerHTML = 'testTheme' + document.querySelector('#options .input-field select').appendChild(themeOption) + + const css = 'a[id=testTheme]{background-color: #ff00ff !important; border: 1px ;}a[id=testTheme] i {color: #ff00ff' + const style = document.createElement('style') + style.type = 'text/css' + if (style.styleSheet) { + // This is required for IE8 and below. + style.styleSheet.cssText = css + } else { + style.appendChild(document.createTextNode(css)) + } + document.getElementsByTagName('head')[0].appendChild(style) +} + +// If running locally +if (location.hostname === 'localhost' || location.hostname === '127.0.0.1') { + // Change the page title so I can tell the tabs apart + document.title += ' - LocalHost' + + // Fix faq link + document.getElementById('faq').href += '.html' +} diff --git a/src/faq.md b/src/faq.md index 2df5b860..93a65d4d 100644 --- a/src/faq.md +++ b/src/faq.md @@ -1,79 +1,79 @@ -# Frequently Asked Questions - -**Q:** What is this and why should I use it?: - -**A:** This is a complete redesign of the traditional password generator/storage system. Instead of relying on a hard drive to not to fail, or that backup you keep forgetting to make, Cloverleaf makes a password based on your master password and the application you want a password for. This generated password will be the same every time, no matter what device you're on. You can then copy this and paste it into the app you want to log into. - -
        - -**Q:** How do I know you're not looking at my passwords?: - -**A:** When you type, your computer takes the app name and your master password and using them makes a new password. Nothing is ever sent across the internet, other than the code for the website itself. If you really want, you can [download the files](https://github.com/cloverleaf/web) for the website, smash your router and run Cloverleaf offline (Not that I'd recommend smashing your router.) - -
        - -**Q:** Why did you remake an existing product?: - -**A:** I've openly acknowledged that Cloverleaf is based off the concept of "[Master Password](https://masterpasswordapp.com/)" but why would I spend all this time re-making a working piece of software? The answer is simple: *I don't like how Master Password works.* It has many different offshoots that all look different. It takes 6 variables to make a password and 30 seconds to load (Yes, I timed it.). It makes everything harder than it should be. And that was my motivation to make Cloverleaf. I absolutely love the concept of secure passwords without storing them but hate the current solutions. - -
        - -**Q:** What if I have multiple accounts on one service?: - -**A:** There isn't a system in place for this but there doesn't need to be since you can just type `ACCOUNTNAME PASSWORD` in the password field to get the password for that account. - -
        - -**Q:** What are cookies and why do you use them?: - -**A:** A cookie is a small bit of information that a website stores on your computer so that when you come back to the site later, it can remember things from your previous visit. Cloverleaf uses these for remembering what theme you like and a few other things like that. - -
        - -**Q:** What if I have a question that's not listed here? - -**A:** [Ask your question here](https://github.com/cloverleaf/web/issues/new?assignees=&labels=Question&template=question.md&title=) - -Frequently Asked Questions - Cloverleaf - +# Frequently Asked Questions + +**Q:** What is this and why should I use it?: + +**A:** This is a complete redesign of the traditional password generator/storage system. Instead of relying on a hard drive to not to fail, or that backup you keep forgetting to make, Cloverleaf makes a password based on your master password and the application you want a password for. This generated password will be the same every time, no matter what device you're on. You can then copy this and paste it into the app you want to log into. + +
        + +**Q:** How do I know you're not looking at my passwords?: + +**A:** When you type, your computer takes the app name and your master password and using them makes a new password. Nothing is ever sent across the internet, other than the code for the website itself. If you really want, you can [download the files](https://github.com/cloverleaf/web) for the website, smash your router and run Cloverleaf offline (Not that I'd recommend smashing your router.) + +
        + +**Q:** Why did you remake an existing product?: + +**A:** I've openly acknowledged that Cloverleaf is based off the concept of "[Master Password](https://masterpasswordapp.com/)" but why would I spend all this time re-making a working piece of software? The answer is simple: *I don't like how Master Password works.* It has many different offshoots that all look different. It takes 6 variables to make a password and 30 seconds to load (Yes, I timed it.). It makes everything harder than it should be. And that was my motivation to make Cloverleaf. I absolutely love the concept of secure passwords without storing them but hate the current solutions. + +
        + +**Q:** What if I have multiple accounts on one service?: + +**A:** There isn't a system in place for this but there doesn't need to be since you can just type `ACCOUNTNAME PASSWORD` in the password field to get the password for that account. + +
        + +**Q:** What are cookies and why do you use them?: + +**A:** A cookie is a small bit of information that a website stores on your computer so that when you come back to the site later, it can remember things from your previous visit. Cloverleaf uses these for remembering what theme you like and a few other things like that. + +
        + +**Q:** What if I have a question that's not listed here? + +**A:** [Ask your question here](https://github.com/cloverleaf/web/issues/new?assignees=&labels=Question&template=question.md&title=) + +Frequently Asked Questions - Cloverleaf + diff --git a/src/main.js b/src/main.js index a4cb4f7b..397c70c1 100644 --- a/src/main.js +++ b/src/main.js @@ -1,24 +1,27 @@ /* global M */ // Import what we need from materialize -import "materialize-css/js/cash.js"; -import "materialize-css/js/component.js"; -import "materialize-css/js/global.js"; -import "materialize-css/js/anime.min.js"; -import "materialize-css/js/tooltip.js"; -import "materialize-css/js/forms.js"; -import "materialize-css/js/autocomplete.js"; -import "materialize-css/js/tabs.js"; -import "materialize-css/js/sidenav.js"; -import "materialize-css/js/toasts.js"; -import "materialize-css/js/buttons"; -import "materialize-css/js/dropdown"; -import "materialize-css/js/waves"; - -import "./style.scss"; - -Math.seedrandom = require("seedrandom"); -const cloverleaf = require("cloverleaf"); +// import 'materialize-css/js/cash.js' +// import 'materialize-css/js/component.js' +// import 'materialize-css/js/global.js' +// import 'materialize-css/js/anime.min.js' +// import 'materialize-css/js/tooltip.js' +// import 'materialize-css/js/forms.js' +// import 'materialize-css/js/autocomplete.js' +// import 'materialize-css/js/tabs.js' +// import 'materialize-css/js/sidenav.js' +// import 'materialize-css/js/toasts.js' +// import 'materialize-css/js/buttons' +// import 'materialize-css/js/dropdown' +// import 'materialize-css/js/waves' +import 'materialize-css/dist/js/materialize.min.js' + +import './sw.js' + +import './style.scss' + +Math.seedrandom = require('seedrandom') +const cloverleaf = require('cloverleaf') /** * Simple object check. @@ -26,7 +29,7 @@ const cloverleaf = require("cloverleaf"); * @returns {boolean} */ function isObject (item) { - return (item && typeof item === "object" && !Array.isArray(item)); + return (item && typeof item === 'object' && !Array.isArray(item)) } /** @@ -35,91 +38,73 @@ function isObject (item) { * @param ...sources */ function mergeDeep (target, ...sources) { - if (!sources.length) return target; - const source = sources.shift(); - - if (isObject(target) && isObject(source)) { - for (const key in source) { - if (isObject(source[key])) { - if (!target[key]) Object.assign(target, { [key]: {} }); - mergeDeep(target[key], source[key]); - } else { - Object.assign(target, { [key]: source[key] }); - } - } - } - - return mergeDeep(target, ...sources); + if (!sources.length) return target + const source = sources.shift() + + if (isObject(target) && isObject(source)) { + for (const key in source) { + if (isObject(source[key])) { + if (!target[key]) Object.assign(target, { [key]: {} }) + mergeDeep(target[key], source[key]) + } else { + Object.assign(target, { [key]: source[key] }) + } + } + } + + return mergeDeep(target, ...sources) } -const jsonData = mergeDeep(require("../data/logos.json"), cloverleaf.siteData); -const themeData = require("../data/themes.json"); -const langData = require("../langs/langs.json"); -const autoCompleteData = {}; // Here for scope purposes -const defaultMinLength = 4; // We -const defaultMaxLength = 512; // All -let minLength = defaultMinLength; // Are, -let maxLength = defaultMaxLength; // Really -const defaultTheme = "Vanilla"; -const extension = location.hostname === "localhost" || location.hostname === "127.0.0.1" ? ".html" : ""; // Fix links if running locally -let mode; -let targetLength = 16; +const jsonData = mergeDeep(require('../data/logos.json'), cloverleaf.siteData) +const themeData = require('../data/themes.json') +const langData = require('../langs/langs.json') +const autoCompleteData = {} // Here for scope purposes +window.defaultMinLength = 4 // We +window.defaultMaxLength = 512 // All +window.minLength = window.defaultMinLength // Are, +window.maxLength = window.defaultMaxLength // Really +const defaultTheme = 'Vanilla' +const extension = location.hostname === 'localhost' || location.hostname === '127.0.0.1' ? '.html' : '' // Fix links if running locally +let targetLength = 16 // let select; // Theme selector -let presetInUse = false; // Flag true if a preset is selected -let installPromptEvent; -let usingLang; -// const currentLang = location.pathname === "/" ? "en-GB" : location.pathname.substring(1, location.pathname.length - 5); - -const storedValues = { - "password": getStored("password"), - "length": getStored("length"), - "lang": getStored("lang"), - "theme": getStored("theme"), - "mode": getStored("mode"), - "store": getStored("store"), - "redirected": getStored("redirected") === null ? false : getStored("redirected") -}; +let presetInUse = false // Flag true if a preset is selected window.generate = function () { - document.getElementById("result").value = - cloverleaf.process( - document.getElementById("app").value.trim(), - document.getElementById("pass").value, - Math.trunc(document.getElementById("length").value), - presetInUse, - mode - ); -}; + document.getElementById('result').value = + cloverleaf.process( + document.getElementById('app').value, + document.getElementById('pass').value, + presetInUse, + document.getElementById('length').value + ) +} /** * @param {String} passedTheme - Changes the theme and updates the cookie to match */ window.changeTheme = function (passedTheme) { - - // Invalid theme - if (!themeData[passedTheme]) { - console.error(`Invalid theme "${passedTheme}", defaulting to ${defaultTheme}`); - passedTheme = defaultTheme; - } - - setStored("theme", passedTheme); - - document.documentElement.style.setProperty("--accentColor", themeData[passedTheme].accent); - document.documentElement.style.setProperty("--lightAccent", themeData[passedTheme].lightAccent); - document.documentElement.style.setProperty("--textColor", themeData[passedTheme].text); - document.documentElement.style.setProperty("--backgroundColor", themeData[passedTheme].background); - document.documentElement.style.setProperty("--internalColor", themeData[passedTheme].internal); - document.documentElement.style.setProperty("--incorrectColor", themeData[passedTheme].incorrect); - document.documentElement.style.setProperty("--correctColor", themeData[passedTheme].correct); - document.documentElement.style.setProperty("--inputColor", themeData[passedTheme].inputColor); - document.documentElement.style.setProperty("--linkColor", themeData[passedTheme].linkColor); - document.documentElement.style.setProperty("--highlightColor", themeData[passedTheme].highlightColor); - -}; + // Invalid theme + if (!themeData[passedTheme]) { + console.error(`Invalid theme "${passedTheme}", defaulting to ${defaultTheme}`) + passedTheme = defaultTheme + } + + setStored('theme', passedTheme) + + document.documentElement.style.setProperty('--accentColor', themeData[passedTheme].accent) + document.documentElement.style.setProperty('--lightAccent', themeData[passedTheme].lightAccent) + document.documentElement.style.setProperty('--textColor', themeData[passedTheme].text) + document.documentElement.style.setProperty('--backgroundColor', themeData[passedTheme].background) + document.documentElement.style.setProperty('--internalColor', themeData[passedTheme].internal) + document.documentElement.style.setProperty('--incorrectColor', themeData[passedTheme].incorrect) + document.documentElement.style.setProperty('--correctColor', themeData[passedTheme].correct) + document.documentElement.style.setProperty('--inputColor', themeData[passedTheme].inputColor) + document.documentElement.style.setProperty('--linkColor', themeData[passedTheme].linkColor) + document.documentElement.style.setProperty('--highlightColor', themeData[passedTheme].highlightColor) +} // Change theme to stored before the page loads to avoid flicker. -window.changeTheme(storedValues.theme ? storedValues.theme : defaultTheme); - +window.changeTheme(getStored('theme') ? getStored('theme') : defaultTheme) /** * Gets a cookie @@ -127,14 +112,7 @@ window.changeTheme(storedValues.theme ? storedValues.theme : defaultTheme); * @returns {(string|undefined)} - Value of the cookie | If there is no cookie, undefined */ function getStored (name) { - let result; - try { - result = JSON.parse(localStorage.getItem(name)); - } catch (SyntaxError) { - result = null; - } - console.debug(`attempted to get stored "${name}" returned "${result}", type ${typeof result}`); - return result; + return localStorage.getItem(name) } /** @@ -144,83 +122,78 @@ function getStored (name) { * @returns {void} */ function setStored (name, value) { - localStorage.setItem(name, JSON.stringify(value)); - console.debug(`attempted to get set "${name}" to "${value}"`); - storedValues[name] = value; + localStorage.setItem(name, value) } function getQueryStrings () { - const assoc = {}; - const decode = function (s) { - return decodeURIComponent(s.replace(/\+/g, " ")); - }; - const queryString = location.search.substring(1); - const keyValues = queryString.split("&"); - - keyValues.forEach(product => { - const key = product.split("="); - if (key.length > 1) { - assoc[decode(key[0])] = decode(key[1]); - } - }); - - return assoc; + const assoc = {} + const decode = function (s) { + return decodeURIComponent(s.replace(/\+/g, ' ')) + } + const queryString = location.search.substring(1) + const keyValues = queryString.split('&') + + keyValues.forEach(product => { + const key = product.split('=') + if (key.length > 1) { + assoc[decode(key[0])] = decode(key[1]) + } + }) + + return assoc } - // For showing / hiding the master password window.passwordToggle = function () { - // If the switch is on / to the right / "Hide" - if (document.getElementById("passwordToggle").checked) { - // Make the password field use blobs - document.getElementById("pass").type = "password"; - } else { - // If it's off - // Make the password field use actual text so you can see/copy it. - document.getElementById("pass").type = "text"; - } -}; + // If the switch is on / to the right / "Hide" + if (document.getElementById('passwordToggle').checked) { + // Make the password field use blobs + document.getElementById('pass').type = 'password' + } else { + // If it's off + // Make the password field use actual text so you can see/copy it. + document.getElementById('pass').type = 'text' + } +} window.copy = function () { - - const pass = document.getElementById("result").value; - - if (pass === "") { - M.toast({ - html: "You have no password to copy.", - classes: "warning" - }); - } else { - - let copyElement = document.createElement("input"); - copyElement.setAttribute("type", "text"); - copyElement.setAttribute("value", pass); - copyElement = document.body.appendChild(copyElement); - copyElement.select(); - document.execCommand("copy"); - copyElement.remove(); - - M.toast({ - html: "Successfully copied!", - displayLength: 4000, - classes: "success" - }); - } - -}; + const pass = document.getElementById('result').value + + if (pass === '') { + M.toast({ + html: 'You have no password to copy.', + displayLength: 4000, + classes: 'warning' + }) + } else { + let copyElement = document.createElement('input') + copyElement.setAttribute('type', 'text') + copyElement.setAttribute('value', pass) + copyElement = document.body.appendChild(copyElement) + copyElement.select() + document.execCommand('copy') + copyElement.remove() + + M.toast({ + html: 'Successfully copied!', + displayLength: 4000, + classes: 'success' + }) + } +} // For showing / hiding the generated password window.resultToggle = function () { - // If the switch is on / to the right / "Hide" - if (document.getElementById("resultToggle").checked) { - // Make the password field use blobs - document.getElementById("result").type = "password"; - } else { - // If it's off - // Make the password field use actual text so you can see/copy it. - document.getElementById("result").type = "text"; - } -}; + // If the switch is on / to the right / "Hide" + if (document.getElementById('resultToggle').checked) { + // Make the password field use blobs + document.getElementById('result').type = 'password' + } else { + // If it's off + // Make the password field use actual text so you can see/copy it. + document.getElementById('result').type = 'text' + } +} /** * A random int between two values @@ -228,557 +201,468 @@ window.resultToggle = function () { * @param {Number} max - Highest value possible, exclusive */ window.getRandomArbitrary = function (min, max) { - return Math.trunc(Math.random() * (max - min) + min); -}; + return Math.trunc(Math.random() * (max - min) + min) +} /** * @param {String} passedLang - Changes the language and updates the cookie to match */ -window.changeLang = function (passedLang, set, back) { - - // Invalid language code - if (!langData[passedLang]) { - throw new Error(`Invalid language "${passedLang}"`); - } - - if (set) { - setStored("lang", passedLang); - } - - // Ensure the correct language is loaded - const file = passedLang === "en-GB" ? "/" : "/" + passedLang + extension; +window.changeLang = function (passedLang) { + // Invalid language code + if (!langData[passedLang]) { + throw new Error(`Invalid language "${passedLang}"`) + } - const wrong = window.location.pathname.toLowerCase() !== file.toLowerCase(); - // let toSet = storedValues.redirected === false ? JSON.stringify([langData[currentLang].native, currentLang]) : false; + setStored('lang', passedLang) - // if (back) toSet = true; + // Ensure the correct language is loaded + const file = passedLang === 'en-GB' ? '/' : '/' + passedLang + extension - // If on wrong page - if (wrong) { - // Set redirected marker - // setStored("redirected", toSet); - // Change page - window.location.pathname = file; - } -}; - -/** - * Changes the mode to either - * @param {string} setTo - Either "insecure" or "new", "insecure" being legacy mode and "new" being suggested mode - * @returns {void} - */ -window.setMode = function (setTo) { - mode = setTo; - setStored("mode", setTo); - window.generate(); -}; + // If not on the chosen page + if (window.location.pathname.toLowerCase() !== file.toLowerCase()) { + window.location.pathname = file + } +} /** * Sets the small logo based off an app name * @param {string} appName */ function setLogo (appName) { - let logo; - - switch (typeof jsonData[appName].mini) { - - case "string": - logo = jsonData[appName].mini; - break; - - case "boolean": - if (jsonData[appName].mini) { - logo = `logos/${appName}-MINI.svg`; - } else { - if (jsonData[appName].logo) { - logo = jsonData[appName].logo; - } else { - logo = `logos/${appName}.svg`; - } - } - break; - - case "undefined": - - if (jsonData[appName].logo) { - logo = jsonData[appName].logo; - } else { - logo = `logos/${appName}.svg`; - } - - break; - - default: - throw new Error(`Invalid mini value "${typeof jsonData[appName].mini}" for ${jsonData[appName]} preset`); - - } - - // Set image - document.getElementById("logoContainer").style.display = "flex"; - document.getElementById("logo").src = logo; - document.getElementById("logo").alt = appName; - document.getElementById("logo").title = appName; + let logo + + switch (typeof jsonData[appName].mini) { + case 'string': + logo = jsonData[appName].mini + break + + case 'boolean': + if (jsonData[appName].mini) { + logo = `logos/${appName}-MINI.svg` + } else { + if (jsonData[appName].logo) { + logo = jsonData[appName].logo + } else { + logo = `logos/${appName}.svg` + } + } + break + + case 'undefined': + + if (jsonData[appName].logo) { + logo = jsonData[appName].logo + } else { + logo = `logos/${appName}.svg` + } + + break + + default: + throw new Error(`Invalid mini value "${typeof jsonData[appName].mini}" for ${jsonData[appName]} preset`) + } + + // Set image + document.getElementById('logoContainer').style.display = 'flex' + document.getElementById('logo').src = logo + document.getElementById('logo').alt = appName + document.getElementById('logo').title = appName } window.fixLength = function () { - const length = document.getElementById("length").value; - - if (!(minLength <= length && length <= maxLength)) { - // if the length is invalid - if (length > maxLength) { - // Too long - document.getElementById("length").value = maxLength; - } else if (length < minLength) { - // Too short - document.getElementById("length").value = minLength; - } - } -}; + const length = document.getElementById('length').value + + if (!(window.minLength <= length && length <= window.maxLength)) { + // if the length is invalid + if (length > window.maxLength) { + // Too long + document.getElementById('length').value = window.maxLength + } else if (length < window.minLength) { + // Too short + document.getElementById('length').value = window.minLength + } + } +} /** * On page load */ window.onload = function () { - - // Process langs.json - for (const key in langData) { - - // Add select option for language - const option = document.createElement("option"); - option.innerHTML = langData[key].native; - option.dataset.short = key; - - document.querySelector("#lang").appendChild(option); - } - - // If the user has a language cookie - if (storedValues.lang !== null) { - - // Select the correct selection - document.getElementById("lang").value = langData[storedValues.lang].native; - usingLang = storedValues.lang; - } else { - // If no lang cookie exists - // Check navigator language - const lang = navigator.language || navigator.userLanguage; - const first = lang.split("-")[0]; - const matches = Object.keys(langData).filter(x => x.startsWith(first)); - - // If there's a translation for the user's language - if (matches.length !== 0) { - // Pick it - document.getElementById("lang").value = langData[matches[0]].native; - setStored("lang", matches[0]); - usingLang = matches[0]; - - } else { - // Pick english - document.getElementById("lang").value = "English"; - setStored("lang", "en-GB"); - usingLang = "en-GB"; - } - - } - - if (storedValues.redirected !== true) { - window.changeLang(usingLang, false, false); - } else { - setStored("redirected", false); - } - - - // Themes have already been set, now we handle the options - // Process themes.json - for (const key in themeData) { - - // Add select option for the theme - const themeOption = document.createElement("option"); - themeOption.id = key; - themeOption.innerHTML = key; - document.querySelector("#theme").appendChild(themeOption); - - } - - // Set the select to chosen theme or vanilla as a backup - document.getElementById("theme").value = storedValues.theme ? storedValues.theme : defaultTheme; - - // Initialize tooltips - M.Tooltip.init(document.querySelectorAll(".tooltipped")); - // Initialize the tabs - const tabs = M.Tabs.init(document.querySelectorAll(".tabs"))[0]; - - // Initialise the side nav - M.Sidenav.init(document.querySelectorAll(".sidenav"), { edge: "left" })[0]; - window.side = M.Sidenav.getInstance(document.getElementById("slide-out")); - // Initalise the theme selection - // Or not since materialize styled select is terrible. - // select = M.FormSelect.init(document.querySelectorAll("select"))[0]; - - - // Set the mode cookie if we haven't before - if (storedValues.mode === null) { - mode = "new"; - } else { - mode = storedValues.mode; - } - - tabs.select(mode); - - // If user hasn't opted out of storing passwords - if (storedValues.store !== false) { - - // If there's a stored password - if (storedValues.store) { - // Fill the password input with the correct password - document.getElementById("pass").value = storedValues.password; - // Raise the text on the input - document.querySelector("label[for='pass']").classList.add("active"); - } - - // Toggle session switch - document.getElementById("session-toggle").click(); - } - - if (storedValues.length) { - - targetLength = storedValues.length; - - document.getElementById("length-pref").value = targetLength; - document.getElementById("length").value = targetLength; - } - - - // Process the sites.json for the autocomplete structure - for (const key in jsonData) { - // If the preset has a custom logo url - if (jsonData[key].logo) { - autoCompleteData[key] = jsonData[key].logo; - } else { - // Set the logo url to the default - autoCompleteData[key] = `logos/${key}.svg`; - } - } - - // Setup possible autocomplete sites - M.Autocomplete.init(document.getElementById("app"), { - data: autoCompleteData, - - // called when an autocomplete is used. - onAutocomplete (val) { - - // Set image - setLogo(val); - let length = targetLength; - - // If it's an alias for another app - if (jsonData[val].alias) { - // Change the name of the app we're using to its alias - val = jsonData[val].alias; - console.debug(`Using alias: ${val}`); - } - - if (jsonData[val].minLength) { - minLength = jsonData[val].minLength; - } else { - minLength = defaultMinLength; - } - document.getElementById("length").min = minLength; - - if (jsonData[val].maxLength) { - maxLength = jsonData[val].maxLength; - } else { - maxLength = defaultMaxLength; - } - - document.getElementById("length").max = maxLength; - - if (!(minLength <= length && length <= maxLength)) { - length = maxLength; - } - - document.getElementById("length").max = maxLength; - - window.fixLength(); - - // Set chosen var - presetInUse = true; - - // In case there's already a password (eg switching sites / presets) regen password - window.generate(); - }, - // Minimum number of characters typed for the dialog to open - minLength: 0, - // For deciding the order of options. - sortFunction (a, b, inputString) { - // inputString will always be in both a and b if present - - // if there's a given inputString - if (inputString) { - // If only "a" starts with inputString - if (a.startsWith(inputString) && !b.startsWith(inputString)) { - return -1; - } - - // If only "b" starts with inputString - if (!a.startsWith(inputString) && b.startsWith(inputString)) { - return 1; - } - // If both "a" and "b" start with inputString we do the same as always so - } - - if (a < b) { - return -1; - } - // No need for else if as if the prior condition was true, we'd return so wouldn't run this line - if (a > b) { - return 1; - } - // a must be equal to b - return 0; - } - }); - - // Autocomplete has been setup - // Move the cursor to the app field - document.getElementById("app").focus(); - document.querySelector("label[for='app']").classList.add("active"); - - const qs = getQueryStrings(); - - // If an app has been passed by query string - if (qs.app) { - const appName = String(qs.app); - - // Set the app name - document.getElementById("app").value = appName; - - // If it's a preset - if (jsonData[appName]) { - // Click into the app field to open the dropdown - document.getElementById("app").click(); - // Click the first result - document.querySelector(".autocomplete-content.dropdown-content :first-child").click(); - } - - // In case there's already a password - window.generate(); - - // Move the cursor to the app field - document.getElementById("pass").focus(); - document.querySelector("label[for='pass']").classList.add("active"); - } - - // Setup copy shortcut - document.body.addEventListener("keydown", e => { - - // If Ctrl + C is pressed - if ((e.ctrlKey || e.metaKey) && e.code === "KeyC") { - - // If the user isn't selecting anything - if (window.getSelection().toString() === "") { - // Run existing copy command - window.copy(); - } - } - }); - - // const redirected = JSON.parse(storedValues.redirected); - - // if (redirected !== false && redirected[1] !== currentLang) { - - // const html = `Redirected from ${redirected[0]} `; - - // M.toast({ - // html: html - // }); - - // setStored("redirected", false); - // } - - // Dev stuff - switch (location.hostname) { - - // If the user is on the dev build - case "dev.cloverleaf.app": - - // Change title - document.title += " - Dev Build"; - - // Change favicon - var ico = document.createElement("link"); - ico.rel = "shortcut icon"; - ico.href = "dev.ico"; - document.head.appendChild(ico); - break; - - default: - break; - } - - if (process.env.NODE_ENV === "development") require("./debug"); - -}; - + // Process langs.json + for (const key in langData) { + // Add select option for language + const option = document.createElement('option') + option.innerHTML = langData[key].native + option.dataset.short = key + + document.querySelector('#lang').appendChild(option) + } + + let usingLang + + // If the user has a language cookie + if (getStored('lang') !== null) { + // Select the correct selection + document.getElementById('lang').value = langData[getStored('lang')].native + usingLang = getStored('lang') + } else { + // If no lang cookie exists + // Check navigator language + const lang = navigator.language || navigator.userLanguage + const first = lang.split('-')[0] + const matches = Object.keys(langData).filter(x => x.startsWith(first)) + + // If there's a translation for the user's language + if (matches.length !== 0) { + // Pick it + document.getElementById('lang').value = langData[matches[0]].native + setStored('lang', matches[0]) + usingLang = matches[0] + } else { + // Pick english + document.getElementById('lang').value = 'English' + setStored('lang', 'en-GB') + usingLang = 'en-GB' + } + } + + window.changeLang(usingLang) + + // Themes have already been set, now we handle the options + // Process themes.json + for (const key in themeData) { + // Add select option for the theme + const themeOption = document.createElement('option') + themeOption.id = key + themeOption.innerHTML = key + document.querySelector('#theme').appendChild(themeOption) + } + + // Set the select to chosen theme or vanilla as a backup + document.getElementById('theme').value = getStored('theme') ? getStored('theme') : defaultTheme + + // Initialize tooltips + M.Tooltip.init(document.querySelectorAll('.tooltipped')) + + // Initialise the side nav + M.Sidenav.init(document.querySelectorAll('.sidenav'), { edge: 'left' }) + window.side = M.Sidenav.getInstance(document.getElementById('slide-out')) + // Initalise the theme selection + // Or not since materialize styled select is terrible. + // select = M.FormSelect.init(document.querySelectorAll("select"))[0]; + + // If user hasn't opted out of storing passwords + if (getStored('store') !== 'false') { + // If there's a stored password + if (getStored('password')) { + // Fill the password input with the correct password + document.getElementById('pass').value = getStored('password') + // Raise the text on the input + document.querySelector("label[for='pass']").classList.add('active') + // Colour the underline + colourUnderline() + } + + // Toggle session switch + document.getElementById('session-toggle').click() + } + + if (getStored('length')) { + targetLength = getStored('length') + + document.getElementById('length-pref').value = targetLength + document.getElementById('length').value = targetLength + } + + // Process the sites.json for the autocomplete structure + for (const key in jsonData) { + // If the preset has a custom logo url + if (jsonData[key].logo) { + autoCompleteData[key] = jsonData[key].logo + } else { + // Set the logo url to the default + autoCompleteData[key] = `logos/${key}.svg` + } + } + + // Setup possible autocomplete sites + M.Autocomplete.init(document.getElementById('app'), { + data: autoCompleteData, + + // called when an autocomplete is used. + onAutocomplete (val) { + // Set image + setLogo(val) + let length = targetLength + + // If it's an alias for another app + if (jsonData[val].alias) { + // Change the name of the app we're using to its alias + val = jsonData[val].alias + console.debug(`Using alias: ${val}`) + } + + if (jsonData[val].minLength) { + window.minLength = jsonData[val].minLength + } else { + window.minLength = window.defaultMinLength + } + document.getElementById('length').min = window.minLength + + if (jsonData[val].maxLength) { + window.maxLength = jsonData[val].maxLength + } else { + window.maxLength = window.defaultMaxLength + } + + document.getElementById('length').max = window.maxLength + + if (!(window.minLength <= length && length <= window.maxLength)) { + length = window.maxLength + } + + document.getElementById('length').max = window.maxLength + + window.fixLength() + + // Set chosen var + presetInUse = true + + // In case there's already a password (eg switching sites / presets) regen password + window.generate() + }, + // Minimum number of characters typed for the dialog to open + minLength: 0, + // For deciding the order of options. + sortFunction (a, b, inputString) { + // inputString will always be in both a and b if present + + // if there's a given inputString + if (inputString) { + // If only "a" starts with inputString + if (a.startsWith(inputString) && !b.startsWith(inputString)) { + return -1 + } + + // If only "b" starts with inputString + if (!a.startsWith(inputString) && b.startsWith(inputString)) { + return 1 + } + // If both "a" and "b" start with inputString we do the same as always so + } + + if (a < b) { + return -1 + } + // No need for else if as if the prior condition was true, we'd return so wouldn't run this line + if (a > b) { + return 1 + } + // a must be equal to b + return 0 + } + }) + + // Autocomplete has been setup + // Move the cursor to the app field + document.getElementById('app').focus() + document.querySelector("label[for='app']").classList.add('active') + + const qs = getQueryStrings() + + // If an app has been passed by query string + if (qs.app) { + const appName = String(qs.app) + + // Set the app name + document.getElementById('app').value = appName + + // If it's a preset + if (jsonData[appName]) { + // Click into the app field to open the dropdown + document.getElementById('app').click() + // Click the first result + document.querySelector('.autocomplete-content.dropdown-content :first-child').click() + } + + // In case there's already a password + window.generate() + + // Move the cursor to the app field + document.getElementById('pass').focus() + document.querySelector("label[for='pass']").classList.add('active') + } + + // Setup copy shortcut + document.body.addEventListener('keydown', e => { + // If Ctrl + C is pressed + if (e.ctrlKey && e.code === 'KeyC') { + // If the user isn't selecting anything + if (window.getSelection().toString() === '') { + // Run existing copy command + window.copy() + } + } + }) + + // Dev studd + switch (location.hostname) { + // If the user is on the dev build + case 'dev.cloverleaf.app': { + // Change title + document.title += ' - Dev Build' + + // Change favicon + const ico = document.createElement('link') + ico.rel = 'shortcut icon' + ico.href = 'dev.ico' + document.head.appendChild(ico) + break + } + + case 'cloverleaf.app': + break + + default: + document.title += ' - localhost' + break + } + + if (process.env.NODE_ENV === 'development') require('./debug') +} /** * Use the current password as a seed to colour the underline of the field */ function colourUnderline () { - // If there's a password - if (document.getElementById("pass").value) { - // Seed the - Math.seedrandom(document.getElementById("pass").value); - const colour = `HSL(${window.getRandomArbitrary(0, 360)}, ${window.getRandomArbitrary( - 60, - 100 - )}%, ${window.getRandomArbitrary(45, 80)}%)`; - document - .getElementById("pass") - .style.setProperty("--accentColor", colour); - } else { - // If there's no password, reset the underline colour - document.getElementById("pass").removeAttribute("style"); - } + // If there's a password + if (document.getElementById('pass').value) { + // Seed the + Math.seedrandom(document.getElementById('pass').value) + const colour = `HSL(${window.getRandomArbitrary(0, 360)}, ${window.getRandomArbitrary( + 60, + 100 + )}%, ${window.getRandomArbitrary(45, 80)}%)` + document + .getElementById('pass') + .style.setProperty('--accentColor', colour) + } else { + // If there's no password, reset the underline colour + document.getElementById('pass').removeAttribute('style') + } } - window.appInput = function () { + // Everytime the user types, it invalidates the preset + presetInUse = false - // Everytime the user types, it invalidates the preset - presetInUse = false; - - // Clear logo - document.getElementById("logoContainer").style.display = "none"; - document.getElementById("logo").removeAttribute("src"); - document.getElementById("logo").removeAttribute("alt"); - document.getElementById("logo").removeAttribute("title"); + // Clear logo + document.getElementById('logoContainer').style.display = 'none' + document.getElementById('logo').removeAttribute('src') + document.getElementById('logo').removeAttribute('alt') + document.getElementById('logo').removeAttribute('title') - // Reset the mins and maxes for length - minLength = defaultMinLength; - maxLength = defaultMaxLength; - document.getElementById("length").max = maxLength; - document.getElementById("length").min = minLength; + // Reset the mins and maxes for length + window.minLength = window.defaultMinLength + window.maxLength = window.defaultMaxLength + document.getElementById('length').max = window.maxLength + document.getElementById('length').min = window.minLength - document.getElementById("length").value = targetLength; + document.getElementById('length').value = targetLength - window.generate(); -}; + window.generate() +} window.passwordUp = function () { - colourUnderline(); - - // If the user is opted into saving the master password - if (storedValues.store === true) { - - // If there's a password - if (document.getElementById("pass").value) { - // Store it - setStored("password", document.getElementById("pass").value); - } else { - // Otherwise, delete the value - localStorage.removeItem("password"); - } - } - - // Regen the password - window.generate(); -}; - -window.addEventListener("beforeinstallprompt", e => { - - installPromptEvent = e; - // Prevent Chrome 67 and earlier from automatically showing the prompt - e.preventDefault(); - - // Show install button - document.getElementById("install").style = ""; - -}); + colourUnderline() + + // If the user is opted into saving the master password + if (getStored('store') === 'true') { + // If there's a password + if (document.getElementById('pass').value) { + // Store it + setStored('password', document.getElementById('pass').value) + } else { + // Otherwise, delete the value + localStorage.removeItem('password') + } + } + + // Regen the password + window.generate() +} window.appDown = function (e) { - - // Enter pressed and dropdown visible - if ( - (e.key === "Enter" || e.code === "Enter" || e.keyCode === 13) && - document.querySelector(".autocomplete-content.dropdown-content").offsetHeight > 0 - ) { - - // If no entry is selected - if (document.querySelector(".autocomplete-content.dropdown-content .active") === null) { - // Click the first preset - document.querySelector(".autocomplete-content.dropdown-content :first-child").click(); - } - } - -}; + // Enter pressed and dropdown visible + if ( + (e.key === 'Enter' || e.code === 'Enter' || e.keyCode === 13) && + document.querySelector('.autocomplete-content.dropdown-content').offsetHeight > 0 + ) { + // If no entry is selected + if (document.querySelector('.autocomplete-content.dropdown-content .active') === null) { + // Click the first preset + document.querySelector('.autocomplete-content.dropdown-content :first-child').click() + } + } +} // For disabling/enabling password saving window.sessionToggle = function () { - // If the switch is on / to the right - if (document.getElementById("session-toggle").checked) { - - // Set session cookie cookie - setStored("store", true); - - // If there's a password - if (document.getElementById("pass").value) { - // Store it - setStored("password", document.getElementById("pass").value); - } else { - // Otherwise, delete the value - localStorage.removeItem("password"); - } - - - } else { - // Stop saving password - setStored("store", false); - // Delete any exist stored password - localStorage.removeItem("password"); - } -}; - -window.getVar = function (varName) { - return eval(varName); -}; + // If the switch is on / to the right + if (document.getElementById('session-toggle').checked) { + // Set session cookie cookie + setStored('store', true) + + // If there's a password + if (document.getElementById('pass').value) { + // Store it + setStored('password', document.getElementById('pass').value) + } else { + // Otherwise, delete the value + localStorage.removeItem('password') + } + } else { + // Stop saving password + setStored('store', false) + // Delete any exist stored password + localStorage.removeItem('password') + } +} window.lengthPref = function (passedLength) { - - if (!(defaultMinLength <= passedLength && passedLength <= defaultMaxLength)) { - // if the length is invalid - if (passedLength > defaultMaxLength) { - // Too long - passedLength = defaultMaxLength; - } else if (passedLength < defaultMinLength) { - // Too short - passedLength = defaultMinLength; - } - - document.getElementById("length-pref").value = passedLength; - } - - targetLength = passedLength; - setStored("length", passedLength); - - document.getElementById("length").value = passedLength; - window.generate(); -}; + if (!(window.defaultMinLength <= passedLength && passedLength <= window.defaultMaxLength)) { + // if the length is invalid + if (passedLength > window.defaultMaxLength) { + // Too long + passedLength = window.defaultMaxLength + } else if (passedLength < window.defaultMinLength) { + // Too short + passedLength = window.defaultMinLength + } + + document.getElementById('length-pref').value = passedLength + } + + targetLength = passedLength + setStored('length', passedLength) + + document.getElementById('length').value = passedLength + window.generate() +} window.presetScroll = function () { - const selected = document.querySelector(".autocomplete-content.dropdown-content .active"); - if (selected) selected.scrollIntoView({behavior: "smooth", block: "nearest", inline: "nearest"}); -}; + const selected = document.querySelector('.autocomplete-content.dropdown-content .active') + if (selected) selected.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' }) +} window.install = function () { - - try { - installPromptEvent.prompt(); - } catch (TypeError) { - M.toast({ - html: "Failed to install app.", - displayLength: 4000, - classes: "warning" - }); - } - -}; \ No newline at end of file + try { + window.installPromptEvent.prompt() + } catch (TypeError) { + M.toast({ + html: 'Failed to install app.', + displayLength: 4000, + classes: 'warning' + }) + } +} diff --git a/src/src.ejs b/src/src.ejs index d6f676b1..fdaa3834 100644 --- a/src/src.ejs +++ b/src/src.ejs @@ -1,223 +1,208 @@ - - - - - - - - Cloverleaf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        -
        - -
        - - -
        - -
        -
        - -
        - - -
        - -
        - -
        - -
        - - -
        - - <%= hint %> - - - -
        - -
        - - - - - -
        -
        - - - - - - - - - - - - + + + + + + + + Cloverleaf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          +
          + + +
          + + +
          + + +
          + +
          + + + +
          + +
          +
          + +
          + + +
          + + + +
          + + +
        + + + + +
        +
        + +
        + + +
        + +
        +
        + +
        + + +
        + +
        + +
        + +
        + + +
        + + <%= hint %> + + + +
        + +
        + + + + + +
        +
        + + + + + + + + + + + + diff --git a/src/strings.json b/src/strings.json index 8e6e9d8c..fad284a6 100644 --- a/src/strings.json +++ b/src/strings.json @@ -1,98 +1,98 @@ -{ - "legacy": { - "message":"Legacy mode", - "description": "This appears on the button to change to legacy mode" - }, - "suggested": { - "message": "Suggested mode", - "description": "This appears on the button to change to suggested mode" - }, - "theme": { - "message": "Theme", - "description": "Label for the theme selector" - }, - "remember": { - "message": "Remember my password", - "description": "Label for the password saving toggle" - }, - "off": { - "message": "Off", - "description": "Shows the state of an option" - }, - "on": { - "message": "On", - "description":"" - }, - "install": { - "message": "Install as a native app", - "description": "" - }, - "app": { - "message": "Application", - "description": "Label for the Application field" - }, - "pass": { - "message": "Master password", - "description": "Label for the password field" - }, - "show": { - "message": "Show", - "description": "" - }, - "hide": { - "message": "Hide", - "description": "" - }, - "length": { - "message": "Length of password", - "description": "Label for the length field" - }, - "hint": { - "message": "The longer, the better", - "description": "Shown underneath the length field" - }, - "copy": { - "message": "Copy password", - "description": "Shown on the copy password button" - }, - "faq": { - "message": "Help and FAQs", - "description": "" - }, - "jsMessage": { - "message": "This website requires js to work.", - "description": "Message shown when the user has javascript disabled" - }, - "noPassword": { - "message": "No password :)", - "description": "Message shown when there is no outputted password" - }, - "securityWarning": { - "message": "Significantly less secure", - "description": "Shown when hovering on Legacy Mode" - }, - "viewSource": { - "message": "View source on Github", - "description": "Shown when hovering on the octocat in the corner. Also used by screen readers" - }, - "description": { - "message": "Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.", - "description": "This is the description shown on search engines" - }, - "langCode": { - "message": "en-GB", - "description": "The locale code of the language you're translating too" - }, - "language": { - "message": "Language", - "description": "Label for the language selector" - }, - "session": { - "message": "Saved locally on your device", - "description": "shown when hovering on the \"Remember my password\" toggle" - }, - "length_pref": { - "message": "Default password length", - "description": "Shows " - } +{ + "legacy": { + "message":"Legacy mode", + "description": "This appears on the button to change to legacy mode" + }, + "suggested": { + "message": "Suggested mode", + "description": "This appears on the button to change to suggested mode" + }, + "theme": { + "message": "Theme", + "description": "Label for the theme selector" + }, + "remember": { + "message": "Remember my password", + "description": "Label for the password saving toggle" + }, + "off": { + "message": "Off", + "description": "Shows the state of an option" + }, + "on": { + "message": "On", + "description":"" + }, + "install": { + "message": "Install as a native app", + "description": "" + }, + "app": { + "message": "Application", + "description": "Label for the Application field" + }, + "pass": { + "message": "Master password", + "description": "Label for the password field" + }, + "show": { + "message": "Show", + "description": "" + }, + "hide": { + "message": "Hide", + "description": "" + }, + "length": { + "message": "Length of password", + "description": "Label for the length field" + }, + "hint": { + "message": "The longer, the better", + "description": "Shown underneath the length field" + }, + "copy": { + "message": "Copy password", + "description": "Shown on the copy password button" + }, + "faq": { + "message": "Help and FAQs", + "description": "" + }, + "jsMessage": { + "message": "This website requires js to work.", + "description": "Message shown when the user has javascript disabled" + }, + "noPassword": { + "message": "No password :)", + "description": "Message shown when there is no outputted password" + }, + "securityWarning": { + "message": "Significantly less secure", + "description": "Shown when hovering on Legacy Mode" + }, + "viewSource": { + "message": "View source on Github", + "description": "Shown when hovering on the octocat in the corner. Also used by screen readers" + }, + "description": { + "message": "Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.", + "description": "This is the description shown on search engines" + }, + "langCode": { + "message": "en-GB", + "description": "The locale code of the language you're translating too" + }, + "language": { + "message": "Language", + "description": "Label for the language selector" + }, + "session": { + "message": "Saved locally on your device", + "description": "shown when hovering on the \"Remember my password\" toggle" + }, + "length_pref": { + "message": "Default password length", + "description": "Shows " + } } \ No newline at end of file diff --git a/src/style.scss b/src/style.scss index 43b82142..47279129 100644 --- a/src/style.scss +++ b/src/style.scss @@ -1,928 +1,918 @@ -@charset "UTF-8"; - -// Import only what you need from Materialize - -@import "node_modules/materialize-css/sass/components/normalize"; - -// Color -@import "node_modules/materialize-css/sass/components/color-variables"; - -$accentColor: #3f51b5; -$lightAccent: lighten($accentColor, 15%); -$textColor: #535353; -$backgroundColor: #fff; -$internalColor: #fff; -$incorrectColor: #f44336; -$correctColor: #8fff66; -$inputColor: #000; -$linkColor: #00539b; -$highlightColor: #eee; - -$secondary-color: $accentColor; - -$select-background: $internalColor; -$switch-checked-lever-bg: $lightAccent; -$sidenav-bg-color: $backgroundColor; -$button-raised-background: $accentColor; -$tabs-underline-color: $accentColor; -$tabs-text-color: $inputColor; -$tabs-bg-color: $internalColor; -$input-border-color: $textColor; -$link-color: $linkColor; - -// Variables; -@import "node_modules/materialize-css/sass/components/variables"; - -$toast-action-color: $link-color; -$toast-action-color: var(--linkColor); -$toast-color: $internalColor; -$toast-color: var(--internalColor); -$toast-text-color: $textColor; -$toast-text-color: var(--textColor); - -// Components -@import "node_modules/materialize-css/sass/components/global"; -@import "node_modules/materialize-css/sass/components/grid"; -@import "node_modules/materialize-css/sass/components/typography"; -@import "node_modules/materialize-css/sass/components/toast"; -@import "node_modules/materialize-css/sass/components/tabs"; -@import "node_modules/materialize-css/sass/components/tooltip"; -@import "node_modules/materialize-css/sass/components/buttons"; -@import "node_modules/materialize-css/sass/components/dropdown"; -@import "node_modules/materialize-css/sass/components/waves"; -@import "node_modules/materialize-css/sass/components/sidenav"; -// Form parts -@import "node_modules/materialize-css/sass/components/forms/switches.scss"; -@import "node_modules/materialize-css/sass/components/forms/select.scss"; -@import "node_modules/materialize-css/sass/components/forms/input-fields.scss"; - - - -/* Material Icons */ -@font-face { - font-family: 'Material Icons'; - font-style: normal; - font-weight: 400; - /* For IE6-8 */ - src: url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.eot); - src: local('Material Icons'), - local('MaterialIcons-Regular'), - url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff2) format('woff2'), - url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff) format('woff'), - url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.ttf) format('truetype'); - font-display: swap; -} - -.material-icons { - font-family: 'Material Icons'; - font-weight: normal; - font-style: normal; - /* Preferred icon size */ - font-size: 24px; - display: inline-block; - line-height: 1; - text-transform: none; - letter-spacing: normal; - word-wrap: normal; - white-space: nowrap; - direction: ltr; - /* Support for all WebKit browsers. */ - -webkit-font-smoothing: antialiased; - /* Support for Safari and Chrome. */ - text-rendering: optimizeLegibility; - -moz-osx-font-smoothing: grayscale; - /* Support for IE. */ - font-feature-settings: 'liga'; - user-select: none; - font-display: block; -} - -@font-face { - font-family: 'Roboto Mono'; - font-style: normal; - font-weight: 400; - src: local('Roboto Mono'), local('RobotoMono-Regular'), url(../fonts/RobotoMono-Regular.ttf) format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 300; - src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/Roboto-Light.ttf) format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; - src: local('Roboto'), local('Roboto-Regular'), url(../fonts/Roboto-Regular.ttf) format('truetype'); - font-display: swap; -} - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 500; - src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/Roboto-Medium.ttf) format('truetype'); - font-display: swap; -} - -:root { - --accentColor: #{$accentColor}; - --lightAccent: #{$lightAccent}; - --textColor: #{$textColor}; - --backgroundColor: #{$backgroundColor}; - --internalColor: #{$internalColor}; - --incorrectColor: #{$incorrectColor}; - --correctColor: #{$correctColor}; - --inputColor: #{$inputColor}; - --linkColor: #{$linkColor}; - --highlightColor: #{$highlightColor}; -} - -html, -body { - height: 100% !important; - color: $inputColor; - color: var(--inputColor); - caret-color: $accentColor; - caret-color: var(--accentColor); - text-align: center; - overflow-x: hidden; -} - -* { - transition: background-color .3s ease, color .3s ease; -} - -body { - font-family: 'Roboto', sans-serif; - font-weight: 300; - margin: 0; - display: flex; - justify-content: center; - align-items: center; - background-color: $backgroundColor; - background-color: var(--backgroundColor); -} - -#box { - text-align: center; - max-width: calc(100% - (30px + 10em)); - max-height: 100%; - margin: auto; /* This helps with compatibility */ - grid-row: 1; -} - -label, -.input-field>label { - color: $textColor; - color: var(--textColor); - font-size: 1.5rem; - transition: transform .3s ease-out, -webkit-transform .3s ease-out, background-color .3s ease, color .3s ease; -} - -.input-field { - margin-bottom: 0; -} - -.input-field input[type=text], -.input-field input[type=number], -.input-field input[type=password] { - border-bottom: 1px solid $textColor; - border-bottom: 1px solid var(--textColor); - transition: border .3s ease-out, background-color .3s ease, color .3s ease; -} - -/* label underline focus color */ -.input-field input[type=text]:focus, -.input-field input[type=number]:focus, -.input-field input[type=password]:focus { - border-bottom: 1px solid $accentColor !important; - border-bottom: 1px solid var(--accentColor) !important; - box-shadow: 0 1px 0 0 $accentColor !important; - box-shadow: 0 1px 0 0 var(--accentColor) !important; -} - -input[type=text]:not(#result):not(.select-dropdown), -input[type=number]:not(#length-pref), -input[type=password]:not(#result) { - font-size: 3rem !important; - height: 1.2em !important; - box-sizing: content-box; - font-family: 'Roboto', sans-serif; - font-weight: 300; -} - -input[type=number] { - margin-bottom: 0; - overflow: scroll -} - -#back { - box-shadow: 0 0.26em 0.65em 0 rgba(0, 0, 0, 0.2); - background-color: $internalColor; - background-color: var(--internalColor); - border-radius: 0.325em; - padding: 0.975em; - padding-top: 1.5em; - margin: 2em 0; - max-height: 100%; -} - -#result { - font-family: 'Roboto Mono', monospace; - font-size: 2rem; - padding: 0.9rem 0; - min-height: 1em; - min-width: 20%; - border: none; - text-align: center; - margin: 0; - width: 100%; - color: $inputColor; - color: var(--inputColor); -} - -// Colour fix -#result::placeholder { - color: $inputColor !important; - color: var(--inputColor) !important; - opacity: 1; -} - -#copy { - display: block; - margin: auto; -} - -.hint { - float: left; - color: $textColor; - color: var(--textColor); - width: 100%; - text-align: left; -} - -input, -textarea { - font-size: 1.56rem; - padding: 0.65rem; - color: $inputColor !important; - color: var(--inputColor) !important; - margin: 0 0 0.8rem 0 !important; -} - -input#length { - margin: 0 !important; - height: 1em; /* To stop the input wiggling on firefox */ -} - -#faq { - float: right; - cursor: help; - font-weight: 500; - margin-top: 0.4em; -} - -.cf:before, -.cf:after { - content: " "; - display: table; -} - -.cf:after { - clear: both; -} - -/* -For IE 6/7 only -Include this rule to trigger hasLayout and contain floats. -*/ -.cf { - *zoom: 1; -} - -ul.autocomplete-content.dropdown-content { - background: $backgroundColor; - background: var(--backgroundColor); - position: absolute !important; - width: calc(100% - 3rem); - max-height: calc(82% * 4); /* 82% seems to work out as one row */ - overflow-y: auto; - overflow-x: hidden; - top: -.1em; - margin-top: 0; -} - -ul.autocomplete-content.dropdown-content li { - height: 3em; - min-height: 0; -} - -/* Presets */ -.dropdown-content li:hover, -.dropdown-content li.active, -.dropdown-content li.selected, -/* Theme selection */ -body.keyboard-focused .select-dropdown.dropdown-content li:focus, -.select-dropdown.dropdown-content li.selected { - background: $highlightColor; - background: var(--highlightColor); -} - -ul.autocomplete-content.dropdown-content li img.right.circle { - overflow: hidden; - background: #fff; - width: calc(20% - 0.66em); - height: 100%; - padding: 0.33em; - margin: 0; -} - -ul.autocomplete-content.dropdown-content span { - /* display: inline-flex; */ - align-items: center; - white-space: nowrap; - max-width: 70%; - height: 100%; - /* vertical-align: middle; */ - font-size: 1em; - padding: 0.875em 1em; - overflow: hidden; - /* To allow scaling */ - line-height: 1.57em; -} - -ul.autocomplete-content.dropdown-content span:not(.highlight) { - color: $textColor; - color: var(--textColor); - overflow-x: hidden; -} - -ul.autocomplete-content.dropdown-content span .highlight { - max-width: 100%; - color: $textColor; - color: var(--textColor); - font-weight: 400; - overflow: visible; - padding: 0; -} - -.dropdown-content::-webkit-scrollbar { - width: 17px !important; - background-color: #fff !important; -} - -.dropdown-content::-webkit-scrollbar-track { - width: 17px; - background-color: #fff !important; -} - -.dropdown-content::-webkit-scrollbar-thumb { - border-radius: 100px; - width: 17px; - background-color: rgba(0, 0, 0, 0.5); -} - -/*If I keep the rounded element, the twitter bird's beak gets cut :-;*/ -.circle { - object-fit: scale-down; - border-radius: 0; -} - -#back .switch { - padding-bottom: 1.3rem; -} - -input[type=checkbox]:checked:not(:disabled)~.lever:active::before, -input[type=checkbox]:checked:not(:disabled).tabbed:focus~.lever::before { - transform: scale(2.4); - background-color: rgba(63, 81, 181, 0.3); -} - -/*Switch knob*/ -.switch label input[type=checkbox]:checked+.lever:after { - background-color: $accentColor; - background-color: var(--accentColor); -} - -/*Switch backing*/ -.switch label input[type=checkbox]:checked+.lever { - background-color: $lightAccent; - background-color: var(--lightAccent); -} - -#passTogglelever { - left: -4px; /* Centering the toggle */ -} - -.input-group-addon { - position: absolute; - width: calc(3rem + 0.1em); - font-size: 2rem; - top: 0; - right: -5px; -} - -.icon { - font-size: 1.4em !important; - color: $textColor; - color: var(--textColor); - transition: color .2s; - cursor: pointer; -} - -.icon:hover { - color: $lightAccent; - color: var(--lightAccent); -} - -.icon:active { - color: $accentColor; - color: var(--accentColor); -} - -.input-field label:not(.label-icon).active { - -webkit-transform: translateY(-1em) scale(0.8); - transform: translateY(-1em) scale(0.8); - -webkit-transform-origin: 0 0; - transform-origin: 0 0; -} - -.toast { - font-weight: 400 -} - -/* Negative toasts get this */ -.warning { - color: $inputColor; - color: var(--inputColor); - background-color: $incorrectColor; - background-color: var(--incorrectColor); -} - -/* Positive toasts get this */ -.success { - background-color: $correctColor; - background-color: var(--correctColor); - color: #000; -} - -#jsBanner { - position: absolute; - width: 100%; - height: 100%; - text-align: center; - background-color: rgba(0, 0, 0, 0.5); - display: flex; - align-items: center; - justify-content: center; - font-weight: 500; - font-size: 10vmin; - top: 0; - left: 0; - color: $backgroundColor; - color: var(--backgroundColor); - -webkit-text-stroke-width: 0.05em !important; - -webkit-text-stroke-color: $textColor !important; - -webkit-text-stroke-color: var(--textColor) !important; - padding: 10px; -} - -#jsBanner a { - color: $backgroundColor; - color: var(--backgroundColor); - -webkit-text-stroke: 3px $textColor; - -webkit-text-stroke: 3px var(--textColor); - text-decoration: underline; -} - -#logo { - max-width: 100%; - max-height: 100%; -} - -#app { - margin-bottom: 0.55em !important; - width: calc(100% - 3.6rem) !important; - padding-right: 1.2em !important; - align-self: flex-end; - display: block; - white-space: nowrap; -} - -ul:empty { - display: none; -} - -/* Disable Edge's show/hide since we made one */ -::-ms-reveal { - display: none; -} - -/* For portrait logos so they don't oversize */ -#logoContainer { - margin-right: 5px; - background: #fff; - padding: 3px; - border-radius: 5px; - height: calc(3rem + 0.1em); - display: none; - justify-content: center; - align-items: center; -} - -input[type="radio"] { - margin: 0; - width: 0; - height: 0; - padding: 0; -} - -input[type="radio"]:checked+label::before { - box-shadow: 0 0 3px 1px $textColor; - box-shadow: 0 0 3px 1px var(--textColor); -} - -label:focus { - outline: none; -} - -.github-corner { - fill: $accentColor; - fill: var(--accentColor); - color: $backgroundColor; - color: var(--backgroundColor); - position: absolute; - top: 0; - border: 0; - right: 0; -} - -.github-corner:hover .octo-arm { - animation: octocat-wave 560ms ease-in-out; -} - -@keyframes octocat-wave { - - 0%, - 100% { - transform: rotate(0); - } - - 20%, - 60% { - transform: rotate(-25deg); - } - - 40%, - 80% { - transform: rotate(10deg); - } -} -.tabs { - background-color: $internalColor; - background-color: var(--internalColor); - cursor: pointer; - overflow-x: hidden; - z-index: 995; -} - -.tabs .tab a, -.tabs .tab a:hover { - color: $textColor; - color: var(--textColor); - font-size: 1em; - padding: 0 .5em; -} - -.tabs .tab a:focus, -.tabs .tab a:focus.active { - background-color: $backgroundColor; - background-color: var(--backgroundColor); -} - -.tabs .tab a.active { - color: $inputColor; - color: var(--inputColor); - font-weight: 400; -} - -.tabs .indicator { - background: $accentColor; - background-color: var(--accentColor) -} - -.btn { - height: 2.4em; - line-height: 2.4em; - font-family: 'Roboto', sans-serif; - font-weight: 300; - font-size: 1rem; - padding: 0 2rem; - background: $accentColor; - background: var(--accentColor); -} - -.btn:focus, -.btn:hover { - background: $accentColor; - background: var(--accentColor); -} - -.switch label .lever { - height: 0.933em; - width: 2.4em; -} - -.switch label .lever::before, -.switch label .lever::after { - height: 1.33em; - width: 1.33em; -} - -.switch label input[type="checkbox"]:checked+.lever::before, -.switch label input[type="checkbox"]:checked+.lever::after { - left: 1.4em; -} - -.switch label .lever::before, -.switch label .lever::after { - top: -0.2em; -} - -.material-tooltip { - max-width: 7em; -} - -/* If the device can't hover, don't show tooltips */ -@media (hover: none) { - .material-tooltip { - display: none; - } -} - -.material-tooltip { - background-color: $internalColor; - background-color: var(--internalColor); - box-shadow: 0 0.26em 0.65em 0 rgba(0, 0, 0, 0.2); - color: $textColor; - color: var(--textColor); -} - -/* In the future focus-visable should be used. See https://caniuse.com/?#search=css-focus-visible */ -.btn:focus, -.btn-large:focus, -.btn-small:focus, -.btn-floating:focus, -.btn-large:focus, -.btn-small:focus, -.btn-flat:focus { - outline: rgb(77, 144, 254) auto 5px; - outline-color: rgb(77, 144, 254); - outline-style: auto; - outline-width: 5px; -} - -/* Always show arrows on the number inputs */ -input[type=number]::-webkit-inner-spin-button, -input[type=number]::-webkit-outer-spin-button { - opacity: 1; -} - -ul.tabs li.tab a i.material-icons { - vertical-align: middle; - color: $incorrectColor; - color: var(--incorrectColor); -} - -/* Normal size */ -.btn-floating { - width: 2.86rem; - height: 2.86rem; -} - -.btn-floating i { - font-size: 1.6rem; - line-height: 2.86rem; - display: block; - top: 0; -} - -/* Large size */ -.btn-floating.btn-large { - width: 4rem; - height: 4rem; -} - -.btn-floating.btn-large i { - font-size: 2rem; - line-height: 4rem; -} - -/* If we're on a small/mobile device */ -@media only all and (max-width:40em) { - - body { - background-color: var(--internalColor); - } - - #back { - /* Ditch loads of padding */ - margin: 0; - box-shadow: none; - - min-height: 100%; - border-radius: 0; - } - - #box { - width: 100VW; - max-width: 100VW; - min-height: 100%; - } - - /* Install icon */ - #install-icon { - padding-right: .5vw; - } - - /* Normal size */ - .btn-floating { - width: 10vw; - height: 10vw; - } - - .btn-floating i { - font-size: 5vw; - line-height: 10vw; - } - - /* Large size */ - .btn-floating.btn-large { - width: 15vw; - height: 15vw; - } - - .btn-floating.btn-large i { - font-size: 7.5vw; - line-height: 15vw; - } - - .github-corner { - color: $internalColor; - color: var(--internalColor); - } -} - -/* If it won't fit vertically */ -@media only all and (max-height:600px ) and (min-width:40em) { - html { - /* Drop the font size */ - font-size: 2vh; - } -} - -.sidenav { - background-color: $backgroundColor; - background-color: var(--backgroundColor); - width: 350px; - max-width: 100%; - max-height: 100%; - overflow-y: hidden; -} - -.sidenav li>a { - font-weight: 300; -} - -/* Shows warning icons properly */ -.sidenav li>a>i, -.sidenav li>a>[class^="mdi-"], -.sidenav li>a li>a>[class*="mdi-"], -.sidenav li>a>i.material-icons { - margin: 0; - float: none; -} - -#settings { - position: absolute; - left: 1vw; - bottom: 1vw; - display: block; -} - -#settings a i.material-icons { - display: block; - font-size: 2.5em; - color: $textColor; - color: var(--textColor); -} - -.sidenav label:not([for=length-pref]) { - font-size: 1rem; - top: -33px; -} - -#options { - padding: 10px; - padding-top: 0; - display: grid; - height: calc(100% - 8px); - grid-template-rows: repeat(12, 1fr); - // grid-template-rows: repeat(auto-fill, minmax(70px, 1fr)) - // grid-auto-rows: repeat(min-content, 60px) ; -} - -.sidenav .dropdown-content { - background: $backgroundColor; - background: var(--backgroundColor); -} - -.sidenav .dropdown-content li>a, -.dropdown-content li>span { - color: $inputColor; - color: var(--inputColor); -} - -select { - background-color: $internalColor; - background-color: var(--internalColor); - - border: 1px solid $textColor; - border: 1px solid var(--textColor); - border-radius: 3px; - - color: $inputColor; - color: var(--inputColor); -} - -select:focus { - border: 1px solid $lightAccent; - border: 1px solid var(--lightAccent); - - outline: none; -} - -.sidenav .input-field { - // margin-top: 2.4rem; - padding-bottom: 1.5rem; -} - -.btn i { - vertical-align: top; -} - -.drag-target { - left: 0; -} - -.sidenav .switch label { - font-size: 1.2em; -} - -.sidenav { - place-content: center; -} - -#theme-container { - grid-row: 1; -} - -#session-container { - grid-row: 3; - padding-bottom: 0; -} - -#footer { - display: grid; - grid-template-columns: 1fr calc(2.4em + 10px); - align-content: stretch; - grid-row: last-line; -} - -#close { - cursor: pointer; - align-self: end; - justify-self: flex-end; - font-size: 2.4em; - color: $inputColor; - color: var(--inputColor); -} - -a { - color: $linkColor; - color: var(--linkColor); -} - -#old { - text-overflow: clip; -} - -#length-pref { - font-size: 2em; - font-weight: 300; +@charset "UTF-8"; + +// Import only what you need from Materialize + +@import "node_modules/materialize-css/sass/components/normalize"; + +// Color +@import "node_modules/materialize-css/sass/components/color-variables"; + +$accentColor: #3f51b5; +$lightAccent: lighten($accentColor, 15%); +$textColor: #535353; +$backgroundColor: #fff; +$internalColor: #fff; +$incorrectColor: #f44336; +$correctColor: #8fff66; +$inputColor: #000; +$linkColor: #00539b; +$highlightColor: #eee; + +$secondary-color: $accentColor; + +$select-background: $internalColor; +$switch-checked-lever-bg: $lightAccent; +$sidenav-bg-color: $backgroundColor; +$button-raised-background: $accentColor; +$tabs-underline-color: $accentColor; +$tabs-text-color: $inputColor; +$tabs-bg-color: $internalColor; +$input-border-color: $textColor; +$link-color: $linkColor; + +// Variables; +@import "node_modules/materialize-css/sass/components/variables"; + +$toast-action-color: $link-color; +$toast-action-color: var(--linkColor); +$toast-color: $internalColor; +$toast-color: var(--internalColor); +$toast-text-color: $textColor; +$toast-text-color: var(--textColor); + +// Components +@import "node_modules/materialize-css/sass/components/global"; +@import "node_modules/materialize-css/sass/components/grid"; +@import "node_modules/materialize-css/sass/components/typography"; +@import "node_modules/materialize-css/sass/components/toast"; +@import "node_modules/materialize-css/sass/components/tabs"; +@import "node_modules/materialize-css/sass/components/tooltip"; +@import "node_modules/materialize-css/sass/components/buttons"; +@import "node_modules/materialize-css/sass/components/dropdown"; +@import "node_modules/materialize-css/sass/components/waves"; +@import "node_modules/materialize-css/sass/components/sidenav"; +// Form parts +@import "node_modules/materialize-css/sass/components/forms/switches.scss"; +@import "node_modules/materialize-css/sass/components/forms/select.scss"; +@import "node_modules/materialize-css/sass/components/forms/input-fields.scss"; + + + +/* Material Icons */ +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + /* For IE6-8 */ + src: url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.eot); + src: local('Material Icons'), + local('MaterialIcons-Regular'), + url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff2) format('woff2'), + url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff) format('woff'), + url(../node_modules/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.ttf) format('truetype'); + font-display: swap; +} + +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + /* Preferred icon size */ + font-size: 24px; + display: inline-block; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + white-space: nowrap; + direction: ltr; + /* Support for all WebKit browsers. */ + -webkit-font-smoothing: antialiased; + /* Support for Safari and Chrome. */ + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + /* Support for IE. */ + font-feature-settings: 'liga'; + user-select: none; + font-display: block; +} + +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: local('Roboto Mono'), local('RobotoMono-Regular'), url(../fonts/RobotoMono-Regular.ttf) format('truetype'); + font-display: swap; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(../fonts/Roboto-Light.ttf) format('truetype'); + font-display: swap; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(../fonts/Roboto-Regular.ttf) format('truetype'); + font-display: swap; +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(../fonts/Roboto-Medium.ttf) format('truetype'); + font-display: swap; +} + +:root { + --accentColor: #{$accentColor}; + --lightAccent: #{$lightAccent}; + --textColor: #{$textColor}; + --backgroundColor: #{$backgroundColor}; + --internalColor: #{$internalColor}; + --incorrectColor: #{$incorrectColor}; + --correctColor: #{$correctColor}; + --inputColor: #{$inputColor}; + --linkColor: #{$linkColor}; + --highlightColor: #{$highlightColor}; +} + +html, +body { + height: 100% !important; + color: $inputColor; + color: var(--inputColor); + caret-color: $accentColor; + caret-color: var(--accentColor); + text-align: center; + overflow-x: hidden; +} + +* { + transition: background-color .3s ease, color .3s ease; +} + +body { + font-family: 'Roboto', sans-serif; + font-weight: 300; + margin: 0; + display: flex; + justify-content: center; + align-items: center; + background-color: $backgroundColor; + background-color: var(--backgroundColor); +} + +#box { + text-align: center; + max-width: calc(100% - (30px + 10em)); + max-height: 100%; + margin: auto; /* This helps with compatibility */ + grid-row: 1; +} + +label, +.input-field>label { + color: $textColor; + color: var(--textColor); + font-size: 1.5rem; + transition: transform .3s ease-out, -webkit-transform .3s ease-out, background-color .3s ease, color .3s ease; +} + +.input-field { + margin-bottom: 0; +} + +.input-field input[type=text], +.input-field input[type=number], +.input-field input[type=password] { + border-bottom: 1px solid $textColor; + border-bottom: 1px solid var(--textColor); + transition: border .3s ease-out, background-color .3s ease, color .3s ease; +} + +/* label underline focus color */ +.input-field input[type=text]:focus, +.input-field input[type=number]:focus, +.input-field input[type=password]:focus { + border-bottom: 1px solid $accentColor !important; + border-bottom: 1px solid var(--accentColor) !important; + box-shadow: 0 1px 0 0 $accentColor !important; + box-shadow: 0 1px 0 0 var(--accentColor) !important; +} + +input[type=text]:not(#result):not(.select-dropdown), +input[type=number]:not(#length-pref), +input[type=password]:not(#result) { + font-size: 3rem !important; + height: 1.2em !important; + box-sizing: content-box; + font-family: 'Roboto', sans-serif; + font-weight: 300; +} + +input[type=number] { + margin-bottom: 0; + overflow: scroll +} + +#back { + box-shadow: 0 0.26em 0.65em 0 rgba(0, 0, 0, 0.2); + background-color: $internalColor; + background-color: var(--internalColor); + border-radius: 0.325em; + padding: 0.975em; + padding-top: 1.5em; + margin: 2em 0; + max-height: 100%; +} + +#result { + font-family: 'Roboto Mono', monospace; + font-size: 2rem; + padding: 0.9rem 0; + min-height: 1em; + min-width: 20%; + border: none; + text-align: center; + margin: 0; + width: 100%; + color: $inputColor; + color: var(--inputColor); +} + +// Colour fix +#result::placeholder { + color: $inputColor !important; + color: var(--inputColor) !important; + opacity: 1; +} + +#copy { + display: block; + margin: auto; +} + +.hint { + float: left; + color: $textColor; + color: var(--textColor); + width: 100%; + text-align: left; +} + +input, +textarea { + font-size: 1.56rem; + padding: 0.65rem; + color: $inputColor !important; + color: var(--inputColor) !important; + margin: 0 0 0.8rem 0 !important; +} + +input#length { + margin: 0 !important; + height: 1em; /* To stop the input wiggling on firefox */ +} + +#faq { + float: right; + cursor: help; + font-weight: 500; + margin-top: 0.4em; +} + +.cf:before, +.cf:after { + content: " "; + display: table; +} + +.cf:after { + clear: both; +} + +ul.autocomplete-content.dropdown-content { + background: $backgroundColor; + background: var(--backgroundColor); + position: absolute !important; + width: calc(100% - 3rem); + max-height: calc(82% * 4); /* 82% seems to work out as one row */ + overflow-y: auto; + overflow-x: hidden; + top: -.1em; + margin-top: 0; +} + +ul.autocomplete-content.dropdown-content li { + height: 3em; + min-height: 0; +} + +/* Presets */ +.dropdown-content li:hover, +.dropdown-content li.active, +.dropdown-content li.selected, +/* Theme selection */ +body.keyboard-focused .select-dropdown.dropdown-content li:focus, +.select-dropdown.dropdown-content li.selected { + background: $highlightColor; + background: var(--highlightColor); +} + +ul.autocomplete-content.dropdown-content li img.right.circle { + overflow: hidden; + background: #fff; + width: calc(20% - 0.66em); + height: 100%; + padding: 0.33em; + margin: 0; +} + +ul.autocomplete-content.dropdown-content span { + /* display: inline-flex; */ + align-items: center; + white-space: nowrap; + max-width: 70%; + height: 100%; + /* vertical-align: middle; */ + font-size: 1em; + padding: 0.875em 1em; + overflow: hidden; + /* To allow scaling */ + line-height: 1.57em; +} + +ul.autocomplete-content.dropdown-content span:not(.highlight) { + color: $textColor; + color: var(--textColor); + overflow-x: hidden; +} + +ul.autocomplete-content.dropdown-content span .highlight { + max-width: 100%; + color: $textColor; + color: var(--textColor); + font-weight: 400; + overflow: visible; + padding: 0; +} + +.dropdown-content::-webkit-scrollbar { + width: 17px !important; + background-color: #fff !important; +} + +.dropdown-content::-webkit-scrollbar-track { + width: 17px; + background-color: #fff !important; +} + +.dropdown-content::-webkit-scrollbar-thumb { + border-radius: 100px; + width: 17px; + background-color: rgba(0, 0, 0, 0.5); +} + +/*If I keep the rounded element, the twitter bird's beak gets cut :-;*/ +.circle { + object-fit: scale-down; + border-radius: 0; +} + +#back .switch { + padding-bottom: 1.3rem; +} + +input[type=checkbox]:checked:not(:disabled)~.lever:active::before, +input[type=checkbox]:checked:not(:disabled).tabbed:focus~.lever::before { + transform: scale(2.4); + background-color: rgba(63, 81, 181, 0.3); +} + +/*Switch knob*/ +.switch label input[type=checkbox]:checked+.lever:after { + background-color: $accentColor; + background-color: var(--accentColor); +} + +/*Switch backing*/ +.switch label input[type=checkbox]:checked+.lever { + background-color: $lightAccent; + background-color: var(--lightAccent); +} + +#passTogglelever { + left: -4px; /* Centering the toggle */ +} + +.input-group-addon { + position: absolute; + width: calc(3rem + 0.1em); + font-size: 2rem; + top: 0; + right: -5px; +} + +.icon { + font-size: 1.4em !important; + color: $textColor; + color: var(--textColor); + transition: color .2s; + cursor: pointer; +} + +.icon:hover { + color: $lightAccent; + color: var(--lightAccent); +} + +.icon:active { + color: $accentColor; + color: var(--accentColor); +} + +.input-field label:not(.label-icon).active { + -webkit-transform: translateY(-1em) scale(0.8); + transform: translateY(-1em) scale(0.8); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; +} + +.toast { + font-weight: 400 +} + +/* Negative toasts get this */ +.warning { + color: $inputColor; + color: var(--inputColor); + background-color: $incorrectColor; + background-color: var(--incorrectColor); +} + +/* Positive toasts get this */ +.success { + background-color: $correctColor; + background-color: var(--correctColor); + color: #000; +} + +#jsBanner { + position: absolute; + width: 100%; + height: 100%; + text-align: center; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + font-weight: 500; + font-size: 10vmin; + top: 0; + left: 0; + color: $backgroundColor; + color: var(--backgroundColor); + -webkit-text-stroke-width: 0.05em !important; + -webkit-text-stroke-color: $textColor !important; + -webkit-text-stroke-color: var(--textColor) !important; + padding: 10px; +} + +#jsBanner a { + color: $backgroundColor; + color: var(--backgroundColor); + -webkit-text-stroke: 3px $textColor; + -webkit-text-stroke: 3px var(--textColor); + text-decoration: underline; +} + +#logo { + max-width: 100%; + max-height: 100%; +} + +#app { + margin-bottom: 0.55em !important; + width: calc(100% - 3.6rem) !important; + padding-right: 1.2em !important; + align-self: flex-end; + display: block; + white-space: nowrap; +} + +ul:empty { + display: none; +} + +/* Disable Edge's show/hide since we made one */ +::-ms-reveal { + display: none; +} + +/* For portrait logos so they don't oversize */ +#logoContainer { + margin-right: 5px; + background: #fff; + padding: 3px; + border-radius: 5px; + height: calc(3rem + 0.1em); + display: none; + justify-content: center; + align-items: center; +} + +input[type="radio"] { + margin: 0; + width: 0; + height: 0; + padding: 0; +} + +input[type="radio"]:checked+label::before { + box-shadow: 0 0 3px 1px $textColor; + box-shadow: 0 0 3px 1px var(--textColor); +} + +label:focus { + outline: none; +} + +.github-corner { + fill: $accentColor; + fill: var(--accentColor); + color: $backgroundColor; + color: var(--backgroundColor); + position: absolute; + top: 0; + border: 0; + right: 0; +} + +.github-corner:hover .octo-arm { + animation: octocat-wave 560ms ease-in-out; +} + +@keyframes octocat-wave { + + 0%, + 100% { + transform: rotate(0); + } + + 20%, + 60% { + transform: rotate(-25deg); + } + + 40%, + 80% { + transform: rotate(10deg); + } +} +.tabs { + background-color: $internalColor; + background-color: var(--internalColor); + cursor: pointer; + overflow-x: hidden; + z-index: 995; +} + +.tabs .tab a, +.tabs .tab a:hover { + color: $textColor; + color: var(--textColor); + font-size: 1em; + padding: 0 .5em; +} + +.tabs .tab a:focus, +.tabs .tab a:focus.active { + background-color: $backgroundColor; + background-color: var(--backgroundColor); +} + +.tabs .tab a.active { + color: $inputColor; + color: var(--inputColor); + font-weight: 400; +} + +.tabs .indicator { + background: $accentColor; + background-color: var(--accentColor) +} + +.btn { + height: 2.4em; + line-height: 2.4em; + font-family: 'Roboto', sans-serif; + font-weight: 300; + font-size: 1rem; + padding: 0 2rem; + background: $accentColor; + background: var(--accentColor); +} + +.btn:focus, +.btn:hover { + background: $accentColor; + background: var(--accentColor); +} + +.switch label .lever { + height: 0.933em; + width: 2.4em; +} + +.switch label .lever::before, +.switch label .lever::after { + height: 1.33em; + width: 1.33em; +} + +.switch label input[type="checkbox"]:checked+.lever::before, +.switch label input[type="checkbox"]:checked+.lever::after { + left: 1.4em; +} + +.switch label .lever::before, +.switch label .lever::after { + top: -0.2em; +} + +.material-tooltip { + max-width: 7em; +} + +/* If the device can't hover, don't show tooltips */ +@media (hover: none) { + .material-tooltip { + display: none; + } +} + +.material-tooltip { + background-color: $internalColor; + background-color: var(--internalColor); + box-shadow: 0 0.26em 0.65em 0 rgba(0, 0, 0, 0.2); + color: $textColor; + color: var(--textColor); +} + +/* In the future focus-visable should be used. See https://caniuse.com/?#search=css-focus-visible */ +.btn:focus, +.btn-large:focus, +.btn-small:focus, +.btn-floating:focus, +.btn-large:focus, +.btn-small:focus, +.btn-flat:focus { + outline: rgb(77, 144, 254) auto 5px; + outline-color: rgb(77, 144, 254); + outline-style: auto; + outline-width: 5px; +} + +/* Always show arrows on the number inputs */ +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + opacity: 1; +} + +ul.tabs li.tab a i.material-icons { + vertical-align: middle; + color: $incorrectColor; + color: var(--incorrectColor); +} + +/* Normal size */ +.btn-floating { + width: 2.86rem; + height: 2.86rem; +} + +.btn-floating i { + font-size: 1.6rem; + line-height: 2.86rem; + display: block; + top: 0; +} + +/* Large size */ +.btn-floating.btn-large { + width: 4rem; + height: 4rem; +} + +.btn-floating.btn-large i { + font-size: 2rem; + line-height: 4rem; +} + +/* If we're on a small/mobile device */ +@media only all and (max-width:40em) { + + body { + background-color: var(--internalColor); + } + + #back { + /* Ditch loads of padding */ + margin: 0; + box-shadow: none; + + min-height: 100%; + border-radius: 0; + } + + #box { + width: 100VW; + max-width: 100VW; + min-height: 100%; + } + + /* Install icon */ + #install-icon { + padding-right: .5vw; + } + + /* Normal size */ + .btn-floating { + width: 10vw; + height: 10vw; + } + + .btn-floating i { + font-size: 5vw; + line-height: 10vw; + } + + /* Large size */ + .btn-floating.btn-large { + width: 15vw; + height: 15vw; + } + + .btn-floating.btn-large i { + font-size: 7.5vw; + line-height: 15vw; + } + + .github-corner { + color: $internalColor; + color: var(--internalColor); + } +} + +/* If it won't fit vertically */ +@media only all and (max-height:600px ) and (min-width:40em) { + html { + /* Drop the font size */ + font-size: 2vh; + } +} + +.sidenav { + background-color: $backgroundColor; + background-color: var(--backgroundColor); + width: 350px; + max-width: 100%; + overflow-y: hidden; +} + +.sidenav li>a { + font-weight: 300; +} + +/* Shows warning icons properly */ +.sidenav li>a>i, +.sidenav li>a>[class^="mdi-"], +.sidenav li>a li>a>[class*="mdi-"], +.sidenav li>a>i.material-icons { + margin: 0; + float: none; +} + +#settings { + position: absolute; + left: 1vw; + bottom: 1vw; + display: block; +} + +#settings a i.material-icons { + display: block; + font-size: 2.5em; + color: $textColor; + color: var(--textColor); +} + +.sidenav label:not([for=length-pref]) { + font-size: 1rem; + top: -33px; +} + +#options { + padding: 10px; + // padding-top: 0; + display: grid; + height: calc(100% - 8px); + grid-template-rows: repeat(12, 1fr); + // grid-template-rows: repeat(auto-fill, minmax(70px, 1fr)) + // grid-auto-rows: repeat(min-content, 60px) ; +} + +.sidenav .dropdown-content { + background: $backgroundColor; + background: var(--backgroundColor); +} + +.sidenav .dropdown-content li>a, +.dropdown-content li>span { + color: $inputColor; + color: var(--inputColor); +} + +select { + background-color: $internalColor; + background-color: var(--internalColor); + + border: 1px solid $textColor; + border: 1px solid var(--textColor); + border-radius: 3px; + + color: $inputColor; + color: var(--inputColor); +} + +select:focus { + border: 1px solid $lightAccent; + border: 1px solid var(--lightAccent); + + outline: none; +} + +.sidenav .input-field { + margin-top: 2.5rem; +} + +.btn i { + vertical-align: top; +} + +.drag-target { + left: 0; +} + +.sidenav .switch label { + font-size: 1.2em; +} + +.sidenav { + place-content: center; +} + +#theme-container { + grid-row: 1; +} + +#session-container { + grid-row: 3; + padding-bottom: 0; +} + +#footer { + display: grid; + grid-template-columns: 1fr calc(2.4em + 10px); + align-content: stretch; + grid-row: last-line; +} + +#close { + cursor: pointer; + align-self: end; + justify-self: flex-end; + font-size: 2.4em; + color: $inputColor; + color: var(--inputColor); +} + +a { + color: $linkColor; + color: var(--linkColor); +} + +#old { + text-overflow: clip; +} + +#length-pref { + font-size: 2em; + font-weight: 300; } \ No newline at end of file diff --git a/src/sw.js b/src/sw.js new file mode 100644 index 00000000..659374f8 --- /dev/null +++ b/src/sw.js @@ -0,0 +1,74 @@ +import { registerRoute } from 'workbox-routing' +import { + NetworkFirst, + StaleWhileRevalidate, + CacheFirst +} from 'workbox-strategies' + +// Used for filtering matches based on status code, header, or both +import { CacheableResponsePlugin } from 'workbox-cacheable-response' +// Used to limit entries in cache, remove entries after a certain period of time +import { ExpirationPlugin } from 'workbox-expiration' + +// Cache page navigations (html) with a Network First strategy +registerRoute( + // Check to see if the request is a navigation to a new page + ({ request }) => request.mode === 'navigate', + // Use a Network First caching strategy + new NetworkFirst({ + // Put all cached files in a cache named 'pages' + cacheName: 'pages', + plugins: [ + // Ensure that only requests that result in a 200 status are cached + new CacheableResponsePlugin({ + statuses: [200] + }) + ] + }) +) + +// Cache CSS, JS, and Web Worker requests with a Stale While Revalidate strategy +registerRoute( + // Check to see if the request's destination is style for stylesheets, script for JavaScript, or worker for web worker + ({ request }) => + request.destination === 'style' || + request.destination === 'script' || + request.destination === 'worker', + // Use a Stale While Revalidate caching strategy + new StaleWhileRevalidate({ + // Put all cached files in a cache named 'assets' + cacheName: 'assets', + plugins: [ + // Ensure that only requests that result in a 200 status are cached + new CacheableResponsePlugin({ + statuses: [200] + }) + ] + }) +) + +// Cache images with a Cache First strategy +registerRoute( + // Check to see if the request's destination is style for an image + ({ request }) => request.destination === 'image', + // Use a Cache First caching strategy + new CacheFirst({ + // Put all cached files in a cache named 'images' + cacheName: 'images', + plugins: [ + // Ensure that only requests that result in a 200 status are cached + new CacheableResponsePlugin({ + statuses: [200] + }), + // Expire items after 30 days + new ExpirationPlugin({ + maxAgeSeconds: 60 * 60 * 24 * 30 // 30 Days + }) + ] + }) +) + +self.addEventListener('beforeinstallprompt', event => { + event.preventDefault() + window.installPromptEvent = event +}) diff --git a/.nojekyll b/static/.nojekyll similarity index 100% rename from .nojekyll rename to static/.nojekyll diff --git a/CNAME b/static/CNAME similarity index 97% rename from CNAME rename to static/CNAME index a34fc73e..04a1029c 100644 --- a/CNAME +++ b/static/CNAME @@ -1,2 +1,2 @@ -cloverleaf.app +cloverleaf.app www.cloverleaf.app \ No newline at end of file diff --git a/android-chrome-192x192.png b/static/android-chrome-192x192.png similarity index 100% rename from android-chrome-192x192.png rename to static/android-chrome-192x192.png diff --git a/android-chrome-512x512.png b/static/android-chrome-512x512.png similarity index 100% rename from android-chrome-512x512.png rename to static/android-chrome-512x512.png diff --git a/apple-touch-icon.png b/static/apple-touch-icon.png similarity index 100% rename from apple-touch-icon.png rename to static/apple-touch-icon.png diff --git a/browserconfig.xml b/static/browserconfig.xml similarity index 97% rename from browserconfig.xml rename to static/browserconfig.xml index d7e0aaca..4d103782 100644 --- a/browserconfig.xml +++ b/static/browserconfig.xml @@ -1,12 +1,12 @@ - - - - - - - - - #8c97ce - - - + + + + + + + + + #8c97ce + + + diff --git a/dev.ico b/static/dev.ico similarity index 100% rename from dev.ico rename to static/dev.ico diff --git a/favicon-16x16.png b/static/favicon-16x16.png similarity index 100% rename from favicon-16x16.png rename to static/favicon-16x16.png diff --git a/favicon-32x32.png b/static/favicon-32x32.png similarity index 100% rename from favicon-32x32.png rename to static/favicon-32x32.png diff --git a/favicon.ico b/static/favicon.ico similarity index 100% rename from favicon.ico rename to static/favicon.ico diff --git a/logos/Ada.svg b/static/logos/Ada.svg similarity index 100% rename from logos/Ada.svg rename to static/logos/Ada.svg diff --git a/logos/Adobe.svg b/static/logos/Adobe.svg similarity index 100% rename from logos/Adobe.svg rename to static/logos/Adobe.svg diff --git a/logos/Airbnb-MINI.svg b/static/logos/Airbnb-MINI.svg similarity index 100% rename from logos/Airbnb-MINI.svg rename to static/logos/Airbnb-MINI.svg diff --git a/logos/Airbnb.svg b/static/logos/Airbnb.svg similarity index 100% rename from logos/Airbnb.svg rename to static/logos/Airbnb.svg diff --git a/logos/AliExpress.svg b/static/logos/AliExpress.svg similarity index 99% rename from logos/AliExpress.svg rename to static/logos/AliExpress.svg index 7255ffd8..29f8ba1b 100644 --- a/logos/AliExpress.svg +++ b/static/logos/AliExpress.svg @@ -1,55 +1,55 @@ - - Svg Vector Icons : http://www.onlinewebfonts.com/icon image/svg+xml + Svg Vector Icons : http://www.onlinewebfonts.com/icon image/svg+xml \ No newline at end of file diff --git a/logos/Alipay-MINI.svg b/static/logos/Alipay-MINI.svg similarity index 100% rename from logos/Alipay-MINI.svg rename to static/logos/Alipay-MINI.svg diff --git a/logos/Alipay.svg b/static/logos/Alipay.svg similarity index 100% rename from logos/Alipay.svg rename to static/logos/Alipay.svg diff --git a/logos/AlternativeTo.svg b/static/logos/AlternativeTo.svg similarity index 100% rename from logos/AlternativeTo.svg rename to static/logos/AlternativeTo.svg diff --git a/logos/Amazon-MINI.svg b/static/logos/Amazon-MINI.svg similarity index 100% rename from logos/Amazon-MINI.svg rename to static/logos/Amazon-MINI.svg diff --git a/logos/Amazon.svg b/static/logos/Amazon.svg similarity index 100% rename from logos/Amazon.svg rename to static/logos/Amazon.svg diff --git a/logos/Amino-MINI.svg b/static/logos/Amino-MINI.svg similarity index 100% rename from logos/Amino-MINI.svg rename to static/logos/Amino-MINI.svg diff --git a/logos/Amino.svg b/static/logos/Amino.svg similarity index 100% rename from logos/Amino.svg rename to static/logos/Amino.svg diff --git a/logos/Apple.svg b/static/logos/Apple.svg similarity index 100% rename from logos/Apple.svg rename to static/logos/Apple.svg diff --git a/logos/Artsy-MINI.svg b/static/logos/Artsy-MINI.svg similarity index 100% rename from logos/Artsy-MINI.svg rename to static/logos/Artsy-MINI.svg diff --git a/logos/Artsy.svg b/static/logos/Artsy.svg similarity index 100% rename from logos/Artsy.svg rename to static/logos/Artsy.svg diff --git a/logos/BBC.svg b/static/logos/BBC.svg similarity index 100% rename from logos/BBC.svg rename to static/logos/BBC.svg diff --git a/logos/Baidu-MINI.svg b/static/logos/Baidu-MINI.svg similarity index 100% rename from logos/Baidu-MINI.svg rename to static/logos/Baidu-MINI.svg diff --git a/logos/Baidu.svg b/static/logos/Baidu.svg similarity index 100% rename from logos/Baidu.svg rename to static/logos/Baidu.svg diff --git a/logos/Battlenet.png b/static/logos/Battlenet.png similarity index 100% rename from logos/Battlenet.png rename to static/logos/Battlenet.png diff --git a/logos/Behance-MINI.svg b/static/logos/Behance-MINI.svg similarity index 100% rename from logos/Behance-MINI.svg rename to static/logos/Behance-MINI.svg diff --git a/logos/Behance.svg b/static/logos/Behance.svg similarity index 100% rename from logos/Behance.svg rename to static/logos/Behance.svg diff --git a/logos/Bing-MINI.svg b/static/logos/Bing-MINI.svg similarity index 100% rename from logos/Bing-MINI.svg rename to static/logos/Bing-MINI.svg diff --git a/logos/Bing.svg b/static/logos/Bing.svg similarity index 100% rename from logos/Bing.svg rename to static/logos/Bing.svg diff --git a/logos/Blend Swap.svg b/static/logos/Blend Swap.svg similarity index 98% rename from logos/Blend Swap.svg rename to static/logos/Blend Swap.svg index 047c03e9..b8718347 100644 --- a/logos/Blend Swap.svg +++ b/static/logos/Blend Swap.svg @@ -1,46 +1,46 @@ - - - - - - image/svg+xml - - - - - - image/svg+xml - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/logos/Blizzard.svg b/static/logos/Blizzard.svg similarity index 100% rename from logos/Blizzard.svg rename to static/logos/Blizzard.svg diff --git a/logos/Channel 4.svg b/static/logos/Channel 4.svg similarity index 97% rename from logos/Channel 4.svg rename to static/logos/Channel 4.svg index 27baeee4..dbfd64f3 100644 --- a/logos/Channel 4.svg +++ b/static/logos/Channel 4.svg @@ -1,64 +1,64 @@ - - - - - - image/svg+xml - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + diff --git a/logos/Chrono.gg-MINI.svg b/static/logos/Chrono.gg-MINI.svg similarity index 100% rename from logos/Chrono.gg-MINI.svg rename to static/logos/Chrono.gg-MINI.svg diff --git a/logos/Chrono.gg.svg b/static/logos/Chrono.gg.svg similarity index 100% rename from logos/Chrono.gg.svg rename to static/logos/Chrono.gg.svg diff --git a/logos/CodePen-MINI.svg b/static/logos/CodePen-MINI.svg similarity index 100% rename from logos/CodePen-MINI.svg rename to static/logos/CodePen-MINI.svg diff --git a/logos/CodePen.svg b/static/logos/CodePen.svg similarity index 100% rename from logos/CodePen.svg rename to static/logos/CodePen.svg diff --git a/logos/DeviantArt-MINI.svg b/static/logos/DeviantArt-MINI.svg similarity index 100% rename from logos/DeviantArt-MINI.svg rename to static/logos/DeviantArt-MINI.svg diff --git a/logos/DeviantArt.svg b/static/logos/DeviantArt.svg similarity index 100% rename from logos/DeviantArt.svg rename to static/logos/DeviantArt.svg diff --git a/logos/Discord-MINI.svg b/static/logos/Discord-MINI.svg similarity index 100% rename from logos/Discord-MINI.svg rename to static/logos/Discord-MINI.svg diff --git a/logos/Discord.svg b/static/logos/Discord.svg similarity index 100% rename from logos/Discord.svg rename to static/logos/Discord.svg diff --git a/logos/Disqus-MINI.svg b/static/logos/Disqus-MINI.svg similarity index 100% rename from logos/Disqus-MINI.svg rename to static/logos/Disqus-MINI.svg diff --git a/logos/Disqus.svg b/static/logos/Disqus.svg similarity index 100% rename from logos/Disqus.svg rename to static/logos/Disqus.svg diff --git a/logos/Dribbble-MINI.svg b/static/logos/Dribbble-MINI.svg similarity index 100% rename from logos/Dribbble-MINI.svg rename to static/logos/Dribbble-MINI.svg diff --git a/logos/Dribbble.svg b/static/logos/Dribbble.svg similarity index 100% rename from logos/Dribbble.svg rename to static/logos/Dribbble.svg diff --git a/logos/Dropbox-MINI.svg b/static/logos/Dropbox-MINI.svg similarity index 100% rename from logos/Dropbox-MINI.svg rename to static/logos/Dropbox-MINI.svg diff --git a/logos/Dropbox.svg b/static/logos/Dropbox.svg similarity index 100% rename from logos/Dropbox.svg rename to static/logos/Dropbox.svg diff --git a/logos/Duolingo-MINI.svg b/static/logos/Duolingo-MINI.svg similarity index 100% rename from logos/Duolingo-MINI.svg rename to static/logos/Duolingo-MINI.svg diff --git a/logos/Duolingo.svg b/static/logos/Duolingo.svg similarity index 100% rename from logos/Duolingo.svg rename to static/logos/Duolingo.svg diff --git a/logos/Epic Games.svg b/static/logos/Epic Games.svg similarity index 100% rename from logos/Epic Games.svg rename to static/logos/Epic Games.svg diff --git a/logos/Etsy-MINI.svg b/static/logos/Etsy-MINI.svg similarity index 100% rename from logos/Etsy-MINI.svg rename to static/logos/Etsy-MINI.svg diff --git a/logos/Etsy.svg b/static/logos/Etsy.svg similarity index 100% rename from logos/Etsy.svg rename to static/logos/Etsy.svg diff --git a/logos/Evernote-MINI.svg b/static/logos/Evernote-MINI.svg similarity index 100% rename from logos/Evernote-MINI.svg rename to static/logos/Evernote-MINI.svg diff --git a/logos/Evernote.svg b/static/logos/Evernote.svg similarity index 100% rename from logos/Evernote.svg rename to static/logos/Evernote.svg diff --git a/logos/FANDOM-MINI.svg b/static/logos/FANDOM-MINI.svg similarity index 100% rename from logos/FANDOM-MINI.svg rename to static/logos/FANDOM-MINI.svg diff --git a/logos/FANDOM.svg b/static/logos/FANDOM.svg similarity index 100% rename from logos/FANDOM.svg rename to static/logos/FANDOM.svg diff --git a/logos/Facebook-MINI.svg b/static/logos/Facebook-MINI.svg similarity index 100% rename from logos/Facebook-MINI.svg rename to static/logos/Facebook-MINI.svg diff --git a/logos/Facebook.svg b/static/logos/Facebook.svg similarity index 100% rename from logos/Facebook.svg rename to static/logos/Facebook.svg diff --git a/logos/Factorio.svg b/static/logos/Factorio.svg similarity index 100% rename from logos/Factorio.svg rename to static/logos/Factorio.svg diff --git a/logos/Fanatical-MINI.svg b/static/logos/Fanatical-MINI.svg similarity index 100% rename from logos/Fanatical-MINI.svg rename to static/logos/Fanatical-MINI.svg diff --git a/logos/Fanatical.svg b/static/logos/Fanatical.svg similarity index 100% rename from logos/Fanatical.svg rename to static/logos/Fanatical.svg diff --git a/logos/Firebox-MINI.svg b/static/logos/Firebox-MINI.svg similarity index 100% rename from logos/Firebox-MINI.svg rename to static/logos/Firebox-MINI.svg diff --git a/logos/Firebox.svg b/static/logos/Firebox.svg similarity index 100% rename from logos/Firebox.svg rename to static/logos/Firebox.svg diff --git a/logos/Firefox-MINI.svg b/static/logos/Firefox-MINI.svg similarity index 100% rename from logos/Firefox-MINI.svg rename to static/logos/Firefox-MINI.svg diff --git a/logos/Firefox.svg b/static/logos/Firefox.svg similarity index 100% rename from logos/Firefox.svg rename to static/logos/Firefox.svg diff --git a/logos/Flickr-MINI.svg b/static/logos/Flickr-MINI.svg similarity index 100% rename from logos/Flickr-MINI.svg rename to static/logos/Flickr-MINI.svg diff --git a/logos/Flickr.svg b/static/logos/Flickr.svg similarity index 100% rename from logos/Flickr.svg rename to static/logos/Flickr.svg diff --git a/logos/Forvo.svg b/static/logos/Forvo.svg similarity index 100% rename from logos/Forvo.svg rename to static/logos/Forvo.svg diff --git a/logos/Freelancer-MINI.svg b/static/logos/Freelancer-MINI.svg similarity index 100% rename from logos/Freelancer-MINI.svg rename to static/logos/Freelancer-MINI.svg diff --git a/logos/Freelancer.svg b/static/logos/Freelancer.svg similarity index 100% rename from logos/Freelancer.svg rename to static/logos/Freelancer.svg diff --git a/logos/GIPHY-MINI.svg b/static/logos/GIPHY-MINI.svg similarity index 100% rename from logos/GIPHY-MINI.svg rename to static/logos/GIPHY-MINI.svg diff --git a/logos/GIPHY.svg b/static/logos/GIPHY.svg similarity index 100% rename from logos/GIPHY.svg rename to static/logos/GIPHY.svg diff --git a/logos/GOG.svg b/static/logos/GOG.svg similarity index 100% rename from logos/GOG.svg rename to static/logos/GOG.svg diff --git a/logos/Genius-MINI.svg b/static/logos/Genius-MINI.svg similarity index 100% rename from logos/Genius-MINI.svg rename to static/logos/Genius-MINI.svg diff --git a/logos/Genius.svg b/static/logos/Genius.svg similarity index 100% rename from logos/Genius.svg rename to static/logos/Genius.svg diff --git a/logos/GeoGuessr-MINI.svg b/static/logos/GeoGuessr-MINI.svg similarity index 100% rename from logos/GeoGuessr-MINI.svg rename to static/logos/GeoGuessr-MINI.svg diff --git a/logos/GeoGuessr.svg b/static/logos/GeoGuessr.svg similarity index 100% rename from logos/GeoGuessr.svg rename to static/logos/GeoGuessr.svg diff --git a/logos/Gfycat-MINI.svg b/static/logos/Gfycat-MINI.svg similarity index 100% rename from logos/Gfycat-MINI.svg rename to static/logos/Gfycat-MINI.svg diff --git a/logos/Gfycat.svg b/static/logos/Gfycat.svg similarity index 100% rename from logos/Gfycat.svg rename to static/logos/Gfycat.svg diff --git a/logos/GitHub.svg b/static/logos/GitHub.svg similarity index 100% rename from logos/GitHub.svg rename to static/logos/GitHub.svg diff --git a/logos/GitLab-MINI.svg b/static/logos/GitLab-MINI.svg similarity index 100% rename from logos/GitLab-MINI.svg rename to static/logos/GitLab-MINI.svg diff --git a/logos/GitLab.svg b/static/logos/GitLab.svg similarity index 100% rename from logos/GitLab.svg rename to static/logos/GitLab.svg diff --git a/logos/Google.svg b/static/logos/Google.svg similarity index 100% rename from logos/Google.svg rename to static/logos/Google.svg diff --git a/logos/Government Gateway.svg b/static/logos/Government Gateway.svg similarity index 100% rename from logos/Government Gateway.svg rename to static/logos/Government Gateway.svg diff --git a/logos/Guilded.svg b/static/logos/Guilded.svg similarity index 100% rename from logos/Guilded.svg rename to static/logos/Guilded.svg diff --git a/logos/Hi-Rez.png b/static/logos/Hi-Rez.png similarity index 100% rename from logos/Hi-Rez.png rename to static/logos/Hi-Rez.png diff --git a/logos/HitFilm.svg b/static/logos/HitFilm.svg similarity index 100% rename from logos/HitFilm.svg rename to static/logos/HitFilm.svg diff --git a/logos/Humble Bundle.svg b/static/logos/Humble Bundle.svg similarity index 99% rename from logos/Humble Bundle.svg rename to static/logos/Humble Bundle.svg index 672a2a6b..cb24c91f 100644 --- a/logos/Humble Bundle.svg +++ b/static/logos/Humble Bundle.svg @@ -1,9 +1,9 @@ - - - - + + + + diff --git a/logos/IFTTT.svg b/static/logos/IFTTT.svg similarity index 100% rename from logos/IFTTT.svg rename to static/logos/IFTTT.svg diff --git a/logos/IMDb.svg b/static/logos/IMDb.svg similarity index 100% rename from logos/IMDb.svg rename to static/logos/IMDb.svg diff --git a/logos/Instagram.svg b/static/logos/Instagram.svg similarity index 100% rename from logos/Instagram.svg rename to static/logos/Instagram.svg diff --git a/logos/JustGiving.svg b/static/logos/JustGiving.svg similarity index 100% rename from logos/JustGiving.svg rename to static/logos/JustGiving.svg diff --git a/logos/Keybase.svg b/static/logos/Keybase.svg similarity index 100% rename from logos/Keybase.svg rename to static/logos/Keybase.svg diff --git a/logos/Ko-fi-MINI.svg b/static/logos/Ko-fi-MINI.svg similarity index 100% rename from logos/Ko-fi-MINI.svg rename to static/logos/Ko-fi-MINI.svg diff --git a/logos/Ko-fi.svg b/static/logos/Ko-fi.svg similarity index 100% rename from logos/Ko-fi.svg rename to static/logos/Ko-fi.svg diff --git a/logos/Lingvist.svg b/static/logos/Lingvist.svg similarity index 100% rename from logos/Lingvist.svg rename to static/logos/Lingvist.svg diff --git a/logos/LinkedIn.svg b/static/logos/LinkedIn.svg similarity index 100% rename from logos/LinkedIn.svg rename to static/logos/LinkedIn.svg diff --git a/logos/Lloyds Bank.svg b/static/logos/Lloyds Bank.svg similarity index 99% rename from logos/Lloyds Bank.svg rename to static/logos/Lloyds Bank.svg index 05191d85..891a0855 100644 --- a/logos/Lloyds Bank.svg +++ b/static/logos/Lloyds Bank.svg @@ -1,47 +1,47 @@ - -image/svg+xml +image/svg+xml \ No newline at end of file diff --git a/logos/MSN.svg b/static/logos/MSN.svg similarity index 100% rename from logos/MSN.svg rename to static/logos/MSN.svg diff --git a/logos/Mail.Ru.svg b/static/logos/Mail.Ru.svg similarity index 100% rename from logos/Mail.Ru.svg rename to static/logos/Mail.Ru.svg diff --git a/logos/Mapbox.svg b/static/logos/Mapbox.svg similarity index 100% rename from logos/Mapbox.svg rename to static/logos/Mapbox.svg diff --git a/logos/Mega.svg b/static/logos/Mega.svg similarity index 100% rename from logos/Mega.svg rename to static/logos/Mega.svg diff --git a/logos/Messenger.svg b/static/logos/Messenger.svg similarity index 100% rename from logos/Messenger.svg rename to static/logos/Messenger.svg diff --git a/logos/Microsoft.svg b/static/logos/Microsoft.svg similarity index 100% rename from logos/Microsoft.svg rename to static/logos/Microsoft.svg diff --git a/logos/Minecraft.svg b/static/logos/Minecraft.svg similarity index 100% rename from logos/Minecraft.svg rename to static/logos/Minecraft.svg diff --git a/logos/Mojang.svg b/static/logos/Mojang.svg similarity index 100% rename from logos/Mojang.svg rename to static/logos/Mojang.svg diff --git a/logos/MuseScore.svg b/static/logos/MuseScore.svg similarity index 100% rename from logos/MuseScore.svg rename to static/logos/MuseScore.svg diff --git a/logos/My Nintendo.svg b/static/logos/My Nintendo.svg similarity index 100% rename from logos/My Nintendo.svg rename to static/logos/My Nintendo.svg diff --git a/logos/Native Instruments.svg b/static/logos/Native Instruments.svg similarity index 97% rename from logos/Native Instruments.svg rename to static/logos/Native Instruments.svg index 7c65105d..1be1592c 100644 --- a/logos/Native Instruments.svg +++ b/static/logos/Native Instruments.svg @@ -1,82 +1,82 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/logos/Nectar.png b/static/logos/Nectar.png similarity index 100% rename from logos/Nectar.png rename to static/logos/Nectar.png diff --git a/logos/Netflix-MINI.svg b/static/logos/Netflix-MINI.svg similarity index 100% rename from logos/Netflix-MINI.svg rename to static/logos/Netflix-MINI.svg diff --git a/logos/Netflix.svg b/static/logos/Netflix.svg similarity index 100% rename from logos/Netflix.svg rename to static/logos/Netflix.svg diff --git a/logos/OpenStreetMap.svg b/static/logos/OpenStreetMap.svg similarity index 100% rename from logos/OpenStreetMap.svg rename to static/logos/OpenStreetMap.svg diff --git a/logos/Opera.svg b/static/logos/Opera.svg similarity index 100% rename from logos/Opera.svg rename to static/logos/Opera.svg diff --git a/logos/Origin.svg b/static/logos/Origin.svg similarity index 100% rename from logos/Origin.svg rename to static/logos/Origin.svg diff --git a/logos/Oxfam.svg b/static/logos/Oxfam.svg similarity index 100% rename from logos/Oxfam.svg rename to static/logos/Oxfam.svg diff --git a/logos/PCPartPicker.svg b/static/logos/PCPartPicker.svg similarity index 100% rename from logos/PCPartPicker.svg rename to static/logos/PCPartPicker.svg diff --git a/logos/Pastebin.png b/static/logos/Pastebin.png similarity index 100% rename from logos/Pastebin.png rename to static/logos/Pastebin.png diff --git a/logos/Patient Access.svg b/static/logos/Patient Access.svg similarity index 100% rename from logos/Patient Access.svg rename to static/logos/Patient Access.svg diff --git a/logos/Patreon-MINI.svg b/static/logos/Patreon-MINI.svg similarity index 100% rename from logos/Patreon-MINI.svg rename to static/logos/Patreon-MINI.svg diff --git a/logos/Patreon.svg b/static/logos/Patreon.svg similarity index 100% rename from logos/Patreon.svg rename to static/logos/Patreon.svg diff --git a/logos/PayPal-MINI.svg b/static/logos/PayPal-MINI.svg similarity index 100% rename from logos/PayPal-MINI.svg rename to static/logos/PayPal-MINI.svg diff --git a/logos/PayPal.svg b/static/logos/PayPal.svg similarity index 100% rename from logos/PayPal.svg rename to static/logos/PayPal.svg diff --git a/logos/Pinterest-MINI.svg b/static/logos/Pinterest-MINI.svg similarity index 100% rename from logos/Pinterest-MINI.svg rename to static/logos/Pinterest-MINI.svg diff --git a/logos/Pinterest.svg b/static/logos/Pinterest.svg similarity index 100% rename from logos/Pinterest.svg rename to static/logos/Pinterest.svg diff --git a/logos/Pocket.svg b/static/logos/Pocket.svg similarity index 100% rename from logos/Pocket.svg rename to static/logos/Pocket.svg diff --git a/logos/Prezi.svg b/static/logos/Prezi.svg similarity index 100% rename from logos/Prezi.svg rename to static/logos/Prezi.svg diff --git a/logos/QQ.svg b/static/logos/QQ.svg similarity index 100% rename from logos/QQ.svg rename to static/logos/QQ.svg diff --git a/logos/Reddit.svg b/static/logos/Reddit.svg similarity index 100% rename from logos/Reddit.svg rename to static/logos/Reddit.svg diff --git a/logos/Riot Games-MINI.svg b/static/logos/Riot Games-MINI.svg similarity index 100% rename from logos/Riot Games-MINI.svg rename to static/logos/Riot Games-MINI.svg diff --git a/logos/Riot Games.svg b/static/logos/Riot Games.svg similarity index 100% rename from logos/Riot Games.svg rename to static/logos/Riot Games.svg diff --git a/logos/Rockstar Games Social Club.svg b/static/logos/Rockstar Games Social Club.svg similarity index 100% rename from logos/Rockstar Games Social Club.svg rename to static/logos/Rockstar Games Social Club.svg diff --git a/logos/Sainsbury's.svg b/static/logos/Sainsbury's.svg similarity index 100% rename from logos/Sainsbury's.svg rename to static/logos/Sainsbury's.svg diff --git a/logos/Skype.svg b/static/logos/Skype.svg similarity index 100% rename from logos/Skype.svg rename to static/logos/Skype.svg diff --git a/logos/Snapchat.svg b/static/logos/Snapchat.svg similarity index 100% rename from logos/Snapchat.svg rename to static/logos/Snapchat.svg diff --git a/logos/Songsterr.svg b/static/logos/Songsterr.svg similarity index 100% rename from logos/Songsterr.svg rename to static/logos/Songsterr.svg diff --git a/logos/Soundcloud.svg b/static/logos/Soundcloud.svg similarity index 100% rename from logos/Soundcloud.svg rename to static/logos/Soundcloud.svg diff --git a/logos/Spotify-MINI.svg b/static/logos/Spotify-MINI.svg similarity index 100% rename from logos/Spotify-MINI.svg rename to static/logos/Spotify-MINI.svg diff --git a/logos/Spotify.svg b/static/logos/Spotify.svg similarity index 100% rename from logos/Spotify.svg rename to static/logos/Spotify.svg diff --git a/logos/Square Enix-MINI.svg b/static/logos/Square Enix-MINI.svg similarity index 100% rename from logos/Square Enix-MINI.svg rename to static/logos/Square Enix-MINI.svg diff --git a/logos/Square Enix.svg b/static/logos/Square Enix.svg similarity index 100% rename from logos/Square Enix.svg rename to static/logos/Square Enix.svg diff --git a/logos/Stack Overflow.svg b/static/logos/Stack Overflow.svg similarity index 96% rename from logos/Stack Overflow.svg rename to static/logos/Stack Overflow.svg index a2916045..077299ff 100644 --- a/logos/Stack Overflow.svg +++ b/static/logos/Stack Overflow.svg @@ -1,40 +1,40 @@ - - - - - - image/svg+xml - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/logos/Steam.svg b/static/logos/Steam.svg similarity index 100% rename from logos/Steam.svg rename to static/logos/Steam.svg diff --git a/logos/StellarX-MINI.svg b/static/logos/StellarX-MINI.svg similarity index 100% rename from logos/StellarX-MINI.svg rename to static/logos/StellarX-MINI.svg diff --git a/logos/StellarX.svg b/static/logos/StellarX.svg similarity index 100% rename from logos/StellarX.svg rename to static/logos/StellarX.svg diff --git a/logos/Streamable.svg b/static/logos/Streamable.svg similarity index 100% rename from logos/Streamable.svg rename to static/logos/Streamable.svg diff --git a/logos/Tesco.svg b/static/logos/Tesco.svg similarity index 100% rename from logos/Tesco.svg rename to static/logos/Tesco.svg diff --git a/logos/The Guardian.svg b/static/logos/The Guardian.svg similarity index 98% rename from logos/The Guardian.svg rename to static/logos/The Guardian.svg index b7bf055c..854c314c 100644 --- a/logos/The Guardian.svg +++ b/static/logos/The Guardian.svg @@ -1,43 +1,43 @@ - - - - - - image/svg+xml - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/logos/TheCubicle.us.svg b/static/logos/TheCubicle.us.svg similarity index 100% rename from logos/TheCubicle.us.svg rename to static/logos/TheCubicle.us.svg diff --git a/static/logos/TikTok-MINI.svg b/static/logos/TikTok-MINI.svg new file mode 100644 index 00000000..24044006 --- /dev/null +++ b/static/logos/TikTok-MINI.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/logos/TikTok.svg b/static/logos/TikTok.svg new file mode 100644 index 00000000..6501a9fb --- /dev/null +++ b/static/logos/TikTok.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/logos/Trello.svg b/static/logos/Trello.svg similarity index 100% rename from logos/Trello.svg rename to static/logos/Trello.svg diff --git a/logos/Tumblr-MINI.svg b/static/logos/Tumblr-MINI.svg similarity index 100% rename from logos/Tumblr-MINI.svg rename to static/logos/Tumblr-MINI.svg diff --git a/logos/Tumblr.svg b/static/logos/Tumblr.svg similarity index 100% rename from logos/Tumblr.svg rename to static/logos/Tumblr.svg diff --git a/logos/Twitch-MINI.svg b/static/logos/Twitch-MINI.svg similarity index 100% rename from logos/Twitch-MINI.svg rename to static/logos/Twitch-MINI.svg diff --git a/logos/Twitch.svg b/static/logos/Twitch.svg similarity index 100% rename from logos/Twitch.svg rename to static/logos/Twitch.svg diff --git a/logos/Twitter.svg b/static/logos/Twitter.svg similarity index 100% rename from logos/Twitter.svg rename to static/logos/Twitter.svg diff --git a/logos/UCAS.svg b/static/logos/UCAS.svg similarity index 100% rename from logos/UCAS.svg rename to static/logos/UCAS.svg diff --git a/logos/Uber.svg b/static/logos/Uber.svg similarity index 100% rename from logos/Uber.svg rename to static/logos/Uber.svg diff --git a/logos/Ubisoft.svg b/static/logos/Ubisoft.svg similarity index 100% rename from logos/Ubisoft.svg rename to static/logos/Ubisoft.svg diff --git a/logos/Unity ID.svg b/static/logos/Unity ID.svg similarity index 100% rename from logos/Unity ID.svg rename to static/logos/Unity ID.svg diff --git a/logos/Uplay.svg b/static/logos/Uplay.svg similarity index 100% rename from logos/Uplay.svg rename to static/logos/Uplay.svg diff --git a/logos/VK.svg b/static/logos/VK.svg similarity index 100% rename from logos/VK.svg rename to static/logos/VK.svg diff --git a/logos/Venmo.svg b/static/logos/Venmo.svg similarity index 100% rename from logos/Venmo.svg rename to static/logos/Venmo.svg diff --git a/logos/Vimeo.svg b/static/logos/Vimeo.svg similarity index 100% rename from logos/Vimeo.svg rename to static/logos/Vimeo.svg diff --git a/logos/Visa Checkout.svg b/static/logos/Visa Checkout.svg similarity index 97% rename from logos/Visa Checkout.svg rename to static/logos/Visa Checkout.svg index 5f3137d7..c3a5fcab 100644 --- a/logos/Visa Checkout.svg +++ b/static/logos/Visa Checkout.svg @@ -1,38 +1,38 @@ - - - - - - image/svg+xml - - Visa Checkout - - - - - - - Visa Checkout - - + + + + + + image/svg+xml + + Visa Checkout + + + + + + + Visa Checkout + + diff --git a/logos/Vivaldi.svg b/static/logos/Vivaldi.svg similarity index 100% rename from logos/Vivaldi.svg rename to static/logos/Vivaldi.svg diff --git a/logos/WeChat.svg b/static/logos/WeChat.svg similarity index 100% rename from logos/WeChat.svg rename to static/logos/WeChat.svg diff --git a/logos/Wikipedia.svg b/static/logos/Wikipedia.svg similarity index 100% rename from logos/Wikipedia.svg rename to static/logos/Wikipedia.svg diff --git a/logos/Wordpress.svg b/static/logos/Wordpress.svg similarity index 100% rename from logos/Wordpress.svg rename to static/logos/Wordpress.svg diff --git a/logos/XDA Developers.svg b/static/logos/XDA Developers.svg similarity index 99% rename from logos/XDA Developers.svg rename to static/logos/XDA Developers.svg index cbb91b94..f550f5f9 100644 --- a/logos/XDA Developers.svg +++ b/static/logos/XDA Developers.svg @@ -1,66 +1,66 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - path - id="path3025" - transform="translate(0.893,0)" - d="M 540.25,366.53125 A 0.461794,0.461794 0 0 0 539.8125,367 v 28 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 1.25 A 0.461794,0.461794 0 0 0 542,395 v -28 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -1.25 a 0.461794,0.461794 0 0 0 -0.0312,0 m -71.5938,0.0312 a 0.461794,0.461794 0 0 0 -0.4375,0.46875 v 6.344 h -9.594 c -2.055,0 -3.72,0.557 -4.938,1.688 -1.227,1.14 -1.844,2.814 -1.844,4.875 v 8.969 0.031 c -0.026,0.276 -0.031,0.514 -0.031,0.75 0,1.261 0.378,2.407 1.094,3.438 0.72,1.037 1.682,1.743 2.875,2.063 0.666,0.182 1.631,0.281 2.906,0.281 h 4.656 c 2.256,0 4.01,-0.508 5.219,-1.594 1.208,-1.086 1.812,-2.722 1.813,-4.781 v -22.06 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -1.219 a 0.461794,0.461794 0 0 0 -0.0312,0 m 13.312,6.781 c -0.246,0 -0.544,0.003 -0.906,0.031 -2.043,0.165 -3.617,0.762 -4.594,1.844 -0.975,1.081 -1.406,2.687 -1.406,4.75 v 9 c -0.035,0.149 -0.063,0.304 -0.063,0.563 0,1.9 0.744,3.464 2.156,4.531 1.268,0.952 2.911,1.406 4.875,1.406 h 10.938 A 0.461794,0.461794 0 0 0 493.4375,395 v -1.25 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -11.219 c -1.721,0 -2.815,-0.365 -3.406,-1 -0.483,-0.526 -0.875,-1.678 -1.031,-3.5 L 477.25,388.19 l 15.91,-6.94 a 0.461794,0.461794 0 0 0 0.28125,-0.4375 v -0.563 c 0,-2.299 -0.441,-4.056 -1.406,-5.188 -0.98,-1.148 -2.651,-1.661 -4.906,-1.688 l -5.156,-0.031 m 42.875,0 c -0.246,0 -0.544,0.003 -0.906,0.031 -2.044,0.165 -3.59,0.766 -4.563,1.844 -0.972,1.077 -1.438,2.682 -1.438,4.75 v 9 c -0.007,0.056 -0.028,0.128 -0.031,0.188 -0.005,0.109 0,0.226 0,0.375 0,1.9 0.744,3.464 2.156,4.531 1.268,0.952 2.911,1.406 4.875,1.406 h 10.906 A 0.461794,0.461794 0 0 0 536.3125,395 v -1.25 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -11.188 c -1.721,0 -2.815,-0.365 -3.406,-1 -0.489,-0.531 -0.906,-1.683 -1.063,-3.5 l -0.031,-0.594 15.875,-6.938 a 0.461794,0.461794 0 0 0 0.28125,-0.4375 v -0.563 c 0,-2.299 -0.441,-4.056 -1.406,-5.188 -0.98,-1.148 -2.651,-1.661 -4.906,-1.688 l -5.156,-0.031 m 74.53,0 c -0.246,0 -0.544,0.003 -0.906,0.031 -2.044,0.165 -3.59,0.766 -4.563,1.844 -0.972,1.077 -1.438,2.682 -1.438,4.75 v 9 c -0.007,0.056 -0.028,0.128 -0.031,0.188 -0.005,0.109 0,0.226 0,0.375 0,1.9 0.744,3.464 2.156,4.531 1.268,0.952 2.911,1.406 4.875,1.406 h 10.906 A 0.461794,0.461794 0 0 0 610.84375,395 v -1.25 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -11.188 c -1.721,0 -2.815,-0.365 -3.406,-1 -0.489,-0.531 -0.906,-1.683 -1.063,-3.5 l -0.031,-0.594 15.875,-6.938 a 0.461794,0.461794 0 0 0 0.28125,-0.4375 v -0.563 c 0,-2.299 -0.441,-4.056 -1.406,-5.188 -0.98,-1.148 -2.651,-1.661 -4.906,-1.688 l -5.156,-0.031 m -104.81255,0.0311 a 0.461794,0.461794 0 0 0 -0.375,0.65625 l 9.531,20.406 A 0.461794,0.461794 0 0 0 503.75,394.5 c 0.179,0.282 0.265,0.469 0.313,0.563 a 0.461794,0.461794 0 0 0 0.0312,0.0312 c 0.228,0.344 0.609,0.594 1.031,0.594 0.318,0 0.609,-0.186 0.813,-0.406 0.204,-0.22 0.341,-0.498 0.5,-0.844 L 516,374.03 a 0.461794,0.461794 0 0 0 -0.40625,-0.65625 h -1.438 a 0.461794,0.461794 0 0 0 -0.40625,0.28125 l -8.688,18.563 -8.625,-18.563 a 0.461794,0.461794 0 0 0 -0.40625,-0.28125 h -1.438 a 0.461794,0.461794 0 0 0 -0.0312,0 m 58.812,0 c -1.893,0 -3.402,0.433 -4.5,1.313 h -0.031 c -0.847,0.682 -1.49,1.498 -1.813,2.438 -0.243,0.728 -0.344,1.717 -0.344,2.969 v 8.938 0.063 c -0.024,0.245 -0.031,0.493 -0.031,0.719 0,2.384 1.202,4.167 3.406,5.156 0.76,0.348 1.841,0.5 3.313,0.5 h 5.063 c 2.037,0 3.662,-0.532 4.75,-1.625 1.088,-1.093 1.594,-2.7 1.594,-4.75 v -9 c 0,-2.152 -0.51,-3.846 -1.594,-5 -1.084,-1.154 -2.708,-1.719 -4.75,-1.719 h -5.063 m 22.594,0 c -2.099,0 -3.754,0.509 -4.875,1.563 -1.121,1.054 -1.656,2.619 -1.656,4.594 v 22.469 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 1.219 A 0.461794,0.461794 0 0 0 571.59375,402 v -6.531 h 10.03 c 2.326,0 4.136,-0.908 5.281,-2.656 0.604,-0.935 0.906,-2.211 0.906,-3.813 v -9.5 c 0,-1.969 -0.582,-3.55 -1.781,-4.594 -1.199,-1.044 -2.96,-1.531 -5.188,-1.531 h -4.875 m 44.28,0 c -0.163,0.023 -0.283,0.031 -0.344,0.031 a 0.461794,0.461794 0 0 0 -0.0625,0 c -1.762,0.182 -3.159,0.837 -4.094,1.938 -0.935,1.101 -1.375,2.614 -1.375,4.5 L 614.34,395 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 1.281 A 0.461794,0.461794 0 0 0 616.5625,395 v -15.16 c 0,-1.372 0.295,-2.357 0.844,-3.03 0.549,-0.674 1.351,-1.076 2.531,-1.188 A 0.461794,0.461794 0 0 0 620,375.59375 c 0.06,-0.012 0.234,0 0.469,0 h 1.625 a 0.461794,0.461794 0 0 0 0.46875,-0.46875 v -1.281 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -1.781 a 0.461794,0.461794 0 0 0 -0.0625,0 m 8.938,0 c -1.698,0 -3.149,0.407 -4.281,1.219 -1.258,0.907 -1.906,2.277 -1.906,3.938 v 1.313 c 0,1.784 0.546,3.208 1.656,4.156 1.111,0.949 2.728,1.406 4.781,1.406 h 4.938 c 1.209,0 1.929,0.264 2.313,0.75 a 0.461794,0.461794 0 0 0 0.0312,0.0312 c 0.341,0.401 0.615,1.241 0.719,2.5 l 0.063,1 v 0.031 c 0,0.077 -0.006,0.323 -0.031,0.75 -0.074,1.012 -0.387,1.68 -0.906,2.125 -0.519,0.445 -1.288,0.688 -2.406,0.688 h -10.625 A 0.461794,0.461794 0 0 0 623.0625,393.75 V 395 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 10.563 c 2.32,0 4.095,-0.869 5.03,-2.594 0.435,-0.808 0.594,-1.869 0.594,-3.188 v -1.031 c 0,-1.765 -0.417,-3.163 -1.313,-4.125 -0.895,-0.962 -2.237,-1.437 -3.906,-1.438 h -5.03 c -1.499,0 -2.564,-0.231 -3.156,-0.625 -0.762,-0.493 -1.125,-1.309 -1.125,-2.656 v -1.313 c 0,-0.969 0.352,-1.692 1.188,-2.313 0.473,-0.35 1.426,-0.594 2.844,-0.594 h 10.156 A 0.461794,0.461794 0 0 0 639.845,375.123 v -1.281 a 0.461794,0.461794 0 0 0 -0.47,-0.467 h -10.188 m -146.91,2.219 h 4.281 c 1.605,0 2.76,0.325 3.5,0.906 0.74,0.581 1.119,1.405 1.156,2.656 0,0.026 -0.038,0.291 -0.063,0.5 l -13.938,6.125 v -6.188 c 0,-1.613 0.443,-2.623 1.313,-3.219 0.726,-0.499 1.985,-0.781 3.75,-0.781 m 42.906,0 h 4.25 c 1.605,0 2.76,0.325 3.5,0.906 0.74,0.581 1.119,1.405 1.156,2.656 0,0.077 -0.013,0.317 -0.031,0.531 l -13.938,6.094 v -6.188 c 0,-1.613 0.443,-2.623 1.313,-3.219 0.726,-0.499 1.985,-0.781 3.75,-0.781 m 28.22,0 h 4.969 c 1.485,0 2.524,0.348 3.188,1 0.664,0.652 1,1.651 1,3.094 v 9.875 c 0,1.776 -0.591,2.84 -1.906,3.438 -0.418,0.188 -1.19,0.281 -2.281,0.281 h -4.969 c -0.956,0 -1.632,-0.004 -1.906,-0.063 -0.911,-0.182 -1.541,-0.584 -1.969,-1.188 -0.428,-0.603 -0.656,-1.458 -0.656,-2.594 v -9.75 c 0,-1.967 0.638,-3.132 2.031,-3.781 0.376,-0.178 1.252,-0.312 2.5,-0.313 m 22.719,0 h 4.781 c 1.64,0 2.792,0.333 3.531,0.969 0.739,0.636 1.125,1.592 1.125,2.969 v 9.563 c 0,1.487 -0.34,2.525 -0.969,3.188 -0.629,0.662 -1.583,1 -2.969,1 h -10.03 v -13.625 c 0,-1.422 0.374,-2.409 1.094,-3.063 0.72,-0.653 1.841,-1 3.438,-1 m 23.594,0 h 4.25 c 1.605,0 2.76,0.325 3.5,0.906 0.74,0.581 1.119,1.405 1.156,2.656 0,0.077 -0.013,0.317 -0.031,0.531 l -13.938,6.094 v -6.188 c 0,-1.613 0.443,-2.623 1.313,-3.219 0.726,-0.499 1.985,-0.781 3.75,-0.781 m -141.13,0.031 h 9.625 v 13.375 c 0,1.311 -0.357,2.247 -1.063,2.938 -0.695,0.681 -1.783,1.14 -3.281,1.313 -0.023,0.003 -0.04,-0.002 -0.063,0 h -0.344 a 0.461794,0.461794 0 0 0 -0.0625,0 c -0.16,0.023 -0.281,0.031 -0.375,0.031 h -4.406 c -1.81,0 -3,-0.358 -3.625,-0.969 -0.618,-0.607 -0.969,-1.787 -0.969,-3.594 v -8.719 c 0,-1.727 0.575,-2.927 1.844,-3.781 0.584,-0.382 1.495,-0.594 2.719,-0.594" - inkscape:connector-curvature="0" - style="fill:#f59812;fill-opacity:1" /> - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + path + id="path3025" + transform="translate(0.893,0)" + d="M 540.25,366.53125 A 0.461794,0.461794 0 0 0 539.8125,367 v 28 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 1.25 A 0.461794,0.461794 0 0 0 542,395 v -28 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -1.25 a 0.461794,0.461794 0 0 0 -0.0312,0 m -71.5938,0.0312 a 0.461794,0.461794 0 0 0 -0.4375,0.46875 v 6.344 h -9.594 c -2.055,0 -3.72,0.557 -4.938,1.688 -1.227,1.14 -1.844,2.814 -1.844,4.875 v 8.969 0.031 c -0.026,0.276 -0.031,0.514 -0.031,0.75 0,1.261 0.378,2.407 1.094,3.438 0.72,1.037 1.682,1.743 2.875,2.063 0.666,0.182 1.631,0.281 2.906,0.281 h 4.656 c 2.256,0 4.01,-0.508 5.219,-1.594 1.208,-1.086 1.812,-2.722 1.813,-4.781 v -22.06 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -1.219 a 0.461794,0.461794 0 0 0 -0.0312,0 m 13.312,6.781 c -0.246,0 -0.544,0.003 -0.906,0.031 -2.043,0.165 -3.617,0.762 -4.594,1.844 -0.975,1.081 -1.406,2.687 -1.406,4.75 v 9 c -0.035,0.149 -0.063,0.304 -0.063,0.563 0,1.9 0.744,3.464 2.156,4.531 1.268,0.952 2.911,1.406 4.875,1.406 h 10.938 A 0.461794,0.461794 0 0 0 493.4375,395 v -1.25 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -11.219 c -1.721,0 -2.815,-0.365 -3.406,-1 -0.483,-0.526 -0.875,-1.678 -1.031,-3.5 L 477.25,388.19 l 15.91,-6.94 a 0.461794,0.461794 0 0 0 0.28125,-0.4375 v -0.563 c 0,-2.299 -0.441,-4.056 -1.406,-5.188 -0.98,-1.148 -2.651,-1.661 -4.906,-1.688 l -5.156,-0.031 m 42.875,0 c -0.246,0 -0.544,0.003 -0.906,0.031 -2.044,0.165 -3.59,0.766 -4.563,1.844 -0.972,1.077 -1.438,2.682 -1.438,4.75 v 9 c -0.007,0.056 -0.028,0.128 -0.031,0.188 -0.005,0.109 0,0.226 0,0.375 0,1.9 0.744,3.464 2.156,4.531 1.268,0.952 2.911,1.406 4.875,1.406 h 10.906 A 0.461794,0.461794 0 0 0 536.3125,395 v -1.25 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -11.188 c -1.721,0 -2.815,-0.365 -3.406,-1 -0.489,-0.531 -0.906,-1.683 -1.063,-3.5 l -0.031,-0.594 15.875,-6.938 a 0.461794,0.461794 0 0 0 0.28125,-0.4375 v -0.563 c 0,-2.299 -0.441,-4.056 -1.406,-5.188 -0.98,-1.148 -2.651,-1.661 -4.906,-1.688 l -5.156,-0.031 m 74.53,0 c -0.246,0 -0.544,0.003 -0.906,0.031 -2.044,0.165 -3.59,0.766 -4.563,1.844 -0.972,1.077 -1.438,2.682 -1.438,4.75 v 9 c -0.007,0.056 -0.028,0.128 -0.031,0.188 -0.005,0.109 0,0.226 0,0.375 0,1.9 0.744,3.464 2.156,4.531 1.268,0.952 2.911,1.406 4.875,1.406 h 10.906 A 0.461794,0.461794 0 0 0 610.84375,395 v -1.25 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -11.188 c -1.721,0 -2.815,-0.365 -3.406,-1 -0.489,-0.531 -0.906,-1.683 -1.063,-3.5 l -0.031,-0.594 15.875,-6.938 a 0.461794,0.461794 0 0 0 0.28125,-0.4375 v -0.563 c 0,-2.299 -0.441,-4.056 -1.406,-5.188 -0.98,-1.148 -2.651,-1.661 -4.906,-1.688 l -5.156,-0.031 m -104.81255,0.0311 a 0.461794,0.461794 0 0 0 -0.375,0.65625 l 9.531,20.406 A 0.461794,0.461794 0 0 0 503.75,394.5 c 0.179,0.282 0.265,0.469 0.313,0.563 a 0.461794,0.461794 0 0 0 0.0312,0.0312 c 0.228,0.344 0.609,0.594 1.031,0.594 0.318,0 0.609,-0.186 0.813,-0.406 0.204,-0.22 0.341,-0.498 0.5,-0.844 L 516,374.03 a 0.461794,0.461794 0 0 0 -0.40625,-0.65625 h -1.438 a 0.461794,0.461794 0 0 0 -0.40625,0.28125 l -8.688,18.563 -8.625,-18.563 a 0.461794,0.461794 0 0 0 -0.40625,-0.28125 h -1.438 a 0.461794,0.461794 0 0 0 -0.0312,0 m 58.812,0 c -1.893,0 -3.402,0.433 -4.5,1.313 h -0.031 c -0.847,0.682 -1.49,1.498 -1.813,2.438 -0.243,0.728 -0.344,1.717 -0.344,2.969 v 8.938 0.063 c -0.024,0.245 -0.031,0.493 -0.031,0.719 0,2.384 1.202,4.167 3.406,5.156 0.76,0.348 1.841,0.5 3.313,0.5 h 5.063 c 2.037,0 3.662,-0.532 4.75,-1.625 1.088,-1.093 1.594,-2.7 1.594,-4.75 v -9 c 0,-2.152 -0.51,-3.846 -1.594,-5 -1.084,-1.154 -2.708,-1.719 -4.75,-1.719 h -5.063 m 22.594,0 c -2.099,0 -3.754,0.509 -4.875,1.563 -1.121,1.054 -1.656,2.619 -1.656,4.594 v 22.469 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 1.219 A 0.461794,0.461794 0 0 0 571.59375,402 v -6.531 h 10.03 c 2.326,0 4.136,-0.908 5.281,-2.656 0.604,-0.935 0.906,-2.211 0.906,-3.813 v -9.5 c 0,-1.969 -0.582,-3.55 -1.781,-4.594 -1.199,-1.044 -2.96,-1.531 -5.188,-1.531 h -4.875 m 44.28,0 c -0.163,0.023 -0.283,0.031 -0.344,0.031 a 0.461794,0.461794 0 0 0 -0.0625,0 c -1.762,0.182 -3.159,0.837 -4.094,1.938 -0.935,1.101 -1.375,2.614 -1.375,4.5 L 614.34,395 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 1.281 A 0.461794,0.461794 0 0 0 616.5625,395 v -15.16 c 0,-1.372 0.295,-2.357 0.844,-3.03 0.549,-0.674 1.351,-1.076 2.531,-1.188 A 0.461794,0.461794 0 0 0 620,375.59375 c 0.06,-0.012 0.234,0 0.469,0 h 1.625 a 0.461794,0.461794 0 0 0 0.46875,-0.46875 v -1.281 a 0.461794,0.461794 0 0 0 -0.46875,-0.46875 h -1.781 a 0.461794,0.461794 0 0 0 -0.0625,0 m 8.938,0 c -1.698,0 -3.149,0.407 -4.281,1.219 -1.258,0.907 -1.906,2.277 -1.906,3.938 v 1.313 c 0,1.784 0.546,3.208 1.656,4.156 1.111,0.949 2.728,1.406 4.781,1.406 h 4.938 c 1.209,0 1.929,0.264 2.313,0.75 a 0.461794,0.461794 0 0 0 0.0312,0.0312 c 0.341,0.401 0.615,1.241 0.719,2.5 l 0.063,1 v 0.031 c 0,0.077 -0.006,0.323 -0.031,0.75 -0.074,1.012 -0.387,1.68 -0.906,2.125 -0.519,0.445 -1.288,0.688 -2.406,0.688 h -10.625 A 0.461794,0.461794 0 0 0 623.0625,393.75 V 395 a 0.461794,0.461794 0 0 0 0.46875,0.46875 h 10.563 c 2.32,0 4.095,-0.869 5.03,-2.594 0.435,-0.808 0.594,-1.869 0.594,-3.188 v -1.031 c 0,-1.765 -0.417,-3.163 -1.313,-4.125 -0.895,-0.962 -2.237,-1.437 -3.906,-1.438 h -5.03 c -1.499,0 -2.564,-0.231 -3.156,-0.625 -0.762,-0.493 -1.125,-1.309 -1.125,-2.656 v -1.313 c 0,-0.969 0.352,-1.692 1.188,-2.313 0.473,-0.35 1.426,-0.594 2.844,-0.594 h 10.156 A 0.461794,0.461794 0 0 0 639.845,375.123 v -1.281 a 0.461794,0.461794 0 0 0 -0.47,-0.467 h -10.188 m -146.91,2.219 h 4.281 c 1.605,0 2.76,0.325 3.5,0.906 0.74,0.581 1.119,1.405 1.156,2.656 0,0.026 -0.038,0.291 -0.063,0.5 l -13.938,6.125 v -6.188 c 0,-1.613 0.443,-2.623 1.313,-3.219 0.726,-0.499 1.985,-0.781 3.75,-0.781 m 42.906,0 h 4.25 c 1.605,0 2.76,0.325 3.5,0.906 0.74,0.581 1.119,1.405 1.156,2.656 0,0.077 -0.013,0.317 -0.031,0.531 l -13.938,6.094 v -6.188 c 0,-1.613 0.443,-2.623 1.313,-3.219 0.726,-0.499 1.985,-0.781 3.75,-0.781 m 28.22,0 h 4.969 c 1.485,0 2.524,0.348 3.188,1 0.664,0.652 1,1.651 1,3.094 v 9.875 c 0,1.776 -0.591,2.84 -1.906,3.438 -0.418,0.188 -1.19,0.281 -2.281,0.281 h -4.969 c -0.956,0 -1.632,-0.004 -1.906,-0.063 -0.911,-0.182 -1.541,-0.584 -1.969,-1.188 -0.428,-0.603 -0.656,-1.458 -0.656,-2.594 v -9.75 c 0,-1.967 0.638,-3.132 2.031,-3.781 0.376,-0.178 1.252,-0.312 2.5,-0.313 m 22.719,0 h 4.781 c 1.64,0 2.792,0.333 3.531,0.969 0.739,0.636 1.125,1.592 1.125,2.969 v 9.563 c 0,1.487 -0.34,2.525 -0.969,3.188 -0.629,0.662 -1.583,1 -2.969,1 h -10.03 v -13.625 c 0,-1.422 0.374,-2.409 1.094,-3.063 0.72,-0.653 1.841,-1 3.438,-1 m 23.594,0 h 4.25 c 1.605,0 2.76,0.325 3.5,0.906 0.74,0.581 1.119,1.405 1.156,2.656 0,0.077 -0.013,0.317 -0.031,0.531 l -13.938,6.094 v -6.188 c 0,-1.613 0.443,-2.623 1.313,-3.219 0.726,-0.499 1.985,-0.781 3.75,-0.781 m -141.13,0.031 h 9.625 v 13.375 c 0,1.311 -0.357,2.247 -1.063,2.938 -0.695,0.681 -1.783,1.14 -3.281,1.313 -0.023,0.003 -0.04,-0.002 -0.063,0 h -0.344 a 0.461794,0.461794 0 0 0 -0.0625,0 c -0.16,0.023 -0.281,0.031 -0.375,0.031 h -4.406 c -1.81,0 -3,-0.358 -3.625,-0.969 -0.618,-0.607 -0.969,-1.787 -0.969,-3.594 v -8.719 c 0,-1.727 0.575,-2.927 1.844,-3.781 0.584,-0.382 1.495,-0.594 2.719,-0.594" + inkscape:connector-curvature="0" + style="fill:#f59812;fill-opacity:1" /> + + + + diff --git a/logos/Xbox.svg b/static/logos/Xbox.svg similarity index 100% rename from logos/Xbox.svg rename to static/logos/Xbox.svg diff --git a/logos/Yahoo-MINI.svg b/static/logos/Yahoo-MINI.svg similarity index 100% rename from logos/Yahoo-MINI.svg rename to static/logos/Yahoo-MINI.svg diff --git a/logos/Yahoo.svg b/static/logos/Yahoo.svg similarity index 100% rename from logos/Yahoo.svg rename to static/logos/Yahoo.svg diff --git a/logos/YoYo Games.svg b/static/logos/YoYo Games.svg similarity index 100% rename from logos/YoYo Games.svg rename to static/logos/YoYo Games.svg diff --git a/logos/YouTube.svg b/static/logos/YouTube.svg similarity index 100% rename from logos/YouTube.svg rename to static/logos/YouTube.svg diff --git a/logos/allegorithmic.svg b/static/logos/allegorithmic.svg similarity index 100% rename from logos/allegorithmic.svg rename to static/logos/allegorithmic.svg diff --git a/logos/eBay.svg b/static/logos/eBay.svg similarity index 100% rename from logos/eBay.svg rename to static/logos/eBay.svg diff --git a/logos/giffgaff.svg b/static/logos/giffgaff.svg similarity index 100% rename from logos/giffgaff.svg rename to static/logos/giffgaff.svg diff --git a/logos/imgur-MINI.svg b/static/logos/imgur-MINI.svg similarity index 100% rename from logos/imgur-MINI.svg rename to static/logos/imgur-MINI.svg diff --git a/logos/imgur.svg b/static/logos/imgur.svg similarity index 100% rename from logos/imgur.svg rename to static/logos/imgur.svg diff --git a/logos/itch.io.svg b/static/logos/itch.io.svg similarity index 100% rename from logos/itch.io.svg rename to static/logos/itch.io.svg diff --git a/logos/itv.svg b/static/logos/itv.svg similarity index 100% rename from logos/itv.svg rename to static/logos/itv.svg diff --git a/logos/last.fm.svg b/static/logos/last.fm.svg similarity index 100% rename from logos/last.fm.svg rename to static/logos/last.fm.svg diff --git a/logos/lernu.svg b/static/logos/lernu.svg similarity index 100% rename from logos/lernu.svg rename to static/logos/lernu.svg diff --git a/logos/mailbox.org-MINI.svg b/static/logos/mailbox.org-MINI.svg similarity index 100% rename from logos/mailbox.org-MINI.svg rename to static/logos/mailbox.org-MINI.svg diff --git a/logos/mailbox.org.svg b/static/logos/mailbox.org.svg similarity index 100% rename from logos/mailbox.org.svg rename to static/logos/mailbox.org.svg diff --git a/logos/osu!.png b/static/logos/osu!.png similarity index 100% rename from logos/osu!.png rename to static/logos/osu!.png diff --git a/logos/paysafecard-MINI.svg b/static/logos/paysafecard-MINI.svg similarity index 100% rename from logos/paysafecard-MINI.svg rename to static/logos/paysafecard-MINI.svg diff --git a/logos/paysafecard.svg b/static/logos/paysafecard.svg similarity index 100% rename from logos/paysafecard.svg rename to static/logos/paysafecard.svg diff --git a/logos/pixiv-MINI.svg b/static/logos/pixiv-MINI.svg similarity index 100% rename from logos/pixiv-MINI.svg rename to static/logos/pixiv-MINI.svg diff --git a/logos/pixiv.svg b/static/logos/pixiv.svg similarity index 100% rename from logos/pixiv.svg rename to static/logos/pixiv.svg diff --git a/logos/plug.dj.svg b/static/logos/plug.dj.svg similarity index 100% rename from logos/plug.dj.svg rename to static/logos/plug.dj.svg diff --git a/logos/tic.computer.svg b/static/logos/tic.computer.svg similarity index 100% rename from logos/tic.computer.svg rename to static/logos/tic.computer.svg diff --git a/manifest.json b/static/manifest.json similarity index 96% rename from manifest.json rename to static/manifest.json index 51d5cbf1..2da6b6be 100644 --- a/manifest.json +++ b/static/manifest.json @@ -1,26 +1,26 @@ -{ - "lang": "en", - "name": "Cloverleaf", - "short_name": "Cloverleaf", - "description": "Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.", - "icons": [ - { - "src": "android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#87b2de", - "background_color": "#ffffff", - "display":"standalone", - "start_url": "index.html?utm_source=a2hs", - "related_applications": [{ - "platform": "webapp", - "url": "https://cloverleaf.app/manifest.json" - }] +{ + "lang": "en", + "name": "Cloverleaf", + "short_name": "Cloverleaf", + "description": "Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.", + "icons": [ + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#87b2de", + "background_color": "#ffffff", + "display":"standalone", + "start_url": "index.html?utm_source=a2hs", + "related_applications": [{ + "platform": "webapp", + "url": "https://cloverleaf.app/manifest.json" + }] } \ No newline at end of file diff --git a/mstile-144x144.png b/static/mstile-144x144.png similarity index 100% rename from mstile-144x144.png rename to static/mstile-144x144.png diff --git a/mstile-150x150.png b/static/mstile-150x150.png similarity index 100% rename from mstile-150x150.png rename to static/mstile-150x150.png diff --git a/mstile-310x150.png b/static/mstile-310x150.png similarity index 100% rename from mstile-310x150.png rename to static/mstile-310x150.png diff --git a/mstile-310x310.png b/static/mstile-310x310.png similarity index 100% rename from mstile-310x310.png rename to static/mstile-310x310.png diff --git a/mstile-70x70.png b/static/mstile-70x70.png similarity index 100% rename from mstile-70x70.png rename to static/mstile-70x70.png diff --git a/robots.txt b/static/robots.txt similarity index 95% rename from robots.txt rename to static/robots.txt index 6f27bb66..8093c87b 100644 --- a/robots.txt +++ b/static/robots.txt @@ -1,2 +1,2 @@ -User-agent: * +User-agent: * Disallow: \ No newline at end of file diff --git a/safari-pinned-tab.svg b/static/safari-pinned-tab.svg similarity index 100% rename from safari-pinned-tab.svg rename to static/safari-pinned-tab.svg diff --git a/bundles/sitemap.xml b/static/sitemap.xml similarity index 100% rename from bundles/sitemap.xml rename to static/sitemap.xml diff --git a/bundles/sitemap.xml.gz b/static/sitemap.xml.gz similarity index 100% rename from bundles/sitemap.xml.gz rename to static/sitemap.xml.gz diff --git a/sw.js b/sw.js deleted file mode 100644 index cd1b664c..00000000 --- a/sw.js +++ /dev/null @@ -1,74 +0,0 @@ -// This is the "Offline copy of pages" service worker -// Template from PWA Builder (https://www.pwabuilder.com/serviceworker) - -// Install stage sets up the index page (home page) in the cache and opens a new cache -self.addEventListener("install", event => { - const indexPage = new Request("index.html"); - event.waitUntil( - fetch(indexPage).then(response => caches.open("cloverleaf").then(cache => { - console.debug(`[PWA Builder] Cached index page during Install ${response.url}`); - return cache.put(indexPage, response); - })) - ); -}); - -// If any fetch fails, it will look for the request in the cache and serve it from there first -self.addEventListener("fetch", event => { - - // Make sure it's not an extension attempting to request - if (event.request.url.indexOf("http") === 0) { - const updateCache = function (request) { - return caches.open("cloverleaf").then(cache => fetch(request).then(response => { - console.debug(`[PWA Builder] add page to offline ${response.url}`); - return cache.put(request, response); - })); - }; - - event.waitUntil(updateCache(event.request)); - - event.respondWith( - fetch(event.request).catch(error => { - console.debug(`[PWA Builder] Network request Failed. Serving content from cache: ${error}`); - - // Check to see if you have it in the cache - // Return response - // If not in the cache, then return error page - return caches.open("cloverleaf").then(cache => cache.match(event.request).then(matching => { - const report = !matching || matching.status === 404 ? Promise.reject(new Error("no-match")) : matching; - return report; - })); - }) - ); - } -}); - -self.addEventListener("message", event => { - - if (location.origin === event.origin) { - - caches.open("cloverleaf").then(cloverleaf => { - // Get all cached files - cloverleaf.matchAll().then(res => { - res.filter(function (cacheName) { - // If the item is a bundle but not currently being used - if (cacheName.url.indexOf("bundles/bundle-") > -1 && - event.data.indexOf(cacheName.url) === -1) { - // Mark for deletion - return true; - } else { - // Keep it - return false; - } - }).map(function (mapItem) { - const toDelete = new Request(mapItem.url); - cloverleaf.delete(toDelete).then(e => - e ? console.debug("Removed unused bundle", toDelete) : console.warn("Failed to remove bundle", toDelete) - ); - }); - }); - }); - - } else { - throw new Error("Lisa, in this house we obey the laws of CORS!"); - } -}); \ No newline at end of file diff --git a/unit_tests/meta/get_var.py b/unit_tests/meta/get_var.py index 254c32ac..059853c2 100644 --- a/unit_tests/meta/get_var.py +++ b/unit_tests/meta/get_var.py @@ -1,2 +1,2 @@ -def getVar(driver, var): - return driver.execute_script("return getVar('"+var+"')") \ No newline at end of file +def getVar(driver, var): + return driver.execute_script("return "+var) diff --git a/unit_tests/meta/pass_vis.py b/unit_tests/meta/pass_vis.py index 205ac81a..8cfdb92c 100644 --- a/unit_tests/meta/pass_vis.py +++ b/unit_tests/meta/pass_vis.py @@ -1,11 +1,11 @@ -def show(driver): - if driver.find_element_by_id("result").get_attribute("type") == "password": - driver.find_element_by_id("resultTogglelever").click() - - return - -def hide(driver): - if driver.find_element_by_id("result").get_attribute("value") == "text": - driver.find_element_by_id("resultTogglelever").click() - - return +def show(driver): + if driver.find_element_by_id("result").get_attribute("type") == "password": + driver.find_element_by_id("resultTogglelever").click() + + return + +def hide(driver): + if driver.find_element_by_id("result").get_attribute("value") == "text": + driver.find_element_by_id("resultTogglelever").click() + + return diff --git a/unit_tests/requirements.txt b/unit_tests/requirements.txt index 21c767fd..a40a8bdc 100644 --- a/unit_tests/requirements.txt +++ b/unit_tests/requirements.txt @@ -1,3 +1,3 @@ -selenium==3.141.0 -pytest==5.0.1 +selenium==3.141.0 +pytest==5.0.1 deep-merge==0.0.4 \ No newline at end of file diff --git a/unit_tests/test_main.py b/unit_tests/test_main.py index b98a8274..7c36c265 100644 --- a/unit_tests/test_main.py +++ b/unit_tests/test_main.py @@ -1,286 +1,286 @@ -import pytest -from selenium import webdriver -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.firefox.options import Options -from selenium.common.exceptions import WebDriverException -from selenium.webdriver.common.action_chains import ActionChains -from meta import pass_vis -from meta import get_var -import json -from urllib.parse import quote -import deep_merge -getVar = get_var.getVar - -address = "http://localhost:8080/" -defaultMinLength = 4 -defaultMaxLength = 512 - -options = Options() -options.headless = True - -sites = {} -logos = {} -configs = {} -results = {} - -with open("../node_modules/cloverleaf/data/sites.json", 'r') as json_file: - sites = json.load(json_file) - -with open("../data/logos.json", 'r') as json_file: - logos = json.load(json_file) - -with open("../node_modules/cloverleaf/unit_tests/configs.json", 'r') as json_file: - configs = json.load(json_file) - -with open("../node_modules/cloverleaf/unit_tests/results.json", 'r') as json_file: - results = json.load(json_file) - -sites = deep_merge.merge(sites, logos) - - -def status_code(driver, url): - js = ''' - let callback = arguments[0]; - let xhr = new XMLHttpRequest(); - xhr.open('GET', ''' + "'" + url.replace("'", "\\\'") + "'" + ''', true); - xhr.onload = function () { - if (this.readyState === 4) { - callback(this.status); - } - }; - xhr.onerror = function () { - callback('error'); - }; - xhr.send(null); - ''' - - return driver.execute_async_script(js) - - -def read_clipboard(driver): - - box = driver.find_element_by_id("paste-box") - box.send_keys(Keys.CONTROL, "v") - toreturn = box.get_attribute("value") - box.clear() - return toreturn - - -@pytest.fixture() -def driver(): - driverInternal = webdriver.Firefox(options=options) - try: - driverInternal.get(address) - except WebDriverException: - assert False, "You need to host the localhost before you can run a unit test on it" - yield driverInternal - # Close procedures - driverInternal.close() - - -def test_caps_equals_nocaps(driver): - - pass_vis.show(driver) - - appElem = driver.find_element_by_id("app") - appElem.clear() - appElem.send_keys("Test site") - - passElem = driver.find_element_by_id("pass") - passElem.clear() - passElem.send_keys("Test password") - - caps = driver.find_element_by_id("result").get_attribute("value") - - appElem.clear() - appElem.send_keys("test site") - - nocaps = driver.find_element_by_id("result").get_attribute("value") - - assert caps == nocaps, "Output with caps and without is different" - - -# Tests to make sure that hitting enter properly applies -def test_enter_preset(driver): - - appElem = driver.find_element_by_id("app") - logo = driver.find_element_by_id("logo") - label = driver.find_element_by_xpath("/html/body/div[2]/div/div[1]/label") - passElem = driver.find_element_by_id("pass") - - # Add box for reading paste - driver.execute_script( - """body = document.querySelector('body'); - element = document.createElement('textarea'); - element.id = "paste-box" - body.append(element);""") - - for site in sites: - - label.click() - appElem.clear() - passElem.clear() - appElem.send_keys(site) - appElem.send_keys(Keys.ENTER) - - assert appElem.get_attribute("value") == site, "Enter not setting preset name - Preset: " + site - - if "minLength" in sites[site]: - assert getVar(driver, "minLength") == sites[site]["minLength"], "Enter not setting preset minLength - Preset: " + site - - if "maxLength" in sites[site]: - assert getVar(driver, "maxLength") == sites[site]["maxLength"], "Enter not setting preset maxLength - Preset: " + site - - # Logo - logoURL = "" - if "logo" in sites[site]: - logoURL = address + sites[site]["logo"] - else: - logoURL = address + "logos/" + site.replace(" ", "%20") + ".svg" - if "mini" in sites[site]: - if sites[site]["mini"]: - logoURL = address + "logos/" + site.replace(" ", "%20") + "-MINI.svg" - - assert logo.get_attribute("src") == logoURL, "Enter not setting preset logo src - Preset: " + site - assert status_code(driver, logoURL) == 200, "Enter not setting preset logo src (404) - Preset: " + site - - assert logo.get_attribute("title") == site, "Enter not setting preset logo title - Preset: " + site - assert logo.get_attribute("alt") == site, "Enter not setting preset logo alt - Preset: " + site - - passElem.send_keys(configs["default length"]["password"]) - - assert driver.find_element_by_id("result").get_attribute("value") == results["default length"][site]["result"], "Preset password incorrect - Preset: " + site - - # Click the copy button - driver.find_element_by_id("copy").click() - - assert read_clipboard(driver) == results["default length"][site]["result"], "Copy button not working - Preset: " + site - - # Remove text box used for reading from the clipboard - driver.execute_script("""let elem = document.getElementById('paste-box'); - elem.parentNode.removeChild(elem)""") - - -# Tests to make sure that query strings presets are loaded properly -def test_qs_preset(driver): - - for site in sites: - - driver.get(address + "?app="+quote(site)) - - appElem = driver.find_element_by_id("app") - logo = driver.find_element_by_id("logo") - - assert appElem.get_attribute("value") == site, "Query strings not setting preset name - Preset: " + site - - if "minLength" in sites[site]: - assert getVar(driver, "minLength") == sites[site]["minLength"], "Query strings not setting preset minLength - Preset: " + site - - if "maxLength" in sites[site]: - assert getVar(driver, "maxLength") == sites[site]["maxLength"], "Query strings not setting preset maxLength - Preset: " + site - - # Logo - logoURL = "" - if "logo" in sites[site]: - logoURL = address + sites[site]["logo"] - else: - logoURL = address + "logos/" + site.replace(" ", "%20") + ".svg" - if "mini" in sites[site]: - if sites[site]["mini"]: - logoURL = address + "logos/" + site.replace(" ", "%20") + "-MINI.svg" - - assert logo.get_attribute("src") == logoURL, "Query strings not setting preset logo src - Preset: " + site - assert status_code(driver, logoURL) == 200, "Query strings not setting preset logo src (404) - Preset: " + site - - assert logo.get_attribute("title") == site, "Query strings not setting preset logo title - Preset: " + site - assert logo.get_attribute("alt") == site, "Query strings not setting preset logo alt - Preset: " + site - - -# Tests to make sure that query strings without presets are loaded properly -def test_qs_no_preset(driver): - - driver.get(address + "?app=apple") - - appElem = driver.find_element_by_id("app") - logo = driver.find_element_by_id("logo") - - assert appElem.get_attribute("value") == "apple", "Query string incorrectly setting non-preset name" - assert getVar(driver, "minLength") == getVar(driver, "defaultMinLength"), "Query string incorrectly setting non-preset minLength" - assert getVar(driver, "maxLength") == getVar(driver, "defaultMaxLength"), "Query string incorrectly setting non-preset maxLength" - - # Logo - assert logo.get_attribute("src") is None, "Query string incorrectly setting non-preset logo src" - assert logo.get_attribute("title") == "", "Query string incorrectly setting non-preset logo title" - assert logo.get_attribute("alt") == "", "Query string incorrectly setting non-preset logo alt" - - -# Tests to make sure passwords generated are the right length -def test_lengths(driver): - - appElem = driver.find_element_by_id("app") - passElem = driver.find_element_by_id("pass") - # lengthElem = driver.find_element_by_id("length") - - appElem.send_keys("a") - passElem.send_keys("a") - - for length in range(defaultMinLength, defaultMaxLength+1): - - # lengthElem.clear() - # lengthElem.send_keys(length) - driver.execute_script("document.getElementById('length').value = " + str(length)) - - driver.execute_script("generate()") - - assert len(driver.find_element_by_id("result").get_attribute("value")) == length - - -def test_copy_shortcut(driver): - - # Add box for reading paste - driver.execute_script( - """body = document.querySelector('body'); - element = document.createElement('textarea'); - element.id = "paste-box" - body.append(element);""") - - appElem = driver.find_element_by_id("app") - passElem = driver.find_element_by_id("pass") - - appElem.send_keys("FAKE APP NAME") - passElem.send_keys("DO NOT USE THIS PASSWORD - Your security is at stake") - - # Copy app name - appElem.send_keys(Keys.CONTROL, "a") - driver.execute_script("document.execCommand('copy')") - # Deselect text - passElem.click() - - # Make sure normal copying still works - assert read_clipboard(driver) == "FAKE APP NAME", "Copy shortcut not working - interfering with normal shortcut" - - # Try using copy shortcut - action = ActionChains(driver) - action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform() - - assert read_clipboard(driver) == "sZ1\"\\B<]X<6|m}6q", "Copy shortcut not working" - - # Test mac keyboard shortcuts - # Copy app name - appElem.send_keys(Keys.META, "a") - driver.execute_script("document.execCommand('copy')") - # Deselect text - passElem.click() - - # Make sure normal copying still works - assert read_clipboard(driver) == "FAKE APP NAME", "Copy shortcut not working on mac - interfering with normal shortcut" - - # Try using copy shortcut - action = ActionChains(driver) - action.key_down(Keys.META).send_keys('c').key_up(Keys.META).perform() - - assert read_clipboard(driver) == "sZ1\"\\B<]X<6|m}6q", "Copy shortcut not working on mac" - - # Remove text box used for reading from the clipboard - driver.execute_script("""let elem = document.getElementById('paste-box'); - elem.parentNode.removeChild(elem)""") +import pytest +from selenium import webdriver +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.firefox.options import Options +from selenium.common.exceptions import WebDriverException +from selenium.webdriver.common.action_chains import ActionChains +from meta import pass_vis +from meta import get_var +import json +from urllib.parse import quote +import deep_merge +getVar = get_var.getVar + +address = "http://localhost:8080/" +defaultMinLength = 4 +defaultMaxLength = 512 + +options = Options() +options.headless = True + +sites = {} +logos = {} +configs = {} +results = {} + +with open("../node_modules/cloverleaf/data/sites.json", 'r') as json_file: + sites = json.load(json_file) + +with open("../data/logos.json", 'r') as json_file: + logos = json.load(json_file) + +with open("../node_modules/cloverleaf/unit_tests/configs.json", 'r') as json_file: + configs = json.load(json_file) + +with open("../node_modules/cloverleaf/unit_tests/results.json", 'r') as json_file: + results = json.load(json_file) + +sites = deep_merge.merge(sites, logos) + + +def status_code(driver, url): + js = ''' + let callback = arguments[0]; + let xhr = new XMLHttpRequest(); + xhr.open('GET', ''' + "'" + url.replace("'", "\\\'") + "'" + ''', true); + xhr.onload = function () { + if (this.readyState === 4) { + callback(this.status); + } + }; + xhr.onerror = function () { + callback('error'); + }; + xhr.send(null); + ''' + + return driver.execute_async_script(js) + + +def read_clipboard(driver): + + box = driver.find_element_by_id("paste-box") + box.send_keys(Keys.CONTROL, "v") + toreturn = box.get_attribute("value") + box.clear() + return toreturn + + +@pytest.fixture() +def driver(): + driverInternal = webdriver.Firefox(options=options) + try: + driverInternal.get(address) + except WebDriverException: + assert False, "You need to host the localhost before you can run a unit test on it" + yield driverInternal + # Close procedures + driverInternal.close() + + +def test_caps_equals_nocaps(driver): + + pass_vis.show(driver) + + appElem = driver.find_element_by_id("app") + appElem.clear() + appElem.send_keys("Test site") + + passElem = driver.find_element_by_id("pass") + passElem.clear() + passElem.send_keys("Test password") + + caps = driver.find_element_by_id("result").get_attribute("value") + + appElem.clear() + appElem.send_keys("test site") + + nocaps = driver.find_element_by_id("result").get_attribute("value") + + assert caps == nocaps, "Output with caps and without is different" + + +# Tests to make sure that hitting enter properly applies +def test_enter_preset(driver): + + appElem = driver.find_element_by_id("app") + logo = driver.find_element_by_id("logo") + label = driver.find_element_by_xpath("/html/body/div[2]/div/div[1]/label") + passElem = driver.find_element_by_id("pass") + + # Add box for reading paste + driver.execute_script( + """body = document.querySelector('body'); + element = document.createElement('textarea'); + element.id = "paste-box" + body.append(element);""") + + for site in sites: + + label.click() + appElem.clear() + passElem.clear() + appElem.send_keys(site) + appElem.send_keys(Keys.ENTER) + + assert appElem.get_attribute("value") == site, "Enter not setting preset name - Preset: " + site + + if "minLength" in sites[site]: + assert getVar(driver, "minLength") == sites[site]["minLength"], "Enter not setting preset minLength - Preset: " + site + + if "maxLength" in sites[site]: + assert getVar(driver, "maxLength") == sites[site]["maxLength"], "Enter not setting preset maxLength - Preset: " + site + + # Logo + logoURL = "" + if "logo" in sites[site]: + logoURL = address + sites[site]["logo"] + else: + logoURL = address + "logos/" + site.replace(" ", "%20") + ".svg" + if "mini" in sites[site]: + if sites[site]["mini"]: + logoURL = address + "logos/" + site.replace(" ", "%20") + "-MINI.svg" + + assert logo.get_attribute("src") == logoURL, "Enter not setting preset logo src - Preset: " + site + assert status_code(driver, logoURL) == 200, "Enter not setting preset logo src (404) - Preset: " + site + + assert logo.get_attribute("title") == site, "Enter not setting preset logo title - Preset: " + site + assert logo.get_attribute("alt") == site, "Enter not setting preset logo alt - Preset: " + site + + passElem.send_keys(configs["default length"]["password"]) + + assert driver.find_element_by_id("result").get_attribute("value") == results["default length"][site]["result"], "Preset password incorrect - Preset: " + site + + # Click the copy button + driver.find_element_by_id("copy").click() + + assert read_clipboard(driver) == results["default length"][site]["result"], "Copy button not working - Preset: " + site + + # Remove text box used for reading from the clipboard + driver.execute_script("""let elem = document.getElementById('paste-box'); + elem.parentNode.removeChild(elem)""") + + +# Tests to make sure that query strings presets are loaded properly +def test_qs_preset(driver): + + for site in sites: + + driver.get(address + "?app="+quote(site)) + + appElem = driver.find_element_by_id("app") + logo = driver.find_element_by_id("logo") + + assert appElem.get_attribute("value") == site, "Query strings not setting preset name - Preset: " + site + + if "minLength" in sites[site]: + assert getVar(driver, "minLength") == sites[site]["minLength"], "Query strings not setting preset minLength - Preset: " + site + + if "maxLength" in sites[site]: + assert getVar(driver, "maxLength") == sites[site]["maxLength"], "Query strings not setting preset maxLength - Preset: " + site + + # Logo + logoURL = "" + if "logo" in sites[site]: + logoURL = address + sites[site]["logo"] + else: + logoURL = address + "logos/" + site.replace(" ", "%20") + ".svg" + if "mini" in sites[site]: + if sites[site]["mini"]: + logoURL = address + "logos/" + site.replace(" ", "%20") + "-MINI.svg" + + assert logo.get_attribute("src") == logoURL, "Query strings not setting preset logo src - Preset: " + site + assert status_code(driver, logoURL) == 200, "Query strings not setting preset logo src (404) - Preset: " + site + + assert logo.get_attribute("title") == site, "Query strings not setting preset logo title - Preset: " + site + assert logo.get_attribute("alt") == site, "Query strings not setting preset logo alt - Preset: " + site + + +# Tests to make sure that query strings without presets are loaded properly +def test_qs_no_preset(driver): + + driver.get(address + "?app=apple") + + appElem = driver.find_element_by_id("app") + logo = driver.find_element_by_id("logo") + + assert appElem.get_attribute("value") == "apple", "Query string incorrectly setting non-preset name" + assert getVar(driver, "minLength") == getVar(driver, "defaultMinLength"), "Query string incorrectly setting non-preset minLength" + assert getVar(driver, "maxLength") == getVar(driver, "defaultMaxLength"), "Query string incorrectly setting non-preset maxLength" + + # Logo + assert logo.get_attribute("src") is None, "Query string incorrectly setting non-preset logo src" + assert logo.get_attribute("title") == "", "Query string incorrectly setting non-preset logo title" + assert logo.get_attribute("alt") == "", "Query string incorrectly setting non-preset logo alt" + + +# Tests to make sure passwords generated are the right length +def test_lengths(driver): + + appElem = driver.find_element_by_id("app") + passElem = driver.find_element_by_id("pass") + # lengthElem = driver.find_element_by_id("length") + + appElem.send_keys("a") + passElem.send_keys("a") + + for length in range(defaultMinLength, defaultMaxLength+1): + + # lengthElem.clear() + # lengthElem.send_keys(length) + driver.execute_script("document.getElementById('length').value = " + str(length)) + + driver.execute_script("generate()") + + assert len(driver.find_element_by_id("result").get_attribute("value")) == length + + +def test_copy_shortcut(driver): + + # Add box for reading paste + driver.execute_script( + """body = document.querySelector('body'); + element = document.createElement('textarea'); + element.id = "paste-box" + body.append(element);""") + + appElem = driver.find_element_by_id("app") + passElem = driver.find_element_by_id("pass") + + appElem.send_keys("FAKE APP NAME") + passElem.send_keys("DO NOT USE THIS PASSWORD - Your security is at stake") + + # Copy app name + appElem.send_keys(Keys.CONTROL, "a") + driver.execute_script("document.execCommand('copy')") + # Deselect text + passElem.click() + + # Make sure normal copying still works + assert read_clipboard(driver) == "FAKE APP NAME", "Copy shortcut not working - interfering with normal shortcut" + + # Try using copy shortcut + action = ActionChains(driver) + action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform() + + assert read_clipboard(driver) == "sZ1\"\\B<]X<6|m}6q", "Copy shortcut not working" + + # Test mac keyboard shortcuts + # Copy app name + appElem.send_keys(Keys.META, "a") + driver.execute_script("document.execCommand('copy')") + # Deselect text + passElem.click() + + # Make sure normal copying still works + assert read_clipboard(driver) == "FAKE APP NAME", "Copy shortcut not working on mac - interfering with normal shortcut" + + # Try using copy shortcut + action = ActionChains(driver) + action.key_down(Keys.META).send_keys('c').key_up(Keys.META).perform() + + assert read_clipboard(driver) == "sZ1\"\\B<]X<6|m}6q", "Copy shortcut not working on mac" + + # Remove text box used for reading from the clipboard + driver.execute_script("""let elem = document.getElementById('paste-box'); + elem.parentNode.removeChild(elem)""")