diff --git a/PKG-INFO b/PKG-INFO index 882996dc..16c80e03 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,127 +1,127 @@ Metadata-Version: 2.1 Name: swh.web -Version: 0.0.225 +Version: 0.0.226 Summary: Software Heritage Web UI Home-page: https://forge.softwareheritage.org/diffusion/DWUI/ Author: Software Heritage developers Author-email: swh-devel@inria.fr License: UNKNOWN Project-URL: Bug Reports, https://forge.softwareheritage.org/maniphest Project-URL: Funding, https://www.softwareheritage.org/donate Project-URL: Source, https://forge.softwareheritage.org/source/swh-web Description: # swh-web This repository holds the development of Software Heritage web applications: * swh-web API (https://archive.softwareheritage.org/api): enables to query the content of the archive through HTTP requests and get responses in JSON or YAML. * swh-web browse (https://archive.softwareheritage.org/browse): graphical interface that eases the navigation in the archive. Documentation about how to use these components but also the details of their URI schemes can be found in the docs folder. The produced HTML documentation can be read and browsed at https://docs.softwareheritage.org/devel/swh-web/index.html. ## Technical details Those applications are powered by: * [Django Web Framework](https://www.djangoproject.com/) on the backend side with the following extensions enabled: * [django-rest-framework](http://www.django-rest-framework.org/) * [django-webpack-loader](https://github.com/owais/django-webpack-loader) * [django-js-reverse](http://django-js-reverse.readthedocs.io/en/latest/) * [webpack](https://webpack.js.org/) on the frontend side for better static assets management, including: * assets dependencies management and retrieval through [yarn](https://yarnpkg.com/en/) * linting of custom javascript code (through [eslint](https://eslint.org/)) and stylesheets (through [stylelint](https://stylelint.io/)) * use of [es6](http://es6-features.org) syntax and advanced javascript feature like [async/await](https://javascript.info/async-await) or [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) thanks to [babel](https://babeljs.io/) (es6 to es5 transpiler and polyfills provider) * assets minification (using [terser](https://github.com/terser-js/terser) and [cssnano](http://cssnano.co/)) but also dead code elimination for production use ## How to build, run and test ### Backend requirements First you will need [Python 3](https://www.python.org) and a complete [swh development environment](https://forge.softwareheritage.org/source/swh-environment/) installed. To run the backend, you need to have the following [Python 3 modules](requirements.txt) installed. To run the backend tests, the following [Python 3 modules](requirements-test.txt) are also required to be installed. One easy way to install them is to use the `pip` tool: ``` $ pip install -r requirements.txt -r requirements-test.txt ``` ### Frontend requirements To compile the frontend assets, you need to have [nodejs](https://nodejs.org/en/) >= 8.9.0 and [yarn](https://yarnpkg.com/en/) installed. If you are on Debian stretch, you can easily install an up to date nodejs from the [stretch-backports](https://backports.debian.org/Instructions/) repository. Packages for yarn can be installed by following [these instructions](https://yarnpkg.com/en/docs/install#debian-stable). Alternatively, you can install yarn with `npm install yarn`, and add `YARN=node_modules/yarn/bin/yarn` as argument whenever you run `make`. Please note that the static assets bundles generated by webpack are not stored in the git repository. Follow the instructions below in order to generate them in order to be able to run the frontend part of the web applications. ### Make targets to execute the applications Below is the list of available make targets that can be executed from the root directory of swh-web in order to build and/or execute the web applications under various configurations: * **run-django-webpack-devserver**: Compile and serve not optimized (without mignification and dead code elimination) frontend static assets using [webpack-dev-server](https://github.com/webpack/webpack-dev-server) and run django server with development settings. This is the recommended target to use when developing swh-web as it enables automatic reloading of backend and frontend part of the applications when modifying source files (*.py, *.js, *.css, *.html). * **run-django-webpack-dev**: Compile not optimized (no minification, no dead code elimination) frontend static assets using webpack and run django server with development settings. This is the recommended target when one only wants to develop the backend side of the application. * **run-django-webpack-prod**: Compile optimized (with minification and dead code elimination) frontend static assets using webpack and run django server with production settings. This is useful to test the applications in production mode (with the difference that static assets are served by django). Production settings notably enable advanced django caching and you will need to have [memcached](https://memcached.org/) installed for that feature to work. * **run-django-server-dev**: Run the django server with development settings but without compiling frontend static assets through webpack. * **run-django-server-prod**: Run the django server with production settings but without compiling frontend static assets through webpack. * **run-gunicorn-server**: Run the web applications with production settings in a [gunicorn](http://gunicorn.org/) worker as they will be in real production environment. Once one of these targets executed, the web applications can be executed by pointing your browser to http://localhost:5004. ### Make targets to test the applications Some make targets are also available to easily execute the backend and frontend tests of the Software Heritage web applications. The backend tests are powered by the [pytest](https://docs.pytest.org/en/latest/) and [hypothesis](https://hypothesis.readthedocs.io/en/latest/) frameworks while the frontend ones rely on the use of the [cypress](https://www.cypress.io/) tool. Below is the exhaustive list of those targets: * **test**: execute the backend tests using a fast hypothesis profile (only one input example will be provided for each test) * **test-full**: execute the backend tests using a slower hypothesis profile (one hundred of input examples will be provided for each test which helps spotting possible bugs) * **test-frontend**: execute the frontend tests using cypress in headless mode but with some slow test suites disabled * **test-frontend-full**: execute the frontend tests using cypress in headless mode with all test suites enabled * **test-frontend-ui**: execute the frontend tests using the cypress GUI but with some slow test suites disabled * **test-frontend-full-ui**: execute the frontend tests using the cypress GUI with all test suites enabled ### Yarn targets Below is a list of available yarn targets in order to only execute the frontend static assets compilation (no web server will be executed): * **build-dev**: compile not optimized (without mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. * **build**: compile optimized (with mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. **The build target must be executed prior performing the Debian packaging of swh-web** in order for the package to contain the optimized assets dedicated to production environment. To execute these targets, issue the following command: ``` $ yarn ``` Platform: UNKNOWN Classifier: Programming Language :: Python :: 3 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+) Classifier: Operating System :: OS Independent Classifier: Development Status :: 5 - Production/Stable Classifier: Framework :: Django Description-Content-Type: text/markdown Provides-Extra: testing diff --git a/package.json b/package.json index 86c5d585..bc4e93d2 100644 --- a/package.json +++ b/package.json @@ -1,137 +1,137 @@ { "name": "swh-web", "version": "0.0.225", "description": "Static assets management for swh-web", "scripts": { "build-dev": "NODE_ENV=development webpack --config ./swh/web/assets/config/webpack.config.development.js --colors", "build-test": "NODE_ENV=test webpack --config ./swh/web/assets/config/webpack.config.development.js --colors", "start-dev": "NODE_ENV=development nodemon --watch swh/web/api --watch swh/web/browse --watch swh/web/templates --watch swh/web/common --watch swh/web/settings --watch swh/web/assets/config --ext py,html,js --exec \"webpack-dev-server --info=false --config ./swh/web/assets/config/webpack.config.development.js --colors\"", "build": "NODE_ENV=production webpack --config ./swh/web/assets/config/webpack.config.production.js --colors", "mochawesome": "mochawesome-merge cypress/mochawesome/results/*.json > cypress/mochawesome/mochawesome.json && marge -o cypress/mochawesome/report cypress/mochawesome/mochawesome.json", "eslint": "eslint -c swh/web/assets/config/.eslintrc --fix swh/web/assets/** cypress/integration/** cypress/plugins/** cypress/support/**", "preinstall": "npm -v || (SWH_WEB=$PWD && cd /tmp && yarn add npm && cd node_modules/npm && yarn link && cd $SWH_WEB && yarn link npm)", "nyc-report": "nyc report --reporter=lcov" }, "repository": { "type": "git", "url": "https://forge.softwareheritage.org/source/swh-web" }, "author": "The Software Heritage developers", "license": "AGPL-3.0-or-later", "dependencies": { "@babel/runtime-corejs3": "^7.8.4", "@sentry/browser": "^5.12.1", "admin-lte": "^3.0.2", "ansi_up": "^4.0.4", "bootstrap": "^4.4.1", "chosen-js": "^1.8.7", "clipboard": "^2.0.4", "core-js": "^3.6.4", "d3": "^5.15.0", "datatables.net-responsive-bs4": "^2.2.3", "dompurify": "^2.0.8", "font-awesome": "^4.7.0", "highlight.js": "^9.18.1", "highlightjs-line-numbers.js": "^2.7.0", "html-encoder-decoder": "^1.3.8", "iframe-resizer": "^4.2.10", "jquery": "^3.4.1", "js-cookie": "^2.2.1", "js-year-calendar": "^1.0.0-alpha.7", "notebookjs": "^0.4.2", "object-fit-images": "^3.2.4", "octicons": "^8.5.0", "org": "^0.2.0", "pdfjs-dist": "^2.2.228", "popper.js": "^1.16.1", "showdown": "^1.9.1", "typeface-alegreya": "0.0.69", "typeface-alegreya-sans": "^0.0.72", "validate.js": "^0.13.1", "waypoints": "^4.0.1", "whatwg-fetch": "^3.0.0" }, "devDependencies": { "@babel/core": "^7.8.4", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-runtime": "^7.8.3", "@babel/preset-env": "^7.8.4", - "@cypress/code-coverage": "^1.11.1", + "@cypress/code-coverage": "^1.12.2", "autoprefixer": "^9.7.4", "axios": "^0.19.2", "babel-eslint": "^10.0.3", "babel-loader": "^8.0.6", "babel-plugin-istanbul": "^6.0.0", "bootstrap-loader": "^3.0.4", "cache-loader": "^4.1.0", "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^5.1.1", "css-loader": "^3.4.2", - "cypress": "^4.0.1", - "cypress-multi-reporters": "^1.2.3", + "cypress": "^4.0.2", + "cypress-multi-reporters": "^1.2.4", "ejs": "^3.0.1", "eslint": "^6.8.0", "eslint-loader": "^3.0.3", "eslint-plugin-chai-friendly": "^0.5.0", - "eslint-plugin-cypress": "^2.9.0", + "eslint-plugin-cypress": "^2.10.1", "eslint-plugin-import": "^2.20.1", "eslint-plugin-node": "^11.0.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^4.0.1", "exports-loader": "^0.7.0", "expose-loader": "^0.7.5", "file-loader": "^5.0.2", "imports-loader": "^0.8.0", "istanbul-lib-coverage": "^3.0.0", - "less": "^3.11.0", + "less": "^3.11.1", "less-loader": "^5.0.0", "mini-css-extract-plugin": "^0.9.0", "mocha": "^7.0.1", "mochawesome": "^4.1.0", "mochawesome-merge": "^4.0.0", "mochawesome-report-generator": "^4.1.0", "node-sass": "^4.13.1", "nodemon": "^2.0.2", "nyc": "^15.0.0", "optimize-css-assets-webpack-plugin": "^5.0.3", "postcss-loader": "^3.0.0", "postcss-normalize": "^8.0.1", "postcss-reporter": "^6.0.1", "progress-bar-webpack-plugin": "^2.1.0", "resolve-url-loader": "^3.1.1", "robotstxt-webpack-plugin": "^7.0.0", "sass-loader": "^8.0.2", "schema-utils": "^2.6.4", "script-loader": "^0.7.2", "spdx-expression-parse": "^3.0.0", "style-loader": "^1.1.3", - "stylelint": "^13.1.0", + "stylelint": "^13.2.0", "stylelint-config-standard": "^20.0.0", - "terser-webpack-plugin": "^2.3.4", + "terser-webpack-plugin": "^2.3.5", "url-loader": "^3.0.0", - "webpack": "^4.41.5", + "webpack": "^4.41.6", "webpack-bundle-tracker": "^0.4.3", - "webpack-cli": "^3.3.10", + "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3" }, "browserslist": [ "cover 99.5%", "not dead" ], "postcss": { "plugins": { "autoprefixer": {}, "postcss-normalize": {} } }, "nyc": { "report-dir": "cypress/coverage", "exclude": [ "swh/web/assets/src/bundles/vendors/index.js", "swh/web/assets/src/thirdparty/**/*.js" ] }, "engines": { "node": ">=8.9.0" } } diff --git a/pytest.ini b/pytest.ini index 1205d3f6..0e799c22 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,4 +1,7 @@ [pytest] norecursedirs = docs node_modules .tox DJANGO_SETTINGS_MODULE = swh.web.settings.tests +filterwarnings = + ignore:.*Plural value must be an integer, got float + ignore:.*Using or importing the ABCs from 'collections' diff --git a/requirements-swh.txt b/requirements-swh.txt index 139763a0..d53d6a7b 100644 --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1,7 +1,7 @@ swh.model >= 0.0.32 -swh.storage >= 0.0.145 +swh.storage >= 0.0.172 swh.vault >= 0.0.23 swh.indexer >= 0.0.120 swh.scheduler >= 0.0.31 swh.core >= 0.0.81 swh.search >= 0.0.3 diff --git a/static/css/browse.a3b98efba34a099f7f2c.css b/static/css/browse.f94437a6b169adb8e3c7.css similarity index 99% rename from static/css/browse.a3b98efba34a099f7f2c.css rename to static/css/browse.f94437a6b169adb8e3c7.css index 885bb538..2bd055b9 100644 --- a/static/css/browse.a3b98efba34a099f7f2c.css +++ b/static/css/browse.f94437a6b169adb8e3c7.css @@ -1,2 +1,2 @@ .swh-browse-nav li a{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.scrollable-menu{max-height:180px;overflow-x:hidden}.swh-corner-ribbon{width:200px;background:#fecd1b;color:#e20026;position:absolute;text-align:center;line-height:50px;letter-spacing:1px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.3);-moz-box-shadow:0 0 3px rgba(0,0,0,.3);box-shadow:0 0 3px rgba(0,0,0,.3);top:55px;right:-50px;left:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);z-index:2000}.swh-loading{display:none;text-align:center;margin-top:10px}.swh-loading.show{display:block}.swh-table-cell-text-overflow{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.swh-directory-table{margin-bottom:0}.swh-directory-table td{border-top:1px solid #ddd!important}.swh-title-color{color:#e20026}.swh-log-entry-message{min-width:440px;max-width:440px;width:440px}.swh-search-pagination{margin-top:5px}.ui-slideouttab-panel{z-index:30000}#swh-identifiers{width:70vw;top:0;border:1px solid #e20026}#swh-identifiers .handle{background-color:#e20026;border:1px solid #e20026;color:#fff;padding-top:.1em;padding-bottom:.1em}#swh-identifiers-content{height:100%;overflow:auto}.swh-empty-snapshot{white-space:pre-line}td.swh-branch-name{max-width:300px}td.swh-branch-message{min-width:500px;max-width:500px}td.swh-branch-date{min-width:250px}@media screen and (max-width:600px){.swh-corner-ribbon{line-height:30px;top:53px;right:-65px}}.swh-browse-bread-crumbs{font-size:inherit;vertical-align:text-top;margin-bottom:1px}.swh-browse-bread-crumbs li:nth-child(n+2):before{content:"";display:inline-block;margin:0 2px}.swh-content{background-image:none;background-color:#fff;padding:0}.swh-content pre,.swh-content pre code{margin:0;padding:0}.swh-content img,.swh-content svg{max-width:100%}.chosen-container{color:#444}.chosen-container .chosen-single div b{margin-top:2px;-webkit-filter:brightness(0);filter:brightness(0)}.chosen-container .chosen-single{height:100%;line-height:1.5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#f4f4f4;border-color:#ddd;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;font-weight:400;font-size:14px;padding-top:4px;padding-bottom:4px}.chosen-container .chosen-single:hover{background-color:#e7e7e7}.swh-browse-top-navigation{min-height:43px;padding:4px 5px 0}.swh-branches-releases{min-width:200px}.swh-branches-switch,.swh-releases-switch{padding:5px 15px!important}li.swh-branch:hover,li.swh-release:hover{background-color:#e8e8e8}.swh-branch a:hover,.swh-release a:hover{text-decoration:none}.swh-origin-visit-details,.swh-snapshot-details{text-align:center}.swh-origin-visit-details ul,.swh-snapshot-details ul{list-style:none;margin:0;padding:0}.swh-origin-visit-details li,.swh-snapshot-details li{display:inline-block;vertical-align:middle;margin-left:10px;margin-right:10px}.ui-slideouttab-handle,.ui-slideouttab-panel{background-color:#fff;padding:.4em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ui-slideouttab-panel{display:block;position:fixed;border:2px solid grey}.ui-slideouttab-ready{-webkit-transition:-webkit-transform .5s ease 0s;transition:-webkit-transform .5s ease 0s;-o-transition:-o-transform .5s ease 0s;-moz-transition:transform .5s ease 0s,-moz-transform .5s ease 0s;transition:transform .5s ease 0s;transition:transform .5s ease 0s,-webkit-transform .5s ease 0s,-moz-transform .5s ease 0s,-o-transform .5s ease 0s}@media print{.ui-slideouttab-panel{display:none}}.ui-slideouttab-handle{display:block;position:absolute;cursor:pointer;color:#fff;background-color:grey}.ui-slideouttab-handle-image{-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}.ui-slideouttab-right{right:0;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-o-transform:translateX(100%);transform:translateX(100%);border-right:none}.ui-slideouttab-right.ui-slideouttab-open{-webkit-transform:translateX(0);-moz-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.ui-slideouttab-right .ui-slideouttab-handle{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-transform:rotate(-90deg) translate(-100%,-100%);-moz-transform:rotate(-90deg) translate(-100%,-100%);-o-transform:rotate(-90deg) translate(-100%,-100%);transform:rotate(-90deg) translate(-100%,-100%)}.ui-slideouttab-right .ui-slideouttab-handle-reverse{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-o-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.ui-slideouttab-left{left:0;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%);border-left:none}.ui-slideouttab-left.ui-slideouttab-open{-webkit-transform:translateX(0);-moz-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.ui-slideouttab-left .ui-slideouttab-handle{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-o-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.ui-slideouttab-left .ui-slideouttab-handle-reverse{-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:rotate(-90deg) translate(100%,100%);-moz-transform:rotate(-90deg) translate(100%,100%);-o-transform:rotate(-90deg) translate(100%,100%);transform:rotate(-90deg) translate(100%,100%)}.ui-slideouttab-top{top:0;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);transform:translateY(-100%);border-top:none}.ui-slideouttab-top.ui-slideouttab-open{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.ui-slideouttab-bottom{bottom:0;-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-o-transform:translateY(100%);transform:translateY(100%);border-bottom:none}.ui-slideouttab-bottom.ui-slideouttab-open{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.ui-slideouttab-left .ui-slideouttab-handle>.fa-icon,.ui-slideouttab-right .ui-slideouttab-handle>.fa-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.ui-slideouttab-handle>.fa-icon{margin-left:.5em}.ui-slideouttab-left .ui-slideouttab-handle-rounded,.ui-slideouttab-top .ui-slideouttab-handle-rounded{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.ui-slideouttab-bottom .ui-slideouttab-handle-rounded,.ui-slideouttab-right .ui-slideouttab-handle-rounded{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0} -/*# sourceMappingURL=browse.a3b98efba34a099f7f2c.css.map */ \ No newline at end of file +/*# sourceMappingURL=browse.f94437a6b169adb8e3c7.css.map */ \ No newline at end of file diff --git a/static/css/browse.a3b98efba34a099f7f2c.css.map b/static/css/browse.f94437a6b169adb8e3c7.css.map similarity index 99% rename from static/css/browse.a3b98efba34a099f7f2c.css.map rename to static/css/browse.f94437a6b169adb8e3c7.css.map index f7b7c9fe..d7e04f0f 100644 --- a/static/css/browse.a3b98efba34a099f7f2c.css.map +++ b/static/css/browse.f94437a6b169adb8e3c7.css.map @@ -1 +1 @@ -{"version":3,"sources":["/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/browse.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/breadcrumbs.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/content.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/snapshot-navigation.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css"],"names":[],"mappings":"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","file":"browse.a3b98efba34a099f7f2c.css","sourcesContent":["/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-nav li a {\n border-radius: 4px;\n}\n\n.scrollable-menu {\n max-height: 180px;\n overflow-x: hidden;\n}\n\n.swh-corner-ribbon {\n width: 200px;\n background: #fecd1b;\n color: #e20026;\n position: absolute;\n text-align: center;\n line-height: 50px;\n letter-spacing: 1px;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n top: 55px;\n right: -50px;\n left: auto;\n transform: rotate(45deg);\n z-index: 2000;\n}\n\n.swh-loading {\n display: none;\n text-align: center;\n margin-top: 10px;\n}\n\n.swh-loading.show {\n display: block;\n}\n\n.swh-table-cell-text-overflow {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.swh-directory-table {\n margin-bottom: 0;\n}\n\n.swh-directory-table td {\n border-top: 1px solid #ddd !important;\n}\n\n.swh-title-color {\n color: #e20026;\n}\n\n.swh-log-entry-message {\n min-width: 440px;\n max-width: 440px;\n width: 440px;\n}\n\n.swh-search-pagination {\n margin-top: 5px;\n}\n\n.ui-slideouttab-panel {\n z-index: 30000;\n}\n\n#swh-identifiers {\n width: 70vw;\n top: 0;\n border: 1px solid #e20026;\n}\n\n#swh-identifiers .handle {\n background-color: #e20026;\n border: 1px solid #e20026;\n color: white;\n padding-top: 0.1em;\n padding-bottom: 0.1em;\n}\n\n#swh-identifiers-content {\n height: 100%;\n overflow: auto;\n}\n\n.swh-empty-snapshot {\n white-space: pre-line;\n}\n\ntd.swh-branch-name {\n max-width: 300px;\n}\n\ntd.swh-branch-message {\n min-width: 500px;\n max-width: 500px;\n}\n\ntd.swh-branch-date {\n min-width: 250px;\n}\n\n@media screen and (max-width: 600px) {\n .swh-corner-ribbon {\n line-height: 30px;\n top: 53px;\n right: -65px;\n }\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-bread-crumbs {\n font-size: inherit;\n vertical-align: text-top;\n margin-bottom: 1px;\n}\n\n.swh-browse-bread-crumbs li:nth-child(n+2)::before {\n content: \"\";\n display: inline-block;\n margin: 0 2px;\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-content {\n background-image: none;\n background-color: white;\n padding: 0;\n}\n\n.swh-content pre,\n.swh-content pre code {\n margin: 0;\n padding: 0;\n}\n\n.swh-content img,\n.swh-content svg {\n max-width: 100%;\n}\n\n.chosen-container {\n color: #444;\n}\n\n.chosen-container .chosen-single div b {\n margin-top: 2px;\n filter: brightness(0%);\n}\n\n.chosen-container .chosen-single {\n height: 100%;\n line-height: 1.5;\n border-radius: 0;\n background-color: #f4f4f4;\n border-color: #ddd;\n background-image: none;\n box-shadow: none;\n font-weight: 400;\n font-size: 14px;\n padding-top: 4px;\n padding-bottom: 4px;\n}\n\n.chosen-container .chosen-single:hover {\n background-color: #e7e7e7;\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-top-navigation {\n min-height: 43px;\n padding: 4px 5px 0 5px;\n}\n\n.swh-branches-releases {\n min-width: 200px;\n}\n\n.swh-branches-switch,\n.swh-releases-switch {\n padding: 5px 15px !important;\n}\n\nli.swh-branch:hover,\nli.swh-release:hover {\n background-color: #e8e8e8;\n}\n\n.swh-branch a:hover,\n.swh-release a:hover {\n text-decoration: none;\n}\n\n.swh-origin-visit-details,\n.swh-snapshot-details {\n text-align: center;\n}\n\n.swh-origin-visit-details ul,\n.swh-snapshot-details ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.swh-origin-visit-details li,\n.swh-snapshot-details li {\n display: inline-block;\n vertical-align: middle;\n margin-left: 10px;\n margin-right: 10px;\n}\n","/*\n tabSlideOUt v2.4\n\n By Michael Fielding\n License: GPL v3.0\n*/\n\n.ui-slideouttab-panel,\n.ui-slideouttab-handle {\n background-color: white;\n padding: 0.4em;\n box-sizing: border-box;\n}\n\n.ui-slideouttab-panel {\n display: block;\n position: fixed;\n border: 2px solid grey;\n}\n\n/* This class is added after the tabs are initialised, otherwise the user sees the\n tabs slide out of the way when the page is initialised. */\n.ui-slideouttab-ready {\n transition: transform 0.5s ease 0s;\n}\n\n/* Hide tabs and panels when printed. */\n@media print {\n .ui-slideouttab-panel {\n display: none;\n }\n}\n\n/* Tab handles */\n.ui-slideouttab-handle {\n display: block;\n position: absolute;\n cursor: pointer;\n color: white;\n background-color: grey;\n}\n\n.ui-slideouttab-handle-image {\n transform: rotate(0);\n}\n\n/* Right */\n.ui-slideouttab-right {\n right: 0;\n transform: translateX(100%);\n border-right: none;\n}\n\n.ui-slideouttab-right.ui-slideouttab-open {\n transform: translateX(0%);\n}\n\n.ui-slideouttab-right .ui-slideouttab-handle {\n transform-origin: 0% 0%;\n transform: rotate(-90deg) translate(-100%, -100%);\n}\n\n.ui-slideouttab-right .ui-slideouttab-handle-reverse {\n transform-origin: 0% 100%;\n transform: rotate(-90deg);\n}\n\n/* Left */\n.ui-slideouttab-left {\n left: 0;\n transform: translateX(-100%);\n border-left: none;\n}\n\n.ui-slideouttab-left.ui-slideouttab-open {\n transform: translateX(0%);\n}\n\n.ui-slideouttab-left .ui-slideouttab-handle {\n transform-origin: 100% 0%;\n transform: rotate(-90deg);\n}\n\n.ui-slideouttab-left .ui-slideouttab-handle-reverse {\n transform-origin: 100% 100%;\n transform: rotate(-90deg) translate(100%, 100%);\n}\n\n/* Top */\n.ui-slideouttab-top {\n top: 0;\n transform: translateY(-100%);\n border-top: none;\n}\n\n.ui-slideouttab-top.ui-slideouttab-open {\n transform: translateY(0%);\n}\n\n/* Bottom */\n.ui-slideouttab-bottom {\n bottom: 0;\n transform: translateY(100%);\n border-bottom: none;\n}\n\n.ui-slideouttab-bottom.ui-slideouttab-open {\n transform: translateY(0%);\n}\n\n/* turn font awesome icon in a tab upright */\n.ui-slideouttab-left .ui-slideouttab-handle > .fa-icon,\n.ui-slideouttab-right .ui-slideouttab-handle > .fa-icon {\n transform: rotate(90deg);\n}\n\n.ui-slideouttab-handle > .fa-icon {\n margin-left: 0.5em;\n}\n\n/* apply rounded corners if handle has the -rounded class */\n.ui-slideouttab-top .ui-slideouttab-handle-rounded,\n.ui-slideouttab-left .ui-slideouttab-handle-rounded {\n border-radius: 0 0 4px 4px;\n}\n\n.ui-slideouttab-right .ui-slideouttab-handle-rounded,\n.ui-slideouttab-bottom .ui-slideouttab-handle-rounded {\n border-radius: 4px 4px 0 0;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/browse.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/breadcrumbs.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/content.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/browse/snapshot-navigation.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css"],"names":[],"mappings":"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","file":"browse.f94437a6b169adb8e3c7.css","sourcesContent":["/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-nav li a {\n border-radius: 4px;\n}\n\n.scrollable-menu {\n max-height: 180px;\n overflow-x: hidden;\n}\n\n.swh-corner-ribbon {\n width: 200px;\n background: #fecd1b;\n color: #e20026;\n position: absolute;\n text-align: center;\n line-height: 50px;\n letter-spacing: 1px;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n top: 55px;\n right: -50px;\n left: auto;\n transform: rotate(45deg);\n z-index: 2000;\n}\n\n.swh-loading {\n display: none;\n text-align: center;\n margin-top: 10px;\n}\n\n.swh-loading.show {\n display: block;\n}\n\n.swh-table-cell-text-overflow {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.swh-directory-table {\n margin-bottom: 0;\n}\n\n.swh-directory-table td {\n border-top: 1px solid #ddd !important;\n}\n\n.swh-title-color {\n color: #e20026;\n}\n\n.swh-log-entry-message {\n min-width: 440px;\n max-width: 440px;\n width: 440px;\n}\n\n.swh-search-pagination {\n margin-top: 5px;\n}\n\n.ui-slideouttab-panel {\n z-index: 30000;\n}\n\n#swh-identifiers {\n width: 70vw;\n top: 0;\n border: 1px solid #e20026;\n}\n\n#swh-identifiers .handle {\n background-color: #e20026;\n border: 1px solid #e20026;\n color: white;\n padding-top: 0.1em;\n padding-bottom: 0.1em;\n}\n\n#swh-identifiers-content {\n height: 100%;\n overflow: auto;\n}\n\n.swh-empty-snapshot {\n white-space: pre-line;\n}\n\ntd.swh-branch-name {\n max-width: 300px;\n}\n\ntd.swh-branch-message {\n min-width: 500px;\n max-width: 500px;\n}\n\ntd.swh-branch-date {\n min-width: 250px;\n}\n\n@media screen and (max-width: 600px) {\n .swh-corner-ribbon {\n line-height: 30px;\n top: 53px;\n right: -65px;\n }\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-bread-crumbs {\n font-size: inherit;\n vertical-align: text-top;\n margin-bottom: 1px;\n}\n\n.swh-browse-bread-crumbs li:nth-child(n+2)::before {\n content: \"\";\n display: inline-block;\n margin: 0 2px;\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-content {\n background-image: none;\n background-color: white;\n padding: 0;\n}\n\n.swh-content pre,\n.swh-content pre code {\n margin: 0;\n padding: 0;\n}\n\n.swh-content img,\n.swh-content svg {\n max-width: 100%;\n}\n\n.chosen-container {\n color: #444;\n}\n\n.chosen-container .chosen-single div b {\n margin-top: 2px;\n filter: brightness(0%);\n}\n\n.chosen-container .chosen-single {\n height: 100%;\n line-height: 1.5;\n border-radius: 0;\n background-color: #f4f4f4;\n border-color: #ddd;\n background-image: none;\n box-shadow: none;\n font-weight: 400;\n font-size: 14px;\n padding-top: 4px;\n padding-bottom: 4px;\n}\n\n.chosen-container .chosen-single:hover {\n background-color: #e7e7e7;\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-browse-top-navigation {\n min-height: 43px;\n padding: 4px 5px 0 5px;\n}\n\n.swh-branches-releases {\n min-width: 200px;\n}\n\n.swh-branches-switch,\n.swh-releases-switch {\n padding: 5px 15px !important;\n}\n\nli.swh-branch:hover,\nli.swh-release:hover {\n background-color: #e8e8e8;\n}\n\n.swh-branch a:hover,\n.swh-release a:hover {\n text-decoration: none;\n}\n\n.swh-origin-visit-details,\n.swh-snapshot-details {\n text-align: center;\n}\n\n.swh-origin-visit-details ul,\n.swh-snapshot-details ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.swh-origin-visit-details li,\n.swh-snapshot-details li {\n display: inline-block;\n vertical-align: middle;\n margin-left: 10px;\n margin-right: 10px;\n}\n","/*\n tabSlideOUt v2.4\n\n By Michael Fielding\n License: GPL v3.0\n*/\n\n.ui-slideouttab-panel,\n.ui-slideouttab-handle {\n background-color: white;\n padding: 0.4em;\n box-sizing: border-box;\n}\n\n.ui-slideouttab-panel {\n display: block;\n position: fixed;\n border: 2px solid grey;\n}\n\n/* This class is added after the tabs are initialised, otherwise the user sees the\n tabs slide out of the way when the page is initialised. */\n.ui-slideouttab-ready {\n transition: transform 0.5s ease 0s;\n}\n\n/* Hide tabs and panels when printed. */\n@media print {\n .ui-slideouttab-panel {\n display: none;\n }\n}\n\n/* Tab handles */\n.ui-slideouttab-handle {\n display: block;\n position: absolute;\n cursor: pointer;\n color: white;\n background-color: grey;\n}\n\n.ui-slideouttab-handle-image {\n transform: rotate(0);\n}\n\n/* Right */\n.ui-slideouttab-right {\n right: 0;\n transform: translateX(100%);\n border-right: none;\n}\n\n.ui-slideouttab-right.ui-slideouttab-open {\n transform: translateX(0%);\n}\n\n.ui-slideouttab-right .ui-slideouttab-handle {\n transform-origin: 0% 0%;\n transform: rotate(-90deg) translate(-100%, -100%);\n}\n\n.ui-slideouttab-right .ui-slideouttab-handle-reverse {\n transform-origin: 0% 100%;\n transform: rotate(-90deg);\n}\n\n/* Left */\n.ui-slideouttab-left {\n left: 0;\n transform: translateX(-100%);\n border-left: none;\n}\n\n.ui-slideouttab-left.ui-slideouttab-open {\n transform: translateX(0%);\n}\n\n.ui-slideouttab-left .ui-slideouttab-handle {\n transform-origin: 100% 0%;\n transform: rotate(-90deg);\n}\n\n.ui-slideouttab-left .ui-slideouttab-handle-reverse {\n transform-origin: 100% 100%;\n transform: rotate(-90deg) translate(100%, 100%);\n}\n\n/* Top */\n.ui-slideouttab-top {\n top: 0;\n transform: translateY(-100%);\n border-top: none;\n}\n\n.ui-slideouttab-top.ui-slideouttab-open {\n transform: translateY(0%);\n}\n\n/* Bottom */\n.ui-slideouttab-bottom {\n bottom: 0;\n transform: translateY(100%);\n border-bottom: none;\n}\n\n.ui-slideouttab-bottom.ui-slideouttab-open {\n transform: translateY(0%);\n}\n\n/* turn font awesome icon in a tab upright */\n.ui-slideouttab-left .ui-slideouttab-handle > .fa-icon,\n.ui-slideouttab-right .ui-slideouttab-handle > .fa-icon {\n transform: rotate(90deg);\n}\n\n.ui-slideouttab-handle > .fa-icon {\n margin-left: 0.5em;\n}\n\n/* apply rounded corners if handle has the -rounded class */\n.ui-slideouttab-top .ui-slideouttab-handle-rounded,\n.ui-slideouttab-left .ui-slideouttab-handle-rounded {\n border-radius: 0 0 4px 4px;\n}\n\n.ui-slideouttab-right .ui-slideouttab-handle-rounded,\n.ui-slideouttab-bottom .ui-slideouttab-handle-rounded {\n border-radius: 4px 4px 0 0;\n}\n"]} \ No newline at end of file diff --git a/static/css/vault.ca0a73c50330026034f5.css b/static/css/vault.4a7e12be1c0d2a47b149.css similarity index 73% rename from static/css/vault.ca0a73c50330026034f5.css rename to static/css/vault.4a7e12be1c0d2a47b149.css index 80d245d3..a942b12b 100644 --- a/static/css/vault.ca0a73c50330026034f5.css +++ b/static/css/vault.4a7e12be1c0d2a47b149.css @@ -1,2 +1,2 @@ .swh-vault-table{border-bottom:none!important;margin-bottom:0!important}.swh-vault-table td{vertical-align:middle!important;border-top:1px solid #ddd!important} -/*# sourceMappingURL=vault.ca0a73c50330026034f5.css.map */ \ No newline at end of file +/*# sourceMappingURL=vault.4a7e12be1c0d2a47b149.css.map */ \ No newline at end of file diff --git a/static/css/vault.ca0a73c50330026034f5.css.map b/static/css/vault.4a7e12be1c0d2a47b149.css.map similarity index 86% rename from static/css/vault.ca0a73c50330026034f5.css.map rename to static/css/vault.4a7e12be1c0d2a47b149.css.map index be4957a3..d6776b29 100644 --- a/static/css/vault.ca0a73c50330026034f5.css.map +++ b/static/css/vault.4a7e12be1c0d2a47b149.css.map @@ -1 +1 @@ -{"version":3,"sources":["/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/vault/vault.css"],"names":[],"mappings":"AAOA,iBACI,4BAA8B,CAC9B,yBACJ,CAEA,oBACI,+BAAiC,CACjC,mCACJ","file":"vault.ca0a73c50330026034f5.css","sourcesContent":["/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-vault-table {\n border-bottom: none !important;\n margin-bottom: 0 !important;\n}\n\n.swh-vault-table td {\n vertical-align: middle !important;\n border-top: 1px solid #ddd !important;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/vault/vault.css"],"names":[],"mappings":"AAOA,iBACI,4BAA8B,CAC9B,yBACJ,CAEA,oBACI,+BAAiC,CACjC,mCACJ","file":"vault.4a7e12be1c0d2a47b149.css","sourcesContent":["/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-vault-table {\n border-bottom: none !important;\n margin-bottom: 0 !important;\n}\n\n.swh-vault-table td {\n vertical-align: middle !important;\n border-top: 1px solid #ddd !important;\n}\n"]} \ No newline at end of file diff --git a/static/css/webapp.6583e14cb115c32af0b8.css b/static/css/webapp.0afe58b813354c5e6ded.css similarity index 65% rename from static/css/webapp.6583e14cb115c32af0b8.css rename to static/css/webapp.0afe58b813354c5e6ded.css index b8415dea..dc25db70 100644 --- a/static/css/webapp.6583e14cb115c32af0b8.css +++ b/static/css/webapp.0afe58b813354c5e6ded.css @@ -1,2 +1,2 @@ -html{height:100%;overflow-x:hidden;scroll-behavior:auto!important}body{min-height:100%;margin:0;position:relative;padding-bottom:120px}a.active,a:active{outline:none}code{background-color:#f9f2f4}pre code{background-color:transparent}footer{background-color:#262626;color:#fff;font-size:.8rem;position:absolute;bottom:0;width:100%;padding-top:20px;padding-bottom:20px}footer a,footer a:hover,footer a:visited{color:#fecd1b}footer a:hover{text-decoration:underline}.link-color{color:#fecd1b}pre{background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:9.5px;font-size:.8rem}.btn.active{background-color:#e7e7e7}.card{margin-bottom:5px!important;overflow-x:auto}.navbar-brand{padding:5px;margin-right:0}.table{margin-bottom:0}.swh-table thead{background-color:#f2f4f5;border-top:1px solid rgba(0,0,0,.2);font-weight:400}.swh-table-striped th{border-top:none}.swh-table-striped tbody tr:nth-child(2n){background-color:#f2f4f5}.swh-table-striped tbody tr:nth-child(odd){background-color:#fff}.swh-web-app-link a{text-decoration:none;border:none}.swh-web-app-link:hover{background-color:#efeff2}.table>thead>tr>th{border-top:none;border-bottom:1px solid #e20026}.table>tbody>tr>td{border-style:none}.sitename .first-word,.sitename .second-word{color:rgba(0,0,0,.75);font-weight:400;font-size:1.2rem}.sitename .first-word{font-family:Alegreya Sans,sans-serif}.sitename .second-word{font-family:Alegreya,serif}.swh-counter{font-size:150%}@media (max-width:600px){.swh-counter-container{margin-top:1rem}}.swh-http-error{margin:0 auto;text-align:center}.swh-http-error-head{color:#2d353c;font-size:30px}.swh-http-error-code{bottom:60%;color:#2d353c;font-size:96px;line-height:80px;margin-bottom:10px!important}.swh-http-error-desc{font-size:12px;color:#647788;text-align:center}.swh-http-error-desc pre{display:inline-block;text-align:left;max-width:800px;white-space:pre-wrap}.popover{max-width:97%;z-index:40000}.modal{text-align:center;padding:0!important;z-index:50000}.modal:before{content:"";height:100%;margin-right:-4px}.modal-dialog,.modal:before{display:inline-block;vertical-align:middle}.modal-dialog{text-align:left}.dropdown-submenu{position:relative}.dropdown-submenu .dropdown-menu{top:0;left:-100%;margin-top:-5px;margin-left:-2px}.dropdown-item:focus,.dropdown-item:hover{background-color:rgba(0,0,0,.1)}a.dropdown-left:before{content:"\f0d9";font-family:FontAwesome;display:block;width:20px;height:20px;float:left;margin-left:0}#swh-navbar{border-style:none none solid;border-bottom-width:5px;-webkit-border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;-webkit-border-image:-webkit-linear-gradient(left,#e20026,#fecd1b) 1 1 1 1;-moz-border-image:-moz-linear-gradient(left,#e20026 0,#fecd1b 100%) 1 1 1 1;-o-border-image:-o-linear-gradient(left,#e20026 0,#fecd1b 100%) 1 1 1 1;border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;border-image:linear-gradient(90deg,#e20026 0,#fecd1b) 1 1 1 1;width:100%;padding:5px;margin-bottom:10px;margin-top:30px;-webkit-box-pack:normal;-webkit-justify-content:normal;-moz-box-pack:normal;justify-content:normal;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;height:72px;overflow:hidden}#back-to-top{display:none;position:fixed;bottom:30px;right:30px;z-index:10}#back-to-top a img{display:block;width:32px;height:32px;-webkit-background-size:32px 32px;-moz-background-size:32px 32px;background-size:32px 32px;text-indent:-999px;overflow:hidden}.swh-top-bar{direction:ltr;height:30px;position:fixed;top:0;left:0;width:100%;z-index:99999;background-color:#262626;color:#fff;text-align:center;font-size:14px}.swh-top-bar ul{margin-top:4px;padding-left:0;white-space:nowrap}.swh-top-bar li{display:inline-block;margin-left:10px;margin-right:10px}.swh-top-bar a,.swh-top-bar a:visited{color:#fff}.swh-top-bar a.swh-current-site,.swh-top-bar a.swh-current-site:visited{color:#fecd1b}.swh-position-right{position:absolute;right:0}.swh-donate-link{border:1px solid #fecd1b;background-color:#e20026;color:#fff!important;padding:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.swh-navbar-content h4{padding-top:7px}.swh-navbar-content .bread-crumbs{display:block;margin-left:-40px}.swh-navbar-content .bread-crumbs li.bc-no-root{padding-top:7px}.main-sidebar{margin-top:30px}.content-wrapper{background:none}.brand-image{max-height:40px}.brand-link{padding-top:18.5px;padding-bottom:18px;padding-left:4px;border-bottom:5px solid #e20026!important}.navbar-header a,ul.dropdown-menu a,ul.nav-sidebar a,ul.navbar-nav a{border-bottom-style:none;color:#323232}.swh-sidebar .nav-link.active{color:#323232!important;background-color:#e7e7e7!important}.swh-image-error{width:80px;height:auto}@media (max-width:600px){.card{min-width:80%}.swh-image-error{width:40px;height:auto}.swh-navbar-content h4{font-size:1rem}.swh-donate-link{display:none}}.form-check-label{padding-top:4px}.swh-id-option{display:inline-block;margin-right:5px;line-height:1rem}.nav-pills .nav-link:not(.active):hover{color:rgba(0,0,0,.55)}.swh-heading-color{color:#e20026!important}.sidebar-mini.sidebar-collapse .main-sidebar:hover{width:4.6rem}.sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,.sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel>.info{visibility:hidden!important}.main-sidebar .brand-text,.sidebar .nav-link p,.sidebar .user-panel .info{-webkit-transition:none;-o-transition:none;-moz-transition:none;transition:none}.sidebar-mini.sidebar-mini.sidebar-collapse .sidebar{padding-right:0}.swh-words-logo{position:absolute;top:0;left:0;width:73px;height:73px;text-align:center;font-size:10pt;color:rgba(0,0,0,.75)}.swh-words-logo:hover{text-decoration:none}.swh-words-logo-swh{line-height:1;padding-top:13px;visibility:hidden}hr.swh-faded-line{border:0;height:1px;background-image:-webkit-gradient(linear,right top,left top,from(#f0f0f0),color-stop(#8c8b8b),to(#f0f0f0));background-image:-webkit-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:-moz-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:-o-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:linear-gradient(270deg,#f0f0f0,#8c8b8b,#f0f0f0)}.swh-readme h1 a,.swh-readme h2 a,.swh-readme h3 a,.swh-readme h4 a,.swh-readme h5 a,.swh-readme h6 a{color:#e20026}.swh-rst li p{margin-bottom:0}.swh-readme-txt pre{background:none;border:none}.swh-coverage-col{padding-left:10px;padding-right:10px}.swh-coverage{height:-webkit-calc(65px + 1em);height:-moz-calc(65px + 1em);height:calc(65px + 1em);padding-top:.3rem;border:none}.swh-coverage a{text-decoration:none}.swh-coverage-logo{display:block;width:100%;height:50px;margin-left:auto;margin-right:auto;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.swh-coverage-list{width:100%;height:320px;border:none}tr.swh-tr-hover-highlight:hover td{background:#ededed}tr.swh-api-doc-route a{text-decoration:none}.swh-apidoc .col{margin:10px}a.toggle-col{text-decoration:none}a.toggle-col.col-hidden{text-decoration:line-through}.admonition.warning{background:#fcf8e3;border:1px solid #faebcc;padding:15px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.admonition.warning p{margin-bottom:0}.admonition.warning .first{font-size:1.5rem}.swh-popover{max-height:50vh;overflow-y:auto;overflow-x:auto;padding:0 1.4em 0 0}@media screen and (min-width:768px){.swh-popover{max-width:50vw}}.swh-metadata-table-row{border-top:1px solid #ddd!important}.swh-metadata-table-key{min-width:200px;max-width:200px;width:200px}.swh-metadata-table-value pre{white-space:pre-wrap}.d3-wrapper{position:relative;height:0;width:100%;padding:0 0 100%}.d3-wrapper>svg{position:absolute;height:100%;width:100%;left:0;top:0}div.d3-tooltip{position:absolute;text-align:center;width:auto;height:auto;padding:2px;font:12px sans-serif;background:#fff;border:1px solid #000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;pointer-events:none}.page-link{cursor:pointer}.wrapper{overflow:hidden}.swh-badge{padding-bottom:1rem;cursor:pointer}.swh-badge-html,.swh-badge-md,.swh-badge-rst{white-space:pre-wrap}.bread-crumbs{display:inline-block;overflow:hidden;color:rgba(0,0,0,.55)}.bread-crumbs ul{list-style-type:none;height:100%}.bread-crumbs li{float:left;list-style-type:none}.bread-crumbs a{color:rgba(0,0,0,.75);border-bottom-style:none}.bread-crumbs a:hover{color:rgba(0,0,0,.85);text-decoration:underline}.nb-notebook{line-height:1.5;padding-left:6em;overflow-y:hidden}.nb-worksheet{width:99%}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,Andale Mono,monospace;padding:1em;margin:0 .5em}.nb-input{border:1px solid #cfcfcf;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#f7f7f7;margin:.4em;padding:0}.nb-notebook pre{margin:.4em!important;border:none;padding:0;background-color:transparent;min-height:1rem}.nb-output{min-height:1em;overflow-x:auto;margin-left:.5em;margin-right:.5em}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right;font-size:14px}.nb-input:before{content:"In [" attr(data-prompt-number) "]:";color:#303f9f}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:";color:#d84315}.nb-latex-output .MathJax_Display{text-align:left!important}.nb-heading-cell,.nb-markdown-cell{margin-left:1em;margin-right:1em}.nb-code-cell{margin:.4em}.nb-output pre{margin-top:.2em!important}@media screen and (max-width:600px){.nb-notebook{padding-left:0}.nb-input{margin-top:2em!important}.nb-input:before,.nb-output:before{text-align:left}.nb-input:before{left:.5em;top:-2em}.nb-output:before{position:relative;left:0;top:0}}.swh-history-counter-line{fill:none;stroke:#ffab00;stroke-width:3}.swh-history-counter-overlay{fill:none;pointer-events:all}.swh-history-counter-focus circle{fill:none;stroke:#ffab00;stroke-width:3}.swh-history-counter-focus text{font-size:14px}.swh-history-counter-tooltip{fill:#fff;stroke:#000} -/*# sourceMappingURL=webapp.6583e14cb115c32af0b8.css.map */ \ No newline at end of file +html{height:100%;overflow-x:hidden;scroll-behavior:auto!important}body{min-height:100%;margin:0;position:relative;padding-bottom:120px}a.active,a:active{outline:none}code{background-color:#f9f2f4}pre code{background-color:transparent}footer{background-color:#262626;color:#fff;font-size:.8rem;position:absolute;bottom:0;width:100%;padding-top:20px;padding-bottom:20px}footer a,footer a:hover,footer a:visited{color:#fecd1b}footer a:hover{text-decoration:underline}.link-color{color:#fecd1b}pre{background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:9.5px;font-size:.8rem}.btn.active{background-color:#e7e7e7}.card{margin-bottom:5px!important;overflow-x:auto}.navbar-brand{padding:5px;margin-right:0}.table{margin-bottom:0}.swh-table thead{background-color:#f2f4f5;border-top:1px solid rgba(0,0,0,.2);font-weight:400}.swh-table-striped th{border-top:none}.swh-table-striped tbody tr:nth-child(2n){background-color:#f2f4f5}.swh-table-striped tbody tr:nth-child(odd){background-color:#fff}.swh-web-app-link a{text-decoration:none;border:none}.swh-web-app-link:hover{background-color:#efeff2}.table>thead>tr>th{border-top:none;border-bottom:1px solid #e20026}.table>tbody>tr>td{border-style:none}.sitename .first-word,.sitename .second-word{color:rgba(0,0,0,.75);font-weight:400;font-size:1.2rem}.sitename .first-word{font-family:Alegreya Sans,sans-serif}.sitename .second-word{font-family:Alegreya,serif}.swh-counter{font-size:150%}@media (max-width:600px){.swh-counter-container{margin-top:1rem}}.swh-http-error{margin:0 auto;text-align:center}.swh-http-error-head{color:#2d353c;font-size:30px}.swh-http-error-code{bottom:60%;color:#2d353c;font-size:96px;line-height:80px;margin-bottom:10px!important}.swh-http-error-desc{font-size:12px;color:#647788;text-align:center}.swh-http-error-desc pre{display:inline-block;text-align:left;max-width:800px;white-space:pre-wrap}.popover{max-width:97%;z-index:40000}.modal{text-align:center;padding:0!important;z-index:50000}.modal:before{content:"";height:100%;margin-right:-4px}.modal-dialog,.modal:before{display:inline-block;vertical-align:middle}.modal-dialog{text-align:left}.dropdown-submenu{position:relative}.dropdown-submenu .dropdown-menu{top:0;left:-100%;margin-top:-5px;margin-left:-2px}.dropdown-item:focus,.dropdown-item:hover{background-color:rgba(0,0,0,.1)}a.dropdown-left:before{content:"\f0d9";font-family:FontAwesome;display:block;width:20px;height:20px;float:left;margin-left:0}#swh-navbar{border-style:none none solid;border-bottom-width:5px;-webkit-border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;-webkit-border-image:-webkit-linear-gradient(left,#e20026,#fecd1b) 1 1 1 1;-moz-border-image:-moz-linear-gradient(left,#e20026 0,#fecd1b 100%) 1 1 1 1;-o-border-image:-o-linear-gradient(left,#e20026 0,#fecd1b 100%) 1 1 1 1;border-image:-webkit-gradient(linear,left top,right top,from(#e20026),to(#fecd1b)) 1 1 1 1;border-image:linear-gradient(90deg,#e20026 0,#fecd1b) 1 1 1 1;width:100%;padding:5px;margin-bottom:10px;margin-top:30px;-webkit-box-pack:normal;-webkit-justify-content:normal;-moz-box-pack:normal;justify-content:normal;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;height:72px;overflow:hidden}#back-to-top{display:none;position:fixed;bottom:30px;right:30px;z-index:10}#back-to-top a img{display:block;width:32px;height:32px;-webkit-background-size:32px 32px;-moz-background-size:32px 32px;background-size:32px 32px;text-indent:-999px;overflow:hidden}.swh-top-bar{direction:ltr;height:30px;position:fixed;top:0;left:0;width:100%;z-index:99999;background-color:#262626;color:#fff;text-align:center;font-size:14px}.swh-top-bar ul{margin-top:4px;padding-left:0;white-space:nowrap}.swh-top-bar li{display:inline-block;margin-left:10px;margin-right:10px}.swh-top-bar a,.swh-top-bar a:visited{color:#fff}.swh-top-bar a.swh-current-site,.swh-top-bar a.swh-current-site:visited{color:#fecd1b}.swh-position-right{position:absolute;right:0}.swh-donate-link{border:1px solid #fecd1b;background-color:#e20026;color:#fff!important;padding:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.swh-navbar-content h4{padding-top:7px}.swh-navbar-content .bread-crumbs{display:block;margin-left:-40px}.swh-navbar-content .bread-crumbs li.bc-no-root{padding-top:7px}.main-sidebar{margin-top:30px}.content-wrapper{background:none}.brand-image{max-height:40px}.brand-link{padding-top:18.5px;padding-bottom:18px;padding-left:4px;border-bottom:5px solid #e20026!important}.navbar-header a,ul.dropdown-menu a,ul.nav-sidebar a,ul.navbar-nav a{border-bottom-style:none;color:#323232}.swh-sidebar .nav-link.active{color:#323232!important;background-color:#e7e7e7!important}.swh-image-error{width:80px;height:auto}@media (max-width:600px){.card{min-width:80%}.swh-image-error{width:40px;height:auto}.swh-navbar-content h4{font-size:1rem}.swh-donate-link{display:none}}.form-check-label{padding-top:4px}.swh-id-option{display:inline-block;margin-right:5px;line-height:1rem}.nav-pills .nav-link:not(.active):hover{color:rgba(0,0,0,.55)}.swh-heading-color{color:#e20026!important}.sidebar-mini.sidebar-collapse .main-sidebar:hover{width:4.6rem}.sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,.sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel>.info{visibility:hidden!important}.main-sidebar .brand-text,.sidebar .nav-link p,.sidebar .user-panel .info{-webkit-transition:none;-o-transition:none;-moz-transition:none;transition:none}.sidebar-mini.sidebar-mini.sidebar-collapse .sidebar{padding-right:0}.swh-words-logo{position:absolute;top:0;left:0;width:73px;height:73px;text-align:center;font-size:10pt;color:rgba(0,0,0,.75)}.swh-words-logo:hover{text-decoration:none}.swh-words-logo-swh{line-height:1;padding-top:13px;visibility:hidden}hr.swh-faded-line{border:0;height:1px;background-image:-webkit-gradient(linear,right top,left top,from(#f0f0f0),color-stop(#8c8b8b),to(#f0f0f0));background-image:-webkit-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:-moz-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:-o-linear-gradient(right,#f0f0f0,#8c8b8b,#f0f0f0);background-image:linear-gradient(270deg,#f0f0f0,#8c8b8b,#f0f0f0)}.swh-readme h1 a,.swh-readme h2 a,.swh-readme h3 a,.swh-readme h4 a,.swh-readme h5 a,.swh-readme h6 a{color:#e20026}.swh-rst li p{margin-bottom:0}.swh-readme-txt pre{background:none;border:none}.swh-coverage-col{padding-left:10px;padding-right:10px}.swh-coverage{height:-webkit-calc(65px + 1em);height:-moz-calc(65px + 1em);height:calc(65px + 1em);padding-top:.3rem;border:none}.swh-coverage a{text-decoration:none}.swh-coverage-logo{display:block;width:100%;height:50px;margin-left:auto;margin-right:auto;-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.swh-coverage-list{width:100%;height:320px;border:none}tr.swh-tr-hover-highlight:hover td{background:#ededed}tr.swh-api-doc-route a{text-decoration:none}.swh-apidoc .col{margin:10px}.swh-apidoc .swh-rst blockquote{border:0;margin:0;padding:0}a.toggle-col{text-decoration:none}a.toggle-col.col-hidden{text-decoration:line-through}.admonition.warning{background:#fcf8e3;border:1px solid #faebcc;padding:15px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.admonition.warning p{margin-bottom:0}.admonition.warning .first{font-size:1.5rem}.swh-popover{max-height:50vh;overflow-y:auto;overflow-x:auto;padding:0 1.4em 0 0}@media screen and (min-width:768px){.swh-popover{max-width:50vw}}.swh-metadata-table-row{border-top:1px solid #ddd!important}.swh-metadata-table-key{min-width:200px;max-width:200px;width:200px}.swh-metadata-table-value pre{white-space:pre-wrap}.d3-wrapper{position:relative;height:0;width:100%;padding:0 0 100%}.d3-wrapper>svg{position:absolute;height:100%;width:100%;left:0;top:0}div.d3-tooltip{position:absolute;text-align:center;width:auto;height:auto;padding:2px;font:12px sans-serif;background:#fff;border:1px solid #000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;pointer-events:none}.page-link{cursor:pointer}.wrapper{overflow:hidden}.swh-badge{padding-bottom:1rem;cursor:pointer}.swh-badge-html,.swh-badge-md,.swh-badge-rst{white-space:pre-wrap}.bread-crumbs{display:inline-block;overflow:hidden;color:rgba(0,0,0,.55)}.bread-crumbs ul{list-style-type:none;height:100%}.bread-crumbs li{float:left;list-style-type:none}.bread-crumbs a{color:rgba(0,0,0,.75);border-bottom-style:none}.bread-crumbs a:hover{color:rgba(0,0,0,.85);text-decoration:underline}.nb-notebook{line-height:1.5;padding-left:6em;overflow-y:hidden}.nb-worksheet{width:99%}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,Andale Mono,monospace;padding:1em;margin:0 .5em}.nb-input{border:1px solid #cfcfcf;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#f7f7f7;margin:.4em;padding:0}.nb-notebook pre{margin:.4em!important;border:none;padding:0;background-color:transparent;min-height:1rem}.nb-output{min-height:1em;overflow-x:auto;margin-left:.5em;margin-right:.5em}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right;font-size:14px}.nb-input:before{content:"In [" attr(data-prompt-number) "]:";color:#303f9f}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:";color:#d84315}.nb-latex-output .MathJax_Display{text-align:left!important}.nb-heading-cell,.nb-markdown-cell{margin-left:1em;margin-right:1em}.nb-code-cell{margin:.4em}.nb-output pre{margin-top:.2em!important}@media screen and (max-width:600px){.nb-notebook{padding-left:0}.nb-input{margin-top:2em!important}.nb-input:before,.nb-output:before{text-align:left}.nb-input:before{left:.5em;top:-2em}.nb-output:before{position:relative;left:0;top:0}}.swh-history-counter-line{fill:none;stroke:#ffab00;stroke-width:3}.swh-history-counter-overlay{fill:none;pointer-events:all}.swh-history-counter-focus circle{fill:none;stroke:#ffab00;stroke-width:3}.swh-history-counter-focus text{font-size:14px}.swh-history-counter-tooltip{fill:#fff;stroke:#000} +/*# sourceMappingURL=webapp.0afe58b813354c5e6ded.css.map */ \ No newline at end of file diff --git a/static/css/webapp.0afe58b813354c5e6ded.css.map b/static/css/webapp.0afe58b813354c5e6ded.css.map new file mode 100644 index 00000000..6826bda1 --- /dev/null +++ b/static/css/webapp.0afe58b813354c5e6ded.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/webapp.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/breadcrumbs.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/notebook.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/history-counters.css"],"names":[],"mappings":"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","file":"webapp.0afe58b813354c5e6ded.css","sourcesContent":["/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nhtml {\n height: 100%;\n overflow-x: hidden;\n scroll-behavior: auto !important;\n}\n\nbody {\n min-height: 100%;\n margin: 0;\n position: relative;\n padding-bottom: 120px;\n}\n\na:active,\na.active {\n outline: none;\n}\n\ncode {\n background-color: #f9f2f4;\n}\n\npre code {\n background-color: transparent;\n}\n\nfooter {\n background-color: #262626;\n color: #fff;\n font-size: 0.8rem;\n position: absolute;\n bottom: 0;\n width: 100%;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\nfooter a,\nfooter a:visited,\nfooter a:hover {\n color: #fecd1b;\n}\n\nfooter a:hover {\n text-decoration: underline;\n}\n\n.link-color {\n color: #fecd1b;\n}\n\npre {\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 9.5px;\n font-size: 0.8rem;\n}\n\n.btn.active {\n background-color: #e7e7e7;\n}\n\n.card {\n margin-bottom: 5px !important;\n overflow-x: auto;\n}\n\n.navbar-brand {\n padding: 5px;\n margin-right: 0;\n}\n\n.table {\n margin-bottom: 0;\n}\n\n.swh-table thead {\n background-color: #f2f4f5;\n border-top: 1px solid rgba(0, 0, 0, 0.2);\n font-weight: normal;\n}\n\n.swh-table-striped th {\n border-top: none;\n}\n\n.swh-table-striped tbody tr:nth-child(even) {\n background-color: #f2f4f5;\n}\n\n.swh-table-striped tbody tr:nth-child(odd) {\n background-color: #fff;\n}\n\n.swh-web-app-link a {\n text-decoration: none;\n border: none;\n}\n\n.swh-web-app-link:hover {\n background-color: #efeff2;\n}\n\n.table > thead > tr > th {\n border-top: none;\n border-bottom: 1px solid #e20026;\n}\n\n.table > tbody > tr > td {\n border-style: none;\n}\n\n.sitename .first-word,\n.sitename .second-word {\n color: rgba(0, 0, 0, 0.75);\n font-weight: normal;\n font-size: 1.2rem;\n}\n\n.sitename .first-word {\n font-family: 'Alegreya Sans', sans-serif;\n}\n\n.sitename .second-word {\n font-family: 'Alegreya', serif;\n}\n\n.swh-counter {\n font-size: 150%;\n}\n\n@media (max-width: 600px) {\n .swh-counter-container {\n margin-top: 1rem;\n }\n}\n\n.swh-http-error {\n margin: 0 auto;\n text-align: center;\n}\n\n.swh-http-error-head {\n color: #2d353c;\n font-size: 30px;\n}\n\n.swh-http-error-code {\n bottom: 60%;\n color: #2d353c;\n font-size: 96px;\n line-height: 80px;\n margin-bottom: 10px !important;\n}\n\n.swh-http-error-desc {\n font-size: 12px;\n color: #647788;\n text-align: center;\n}\n\n.swh-http-error-desc pre {\n display: inline-block;\n text-align: left;\n max-width: 800px;\n white-space: pre-wrap;\n}\n\n.popover {\n max-width: 97%;\n z-index: 40000;\n}\n\n.modal {\n text-align: center;\n padding: 0 !important;\n z-index: 50000;\n}\n\n.modal::before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n margin-right: -4px;\n}\n\n.modal-dialog {\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n}\n\n.dropdown-submenu {\n position: relative;\n}\n\n.dropdown-submenu .dropdown-menu {\n top: 0;\n left: -100%;\n margin-top: -5px;\n margin-left: -2px;\n}\n\n.dropdown-item:hover,\n.dropdown-item:focus {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\na.dropdown-left::before {\n content: \"\\f0d9\";\n font-family: 'FontAwesome';\n display: block;\n width: 20px;\n height: 20px;\n float: left;\n margin-left: 0;\n}\n\n#swh-navbar {\n border-top-style: none;\n border-left-style: none;\n border-right-style: none;\n border-bottom-style: solid;\n border-bottom-width: 5px;\n border-image: linear-gradient(to right, rgb(226, 0, 38) 0%, rgb(254, 205, 27) 100%) 1 1 1 1;\n width: 100%;\n padding: 5px;\n margin-bottom: 10px;\n margin-top: 30px;\n justify-content: normal;\n flex-wrap: nowrap;\n height: 72px;\n overflow: hidden;\n}\n\n#back-to-top {\n display: none;\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 10;\n}\n\n#back-to-top a img {\n display: block;\n width: 32px;\n height: 32px;\n background-size: 32px 32px;\n text-indent: -999px;\n overflow: hidden;\n}\n\n.swh-top-bar {\n direction: ltr;\n height: 30px;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 99999;\n background-color: #262626;\n color: #fff;\n text-align: center;\n font-size: 14px;\n}\n\n.swh-top-bar ul {\n margin-top: 4px;\n padding-left: 0;\n white-space: nowrap;\n}\n\n.swh-top-bar li {\n display: inline-block;\n margin-left: 10px;\n margin-right: 10px;\n}\n\n.swh-top-bar a,\n.swh-top-bar a:visited {\n color: white;\n}\n\n.swh-top-bar a.swh-current-site,\n.swh-top-bar a.swh-current-site:visited {\n color: #fecd1b;\n}\n\n.swh-position-right {\n position: absolute;\n right: 0;\n}\n\n.swh-donate-link {\n border: 1px solid #fecd1b;\n background-color: #e20026;\n color: white !important;\n padding: 3px;\n border-radius: 3px;\n}\n\n.swh-navbar-content h4 {\n padding-top: 7px;\n}\n\n.swh-navbar-content .bread-crumbs {\n display: block;\n margin-left: -40px;\n}\n\n.swh-navbar-content .bread-crumbs li.bc-no-root {\n padding-top: 7px;\n}\n\n.main-sidebar {\n margin-top: 30px;\n}\n\n.content-wrapper {\n background: none;\n}\n\n.brand-image {\n max-height: 40px;\n}\n\n.brand-link {\n padding-top: 18.5px;\n padding-bottom: 18px;\n padding-left: 4px;\n border-bottom: 5px solid #e20026 !important;\n}\n\n.navbar-header a,\nul.dropdown-menu a,\nul.navbar-nav a,\nul.nav-sidebar a {\n border-bottom-style: none;\n color: #323232;\n}\n\n.swh-sidebar .nav-link.active {\n color: #323232 !important;\n background-color: #e7e7e7 !important;\n}\n\n.swh-image-error {\n width: 80px;\n height: auto;\n}\n\n@media (max-width: 600px) {\n .card {\n min-width: 80%;\n }\n\n .swh-image-error {\n width: 40px;\n height: auto;\n }\n\n .swh-navbar-content h4 {\n font-size: 1rem;\n }\n\n .swh-donate-link {\n display: none;\n }\n}\n\n.form-check-label {\n padding-top: 4px;\n}\n\n.swh-id-option {\n display: inline-block;\n margin-right: 5px;\n line-height: 1rem;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n color: rgba(0, 0, 0, 0.55);\n}\n\n.swh-heading-color {\n color: #e20026 !important;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar:hover {\n width: 4.6rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text {\n visibility: hidden !important;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.sidebar .user-panel .info {\n transition: none;\n}\n\n.sidebar-mini.sidebar-mini.sidebar-collapse .sidebar {\n padding-right: 0;\n}\n\n.swh-words-logo {\n position: absolute;\n top: 0;\n left: 0;\n width: 73px;\n height: 73px;\n text-align: center;\n font-size: 10pt;\n color: rgba(0, 0, 0, 0.75);\n}\n\n.swh-words-logo:hover {\n text-decoration: none;\n}\n\n.swh-words-logo-swh {\n line-height: 1;\n padding-top: 13px;\n visibility: hidden;\n}\n\nhr.swh-faded-line {\n border: 0;\n height: 1px;\n background-image: linear-gradient(to left, #f0f0f0, #8c8b8b, #f0f0f0);\n}\n\n/* Ensure that section title with link is colored like standard section title */\n.swh-readme h1 a,\n.swh-readme h2 a,\n.swh-readme h3 a,\n.swh-readme h4 a,\n.swh-readme h5 a,\n.swh-readme h6 a {\n color: #e20026;\n}\n\n/* Make list compact in reStructuredText rendering */\n.swh-rst li p {\n margin-bottom: 0;\n}\n\n.swh-readme-txt pre {\n background: none;\n border: none;\n}\n\n.swh-coverage-col {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.swh-coverage {\n height: calc(65px + 1em);\n padding-top: 0.3rem;\n border: none;\n}\n\n.swh-coverage a {\n text-decoration: none;\n}\n\n.swh-coverage-logo {\n display: block;\n width: 100%;\n height: 50px;\n margin-left: auto;\n margin-right: auto;\n object-fit: contain;\n\n /* polyfill for old browsers, see https://github.com/bfred-it/object-fit-images */\n font-family: 'object-fit: contain;';\n}\n\n.swh-coverage-list {\n width: 100%;\n height: 320px;\n border: none;\n}\n\ntr.swh-tr-hover-highlight:hover td {\n background: #ededed;\n}\n\ntr.swh-api-doc-route a {\n text-decoration: none;\n}\n\n.swh-apidoc .col {\n margin: 10px;\n}\n\n.swh-apidoc .swh-rst blockquote {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\na.toggle-col {\n text-decoration: none;\n}\n\na.toggle-col.col-hidden {\n text-decoration: line-through;\n}\n\n.admonition.warning {\n background: #fcf8e3;\n border: 1px solid #faebcc;\n padding: 15px;\n border-radius: 4px;\n}\n\n.admonition.warning p {\n margin-bottom: 0;\n}\n\n.admonition.warning .first {\n font-size: 1.5rem;\n}\n\n.swh-popover {\n max-height: 50vh;\n overflow-y: auto;\n overflow-x: auto;\n padding: 0;\n padding-right: 1.4em;\n}\n\n@media screen and (min-width: 768px) {\n .swh-popover {\n max-width: 50vw;\n }\n}\n\n.swh-metadata-table-row {\n border-top: 1px solid #ddd !important;\n}\n\n.swh-metadata-table-key {\n min-width: 200px;\n max-width: 200px;\n width: 200px;\n}\n\n.swh-metadata-table-value pre {\n white-space: pre-wrap;\n}\n\n.d3-wrapper {\n position: relative;\n height: 0;\n width: 100%;\n padding: 0;\n\n /* padding-bottom will be overwritten by JavaScript later */\n padding-bottom: 100%;\n}\n\n.d3-wrapper > svg {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\ndiv.d3-tooltip {\n position: absolute;\n text-align: center;\n width: auto;\n height: auto;\n padding: 2px;\n font: 12px sans-serif;\n background: white;\n border: 1px solid black;\n border-radius: 4px;\n pointer-events: none;\n}\n\n.page-link {\n cursor: pointer;\n}\n\n.wrapper {\n overflow: hidden;\n}\n\n.swh-badge {\n padding-bottom: 1rem;\n cursor: pointer;\n}\n\n.swh-badge-html,\n.swh-badge-md,\n.swh-badge-rst {\n white-space: pre-wrap;\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.bread-crumbs {\n display: inline-block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.55);\n}\n\n.bread-crumbs ul {\n list-style-type: none;\n height: 100%;\n}\n\n.bread-crumbs li {\n float: left;\n list-style-type: none;\n}\n\n.bread-crumbs a {\n color: rgba(0, 0, 0, 0.75);\n border-bottom-style: none;\n}\n\n.bread-crumbs a:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: underline;\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n/* Adapted from https://github.com/jsvine/nbpreview/blob/master/css/vendor/notebook.css */\n\n.nb-notebook {\n line-height: 1.5;\n padding-left: 6em;\n overflow-y: hidden;\n}\n\n.nb-worksheet {\n width: 99%;\n}\n\n.nb-stdout,\n.nb-stderr {\n white-space: pre-wrap;\n margin: 1em 0;\n padding: 0.1em 0.5em;\n}\n\n.nb-stderr {\n background-color: #faa;\n}\n\n.nb-cell + .nb-cell {\n margin-top: 0.5em;\n}\n\n.nb-output table {\n border: 1px solid #000;\n border-collapse: collapse;\n}\n\n.nb-output th {\n font-weight: bold;\n}\n\n.nb-output th,\n.nb-output td {\n border: 1px solid #000;\n padding: 0.25em;\n text-align: left;\n vertical-align: middle;\n border-collapse: collapse;\n}\n\n.nb-cell {\n position: relative;\n}\n\n.nb-raw-cell {\n white-space: pre-wrap;\n background-color: #f5f2f0;\n font-family: Consolas, Monaco, 'Andale Mono', monospace;\n padding: 1em;\n margin: 0 0.5em;\n}\n\n.nb-input {\n border: 1px solid #cfcfcf;\n border-radius: 2px;\n background: #f7f7f7;\n margin: 0.4em;\n padding: 0;\n}\n\n.nb-notebook pre {\n margin: 0.4em !important;\n border: none;\n padding: 0;\n background-color: transparent;\n min-height: 1rem;\n}\n\n.nb-output {\n min-height: 1em;\n overflow-x: auto;\n margin-left: 0.5em;\n margin-right: 0.5em;\n}\n\n.nb-output img {\n max-width: 100%;\n}\n\n.nb-output::before,\n.nb-input::before {\n position: absolute;\n font-family: monospace;\n color: #999;\n left: -7.5em;\n width: 7em;\n text-align: right;\n font-size: 14px;\n}\n\n.nb-input::before {\n content: \"In [\" attr(data-prompt-number) \"]:\";\n color: #303f9f;\n}\n\n.nb-output::before {\n content: \"Out [\" attr(data-prompt-number) \"]:\";\n color: #d84315;\n}\n\n.nb-latex-output .MathJax_Display {\n text-align: left !important;\n}\n\n.nb-markdown-cell,\n.nb-heading-cell {\n margin-left: 1em;\n margin-right: 1em;\n}\n\n.nb-code-cell {\n margin: 0.4em;\n}\n\n.nb-output pre {\n margin-top: 0.2em !important;\n}\n\n@media screen and (max-width: 600px) {\n .nb-notebook {\n padding-left: 0;\n }\n\n .nb-input {\n margin-top: 2em !important;\n }\n\n .nb-output::before,\n .nb-input::before {\n text-align: left;\n }\n\n .nb-input::before {\n left: 0.5em;\n top: -2em;\n }\n\n .nb-output::before {\n position: relative;\n left: 0;\n top: 0;\n }\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-history-counter-line {\n fill: none;\n stroke: #ffab00;\n stroke-width: 3;\n}\n\n.swh-history-counter-overlay {\n fill: none;\n pointer-events: all;\n}\n\n.swh-history-counter-focus circle {\n fill: none;\n stroke: #ffab00;\n stroke-width: 3;\n}\n\n.swh-history-counter-focus text {\n font-size: 14px;\n}\n\n.swh-history-counter-tooltip {\n fill: white;\n stroke: #000;\n}\n"]} \ No newline at end of file diff --git a/static/css/webapp.6583e14cb115c32af0b8.css.map b/static/css/webapp.6583e14cb115c32af0b8.css.map deleted file mode 100644 index 541acb08..00000000 --- a/static/css/webapp.6583e14cb115c32af0b8.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/webapp.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/breadcrumbs.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/notebook.css","/home/jenkins/workspace/DWAPPS/pypi-upload/swh/web/assets/src/bundles/webapp/history-counters.css"],"names":[],"mappings":"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","file":"webapp.6583e14cb115c32af0b8.css","sourcesContent":["/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nhtml {\n height: 100%;\n overflow-x: hidden;\n scroll-behavior: auto !important;\n}\n\nbody {\n min-height: 100%;\n margin: 0;\n position: relative;\n padding-bottom: 120px;\n}\n\na:active,\na.active {\n outline: none;\n}\n\ncode {\n background-color: #f9f2f4;\n}\n\npre code {\n background-color: transparent;\n}\n\nfooter {\n background-color: #262626;\n color: #fff;\n font-size: 0.8rem;\n position: absolute;\n bottom: 0;\n width: 100%;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\nfooter a,\nfooter a:visited,\nfooter a:hover {\n color: #fecd1b;\n}\n\nfooter a:hover {\n text-decoration: underline;\n}\n\n.link-color {\n color: #fecd1b;\n}\n\npre {\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 9.5px;\n font-size: 0.8rem;\n}\n\n.btn.active {\n background-color: #e7e7e7;\n}\n\n.card {\n margin-bottom: 5px !important;\n overflow-x: auto;\n}\n\n.navbar-brand {\n padding: 5px;\n margin-right: 0;\n}\n\n.table {\n margin-bottom: 0;\n}\n\n.swh-table thead {\n background-color: #f2f4f5;\n border-top: 1px solid rgba(0, 0, 0, 0.2);\n font-weight: normal;\n}\n\n.swh-table-striped th {\n border-top: none;\n}\n\n.swh-table-striped tbody tr:nth-child(even) {\n background-color: #f2f4f5;\n}\n\n.swh-table-striped tbody tr:nth-child(odd) {\n background-color: #fff;\n}\n\n.swh-web-app-link a {\n text-decoration: none;\n border: none;\n}\n\n.swh-web-app-link:hover {\n background-color: #efeff2;\n}\n\n.table > thead > tr > th {\n border-top: none;\n border-bottom: 1px solid #e20026;\n}\n\n.table > tbody > tr > td {\n border-style: none;\n}\n\n.sitename .first-word,\n.sitename .second-word {\n color: rgba(0, 0, 0, 0.75);\n font-weight: normal;\n font-size: 1.2rem;\n}\n\n.sitename .first-word {\n font-family: 'Alegreya Sans', sans-serif;\n}\n\n.sitename .second-word {\n font-family: 'Alegreya', serif;\n}\n\n.swh-counter {\n font-size: 150%;\n}\n\n@media (max-width: 600px) {\n .swh-counter-container {\n margin-top: 1rem;\n }\n}\n\n.swh-http-error {\n margin: 0 auto;\n text-align: center;\n}\n\n.swh-http-error-head {\n color: #2d353c;\n font-size: 30px;\n}\n\n.swh-http-error-code {\n bottom: 60%;\n color: #2d353c;\n font-size: 96px;\n line-height: 80px;\n margin-bottom: 10px !important;\n}\n\n.swh-http-error-desc {\n font-size: 12px;\n color: #647788;\n text-align: center;\n}\n\n.swh-http-error-desc pre {\n display: inline-block;\n text-align: left;\n max-width: 800px;\n white-space: pre-wrap;\n}\n\n.popover {\n max-width: 97%;\n z-index: 40000;\n}\n\n.modal {\n text-align: center;\n padding: 0 !important;\n z-index: 50000;\n}\n\n.modal::before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n margin-right: -4px;\n}\n\n.modal-dialog {\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n}\n\n.dropdown-submenu {\n position: relative;\n}\n\n.dropdown-submenu .dropdown-menu {\n top: 0;\n left: -100%;\n margin-top: -5px;\n margin-left: -2px;\n}\n\n.dropdown-item:hover,\n.dropdown-item:focus {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\na.dropdown-left::before {\n content: \"\\f0d9\";\n font-family: 'FontAwesome';\n display: block;\n width: 20px;\n height: 20px;\n float: left;\n margin-left: 0;\n}\n\n#swh-navbar {\n border-top-style: none;\n border-left-style: none;\n border-right-style: none;\n border-bottom-style: solid;\n border-bottom-width: 5px;\n border-image: linear-gradient(to right, rgb(226, 0, 38) 0%, rgb(254, 205, 27) 100%) 1 1 1 1;\n width: 100%;\n padding: 5px;\n margin-bottom: 10px;\n margin-top: 30px;\n justify-content: normal;\n flex-wrap: nowrap;\n height: 72px;\n overflow: hidden;\n}\n\n#back-to-top {\n display: none;\n position: fixed;\n bottom: 30px;\n right: 30px;\n z-index: 10;\n}\n\n#back-to-top a img {\n display: block;\n width: 32px;\n height: 32px;\n background-size: 32px 32px;\n text-indent: -999px;\n overflow: hidden;\n}\n\n.swh-top-bar {\n direction: ltr;\n height: 30px;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 99999;\n background-color: #262626;\n color: #fff;\n text-align: center;\n font-size: 14px;\n}\n\n.swh-top-bar ul {\n margin-top: 4px;\n padding-left: 0;\n white-space: nowrap;\n}\n\n.swh-top-bar li {\n display: inline-block;\n margin-left: 10px;\n margin-right: 10px;\n}\n\n.swh-top-bar a,\n.swh-top-bar a:visited {\n color: white;\n}\n\n.swh-top-bar a.swh-current-site,\n.swh-top-bar a.swh-current-site:visited {\n color: #fecd1b;\n}\n\n.swh-position-right {\n position: absolute;\n right: 0;\n}\n\n.swh-donate-link {\n border: 1px solid #fecd1b;\n background-color: #e20026;\n color: white !important;\n padding: 3px;\n border-radius: 3px;\n}\n\n.swh-navbar-content h4 {\n padding-top: 7px;\n}\n\n.swh-navbar-content .bread-crumbs {\n display: block;\n margin-left: -40px;\n}\n\n.swh-navbar-content .bread-crumbs li.bc-no-root {\n padding-top: 7px;\n}\n\n.main-sidebar {\n margin-top: 30px;\n}\n\n.content-wrapper {\n background: none;\n}\n\n.brand-image {\n max-height: 40px;\n}\n\n.brand-link {\n padding-top: 18.5px;\n padding-bottom: 18px;\n padding-left: 4px;\n border-bottom: 5px solid #e20026 !important;\n}\n\n.navbar-header a,\nul.dropdown-menu a,\nul.navbar-nav a,\nul.nav-sidebar a {\n border-bottom-style: none;\n color: #323232;\n}\n\n.swh-sidebar .nav-link.active {\n color: #323232 !important;\n background-color: #e7e7e7 !important;\n}\n\n.swh-image-error {\n width: 80px;\n height: auto;\n}\n\n@media (max-width: 600px) {\n .card {\n min-width: 80%;\n }\n\n .swh-image-error {\n width: 40px;\n height: auto;\n }\n\n .swh-navbar-content h4 {\n font-size: 1rem;\n }\n\n .swh-donate-link {\n display: none;\n }\n}\n\n.form-check-label {\n padding-top: 4px;\n}\n\n.swh-id-option {\n display: inline-block;\n margin-right: 5px;\n line-height: 1rem;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n color: rgba(0, 0, 0, 0.55);\n}\n\n.swh-heading-color {\n color: #e20026 !important;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar:hover {\n width: 4.6rem;\n}\n\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n.sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text {\n visibility: hidden !important;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.sidebar .user-panel .info {\n transition: none;\n}\n\n.sidebar-mini.sidebar-mini.sidebar-collapse .sidebar {\n padding-right: 0;\n}\n\n.swh-words-logo {\n position: absolute;\n top: 0;\n left: 0;\n width: 73px;\n height: 73px;\n text-align: center;\n font-size: 10pt;\n color: rgba(0, 0, 0, 0.75);\n}\n\n.swh-words-logo:hover {\n text-decoration: none;\n}\n\n.swh-words-logo-swh {\n line-height: 1;\n padding-top: 13px;\n visibility: hidden;\n}\n\nhr.swh-faded-line {\n border: 0;\n height: 1px;\n background-image: linear-gradient(to left, #f0f0f0, #8c8b8b, #f0f0f0);\n}\n\n/* Ensure that section title with link is colored like standard section title */\n.swh-readme h1 a,\n.swh-readme h2 a,\n.swh-readme h3 a,\n.swh-readme h4 a,\n.swh-readme h5 a,\n.swh-readme h6 a {\n color: #e20026;\n}\n\n/* Make list compact in reStructuredText rendering */\n.swh-rst li p {\n margin-bottom: 0;\n}\n\n.swh-readme-txt pre {\n background: none;\n border: none;\n}\n\n.swh-coverage-col {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.swh-coverage {\n height: calc(65px + 1em);\n padding-top: 0.3rem;\n border: none;\n}\n\n.swh-coverage a {\n text-decoration: none;\n}\n\n.swh-coverage-logo {\n display: block;\n width: 100%;\n height: 50px;\n margin-left: auto;\n margin-right: auto;\n object-fit: contain;\n\n /* polyfill for old browsers, see https://github.com/bfred-it/object-fit-images */\n font-family: 'object-fit: contain;';\n}\n\n.swh-coverage-list {\n width: 100%;\n height: 320px;\n border: none;\n}\n\ntr.swh-tr-hover-highlight:hover td {\n background: #ededed;\n}\n\ntr.swh-api-doc-route a {\n text-decoration: none;\n}\n\n.swh-apidoc .col {\n margin: 10px;\n}\n\na.toggle-col {\n text-decoration: none;\n}\n\na.toggle-col.col-hidden {\n text-decoration: line-through;\n}\n\n.admonition.warning {\n background: #fcf8e3;\n border: 1px solid #faebcc;\n padding: 15px;\n border-radius: 4px;\n}\n\n.admonition.warning p {\n margin-bottom: 0;\n}\n\n.admonition.warning .first {\n font-size: 1.5rem;\n}\n\n.swh-popover {\n max-height: 50vh;\n overflow-y: auto;\n overflow-x: auto;\n padding: 0;\n padding-right: 1.4em;\n}\n\n@media screen and (min-width: 768px) {\n .swh-popover {\n max-width: 50vw;\n }\n}\n\n.swh-metadata-table-row {\n border-top: 1px solid #ddd !important;\n}\n\n.swh-metadata-table-key {\n min-width: 200px;\n max-width: 200px;\n width: 200px;\n}\n\n.swh-metadata-table-value pre {\n white-space: pre-wrap;\n}\n\n.d3-wrapper {\n position: relative;\n height: 0;\n width: 100%;\n padding: 0;\n\n /* padding-bottom will be overwritten by JavaScript later */\n padding-bottom: 100%;\n}\n\n.d3-wrapper > svg {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\ndiv.d3-tooltip {\n position: absolute;\n text-align: center;\n width: auto;\n height: auto;\n padding: 2px;\n font: 12px sans-serif;\n background: white;\n border: 1px solid black;\n border-radius: 4px;\n pointer-events: none;\n}\n\n.page-link {\n cursor: pointer;\n}\n\n.wrapper {\n overflow: hidden;\n}\n\n.swh-badge {\n padding-bottom: 1rem;\n cursor: pointer;\n}\n\n.swh-badge-html,\n.swh-badge-md,\n.swh-badge-rst {\n white-space: pre-wrap;\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.bread-crumbs {\n display: inline-block;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.55);\n}\n\n.bread-crumbs ul {\n list-style-type: none;\n height: 100%;\n}\n\n.bread-crumbs li {\n float: left;\n list-style-type: none;\n}\n\n.bread-crumbs a {\n color: rgba(0, 0, 0, 0.75);\n border-bottom-style: none;\n}\n\n.bread-crumbs a:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: underline;\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n/* Adapted from https://github.com/jsvine/nbpreview/blob/master/css/vendor/notebook.css */\n\n.nb-notebook {\n line-height: 1.5;\n padding-left: 6em;\n overflow-y: hidden;\n}\n\n.nb-worksheet {\n width: 99%;\n}\n\n.nb-stdout,\n.nb-stderr {\n white-space: pre-wrap;\n margin: 1em 0;\n padding: 0.1em 0.5em;\n}\n\n.nb-stderr {\n background-color: #faa;\n}\n\n.nb-cell + .nb-cell {\n margin-top: 0.5em;\n}\n\n.nb-output table {\n border: 1px solid #000;\n border-collapse: collapse;\n}\n\n.nb-output th {\n font-weight: bold;\n}\n\n.nb-output th,\n.nb-output td {\n border: 1px solid #000;\n padding: 0.25em;\n text-align: left;\n vertical-align: middle;\n border-collapse: collapse;\n}\n\n.nb-cell {\n position: relative;\n}\n\n.nb-raw-cell {\n white-space: pre-wrap;\n background-color: #f5f2f0;\n font-family: Consolas, Monaco, 'Andale Mono', monospace;\n padding: 1em;\n margin: 0 0.5em;\n}\n\n.nb-input {\n border: 1px solid #cfcfcf;\n border-radius: 2px;\n background: #f7f7f7;\n margin: 0.4em;\n padding: 0;\n}\n\n.nb-notebook pre {\n margin: 0.4em !important;\n border: none;\n padding: 0;\n background-color: transparent;\n min-height: 1rem;\n}\n\n.nb-output {\n min-height: 1em;\n overflow-x: auto;\n margin-left: 0.5em;\n margin-right: 0.5em;\n}\n\n.nb-output img {\n max-width: 100%;\n}\n\n.nb-output::before,\n.nb-input::before {\n position: absolute;\n font-family: monospace;\n color: #999;\n left: -7.5em;\n width: 7em;\n text-align: right;\n font-size: 14px;\n}\n\n.nb-input::before {\n content: \"In [\" attr(data-prompt-number) \"]:\";\n color: #303f9f;\n}\n\n.nb-output::before {\n content: \"Out [\" attr(data-prompt-number) \"]:\";\n color: #d84315;\n}\n\n.nb-latex-output .MathJax_Display {\n text-align: left !important;\n}\n\n.nb-markdown-cell,\n.nb-heading-cell {\n margin-left: 1em;\n margin-right: 1em;\n}\n\n.nb-code-cell {\n margin: 0.4em;\n}\n\n.nb-output pre {\n margin-top: 0.2em !important;\n}\n\n@media screen and (max-width: 600px) {\n .nb-notebook {\n padding-left: 0;\n }\n\n .nb-input {\n margin-top: 2em !important;\n }\n\n .nb-output::before,\n .nb-input::before {\n text-align: left;\n }\n\n .nb-input::before {\n left: 0.5em;\n top: -2em;\n }\n\n .nb-output::before {\n position: relative;\n left: 0;\n top: 0;\n }\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n.swh-history-counter-line {\n fill: none;\n stroke: #ffab00;\n stroke-width: 3;\n}\n\n.swh-history-counter-overlay {\n fill: none;\n pointer-events: all;\n}\n\n.swh-history-counter-focus circle {\n fill: none;\n stroke: #ffab00;\n stroke-width: 3;\n}\n\n.swh-history-counter-focus text {\n font-size: 14px;\n}\n\n.swh-history-counter-tooltip {\n fill: white;\n stroke: #000;\n}\n"]} \ No newline at end of file diff --git a/static/js/browse.a3b98efba34a099f7f2c.js.map b/static/js/browse.a3b98efba34a099f7f2c.js.map deleted file mode 100644 index a4c287f3..00000000 --- a/static/js/browse.a3b98efba34a099f7f2c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://swh.browse/webpack/universalModuleDefinition","webpack://swh.browse/webpack/bootstrap","webpack://swh.browse/./node_modules/clipboard/dist/clipboard.js","webpack://swh.browse/./swh/web/assets/src/bundles/browse/snapshot-navigation.js","webpack://swh.browse/./swh/web/assets/src/bundles/browse/origin-search.js","webpack://swh.browse/./swh/web/assets/src/bundles/browse/browse-utils.js","webpack://swh.browse/./swh/web/assets/src/bundles/browse/swh-ids-utils.js","webpack://swh.browse/./swh/web/assets/src/utils/functions.js","webpack://swh.browse/./swh/web/assets/src/utils/constants.js","webpack://swh.browse/./swh/web/assets/src/bundles/browse/index.js","webpack://swh.browse/./swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","configurable","writable","Constructor","protoProps","staticProps","_clipboardAction2","_interopRequireDefault","_tinyEmitter2","_goodListener2","default","Clipboard","_Emitter","trigger","options","instance","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","resolveOptions","listenClick","subClass","superClass","setPrototypeOf","_inherits","arguments","undefined","action","defaultAction","defaultTarget","text","defaultText","container","document","body","_this2","listener","e","onClick","delegateTarget","currentTarget","clipboardAction","emitter","getAttributeValue","selector","querySelector","destroy","actions","support","queryCommandSupported","forEach","suffix","element","attribute","hasAttribute","getAttribute","_select","_select2","ClipboardAction","initSelection","selectedText","selectFake","selectTarget","isRTL","documentElement","removeFake","fakeHandlerCallback","fakeHandler","addEventListener","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","setAttribute","appendChild","copyText","removeEventListener","removeChild","succeeded","execCommand","err","handleResult","emit","clearSelection","focus","getSelection","removeAllRanges","set","_action","Error","nodeType","_target","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","toString","E","on","callback","ctx","push","fn","once","off","apply","_","data","slice","evtArr","len","evts","liveEvents","is","delegate","type","string","node","listenNode","nodeList","Array","listenNodeList","listenSelector","HTMLElement","String","closest","_delegate","useCapture","listenerFn","elements","querySelectorAll","map","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","initSnapshotNavigation","snapshotContext","branch","setBranchesTabActive","$","removeClass","addClass","setReleasesTabActive","ready","click","stopPropagation","dropdownResized","dropdownWidth","width","linksPrev","linkNext","linkCurrent","inSearch","clearOriginSearchResultsTable","remove","populateOriginSearchResultsTable","origins","show","hide","table","origin","browseUrl","Urls","browse_origin","url","tableRow","encodeURI","append","latestSnapshotUrl","api_1_origin_visit_latest","fetch","then","response","json","children","prop","entries","setTimeout","removeAttr","scrollTo","searchOrigins","searchUrl","handleFetchError","resp","headers","has","parsedLink","match","status","statusText","doSearch","searchQueryText","val","startsWith","resolvePidUrl","api_1_resolve_swh_pid","location","browse_url","reason","limit","api_1_origin_metadata_search","encodeURIComponent","api_1_origin_search","searchOriginsFirst","initOriginSearch","submit","event","preventDefault","trim","withVisit","withContent","searchMetadata","queryParameters","search","hasClass","pop","urlParams","URLSearchParams","query","next","toggle","css","blur","popover","boundary","html","placement","BREAKPOINT_SM","template","content","attr","title","offset","sanitize","id","parents","swhIdObjectTypeToggled","tab","swhIdOptionOriginToggled","swhIdElt","find","originPart","currentSwhId","indexOf","replace","setIdLinesPart","elt","lines","linesPart","linesRegexp","RegExp","line","exec","hash","parseInt","swhIdOptionLinesToggled","ClipboardJS","swhId","innerWidth","tabSlideOptions","tabLocation","clickScreenToCloseFilters","innerHeight","tabSlideOut","ok","handleFetchErrors","responses","staticAsset","asset","__STATIC__","csrfPost","Cookies","credentials","method","isGitRepoUrl","domain","test","removeUrlFragment","history","replaceState","pathname","selectText","startNode","endNode","setStart","setEnd","childNodes","textContent","htmlAlert","message","closable","closeButton","extraClasses","BREAKPOINT_MD","swhSpinnerSrc","callerSettings","heightAsString","outerHeight","calculatePanelSize","available","height","edge","settings","otherOffset","panel","isOpen","extend","tabHandle","hoverTimeout","offsetReverse","handleOffset","handleOffsetReverse","bounceDistance","bounceTimes","bounceSpeed","tabImage","tabImageHeight","tabImageWidth","onLoadSlideOut","clickScreenToClose","onOpen","onClose","handle","toggleButton","imageHeight","imageWidth","img","Image","src","naturalHeight","naturalWidth","panelOffsetFrom","handleOffsetFrom","borderWidth","resize","close","open","moveIn","moveOut","contains","clicked","filter","timer","hover","temp","animate","bounceIn","bounceOut","jQuery"],"mappings":"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","file":"js/browse.a3b98efba34a099f7f2c.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"browse\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"browse\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 239);\n","/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clipboardAction = __webpack_require__(1);\n\nvar _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\nvar _tinyEmitter = __webpack_require__(3);\n\nvar _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\nvar _goodListener = __webpack_require__(4);\n\nvar _goodListener2 = _interopRequireDefault(_goodListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\nvar Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(_tinyEmitter2.default);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\nmodule.exports = Clipboard;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _select = __webpack_require__(2);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\nvar ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\nmodule.exports = ClipboardAction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(5);\nvar delegate = __webpack_require__(6);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(7);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ })\n/******/ ]);\n});","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function initSnapshotNavigation(snapshotContext, branch) {\n\n function setBranchesTabActive() {\n $('.swh-releases-switch').removeClass('active');\n $('.swh-branches-switch').addClass('active');\n $('#swh-tab-releases').removeClass('active');\n $('#swh-tab-branches').addClass('active');\n }\n\n function setReleasesTabActive() {\n $('.swh-branches-switch').removeClass('active');\n $('.swh-releases-switch').addClass('active');\n $('#swh-tab-branches').removeClass('active');\n $('#swh-tab-releases').addClass('active');\n }\n\n $(document).ready(() => {\n $('.dropdown-menu a.swh-branches-switch').click(e => {\n setBranchesTabActive();\n e.stopPropagation();\n });\n\n $('.dropdown-menu a.swh-releases-switch').click(e => {\n setReleasesTabActive();\n e.stopPropagation();\n });\n\n let dropdownResized = false;\n\n // hack to resize the branches/releases dropdown content,\n // taking icons into account, in order to make the whole names readable\n $('#swh-branches-releases-dd').on('show.bs.dropdown', () => {\n if (dropdownResized) return;\n let dropdownWidth = $('.swh-branches-releases').width();\n $('.swh-branches-releases').width(dropdownWidth + 25);\n dropdownResized = true;\n });\n\n if (snapshotContext) {\n if (branch) {\n setBranchesTabActive();\n } else {\n setReleasesTabActive();\n }\n }\n\n });\n\n}\n","/**\n * Copyright (C) 2018-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError} from 'utils/functions';\n\nconst limit = 100;\nlet linksPrev = [];\nlet linkNext = null;\nlet linkCurrent = null;\nlet inSearch = false;\n\nfunction parseLinkHeader(s) {\n let re = /<(.+)>; rel=\"next\"/;\n return s.match(re)[1];\n}\n\nfunction fixTableRowsStyle() {\n setTimeout(() => {\n $('#origin-search-results tbody tr').removeAttr('style');\n });\n}\n\nfunction clearOriginSearchResultsTable() {\n $('#origin-search-results tbody tr').remove();\n}\n\nfunction populateOriginSearchResultsTable(origins) {\n if (origins.length > 0) {\n $('#swh-origin-search-results').show();\n $('#swh-no-result').hide();\n clearOriginSearchResultsTable();\n let table = $('#origin-search-results tbody');\n for (let [i, origin] of origins.entries()) {\n let browseUrl = Urls.browse_origin(origin.url);\n let tableRow = ``;\n tableRow += `${encodeURI(origin.url)}`;\n tableRow += ``;\n tableRow += ``;\n tableRow += '';\n table.append(tableRow);\n // get async latest visit snapshot and update visit status icon\n let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url);\n latestSnapshotUrl += '?require_snapshot=true';\n fetch(latestSnapshotUrl)\n .then(response => response.json())\n .then(data => {\n $(`#visit-type-origin-${i}`).text(data.type);\n $(`#visit-status-origin-${i}`).children().remove();\n if (data) {\n $(`#visit-status-origin-${i}`).append('');\n } else {\n $(`#visit-status-origin-${i}`).append('');\n if ($('#swh-filter-empty-visits').prop('checked')) {\n $(`#origin-${i}`).remove();\n }\n }\n });\n }\n fixTableRowsStyle();\n } else {\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text('No origins matching the search criteria were found.');\n $('#swh-no-result').show();\n }\n\n if (linkNext === null) {\n $('#origins-next-results-button').addClass('disabled');\n } else {\n $('#origins-next-results-button').removeClass('disabled');\n }\n\n if (linksPrev.length === 0) {\n $('#origins-prev-results-button').addClass('disabled');\n } else {\n $('#origins-prev-results-button').removeClass('disabled');\n }\n\n inSearch = false;\n setTimeout(() => {\n window.scrollTo(0, 0);\n });\n}\n\nfunction searchOriginsFirst(searchQueryText, limit) {\n let baseSearchUrl;\n let searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n if (searchMetadata) {\n baseSearchUrl = Urls.api_1_origin_metadata_search() + '?fulltext=' + encodeURIComponent(searchQueryText);\n } else {\n baseSearchUrl = Urls.api_1_origin_search(searchQueryText);\n }\n\n let withVisit = $('#swh-search-origins-with-visit').prop('checked');\n let searchUrl = baseSearchUrl + `?limit=${limit}&with_visit=${withVisit}`;\n searchOrigins(searchUrl);\n}\n\nfunction searchOrigins(searchUrl) {\n clearOriginSearchResultsTable();\n $('.swh-loading').addClass('show');\n let response = fetch(searchUrl)\n .then(handleFetchError)\n .then(resp => {\n response = resp;\n return response.json();\n })\n .then(data => {\n // Save link to the current results page\n linkCurrent = searchUrl;\n // Save link to the next results page.\n linkNext = null;\n if (response.headers.has('Link')) {\n let parsedLink = parseLinkHeader(response.headers.get('Link'));\n if (parsedLink !== undefined) {\n linkNext = parsedLink;\n }\n }\n // prevLinks is updated by the caller, which is the one to know if\n // we're going forward or backward in the pages.\n\n $('.swh-loading').removeClass('show');\n populateOriginSearchResultsTable(data);\n })\n .catch(response => {\n $('.swh-loading').removeClass('show');\n inSearch = false;\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text(`Error ${response.status}: ${response.statusText}`);\n $('#swh-no-result').show();\n });\n}\n\nfunction doSearch() {\n $('#swh-no-result').hide();\n let searchQueryText = $('#origins-url-patterns').val();\n inSearch = true;\n if (searchQueryText.startsWith('swh:')) {\n // searchQueryText may be a PID so sending search queries to PID resolve endpoint\n let resolvePidUrl = Urls.api_1_resolve_swh_pid(searchQueryText);\n fetch(resolvePidUrl)\n .then(handleFetchError)\n .then(response => response.json())\n .then(data => {\n // pid has been successfully resolved,\n // so redirect to browse page\n window.location = data.browse_url;\n })\n .catch(response => {\n // display a useful error message if the input\n // looks like a swh pid\n response.json().then(data => {\n $('#swh-origin-search-results').hide();\n $('.swh-search-pagination').hide();\n $('#swh-no-result').text(data.reason);\n $('#swh-no-result').show();\n });\n\n });\n } else {\n // otherwise, proceed with origins search\n $('#swh-origin-search-results').show();\n $('.swh-search-pagination').show();\n searchOriginsFirst(searchQueryText, limit);\n }\n}\n\nexport function initOriginSearch() {\n $(document).ready(() => {\n $('#swh-search-origins').submit(event => {\n event.preventDefault();\n let searchQueryText = $('#origins-url-patterns').val().trim();\n let withVisit = $('#swh-search-origins-with-visit').prop('checked');\n let withContent = $('#swh-filter-empty-visits').prop('checked');\n let searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n let queryParameters = '?q=' + encodeURIComponent(searchQueryText);\n if (withVisit) {\n queryParameters += '&with_visit';\n }\n if (withContent) {\n queryParameters += '&with_content';\n }\n if (searchMetadata) {\n queryParameters += '&search_metadata';\n }\n // Update the url, triggering page reload and effective search\n window.location.search = queryParameters;\n });\n\n $('#origins-next-results-button').click(event => {\n if ($('#origins-next-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n linksPrev.push(linkCurrent);\n searchOrigins(linkNext);\n event.preventDefault();\n });\n\n $('#origins-prev-results-button').click(event => {\n if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n searchOrigins(linksPrev.pop());\n event.preventDefault();\n });\n\n let urlParams = new URLSearchParams(window.location.search);\n let query = urlParams.get('q');\n let withVisit = urlParams.has('with_visit');\n let withContent = urlParams.has('with_content');\n let searchMetadata = urlParams.has('search_metadata');\n if (query) {\n $('#origins-url-patterns').val(query);\n $('#swh-search-origins-with-visit').prop('checked', withVisit);\n $('#swh-filter-empty-visits').prop('checked', withContent);\n $('#swh-search-origin-metadata').prop('checked', searchMetadata);\n doSearch();\n }\n });\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {BREAKPOINT_SM} from 'utils/constants';\n\n$(document).ready(() => {\n\n $('.dropdown-submenu a.dropdown-item').on('click', e => {\n $(e.target).next('div').toggle();\n if ($(e.target).next('div').css('display') !== 'none') {\n $(e.target).focus();\n } else {\n $(e.target).blur();\n }\n e.stopPropagation();\n e.preventDefault();\n });\n\n $('.swh-popover-toggler').popover({\n boundary: 'viewport',\n container: 'body',\n html: true,\n placement: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return 'top';\n } else {\n return 'right';\n }\n },\n template: `
\n
\n

\n
\n
`,\n content: function() {\n var content = $(this).attr('data-popover-content');\n return $(content).children('.popover-body').remove().html();\n },\n title: function() {\n var title = $(this).attr('data-popover-content');\n return $(title).children('.popover-heading').html();\n },\n offset: '50vh',\n sanitize: false\n });\n\n $('.swh-vault-menu a.dropdown-item').on('click', e => {\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('.swh-popover-toggler').on('show.bs.popover', (e) => {\n $(`.swh-popover-toggler:not(#${e.currentTarget.id})`).popover('hide');\n $('.swh-vault-menu .dropdown-menu').hide();\n });\n\n $('.swh-actions-dropdown').on('hide.bs.dropdown', () => {\n $('.swh-vault-menu .dropdown-menu').hide();\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('body').on('click', e => {\n if ($(e.target).parents('.swh-popover').length) {\n e.stopPropagation();\n }\n });\n\n});\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport ClipboardJS from 'clipboard';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css';\n\nimport {BREAKPOINT_SM} from 'utils/constants';\n\nexport function swhIdObjectTypeToggled(event) {\n event.preventDefault();\n $(event.target).tab('show');\n}\n\nexport function swhIdOptionOriginToggled(event) {\n event.stopPropagation();\n let swhIdElt = $(event.target).closest('.swh-id-ui').find('.swh-id');\n let originPart = ';origin=' + $(event.target).data('swh-origin');\n let currentSwhId = swhIdElt.text();\n if ($(event.target).prop('checked')) {\n if (currentSwhId.indexOf(originPart) === -1) {\n currentSwhId += originPart;\n }\n } else {\n currentSwhId = currentSwhId.replace(originPart, '');\n }\n swhIdElt.text(currentSwhId);\n swhIdElt.attr('href', '/' + currentSwhId + '/');\n}\n\nfunction setIdLinesPart(elt) {\n let swhIdElt = $(elt).closest('.swh-id-ui').find('.swh-id');\n let currentSwhId = swhIdElt.text();\n let lines = [];\n let linesPart = ';lines=';\n let linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n if (lines.length > 0) {\n linesPart += lines[0];\n }\n if (lines.length > 1) {\n linesPart += '-' + lines[1];\n }\n if ($(elt).prop('checked')) {\n currentSwhId = currentSwhId.replace(/;lines=\\d+-*\\d*/g, '');\n currentSwhId += linesPart;\n } else {\n currentSwhId = currentSwhId.replace(linesPart, '');\n }\n swhIdElt.text(currentSwhId);\n swhIdElt.attr('href', '/' + currentSwhId + '/');\n}\n\nexport function swhIdOptionLinesToggled(event) {\n event.stopPropagation();\n if (!window.location.hash) {\n return;\n }\n setIdLinesPart(event.target);\n}\n\n$(document).ready(() => {\n new ClipboardJS('.btn-swh-id-copy', {\n text: trigger => {\n let swhId = $(trigger).closest('.swh-id-ui').find('.swh-id').text();\n return swhId;\n }\n });\n\n new ClipboardJS('.btn-swh-id-url-copy', {\n text: trigger => {\n let swhId = $(trigger).closest('.swh-id-ui').find('.swh-id').text();\n return window.location.origin + '/' + swhId + '/';\n }\n });\n\n if (window.innerWidth * 0.7 > 1000) {\n $('#swh-identifiers').css('width', '1000px');\n }\n\n let tabSlideOptions = {\n tabLocation: 'right',\n clickScreenToCloseFilters: ['.ui-slideouttab-panel', '.modal'],\n offset: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return '250px';\n } else {\n return '200px';\n }\n }\n };\n // ensure tab scrolling on small screens\n if (window.innerHeight < 600 || window.innerWidth < 500) {\n tabSlideOptions['otherOffset'] = '20px';\n }\n\n // initiate the sliding identifiers tab\n $('#swh-identifiers').tabSlideOut(tabSlideOptions);\n\n // set the tab visible once the close animation is terminated\n $('#swh-identifiers').css('display', 'block');\n $('.swh-id-option-origin').trigger('click');\n $('.swh-id-option-lines').trigger('click');\n\n $(window).on('hashchange', () => {\n setIdLinesPart('.swh-id-option-lines');\n });\n\n});\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, domain) {\n let endOfPattern = '\\\\/[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git(?:\\\\/?|\\\\#[\\\\w\\\\.\\\\-_]+)?)?$';\n let pattern = `(?:git|https?|git@)(?:\\\\:\\\\/\\\\/)?${domain}[/|:][A-Za-z0-9-]+?` + endOfPattern;\n let re = new RegExp(pattern);\n return re.test(url);\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n let selection = window.getSelection();\n selection.removeAllRanges();\n let range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n ``;\n extraClasses = 'alert-dismissible';\n }\n return `
${message}${closeButton}
`;\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// main bundle for the swh-web/browse application\n\nimport './browse.css';\nimport './breadcrumbs.css';\nimport './content.css';\nimport './snapshot-navigation.css';\n\nexport * from './snapshot-navigation';\nexport * from './origin-search';\nexport * from './browse-utils';\nexport * from './swh-ids-utils';\n","/*\n tabSlideOUt v2.4\n\n Originally by William Paoli: http://code.google.com/p/tab-slide-out\n Maintained by Michael Fielding: https://github.com/hawk-ip/jquery.tabSlideOut.js\n License: GPL v3.0\n\n To use this you need an element for the tab panel content ('panel'), and inside it an element for the\n tab which will stick out from the window edge and be clickable ('handle'). By default the selector\n for handles is '.handle'.\n\n example HTML:\n\n
Click meHello World
\n\n example JavaScript (puts the tab on the right, and opens it on hover rather than click):\n\n $('#my-tab').tabSlideOut( {'tabLocation':'right','action':'hover'} );\n\n Style the tab panel and handle using CSS. Add the class ui-slideouttab-handle-rounded to handles to give them\n rounded outer corners.\n\n You can use some methods to programmatically interact with tabs. Methods except 'isOpen' are chainable.\n\n $('#my-tab').tabSlideOut('isOpen'); // return true or false\n $('#my-tab').tabSlideOut('open'); // opens it\n $('#my-tab').tabSlideOut('close'); // closes it\n $('#my-tab').tabSlideOut('toggle'); // toggles it\n $('#my-tab').tabSlideOut('bounce'); // bounces the tab\n\n You can also send JQuery events to initiate actions:\n\n $('#my-tab').trigger('open'); // opens it\n $('#my-tab').trigger('close'); // closes it\n $('#my-tab').trigger('toggle'); // toggles it\n $('#my-tab').trigger('bounce'); // bounces the tab\n\n Three events are defined and can be caught when tabs open and close:\n\n $(document).on('slideouttabopen slideouttabclose slideouttabbounce',function(event){\n var $panel = $(event.target);\n var eventType = event.type;\n // your code here\n });\n\n Features are demonstrated on the related demo page.\n*/\n(function($) {\n $.fn.tabSlideOut = function(callerSettings) {\n\n /**\n * @param node Element to get the height of.\n * @return string e.g. '123px'\n */\n function heightAsString(node) {\n return parseInt(node.outerHeight() + 1, 10) + 'px';\n }\n\n /*\n * Get the width of the given border, in pixels.\n *\n * @param node element\n * @param string edge\n * @returns int\n */\n function borderWidth(element, edge) {\n return parseInt(element.css('border-' + edge + '-width'), 10);\n }\n\n /**\n * Return the desired height of the panel to maintain both offsets.\n */\n function calculatePanelSize() {\n var available = $(window).height();\n if (edge === 'top' || edge === 'bottom') {\n available = $(window).width();\n }\n return available - parseInt(settings.otherOffset) - parseInt(settings.offset);\n }\n\n var panel = this;\n\n /**\n * True if the tab is open.\n *\n * @returns boolean\n */\n function isOpen() {\n return panel.hasClass('ui-slideouttab-open');\n }\n\n if (typeof callerSettings === 'string') {\n // param is a string, use command mode\n switch (callerSettings) {\n case 'open':\n this.trigger('open');\n return this;\n case 'close':\n this.trigger('close');\n return this;\n case 'isOpen':\n return isOpen();\n case 'toggle':\n this.trigger('toggle');\n return this;\n case 'bounce':\n this.trigger('bounce');\n return this;\n default:\n throw new Error('Invalid tabSlideOut command');\n }\n } else {\n // param is an object, it's initialisation mode\n var settings = $.extend({\n tabLocation: 'left', // left, right, top or bottom\n tabHandle: '.handle', // JQuery selector for the tab, can use any JQuery selector\n action: 'click', // action which will open the panel, e.g. 'hover'\n hoverTimeout: 5000, // ms to keep tab open after no longer hovered - only if action = 'hover'\n offset: '200px', // panel dist from top or left (bottom or right if offsetReverse is true)\n offsetReverse: false, // if true, panel is offset from right or bottom of window instead of left or top\n otherOffset: null, // if set, panel size is also set to maintain this dist from bottom or right of view port (top or left if offsetReverse)\n handleOffset: null, // e.g. '10px'. If null, detects panel border to align handle nicely on edge\n handleOffsetReverse: false, // if true, handle is offset from right or bottom of panel instead of left or top\n bounceDistance: '50px', // how far bounce event will move everything\n bounceTimes: 4, // how many bounces when 'bounce' is called\n bounceSpeed: 300, // time to animate bounces\n tabImage: null, // optional image to show in the tab\n tabImageHeight: null, // optional IE8 and lower only, else autodetected size\n tabImageWidth: null, // optional IE8 and lower only, else autodetected size\n onLoadSlideOut: false, // slide out after DOM load\n clickScreenToClose: true, // close tab when somewhere outside the tab is clicked\n clickScreenToCloseFilters: ['.ui-slideouttab-panel'], // if click target or parents match any of these, click won't close this tab\n onOpen: function() {}, // handler called after opening\n onClose: function() {} // handler called after closing\n }, callerSettings || {});\n\n var edge = settings.tabLocation;\n var handle = settings.tabHandle = $(settings.tabHandle, panel);\n\n panel.addClass('ui-slideouttab-panel')\n .addClass('ui-slideouttab-' + edge);\n if (settings.offsetReverse) {\n panel.addClass('ui-slideouttab-panel-reverse');\n }\n handle.addClass('ui-slideouttab-handle'); // need this to find it later\n if (settings.handleOffsetReverse) {\n handle.addClass('ui-slideouttab-handle-reverse');\n }\n settings.toggleButton = $(settings.toggleButton);\n\n // apply an image to the tab if one is defined\n if (settings.tabImage !== null) {\n var imageHeight = 0;\n var imageWidth = 0;\n if (settings.tabImageHeight !== null && settings.tabImageWidth !== null) {\n imageHeight = settings.tabImageHeight;\n imageWidth = settings.tabImageWidth;\n } else {\n var img = new Image();\n img.src = settings.tabImage;\n imageHeight = img.naturalHeight;\n imageWidth = img.naturalWidth;\n }\n\n handle.addClass('ui-slideouttab-handle-image');\n handle.css({\n 'background': 'url(' + settings.tabImage + ') no-repeat',\n 'width': imageWidth,\n 'height': imageHeight\n });\n }\n\n // determine whether panel and handle are positioned from top, bottom, left, or right\n if (edge === 'top' || edge === 'bottom') {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'right' : 'left';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'right' : 'left';\n } else {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'bottom' : 'top';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'bottom' : 'top';\n }\n\n /* autodetect the correct offset for the handle using appropriate panel border */\n if (settings.handleOffset === null) {\n settings.handleOffset = '-' + borderWidth(panel, settings.handleOffsetFrom) + 'px';\n }\n\n if (edge === 'top' || edge === 'bottom') {\n /* set left or right edges */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('width', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('width', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'top') {\n handle.css({'bottom': '-' + heightAsString(handle)});\n } else {\n handle.css({'top': '-' + heightAsString(handle)});\n }\n } else {\n /* set top or bottom edge */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('height', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('height', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'left') {\n handle.css({'right': '0'});\n } else {\n handle.css({'left': '0'});\n }\n }\n\n handle.click(function(event) {\n event.preventDefault();\n });\n settings.toggleButton.click(function(event) {\n event.preventDefault();\n });\n\n // now everything is set up, add the class which enables CSS tab animation\n panel.addClass('ui-slideouttab-ready');\n\n var close = function() {\n panel.removeClass('ui-slideouttab-open').trigger('slideouttabclose');\n settings.onClose();\n };\n\n var open = function() {\n panel.addClass('ui-slideouttab-open').trigger('slideouttabopen');\n settings.onOpen();\n };\n\n var toggle = function() {\n if (isOpen()) {\n close();\n } else {\n open();\n }\n };\n\n // animate the tab in and out when 'bounced'\n var moveIn = [];\n moveIn[edge] = '-=' + settings.bounceDistance;\n var moveOut = [];\n moveOut[edge] = '+=' + settings.bounceDistance;\n\n var bounceIn = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveIn, settings.bounceSpeed)\n .animate(moveOut, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n var bounceOut = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveOut, settings.bounceSpeed)\n .animate(moveIn, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n // handle clicks in rest of document to close tabs if they're open\n if (settings.clickScreenToClose) {\n // install a click handler to close tab if anywhere outside the tab is clicked,\n // that isn't filtered out by the configured filters\n $(document).click(function(event) {\n // first check the tab is open and the click isn't inside it\n if (isOpen() && !panel[0].contains(event.target)) {\n // something other than this panel was clicked\n var clicked = $(event.target);\n\n // check to see if any filters return true\n for (var i = 0; i < settings.clickScreenToCloseFilters.length; i++) {\n var filter = settings.clickScreenToCloseFilters[i];\n if (typeof filter === 'string') {\n // checked clicked element itself, and all parents\n if (clicked.is(filter) || clicked.parents().is(filter)) {\n return; // don't close the tab\n }\n } else if (typeof filter === 'function') {\n // call custom filter\n if (filter.call(panel, event)) {\n return;\n } // don't close the tab\n }\n }\n\n // we haven't returned true from any filter, so close the tab\n close();\n }\n });\n };\n\n // choose which type of action to bind\n if (settings.action === 'click') {\n handle.click(function(event) {\n toggle();\n });\n } else if (settings.action === 'hover') {\n var timer = null;\n panel.hover(\n function() {\n if (!isOpen()) {\n open();\n }\n timer = null; // eliminate the timer, ensure we don't close now\n },\n function() {\n if (isOpen() && timer === null) {\n timer = setTimeout(function() {\n if (timer) {\n close();\n }\n timer = null;\n }, settings.hoverTimeout);\n }\n });\n\n handle.click(function(event) {\n if (isOpen()) {\n close();\n }\n });\n }\n\n if (settings.onLoadSlideOut) {\n open();\n setTimeout(open, 500);\n }\n\n // custom event handlers -------\n panel.on('open', function(event) {\n if (!isOpen()) {\n open();\n }\n });\n panel.on('close', function(event) {\n if (isOpen()) {\n close();\n }\n });\n panel.on('toggle', function(event) {\n toggle();\n });\n panel.on('bounce', function(event) {\n if (isOpen()) {\n bounceIn();\n } else {\n bounceOut();\n }\n });\n\n }\n return this;\n };\n})(jQuery);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/browse.a3b98efba34a099f7f2c.js b/static/js/browse.f94437a6b169adb8e3c7.js similarity index 59% rename from static/js/browse.a3b98efba34a099f7f2c.js rename to static/js/browse.f94437a6b169adb8e3c7.js index 98a537dd..a35960c3 100644 --- a/static/js/browse.a3b98efba34a099f7f2c.js +++ b/static/js/browse.f94437a6b169adb8e3c7.js @@ -1,3 +1,3 @@ -/*! For license information please see browse.a3b98efba34a099f7f2c.js.LICENSE.txt */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.browse=e():(t.swh=t.swh||{},t.swh.browse=e())}(window,(function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/static/",n(n.s=239)}({151:function(t,e,n){var o;o=function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var i=e[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(o,i,function(e){return t[e]}.bind(null,i));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===o(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,a.default)(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new r.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return l("action",t)}},{key:"defaultTarget",value:function(t){var e=l("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return l("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(s.default);function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=u},function(t,e,n){"use strict";var o,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,a.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,a.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=c},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),i=document.createRange();i.selectNodeContents(t),o.removeAllRanges(),o.addRange(i),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function i(){o.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,i=n.length;o0){$("#swh-origin-search-results").show(),$("#swh-no-result").hide(),c();var e=$("#origin-search-results tbody"),n=function(){if(s){if(u>=o.length)return"break";l=o[u++]}else{if((u=o.next()).done)return"break";l=u.value}var t=l,n=t[0],i=t[1],r=Urls.browse_origin(i.url),a='';a+=''+encodeURI(i.url)+"",a+='',a+='',a+="",e.append(a);var c=Urls.api_1_origin_visit_latest(i.url);fetch(c+="?require_snapshot=true").then((function(t){return t.json()})).then((function(t){$("#visit-type-origin-"+n).text(t.type),$("#visit-status-origin-"+n).children().remove(),t?$("#visit-status-origin-"+n).append(''):($("#visit-status-origin-"+n).append(''),$("#swh-filter-empty-visits").prop("checked")&&$("#origin-"+n).remove())}))},o=t.entries(),s=Array.isArray(o),u=0;for(o=s?o:o[Symbol.iterator]();;){var l;if("break"===n())break}setTimeout((function(){$("#origin-search-results tbody tr").removeAttr("style")}))}else $("#swh-origin-search-results").hide(),$("#swh-no-result").text("No origins matching the search criteria were found."),$("#swh-no-result").show();null===r?$("#origins-next-results-button").addClass("disabled"):$("#origins-next-results-button").removeClass("disabled"),0===i.length?$("#origins-prev-results-button").addClass("disabled"):$("#origins-prev-results-button").removeClass("disabled"),a=!1,setTimeout((function(){window.scrollTo(0,0)}))}function l(t){c(),$(".swh-loading").addClass("show");var e=fetch(t).then(o.b).then((function(t){return(e=t).json()})).then((function(n){if(s=t,r=null,e.headers.has("Link")){var o=e.headers.get("Link").match(/<(.+)>; rel="next"/)[1];void 0!==o&&(r=o)}$(".swh-loading").removeClass("show"),u(n)})).catch((function(t){$(".swh-loading").removeClass("show"),a=!1,$("#swh-origin-search-results").hide(),$("#swh-no-result").text("Error "+t.status+": "+t.statusText),$("#swh-no-result").show()}))}function f(){$("#swh-no-result").hide();var t=$("#origins-url-patterns").val();if(a=!0,t.startsWith("swh:")){var e=Urls.api_1_resolve_swh_pid(t);fetch(e).then(o.b).then((function(t){return t.json()})).then((function(t){window.location=t.browse_url})).catch((function(t){t.json().then((function(t){$("#swh-origin-search-results").hide(),$(".swh-search-pagination").hide(),$("#swh-no-result").text(t.reason),$("#swh-no-result").show()}))}))}else $("#swh-origin-search-results").show(),$(".swh-search-pagination").show(),function(t,e){l(($("#swh-search-origin-metadata").prop("checked")?Urls.api_1_origin_metadata_search()+"?fulltext="+encodeURIComponent(t):Urls.api_1_origin_search(t))+"?limit="+e+"&with_visit="+$("#swh-search-origins-with-visit").prop("checked"))}(t,100)}function d(){$(document).ready((function(){$("#swh-search-origins").submit((function(t){t.preventDefault();var e=$("#origins-url-patterns").val().trim(),n=$("#swh-search-origins-with-visit").prop("checked"),o=$("#swh-filter-empty-visits").prop("checked"),i=$("#swh-search-origin-metadata").prop("checked"),r="?q="+encodeURIComponent(e);n&&(r+="&with_visit"),o&&(r+="&with_content"),i&&(r+="&search_metadata"),window.location.search=r})),$("#origins-next-results-button").click((function(t){$("#origins-next-results-button").hasClass("disabled")||a||(a=!0,i.push(s),l(r),t.preventDefault())})),$("#origins-prev-results-button").click((function(t){$("#origins-prev-results-button").hasClass("disabled")||a||(a=!0,l(i.pop()),t.preventDefault())}));var t=new URLSearchParams(window.location.search),e=t.get("q"),n=t.has("with_visit"),o=t.has("with_content"),c=t.has("search_metadata");e&&($("#origins-url-patterns").val(e),$("#swh-search-origins-with-visit").prop("checked",n),$("#swh-filter-empty-visits").prop("checked",o),$("#swh-search-origin-metadata").prop("checked",c),f())}))}},159:function(t,e,n){"use strict";var o=n(21);$(document).ready((function(){$(".dropdown-submenu a.dropdown-item").on("click",(function(t){$(t.target).next("div").toggle(),"none"!==$(t.target).next("div").css("display")?$(t.target).focus():$(t.target).blur(),t.stopPropagation(),t.preventDefault()})),$(".swh-popover-toggler").popover({boundary:"viewport",container:"body",html:!0,placement:function(){return $(window).width()\n
\n

\n
\n ',content:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-body").remove().html()},title:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-heading").html()},offset:"50vh",sanitize:!1}),$(".swh-vault-menu a.dropdown-item").on("click",(function(t){$(".swh-popover-toggler").popover("hide")})),$(".swh-popover-toggler").on("show.bs.popover",(function(t){$(".swh-popover-toggler:not(#"+t.currentTarget.id+")").popover("hide"),$(".swh-vault-menu .dropdown-menu").hide()})),$(".swh-actions-dropdown").on("hide.bs.dropdown",(function(){$(".swh-vault-menu .dropdown-menu").hide(),$(".swh-popover-toggler").popover("hide")})),$("body").on("click",(function(t){$(t.target).parents(".swh-popover").length&&t.stopPropagation()}))}))},160:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return u}));var o=n(151),i=n.n(o),r=(n(245),n(246),n(21));function s(t){t.preventDefault(),$(t.target).tab("show")}function a(t){t.stopPropagation();var e=$(t.target).closest(".swh-id-ui").find(".swh-id"),n=";origin="+$(t.target).data("swh-origin"),o=e.text();$(t.target).prop("checked")?-1===o.indexOf(n)&&(o+=n):o=o.replace(n,""),e.text(o),e.attr("href","/"+o+"/")}function c(t){for(var e=$(t).closest(".swh-id-ui").find(".swh-id"),n=e.text(),o=[],i=";lines=",r=new RegExp(/L(\d+)/g),s=r.exec(window.location.hash);s;)o.push(parseInt(s[1])),s=r.exec(window.location.hash);o.length>0&&(i+=o[0]),o.length>1&&(i+="-"+o[1]),$(t).prop("checked")?(n=n.replace(/;lines=\d+-*\d*/g,""),n+=i):n=n.replace(i,""),e.text(n),e.attr("href","/"+n+"/")}function u(t){t.stopPropagation(),window.location.hash&&c(t.target)}$(document).ready((function(){new i.a(".btn-swh-id-copy",{text:function(t){return $(t).closest(".swh-id-ui").find(".swh-id").text()}}),new i.a(".btn-swh-id-url-copy",{text:function(t){var e=$(t).closest(".swh-id-ui").find(".swh-id").text();return window.location.origin+"/"+e+"/"}}),.7*window.innerWidth>1e3&&$("#swh-identifiers").css("width","1000px");var t={tabLocation:"right",clickScreenToCloseFilters:[".ui-slideouttab-panel",".modal"],offset:function(){return $(window).width()'+e+o+""}n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})),n.d(e,"h",(function(){return r})),n.d(e,"a",(function(){return s})),n.d(e,"e",(function(){return a})),n.d(e,"f",(function(){return c})),n.d(e,"g",(function(){return u})),n.d(e,"d",(function(){return l}))},21:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"a",(function(){return r})),n.d(e,"c",(function(){return s}));var o=n(2),i=768,r=992,s=Object(o.h)("img/swh-spinner.gif")},239:function(t,e,n){t.exports=n(240)},240:function(t,e,n){"use strict";n.r(e);n(241),n(242),n(243),n(244);var o=n(157);n.d(e,"initSnapshotNavigation",(function(){return o.a}));var i=n(158);n.d(e,"initOriginSearch",(function(){return i.a}));n(159);var r=n(160);n.d(e,"swhIdObjectTypeToggled",(function(){return r.a})),n.d(e,"swhIdOptionOriginToggled",(function(){return r.c})),n.d(e,"swhIdOptionLinesToggled",(function(){return r.b}))},241:function(t,e,n){},242:function(t,e,n){},243:function(t,e,n){},244:function(t,e,n){},245:function(t,e){!function(t){t.fn.tabSlideOut=function(e){function n(t){return parseInt(t.outerHeight()+1,10)+"px"}function o(){var e=t(window).height();return"top"!==a&&"bottom"!==a||(e=t(window).width()),e-parseInt(s.otherOffset)-parseInt(s.offset)}var i=this;function r(){return i.hasClass("ui-slideouttab-open")}if("string"==typeof e)switch(e){case"open":return this.trigger("open"),this;case"close":return this.trigger("close"),this;case"isOpen":return r();case"toggle":return this.trigger("toggle"),this;case"bounce":return this.trigger("bounce"),this;default:throw new Error("Invalid tabSlideOut command")}else{var s=t.extend({tabLocation:"left",tabHandle:".handle",action:"click",hoverTimeout:5e3,offset:"200px",offsetReverse:!1,otherOffset:null,handleOffset:null,handleOffsetReverse:!1,bounceDistance:"50px",bounceTimes:4,bounceSpeed:300,tabImage:null,tabImageHeight:null,tabImageWidth:null,onLoadSlideOut:!1,clickScreenToClose:!0,clickScreenToCloseFilters:[".ui-slideouttab-panel"],onOpen:function(){},onClose:function(){}},e||{}),a=s.tabLocation,c=s.tabHandle=t(s.tabHandle,i);if(i.addClass("ui-slideouttab-panel").addClass("ui-slideouttab-"+a),s.offsetReverse&&i.addClass("ui-slideouttab-panel-reverse"),c.addClass("ui-slideouttab-handle"),s.handleOffsetReverse&&c.addClass("ui-slideouttab-handle-reverse"),s.toggleButton=t(s.toggleButton),null!==s.tabImage){var u=0,l=0;if(null!==s.tabImageHeight&&null!==s.tabImageWidth)u=s.tabImageHeight,l=s.tabImageWidth;else{var f=new Image;f.src=s.tabImage,u=f.naturalHeight,l=f.naturalWidth}c.addClass("ui-slideouttab-handle-image"),c.css({background:"url("+s.tabImage+") no-repeat",width:l,height:u})}"top"===a||"bottom"===a?(s.panelOffsetFrom=s.offsetReverse?"right":"left",s.handleOffsetFrom=s.handleOffsetReverse?"right":"left"):(s.panelOffsetFrom=s.offsetReverse?"bottom":"top",s.handleOffsetFrom=s.handleOffsetReverse?"bottom":"top"),null===s.handleOffset&&(s.handleOffset="-"+function(t,e){return parseInt(t.css("border-"+e+"-width"),10)}(i,s.handleOffsetFrom)+"px"),"top"===a||"bottom"===a?(i.css(s.panelOffsetFrom,s.offset),c.css(s.handleOffsetFrom,s.handleOffset),null!==s.otherOffset&&(i.css("width",o()+"px"),t(window).resize((function(){i.css("width",o()+"px")}))),"top"===a?c.css({bottom:"-"+n(c)}):c.css({top:"-"+n(c)})):(i.css(s.panelOffsetFrom,s.offset),c.css(s.handleOffsetFrom,s.handleOffset),null!==s.otherOffset&&(i.css("height",o()+"px"),t(window).resize((function(){i.css("height",o()+"px")}))),"left"===a?c.css({right:"0"}):c.css({left:"0"})),c.click((function(t){t.preventDefault()})),s.toggleButton.click((function(t){t.preventDefault()})),i.addClass("ui-slideouttab-ready");var d=function(){i.removeClass("ui-slideouttab-open").trigger("slideouttabclose"),s.onClose()},h=function(){i.addClass("ui-slideouttab-open").trigger("slideouttabopen"),s.onOpen()},p=function(){r()?d():h()},g=[];g[a]="-="+s.bounceDistance;var v=[];v[a]="+="+s.bounceDistance;if(s.clickScreenToClose&&t(document).click((function(e){if(r()&&!i[0].contains(e.target)){for(var n=t(e.target),o=0;o0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===o(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,a.default)(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new r.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return l("action",t)}},{key:"defaultTarget",value:function(t){var e=l("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return l("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(s.default);function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=u},function(t,e,n){"use strict";var o,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,a.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,a.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=c},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),i=document.createRange();i.selectNodeContents(t),o.removeAllRanges(),o.addRange(i),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function i(){o.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,i=n.length;o0){$("#swh-origin-search-results").show(),$("#swh-no-result").hide(),c();var e=$("#origin-search-results tbody"),n=function(){if(s){if(u>=o.length)return"break";l=o[u++]}else{if((u=o.next()).done)return"break";l=u.value}var t=l,n=t[0],i=t[1],r=Urls.browse_origin(i.url),a='';a+=''+encodeURI(i.url)+"",a+='',a+='',a+="",e.append(a);var c=Urls.api_1_origin_visit_latest(i.url);fetch(c+="?require_snapshot=true").then((function(t){return t.json()})).then((function(t){$("#visit-type-origin-"+n).text(t.type),$("#visit-status-origin-"+n).children().remove(),t?$("#visit-status-origin-"+n).append(''):($("#visit-status-origin-"+n).append(''),$("#swh-filter-empty-visits").prop("checked")&&$("#origin-"+n).remove())}))},o=t.entries(),s=Array.isArray(o),u=0;for(o=s?o:o[Symbol.iterator]();;){var l;if("break"===n())break}setTimeout((function(){$("#origin-search-results tbody tr").removeAttr("style")}))}else $("#swh-origin-search-results").hide(),$("#swh-no-result").text("No origins matching the search criteria were found."),$("#swh-no-result").show();null===r?$("#origins-next-results-button").addClass("disabled"):$("#origins-next-results-button").removeClass("disabled"),0===i.length?$("#origins-prev-results-button").addClass("disabled"):$("#origins-prev-results-button").removeClass("disabled"),a=!1,setTimeout((function(){window.scrollTo(0,0)}))}function l(t){c(),$(".swh-loading").addClass("show");var e=fetch(t).then(o.b).then((function(t){return(e=t).json()})).then((function(n){if(s=t,r=null,e.headers.has("Link")){var o=e.headers.get("Link").match(/<(.+)>; rel="next"/)[1];void 0!==o&&(r=o)}$(".swh-loading").removeClass("show"),u(n)})).catch((function(t){$(".swh-loading").removeClass("show"),a=!1,$("#swh-origin-search-results").hide(),$("#swh-no-result").text("Error "+t.status+": "+t.statusText),$("#swh-no-result").show()}))}function f(){$("#swh-no-result").hide();var t=$("#origins-url-patterns").val();if(a=!0,t.startsWith("swh:")){var e=Urls.api_1_resolve_swh_pid(t);fetch(e).then(o.b).then((function(t){return t.json()})).then((function(t){window.location=t.browse_url})).catch((function(t){t.json().then((function(t){$("#swh-origin-search-results").hide(),$(".swh-search-pagination").hide(),$("#swh-no-result").text(t.reason),$("#swh-no-result").show()}))}))}else $("#swh-origin-search-results").show(),$(".swh-search-pagination").show(),function(t,e){l(($("#swh-search-origin-metadata").prop("checked")?Urls.api_1_origin_metadata_search()+"?fulltext="+encodeURIComponent(t):Urls.api_1_origin_search(t)+"?")+"&limit="+e+"&with_visit="+$("#swh-search-origins-with-visit").prop("checked"))}(t,100)}function d(){$(document).ready((function(){$("#swh-search-origins").submit((function(t){t.preventDefault();var e=$("#origins-url-patterns").val().trim(),n=$("#swh-search-origins-with-visit").prop("checked"),o=$("#swh-filter-empty-visits").prop("checked"),i=$("#swh-search-origin-metadata").prop("checked"),r="?q="+encodeURIComponent(e);n&&(r+="&with_visit"),o&&(r+="&with_content"),i&&(r+="&search_metadata"),window.location.search=r})),$("#origins-next-results-button").click((function(t){$("#origins-next-results-button").hasClass("disabled")||a||(a=!0,i.push(s),l(r),t.preventDefault())})),$("#origins-prev-results-button").click((function(t){$("#origins-prev-results-button").hasClass("disabled")||a||(a=!0,l(i.pop()),t.preventDefault())}));var t=new URLSearchParams(window.location.search),e=t.get("q"),n=t.has("with_visit"),o=t.has("with_content"),c=t.has("search_metadata");e&&($("#origins-url-patterns").val(e),$("#swh-search-origins-with-visit").prop("checked",n),$("#swh-filter-empty-visits").prop("checked",o),$("#swh-search-origin-metadata").prop("checked",c),f())}))}},159:function(t,e,n){"use strict";var o=n(21);$(document).ready((function(){$(".dropdown-submenu a.dropdown-item").on("click",(function(t){$(t.target).next("div").toggle(),"none"!==$(t.target).next("div").css("display")?$(t.target).focus():$(t.target).blur(),t.stopPropagation(),t.preventDefault()})),$(".swh-popover-toggler").popover({boundary:"viewport",container:"body",html:!0,placement:function(){return $(window).width()\n
\n

\n
\n ',content:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-body").remove().html()},title:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-heading").html()},offset:"50vh",sanitize:!1}),$(".swh-vault-menu a.dropdown-item").on("click",(function(t){$(".swh-popover-toggler").popover("hide")})),$(".swh-popover-toggler").on("show.bs.popover",(function(t){$(".swh-popover-toggler:not(#"+t.currentTarget.id+")").popover("hide"),$(".swh-vault-menu .dropdown-menu").hide()})),$(".swh-actions-dropdown").on("hide.bs.dropdown",(function(){$(".swh-vault-menu .dropdown-menu").hide(),$(".swh-popover-toggler").popover("hide")})),$("body").on("click",(function(t){$(t.target).parents(".swh-popover").length&&t.stopPropagation()}))}))},160:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"c",(function(){return a})),n.d(e,"b",(function(){return u}));var o=n(151),i=n.n(o),r=(n(245),n(246),n(21));function s(t){t.preventDefault(),$(t.target).tab("show")}function a(t){t.stopPropagation();var e=$(t.target).closest(".swh-id-ui").find(".swh-id"),n=";origin="+$(t.target).data("swh-origin"),o=e.text();$(t.target).prop("checked")?-1===o.indexOf(n)&&(o+=n):o=o.replace(n,""),e.text(o),e.attr("href","/"+o+"/")}function c(t){for(var e=$(t).closest(".swh-id-ui").find(".swh-id"),n=e.text(),o=[],i=";lines=",r=new RegExp(/L(\d+)/g),s=r.exec(window.location.hash);s;)o.push(parseInt(s[1])),s=r.exec(window.location.hash);o.length>0&&(i+=o[0]),o.length>1&&(i+="-"+o[1]),$(t).prop("checked")?(n=n.replace(/;lines=\d+-*\d*/g,""),n+=i):n=n.replace(i,""),e.text(n),e.attr("href","/"+n+"/")}function u(t){t.stopPropagation(),window.location.hash&&c(t.target)}$(document).ready((function(){new i.a(".btn-swh-id-copy",{text:function(t){return $(t).closest(".swh-id-ui").find(".swh-id").text()}}),new i.a(".btn-swh-id-url-copy",{text:function(t){var e=$(t).closest(".swh-id-ui").find(".swh-id").text();return window.location.origin+"/"+e+"/"}}),.7*window.innerWidth>1e3&&$("#swh-identifiers").css("width","1000px");var t={tabLocation:"right",clickScreenToCloseFilters:[".ui-slideouttab-panel",".modal"],offset:function(){return $(window).width()'+e+o+""}n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})),n.d(e,"h",(function(){return r})),n.d(e,"a",(function(){return s})),n.d(e,"e",(function(){return a})),n.d(e,"f",(function(){return c})),n.d(e,"g",(function(){return u})),n.d(e,"d",(function(){return l}))},21:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"a",(function(){return r})),n.d(e,"c",(function(){return s}));var o=n(2),i=768,r=992,s=Object(o.h)("img/swh-spinner.gif")},239:function(t,e,n){t.exports=n(240)},240:function(t,e,n){"use strict";n.r(e);n(241),n(242),n(243),n(244);var o=n(157);n.d(e,"initSnapshotNavigation",(function(){return o.a}));var i=n(158);n.d(e,"initOriginSearch",(function(){return i.a}));n(159);var r=n(160);n.d(e,"swhIdObjectTypeToggled",(function(){return r.a})),n.d(e,"swhIdOptionOriginToggled",(function(){return r.c})),n.d(e,"swhIdOptionLinesToggled",(function(){return r.b}))},241:function(t,e,n){},242:function(t,e,n){},243:function(t,e,n){},244:function(t,e,n){},245:function(t,e){!function(t){t.fn.tabSlideOut=function(e){function n(t){return parseInt(t.outerHeight()+1,10)+"px"}function o(){var e=t(window).height();return"top"!==a&&"bottom"!==a||(e=t(window).width()),e-parseInt(s.otherOffset)-parseInt(s.offset)}var i=this;function r(){return i.hasClass("ui-slideouttab-open")}if("string"==typeof e)switch(e){case"open":return this.trigger("open"),this;case"close":return this.trigger("close"),this;case"isOpen":return r();case"toggle":return this.trigger("toggle"),this;case"bounce":return this.trigger("bounce"),this;default:throw new Error("Invalid tabSlideOut command")}else{var s=t.extend({tabLocation:"left",tabHandle:".handle",action:"click",hoverTimeout:5e3,offset:"200px",offsetReverse:!1,otherOffset:null,handleOffset:null,handleOffsetReverse:!1,bounceDistance:"50px",bounceTimes:4,bounceSpeed:300,tabImage:null,tabImageHeight:null,tabImageWidth:null,onLoadSlideOut:!1,clickScreenToClose:!0,clickScreenToCloseFilters:[".ui-slideouttab-panel"],onOpen:function(){},onClose:function(){}},e||{}),a=s.tabLocation,c=s.tabHandle=t(s.tabHandle,i);if(i.addClass("ui-slideouttab-panel").addClass("ui-slideouttab-"+a),s.offsetReverse&&i.addClass("ui-slideouttab-panel-reverse"),c.addClass("ui-slideouttab-handle"),s.handleOffsetReverse&&c.addClass("ui-slideouttab-handle-reverse"),s.toggleButton=t(s.toggleButton),null!==s.tabImage){var u=0,l=0;if(null!==s.tabImageHeight&&null!==s.tabImageWidth)u=s.tabImageHeight,l=s.tabImageWidth;else{var f=new Image;f.src=s.tabImage,u=f.naturalHeight,l=f.naturalWidth}c.addClass("ui-slideouttab-handle-image"),c.css({background:"url("+s.tabImage+") no-repeat",width:l,height:u})}"top"===a||"bottom"===a?(s.panelOffsetFrom=s.offsetReverse?"right":"left",s.handleOffsetFrom=s.handleOffsetReverse?"right":"left"):(s.panelOffsetFrom=s.offsetReverse?"bottom":"top",s.handleOffsetFrom=s.handleOffsetReverse?"bottom":"top"),null===s.handleOffset&&(s.handleOffset="-"+function(t,e){return parseInt(t.css("border-"+e+"-width"),10)}(i,s.handleOffsetFrom)+"px"),"top"===a||"bottom"===a?(i.css(s.panelOffsetFrom,s.offset),c.css(s.handleOffsetFrom,s.handleOffset),null!==s.otherOffset&&(i.css("width",o()+"px"),t(window).resize((function(){i.css("width",o()+"px")}))),"top"===a?c.css({bottom:"-"+n(c)}):c.css({top:"-"+n(c)})):(i.css(s.panelOffsetFrom,s.offset),c.css(s.handleOffsetFrom,s.handleOffset),null!==s.otherOffset&&(i.css("height",o()+"px"),t(window).resize((function(){i.css("height",o()+"px")}))),"left"===a?c.css({right:"0"}):c.css({left:"0"})),c.click((function(t){t.preventDefault()})),s.toggleButton.click((function(t){t.preventDefault()})),i.addClass("ui-slideouttab-ready");var d=function(){i.removeClass("ui-slideouttab-open").trigger("slideouttabclose"),s.onClose()},h=function(){i.addClass("ui-slideouttab-open").trigger("slideouttabopen"),s.onOpen()},p=function(){r()?d():h()},g=[];g[a]="-="+s.bounceDistance;var v=[];v[a]="+="+s.bounceDistance;if(s.clickScreenToClose&&t(document).click((function(e){if(r()&&!i[0].contains(e.target)){for(var n=t(e.target),o=0;o 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: 'defaultText',\n\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n}(_tinyEmitter2.default);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n\nmodule.exports = Clipboard;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _select = __webpack_require__(2);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\nvar ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n\n /**\n * Decides which selection strategy is going to be applied based\n * on the existence of `text` and `target` properties.\n */\n\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n\n /**\n * Only removes the fake element after another click event, that way\n * a user can hit `Ctrl+C` to copy because selection still exists.\n */\n\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n\n /**\n * Selects the content from element passed on `target` property.\n */\n\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n\n /**\n * Executes the copy operation based on the current selection.\n */\n\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n\n /**\n * Fires an event based on the copy operation result.\n * @param {Boolean} succeeded\n */\n\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n\n /**\n * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n * @param {String} action\n */\n\n }, {\n key: 'destroy',\n\n\n /**\n * Destroy lifecycle.\n */\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n }\n\n /**\n * Gets the `action` property.\n * @return {String}\n */\n ,\n get: function get() {\n return this._action;\n }\n\n /**\n * Sets the `target` property using an element\n * that will be have its content copied.\n * @param {Element} target\n */\n\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n }\n\n /**\n * Gets the `target` property.\n * @return {String|HTMLElement}\n */\n ,\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n}();\n\nmodule.exports = ClipboardAction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(5);\nvar delegate = __webpack_require__(6);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(7);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ })\n/******/ ]);\n});","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function initSnapshotNavigation(snapshotContext, branch) {\n\n function setBranchesTabActive() {\n $('.swh-releases-switch').removeClass('active');\n $('.swh-branches-switch').addClass('active');\n $('#swh-tab-releases').removeClass('active');\n $('#swh-tab-branches').addClass('active');\n }\n\n function setReleasesTabActive() {\n $('.swh-branches-switch').removeClass('active');\n $('.swh-releases-switch').addClass('active');\n $('#swh-tab-branches').removeClass('active');\n $('#swh-tab-releases').addClass('active');\n }\n\n $(document).ready(() => {\n $('.dropdown-menu a.swh-branches-switch').click(e => {\n setBranchesTabActive();\n e.stopPropagation();\n });\n\n $('.dropdown-menu a.swh-releases-switch').click(e => {\n setReleasesTabActive();\n e.stopPropagation();\n });\n\n let dropdownResized = false;\n\n // hack to resize the branches/releases dropdown content,\n // taking icons into account, in order to make the whole names readable\n $('#swh-branches-releases-dd').on('show.bs.dropdown', () => {\n if (dropdownResized) return;\n let dropdownWidth = $('.swh-branches-releases').width();\n $('.swh-branches-releases').width(dropdownWidth + 25);\n dropdownResized = true;\n });\n\n if (snapshotContext) {\n if (branch) {\n setBranchesTabActive();\n } else {\n setReleasesTabActive();\n }\n }\n\n });\n\n}\n","/**\n * Copyright (C) 2018-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError} from 'utils/functions';\n\nconst limit = 100;\nlet linksPrev = [];\nlet linkNext = null;\nlet linkCurrent = null;\nlet inSearch = false;\n\nfunction parseLinkHeader(s) {\n let re = /<(.+)>; rel=\"next\"/;\n return s.match(re)[1];\n}\n\nfunction fixTableRowsStyle() {\n setTimeout(() => {\n $('#origin-search-results tbody tr').removeAttr('style');\n });\n}\n\nfunction clearOriginSearchResultsTable() {\n $('#origin-search-results tbody tr').remove();\n}\n\nfunction populateOriginSearchResultsTable(origins) {\n if (origins.length > 0) {\n $('#swh-origin-search-results').show();\n $('#swh-no-result').hide();\n clearOriginSearchResultsTable();\n let table = $('#origin-search-results tbody');\n for (let [i, origin] of origins.entries()) {\n let browseUrl = Urls.browse_origin(origin.url);\n let tableRow = ``;\n tableRow += `${encodeURI(origin.url)}`;\n tableRow += ``;\n tableRow += ``;\n tableRow += '';\n table.append(tableRow);\n // get async latest visit snapshot and update visit status icon\n let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url);\n latestSnapshotUrl += '?require_snapshot=true';\n fetch(latestSnapshotUrl)\n .then(response => response.json())\n .then(data => {\n $(`#visit-type-origin-${i}`).text(data.type);\n $(`#visit-status-origin-${i}`).children().remove();\n if (data) {\n $(`#visit-status-origin-${i}`).append('');\n } else {\n $(`#visit-status-origin-${i}`).append('');\n if ($('#swh-filter-empty-visits').prop('checked')) {\n $(`#origin-${i}`).remove();\n }\n }\n });\n }\n fixTableRowsStyle();\n } else {\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text('No origins matching the search criteria were found.');\n $('#swh-no-result').show();\n }\n\n if (linkNext === null) {\n $('#origins-next-results-button').addClass('disabled');\n } else {\n $('#origins-next-results-button').removeClass('disabled');\n }\n\n if (linksPrev.length === 0) {\n $('#origins-prev-results-button').addClass('disabled');\n } else {\n $('#origins-prev-results-button').removeClass('disabled');\n }\n\n inSearch = false;\n setTimeout(() => {\n window.scrollTo(0, 0);\n });\n}\n\nfunction searchOriginsFirst(searchQueryText, limit) {\n let baseSearchUrl;\n let searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n if (searchMetadata) {\n baseSearchUrl = Urls.api_1_origin_metadata_search() + '?fulltext=' + encodeURIComponent(searchQueryText);\n } else {\n baseSearchUrl = Urls.api_1_origin_search(searchQueryText) + '?';\n }\n\n let withVisit = $('#swh-search-origins-with-visit').prop('checked');\n let searchUrl = baseSearchUrl + `&limit=${limit}&with_visit=${withVisit}`;\n searchOrigins(searchUrl);\n}\n\nfunction searchOrigins(searchUrl) {\n clearOriginSearchResultsTable();\n $('.swh-loading').addClass('show');\n let response = fetch(searchUrl)\n .then(handleFetchError)\n .then(resp => {\n response = resp;\n return response.json();\n })\n .then(data => {\n // Save link to the current results page\n linkCurrent = searchUrl;\n // Save link to the next results page.\n linkNext = null;\n if (response.headers.has('Link')) {\n let parsedLink = parseLinkHeader(response.headers.get('Link'));\n if (parsedLink !== undefined) {\n linkNext = parsedLink;\n }\n }\n // prevLinks is updated by the caller, which is the one to know if\n // we're going forward or backward in the pages.\n\n $('.swh-loading').removeClass('show');\n populateOriginSearchResultsTable(data);\n })\n .catch(response => {\n $('.swh-loading').removeClass('show');\n inSearch = false;\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text(`Error ${response.status}: ${response.statusText}`);\n $('#swh-no-result').show();\n });\n}\n\nfunction doSearch() {\n $('#swh-no-result').hide();\n let searchQueryText = $('#origins-url-patterns').val();\n inSearch = true;\n if (searchQueryText.startsWith('swh:')) {\n // searchQueryText may be a PID so sending search queries to PID resolve endpoint\n let resolvePidUrl = Urls.api_1_resolve_swh_pid(searchQueryText);\n fetch(resolvePidUrl)\n .then(handleFetchError)\n .then(response => response.json())\n .then(data => {\n // pid has been successfully resolved,\n // so redirect to browse page\n window.location = data.browse_url;\n })\n .catch(response => {\n // display a useful error message if the input\n // looks like a swh pid\n response.json().then(data => {\n $('#swh-origin-search-results').hide();\n $('.swh-search-pagination').hide();\n $('#swh-no-result').text(data.reason);\n $('#swh-no-result').show();\n });\n\n });\n } else {\n // otherwise, proceed with origins search\n $('#swh-origin-search-results').show();\n $('.swh-search-pagination').show();\n searchOriginsFirst(searchQueryText, limit);\n }\n}\n\nexport function initOriginSearch() {\n $(document).ready(() => {\n $('#swh-search-origins').submit(event => {\n event.preventDefault();\n let searchQueryText = $('#origins-url-patterns').val().trim();\n let withVisit = $('#swh-search-origins-with-visit').prop('checked');\n let withContent = $('#swh-filter-empty-visits').prop('checked');\n let searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n let queryParameters = '?q=' + encodeURIComponent(searchQueryText);\n if (withVisit) {\n queryParameters += '&with_visit';\n }\n if (withContent) {\n queryParameters += '&with_content';\n }\n if (searchMetadata) {\n queryParameters += '&search_metadata';\n }\n // Update the url, triggering page reload and effective search\n window.location.search = queryParameters;\n });\n\n $('#origins-next-results-button').click(event => {\n if ($('#origins-next-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n linksPrev.push(linkCurrent);\n searchOrigins(linkNext);\n event.preventDefault();\n });\n\n $('#origins-prev-results-button').click(event => {\n if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n searchOrigins(linksPrev.pop());\n event.preventDefault();\n });\n\n let urlParams = new URLSearchParams(window.location.search);\n let query = urlParams.get('q');\n let withVisit = urlParams.has('with_visit');\n let withContent = urlParams.has('with_content');\n let searchMetadata = urlParams.has('search_metadata');\n if (query) {\n $('#origins-url-patterns').val(query);\n $('#swh-search-origins-with-visit').prop('checked', withVisit);\n $('#swh-filter-empty-visits').prop('checked', withContent);\n $('#swh-search-origin-metadata').prop('checked', searchMetadata);\n doSearch();\n }\n });\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {BREAKPOINT_SM} from 'utils/constants';\n\n$(document).ready(() => {\n\n $('.dropdown-submenu a.dropdown-item').on('click', e => {\n $(e.target).next('div').toggle();\n if ($(e.target).next('div').css('display') !== 'none') {\n $(e.target).focus();\n } else {\n $(e.target).blur();\n }\n e.stopPropagation();\n e.preventDefault();\n });\n\n $('.swh-popover-toggler').popover({\n boundary: 'viewport',\n container: 'body',\n html: true,\n placement: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return 'top';\n } else {\n return 'right';\n }\n },\n template: `
\n
\n

\n
\n
`,\n content: function() {\n var content = $(this).attr('data-popover-content');\n return $(content).children('.popover-body').remove().html();\n },\n title: function() {\n var title = $(this).attr('data-popover-content');\n return $(title).children('.popover-heading').html();\n },\n offset: '50vh',\n sanitize: false\n });\n\n $('.swh-vault-menu a.dropdown-item').on('click', e => {\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('.swh-popover-toggler').on('show.bs.popover', (e) => {\n $(`.swh-popover-toggler:not(#${e.currentTarget.id})`).popover('hide');\n $('.swh-vault-menu .dropdown-menu').hide();\n });\n\n $('.swh-actions-dropdown').on('hide.bs.dropdown', () => {\n $('.swh-vault-menu .dropdown-menu').hide();\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('body').on('click', e => {\n if ($(e.target).parents('.swh-popover').length) {\n e.stopPropagation();\n }\n });\n\n});\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport ClipboardJS from 'clipboard';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css';\n\nimport {BREAKPOINT_SM} from 'utils/constants';\n\nexport function swhIdObjectTypeToggled(event) {\n event.preventDefault();\n $(event.target).tab('show');\n}\n\nexport function swhIdOptionOriginToggled(event) {\n event.stopPropagation();\n let swhIdElt = $(event.target).closest('.swh-id-ui').find('.swh-id');\n let originPart = ';origin=' + $(event.target).data('swh-origin');\n let currentSwhId = swhIdElt.text();\n if ($(event.target).prop('checked')) {\n if (currentSwhId.indexOf(originPart) === -1) {\n currentSwhId += originPart;\n }\n } else {\n currentSwhId = currentSwhId.replace(originPart, '');\n }\n swhIdElt.text(currentSwhId);\n swhIdElt.attr('href', '/' + currentSwhId + '/');\n}\n\nfunction setIdLinesPart(elt) {\n let swhIdElt = $(elt).closest('.swh-id-ui').find('.swh-id');\n let currentSwhId = swhIdElt.text();\n let lines = [];\n let linesPart = ';lines=';\n let linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n if (lines.length > 0) {\n linesPart += lines[0];\n }\n if (lines.length > 1) {\n linesPart += '-' + lines[1];\n }\n if ($(elt).prop('checked')) {\n currentSwhId = currentSwhId.replace(/;lines=\\d+-*\\d*/g, '');\n currentSwhId += linesPart;\n } else {\n currentSwhId = currentSwhId.replace(linesPart, '');\n }\n swhIdElt.text(currentSwhId);\n swhIdElt.attr('href', '/' + currentSwhId + '/');\n}\n\nexport function swhIdOptionLinesToggled(event) {\n event.stopPropagation();\n if (!window.location.hash) {\n return;\n }\n setIdLinesPart(event.target);\n}\n\n$(document).ready(() => {\n new ClipboardJS('.btn-swh-id-copy', {\n text: trigger => {\n let swhId = $(trigger).closest('.swh-id-ui').find('.swh-id').text();\n return swhId;\n }\n });\n\n new ClipboardJS('.btn-swh-id-url-copy', {\n text: trigger => {\n let swhId = $(trigger).closest('.swh-id-ui').find('.swh-id').text();\n return window.location.origin + '/' + swhId + '/';\n }\n });\n\n if (window.innerWidth * 0.7 > 1000) {\n $('#swh-identifiers').css('width', '1000px');\n }\n\n let tabSlideOptions = {\n tabLocation: 'right',\n clickScreenToCloseFilters: ['.ui-slideouttab-panel', '.modal'],\n offset: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return '250px';\n } else {\n return '200px';\n }\n }\n };\n // ensure tab scrolling on small screens\n if (window.innerHeight < 600 || window.innerWidth < 500) {\n tabSlideOptions['otherOffset'] = '20px';\n }\n\n // initiate the sliding identifiers tab\n $('#swh-identifiers').tabSlideOut(tabSlideOptions);\n\n // set the tab visible once the close animation is terminated\n $('#swh-identifiers').css('display', 'block');\n $('.swh-id-option-origin').trigger('click');\n $('.swh-id-option-lines').trigger('click');\n\n $(window).on('hashchange', () => {\n setIdLinesPart('.swh-id-option-lines');\n });\n\n});\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, domain) {\n let endOfPattern = '\\\\/[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git(?:\\\\/?|\\\\#[\\\\w\\\\.\\\\-_]+)?)?$';\n let pattern = `(?:git|https?|git@)(?:\\\\:\\\\/\\\\/)?${domain}[/|:][A-Za-z0-9-]+?` + endOfPattern;\n let re = new RegExp(pattern);\n return re.test(url);\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n let selection = window.getSelection();\n selection.removeAllRanges();\n let range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n ``;\n extraClasses = 'alert-dismissible';\n }\n return `
${message}${closeButton}
`;\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// main bundle for the swh-web/browse application\n\nimport './browse.css';\nimport './breadcrumbs.css';\nimport './content.css';\nimport './snapshot-navigation.css';\n\nexport * from './snapshot-navigation';\nexport * from './origin-search';\nexport * from './browse-utils';\nexport * from './swh-ids-utils';\n","/*\n tabSlideOUt v2.4\n\n Originally by William Paoli: http://code.google.com/p/tab-slide-out\n Maintained by Michael Fielding: https://github.com/hawk-ip/jquery.tabSlideOut.js\n License: GPL v3.0\n\n To use this you need an element for the tab panel content ('panel'), and inside it an element for the\n tab which will stick out from the window edge and be clickable ('handle'). By default the selector\n for handles is '.handle'.\n\n example HTML:\n\n
Click meHello World
\n\n example JavaScript (puts the tab on the right, and opens it on hover rather than click):\n\n $('#my-tab').tabSlideOut( {'tabLocation':'right','action':'hover'} );\n\n Style the tab panel and handle using CSS. Add the class ui-slideouttab-handle-rounded to handles to give them\n rounded outer corners.\n\n You can use some methods to programmatically interact with tabs. Methods except 'isOpen' are chainable.\n\n $('#my-tab').tabSlideOut('isOpen'); // return true or false\n $('#my-tab').tabSlideOut('open'); // opens it\n $('#my-tab').tabSlideOut('close'); // closes it\n $('#my-tab').tabSlideOut('toggle'); // toggles it\n $('#my-tab').tabSlideOut('bounce'); // bounces the tab\n\n You can also send JQuery events to initiate actions:\n\n $('#my-tab').trigger('open'); // opens it\n $('#my-tab').trigger('close'); // closes it\n $('#my-tab').trigger('toggle'); // toggles it\n $('#my-tab').trigger('bounce'); // bounces the tab\n\n Three events are defined and can be caught when tabs open and close:\n\n $(document).on('slideouttabopen slideouttabclose slideouttabbounce',function(event){\n var $panel = $(event.target);\n var eventType = event.type;\n // your code here\n });\n\n Features are demonstrated on the related demo page.\n*/\n(function($) {\n $.fn.tabSlideOut = function(callerSettings) {\n\n /**\n * @param node Element to get the height of.\n * @return string e.g. '123px'\n */\n function heightAsString(node) {\n return parseInt(node.outerHeight() + 1, 10) + 'px';\n }\n\n /*\n * Get the width of the given border, in pixels.\n *\n * @param node element\n * @param string edge\n * @returns int\n */\n function borderWidth(element, edge) {\n return parseInt(element.css('border-' + edge + '-width'), 10);\n }\n\n /**\n * Return the desired height of the panel to maintain both offsets.\n */\n function calculatePanelSize() {\n var available = $(window).height();\n if (edge === 'top' || edge === 'bottom') {\n available = $(window).width();\n }\n return available - parseInt(settings.otherOffset) - parseInt(settings.offset);\n }\n\n var panel = this;\n\n /**\n * True if the tab is open.\n *\n * @returns boolean\n */\n function isOpen() {\n return panel.hasClass('ui-slideouttab-open');\n }\n\n if (typeof callerSettings === 'string') {\n // param is a string, use command mode\n switch (callerSettings) {\n case 'open':\n this.trigger('open');\n return this;\n case 'close':\n this.trigger('close');\n return this;\n case 'isOpen':\n return isOpen();\n case 'toggle':\n this.trigger('toggle');\n return this;\n case 'bounce':\n this.trigger('bounce');\n return this;\n default:\n throw new Error('Invalid tabSlideOut command');\n }\n } else {\n // param is an object, it's initialisation mode\n var settings = $.extend({\n tabLocation: 'left', // left, right, top or bottom\n tabHandle: '.handle', // JQuery selector for the tab, can use any JQuery selector\n action: 'click', // action which will open the panel, e.g. 'hover'\n hoverTimeout: 5000, // ms to keep tab open after no longer hovered - only if action = 'hover'\n offset: '200px', // panel dist from top or left (bottom or right if offsetReverse is true)\n offsetReverse: false, // if true, panel is offset from right or bottom of window instead of left or top\n otherOffset: null, // if set, panel size is also set to maintain this dist from bottom or right of view port (top or left if offsetReverse)\n handleOffset: null, // e.g. '10px'. If null, detects panel border to align handle nicely on edge\n handleOffsetReverse: false, // if true, handle is offset from right or bottom of panel instead of left or top\n bounceDistance: '50px', // how far bounce event will move everything\n bounceTimes: 4, // how many bounces when 'bounce' is called\n bounceSpeed: 300, // time to animate bounces\n tabImage: null, // optional image to show in the tab\n tabImageHeight: null, // optional IE8 and lower only, else autodetected size\n tabImageWidth: null, // optional IE8 and lower only, else autodetected size\n onLoadSlideOut: false, // slide out after DOM load\n clickScreenToClose: true, // close tab when somewhere outside the tab is clicked\n clickScreenToCloseFilters: ['.ui-slideouttab-panel'], // if click target or parents match any of these, click won't close this tab\n onOpen: function() {}, // handler called after opening\n onClose: function() {} // handler called after closing\n }, callerSettings || {});\n\n var edge = settings.tabLocation;\n var handle = settings.tabHandle = $(settings.tabHandle, panel);\n\n panel.addClass('ui-slideouttab-panel')\n .addClass('ui-slideouttab-' + edge);\n if (settings.offsetReverse) {\n panel.addClass('ui-slideouttab-panel-reverse');\n }\n handle.addClass('ui-slideouttab-handle'); // need this to find it later\n if (settings.handleOffsetReverse) {\n handle.addClass('ui-slideouttab-handle-reverse');\n }\n settings.toggleButton = $(settings.toggleButton);\n\n // apply an image to the tab if one is defined\n if (settings.tabImage !== null) {\n var imageHeight = 0;\n var imageWidth = 0;\n if (settings.tabImageHeight !== null && settings.tabImageWidth !== null) {\n imageHeight = settings.tabImageHeight;\n imageWidth = settings.tabImageWidth;\n } else {\n var img = new Image();\n img.src = settings.tabImage;\n imageHeight = img.naturalHeight;\n imageWidth = img.naturalWidth;\n }\n\n handle.addClass('ui-slideouttab-handle-image');\n handle.css({\n 'background': 'url(' + settings.tabImage + ') no-repeat',\n 'width': imageWidth,\n 'height': imageHeight\n });\n }\n\n // determine whether panel and handle are positioned from top, bottom, left, or right\n if (edge === 'top' || edge === 'bottom') {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'right' : 'left';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'right' : 'left';\n } else {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'bottom' : 'top';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'bottom' : 'top';\n }\n\n /* autodetect the correct offset for the handle using appropriate panel border */\n if (settings.handleOffset === null) {\n settings.handleOffset = '-' + borderWidth(panel, settings.handleOffsetFrom) + 'px';\n }\n\n if (edge === 'top' || edge === 'bottom') {\n /* set left or right edges */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('width', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('width', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'top') {\n handle.css({'bottom': '-' + heightAsString(handle)});\n } else {\n handle.css({'top': '-' + heightAsString(handle)});\n }\n } else {\n /* set top or bottom edge */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('height', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('height', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'left') {\n handle.css({'right': '0'});\n } else {\n handle.css({'left': '0'});\n }\n }\n\n handle.click(function(event) {\n event.preventDefault();\n });\n settings.toggleButton.click(function(event) {\n event.preventDefault();\n });\n\n // now everything is set up, add the class which enables CSS tab animation\n panel.addClass('ui-slideouttab-ready');\n\n var close = function() {\n panel.removeClass('ui-slideouttab-open').trigger('slideouttabclose');\n settings.onClose();\n };\n\n var open = function() {\n panel.addClass('ui-slideouttab-open').trigger('slideouttabopen');\n settings.onOpen();\n };\n\n var toggle = function() {\n if (isOpen()) {\n close();\n } else {\n open();\n }\n };\n\n // animate the tab in and out when 'bounced'\n var moveIn = [];\n moveIn[edge] = '-=' + settings.bounceDistance;\n var moveOut = [];\n moveOut[edge] = '+=' + settings.bounceDistance;\n\n var bounceIn = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveIn, settings.bounceSpeed)\n .animate(moveOut, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n var bounceOut = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveOut, settings.bounceSpeed)\n .animate(moveIn, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n // handle clicks in rest of document to close tabs if they're open\n if (settings.clickScreenToClose) {\n // install a click handler to close tab if anywhere outside the tab is clicked,\n // that isn't filtered out by the configured filters\n $(document).click(function(event) {\n // first check the tab is open and the click isn't inside it\n if (isOpen() && !panel[0].contains(event.target)) {\n // something other than this panel was clicked\n var clicked = $(event.target);\n\n // check to see if any filters return true\n for (var i = 0; i < settings.clickScreenToCloseFilters.length; i++) {\n var filter = settings.clickScreenToCloseFilters[i];\n if (typeof filter === 'string') {\n // checked clicked element itself, and all parents\n if (clicked.is(filter) || clicked.parents().is(filter)) {\n return; // don't close the tab\n }\n } else if (typeof filter === 'function') {\n // call custom filter\n if (filter.call(panel, event)) {\n return;\n } // don't close the tab\n }\n }\n\n // we haven't returned true from any filter, so close the tab\n close();\n }\n });\n };\n\n // choose which type of action to bind\n if (settings.action === 'click') {\n handle.click(function(event) {\n toggle();\n });\n } else if (settings.action === 'hover') {\n var timer = null;\n panel.hover(\n function() {\n if (!isOpen()) {\n open();\n }\n timer = null; // eliminate the timer, ensure we don't close now\n },\n function() {\n if (isOpen() && timer === null) {\n timer = setTimeout(function() {\n if (timer) {\n close();\n }\n timer = null;\n }, settings.hoverTimeout);\n }\n });\n\n handle.click(function(event) {\n if (isOpen()) {\n close();\n }\n });\n }\n\n if (settings.onLoadSlideOut) {\n open();\n setTimeout(open, 500);\n }\n\n // custom event handlers -------\n panel.on('open', function(event) {\n if (!isOpen()) {\n open();\n }\n });\n panel.on('close', function(event) {\n if (isOpen()) {\n close();\n }\n });\n panel.on('toggle', function(event) {\n toggle();\n });\n panel.on('bounce', function(event) {\n if (isOpen()) {\n bounceIn();\n } else {\n bounceOut();\n }\n });\n\n }\n return this;\n };\n})(jQuery);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/vault.4a7e12be1c0d2a47b149.js b/static/js/vault.4a7e12be1c0d2a47b149.js new file mode 100644 index 00000000..779396d0 --- /dev/null +++ b/static/js/vault.4a7e12be1c0d2a47b149.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vault=e():(t.swh=t.swh||{},t.swh.vault=e())}(window,(function(){return function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="/static/",o(o.s=257)}({165:function(t,e,o){"use strict";o.d(e,"a",(function(){return c})),o.d(e,"c",(function(){return s})),o.d(e,"d",(function(){return l})),o.d(e,"b",(function(){return d}));var n,r,a=o(2);function i(t,e){"new"===e.status?t.css("background-color","rgba(128, 128, 128, 0.5)"):"pending"===e.status?t.css("background-color","rgba(0, 0, 255, 0.5)"):"done"===e.status?t.css("background-color","#5cb85c"):"failed"===e.status&&(t.css("background-color","rgba(255, 0, 0, 0.5)"),t.css("background-image","none")),t.text(e.progress_message||e.status),"new"===e.status||"pending"===e.status?t.addClass("progress-bar-animated"):t.removeClass("progress-bar-striped")}function c(t){r=null,fetch(t).then((function(e){if(e.ok)$("#vault-fetch-iframe").attr("src",t);else{for(var o=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks")),n=0;nDownload':"failed"===l.status?f[0].innerHTML="":"new"===l.status&&(f[0].innerHTML="Waiting for download link to be available")}else{var v=void 0;v="directory"===l.object_type?Urls.browse_directory(l.object_id):Urls.browse_revision(l.object_id);var b=$.parseHTML('
\n
\n
\n
;')[0];i($(b).find(".progress-bar"),l);var h=void 0;h="directory"===l.object_type?'':'',h+='',h+=''+l.object_type+"",h+=''+l.object_id+"",h+=''+b.outerHTML+"";var g="Waiting for download link to be available";"done"===l.status?g='':"failed"===l.status&&(g=""),h+=''+g+"",h+="",r.prepend(h)}}localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(t)),n=setTimeout(u,5e3)})).catch((function(){}))}function l(t){var e=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks"));e&&(e=$.grep(e,(function(e){return-1===$.inArray(e.object_id,t)})),localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(e)))}function d(){$("#vault-tasks-toggle-selection").change((function(t){$(".vault-task-toggle-selection").prop("checked",t.currentTarget.checked)})),$("#vault-remove-tasks").click((function(){clearTimeout(n);var t=[];$(".swh-vault-table tbody tr").each((function(e,o){if($(o).find(".vault-task-toggle-selection").prop("checked")){var n=$(o).find(".vault-object-id").data("object-id");t.push(n),$(o).remove()}})),l(t),$("#vault-tasks-toggle-selection").prop("checked",!1),n=setTimeout(u,5e3)})),u(),window.onfocus=function(){clearTimeout(n),u()}}},166:function(t,e,o){"use strict";o.d(e,"e",(function(){return r})),o.d(e,"a",(function(){return c})),o.d(e,"c",(function(){return s})),o.d(e,"b",(function(){return u})),o.d(e,"d",(function(){return l}));var n=o(2);function r(t,e){var o;o="directory"===t?Urls.api_1_vault_cook_directory(e):Urls.api_1_vault_cook_revision_gitfast(e),fetch(o).then((function(t){return t.json()})).then((function(o){"NotFoundExc"===o.exception||"failed"===o.status?(swh.vault.removeCookingTaskInfo([e]),$("#vault-cook-"+t+"-modal").modal("show")):"done"===o.status&&$("#vault-fetch-"+t+"-modal").modal("show")}))}function a(t){var e,o=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks"));(o||(o=[]),void 0===o.find((function(e){return e.object_type===t.object_type&&e.object_id===t.object_id})))?(e="directory"===t.object_type?Urls.api_1_vault_cook_directory(t.object_id):Urls.api_1_vault_cook_revision_gitfast(t.object_id),t.email&&(e+="?email="+t.email),Object(n.a)(e).then(n.b).then((function(){o.push(t),localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(o)),$("#vault-cook-directory-modal").modal("hide"),$("#vault-cook-revision-modal").modal("hide"),window.location=Urls.browse_vault()})).catch((function(){$("#vault-cook-directory-modal").modal("hide"),$("#vault-cook-revision-modal").modal("hide")}))):window.location=Urls.browse_vault()}function i(t){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(t).toLowerCase())}function c(t){var e=$("#swh-vault-directory-email").val().trim();!e||i(e)?a({object_type:"directory",object_id:t,email:e,status:"new"}):$("#invalid-email-modal").modal("show")}function s(t){$("#vault-fetch-directory-modal").modal("hide");var e=Urls.api_1_vault_cook_directory(t);fetch(e).then((function(t){return t.json()})).then((function(t){swh.vault.fetchCookedObject(t.fetch_url)}))}function u(t){var e=$("#swh-vault-revision-email").val().trim();!e||i(e)?a({object_type:"revision",object_id:t,email:e,status:"new"}):$("#invalid-email-modal").modal("show")}function l(t){$("#vault-fetch-directory-modal").modal("hide");var e=Urls.api_1_vault_cook_revision_gitfast(t);fetch(e).then((function(t){return t.json()})).then((function(t){swh.vault.fetchCookedObject(t.fetch_url)}))}},2:function(t,e,o){"use strict";function n(t){if(!t.ok)throw t;return t}function r(t){for(var e=0;e'+e+n+""}o.d(e,"b",(function(){return n})),o.d(e,"c",(function(){return r})),o.d(e,"h",(function(){return a})),o.d(e,"a",(function(){return i})),o.d(e,"e",(function(){return c})),o.d(e,"f",(function(){return s})),o.d(e,"g",(function(){return u})),o.d(e,"d",(function(){return l}))},257:function(t,e,o){t.exports=o(258)},258:function(t,e,o){"use strict";o.r(e);o(259);var n=o(165);o.d(e,"fetchCookedObject",(function(){return n.a})),o.d(e,"recookObject",(function(){return n.c})),o.d(e,"removeCookingTaskInfo",(function(){return n.d})),o.d(e,"initUi",(function(){return n.b}));var r=o(166);o.d(e,"vaultRequest",(function(){return r.e})),o.d(e,"cookDirectoryArchive",(function(){return r.a})),o.d(e,"fetchDirectoryArchive",(function(){return r.c})),o.d(e,"cookRevisionArchive",(function(){return r.b})),o.d(e,"fetchRevisionArchive",(function(){return r.d}))},259:function(t,e,o){}})})); +//# sourceMappingURL=vault.4a7e12be1c0d2a47b149.js.map \ No newline at end of file diff --git a/static/js/vault.4a7e12be1c0d2a47b149.js.map b/static/js/vault.4a7e12be1c0d2a47b149.js.map new file mode 100644 index 00000000..2e7b91d5 --- /dev/null +++ b/static/js/vault.4a7e12be1c0d2a47b149.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://swh.vault/webpack/universalModuleDefinition","webpack://swh.vault/webpack/bootstrap","webpack://swh.vault/./swh/web/assets/src/bundles/vault/vault-ui.js","webpack://swh.vault/./swh/web/assets/src/bundles/vault/vault-create-tasks.js","webpack://swh.vault/./swh/web/assets/src/utils/functions.js","webpack://swh.vault/./swh/web/assets/src/bundles/vault/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","checkVaultId","recookTask","updateProgressBar","progressBar","cookingTask","status","css","text","progress_message","addClass","removeClass","fetchCookedObject","fetchUrl","fetch","then","response","ok","$","attr","vaultCookingTasks","JSON","parse","localStorage","getItem","length","fetch_url","modal","recookObject","cookingUrl","clearTimeout","object_type","Urls","api_1_vault_cook_directory","object_id","api_1_vault_cook_revision_gitfast","email","csrfPost","handleFetchError","setItem","stringify","checkVaultCookingTasks","remove","setTimeout","cookingTaskRequests","tasks","currentObjectIds","push","each","row","objectId","find","data","inArray","Promise","all","handleFetchErrors","responses","map","json","cookingTasks","table","obj_id","rowTask","downloadLink","innerHTML","browseUrl","browse_directory","browse_revision","parseHTML","tableRow","swh","webapp","getSwhObjectIcon","outerHTML","prepend","removeCookingTaskInfo","tasksToRemove","grep","task","initUi","change","event","prop","currentTarget","checked","click","onfocus","vaultRequest","objectType","vaultUrl","exception","vault","addVaultCookingTask","undefined","val","location","browse_vault","validateEmail","test","String","toLowerCase","cookDirectoryArchive","directoryId","trim","fetchDirectoryArchive","cookRevisionArchive","revisionId","fetchRevisionArchive","staticAsset","asset","__STATIC__","url","headers","body","Cookies","credentials","method","isGitRepoUrl","domain","RegExp","removeUrlFragment","history","replaceState","document","title","pathname","search","selectText","startNode","endNode","selection","getSelection","removeAllRanges","range","createRange","setStart","nodeName","setEnd","childNodes","textContent","addRange","htmlAlert","type","message","closable","closeButton","extraClasses"],"mappings":"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","file":"js/vault.4a7e12be1c0d2a47b149.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vault\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"vault\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 257);\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions';\n\nlet progress = `
\n
\n
\n
;`;\n\nlet pollingInterval = 5000;\nlet checkVaultId;\n\nfunction updateProgressBar(progressBar, cookingTask) {\n if (cookingTask.status === 'new') {\n progressBar.css('background-color', 'rgba(128, 128, 128, 0.5)');\n } else if (cookingTask.status === 'pending') {\n progressBar.css('background-color', 'rgba(0, 0, 255, 0.5)');\n } else if (cookingTask.status === 'done') {\n progressBar.css('background-color', '#5cb85c');\n } else if (cookingTask.status === 'failed') {\n progressBar.css('background-color', 'rgba(255, 0, 0, 0.5)');\n progressBar.css('background-image', 'none');\n }\n progressBar.text(cookingTask.progress_message || cookingTask.status);\n if (cookingTask.status === 'new' || cookingTask.status === 'pending') {\n progressBar.addClass('progress-bar-animated');\n } else {\n progressBar.removeClass('progress-bar-striped');\n }\n}\n\nlet recookTask;\n\n// called when the user wants to download a cooked archive\nexport function fetchCookedObject(fetchUrl) {\n recookTask = null;\n // first, check if the link is still available from the vault\n fetch(fetchUrl)\n .then(response => {\n // link is still alive, proceed to download\n if (response.ok) {\n $('#vault-fetch-iframe').attr('src', fetchUrl);\n // link is dead\n } else {\n // get the associated cooking task\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].fetch_url === fetchUrl) {\n recookTask = vaultCookingTasks[i];\n break;\n }\n }\n // display a modal asking the user if he wants to recook the archive\n $('#vault-recook-object-modal').modal('show');\n }\n });\n}\n\n// called when the user wants to recook an archive\n// for which the download link is not available anymore\nexport function recookObject() {\n if (recookTask) {\n // stop cooking tasks status polling\n clearTimeout(checkVaultId);\n // build cook request url\n let cookingUrl;\n if (recookTask.object_type === 'directory') {\n cookingUrl = Urls.api_1_vault_cook_directory(recookTask.object_id);\n } else {\n cookingUrl = Urls.api_1_vault_cook_revision_gitfast(recookTask.object_id);\n }\n if (recookTask.email) {\n cookingUrl += '?email=' + recookTask.email;\n }\n // request archive cooking\n csrfPost(cookingUrl)\n .then(handleFetchError)\n .then(() => {\n // update task status\n recookTask.status = 'new';\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].object_id === recookTask.object_id) {\n vaultCookingTasks[i] = recookTask;\n break;\n }\n }\n // save updated tasks to local storage\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n // restart cooking tasks status polling\n checkVaultCookingTasks();\n // hide recook archive modal\n $('#vault-recook-object-modal').modal('hide');\n })\n // something went wrong\n .catch(() => {\n checkVaultCookingTasks();\n $('#vault-recook-object-modal').modal('hide');\n });\n }\n}\n\nfunction checkVaultCookingTasks() {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks || vaultCookingTasks.length === 0) {\n $('.swh-vault-table tbody tr').remove();\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n return;\n }\n let cookingTaskRequests = [];\n let tasks = {};\n let currentObjectIds = [];\n\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n let cookingTask = vaultCookingTasks[i];\n currentObjectIds.push(cookingTask.object_id);\n tasks[cookingTask.object_id] = cookingTask;\n let cookingUrl;\n if (cookingTask.object_type === 'directory') {\n cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id);\n } else {\n cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id);\n }\n if (cookingTask.status !== 'done' && cookingTask.status !== 'failed') {\n cookingTaskRequests.push(fetch(cookingUrl));\n }\n }\n $('.swh-vault-table tbody tr').each((i, row) => {\n let objectId = $(row).find('.vault-object-id').data('object-id');\n if ($.inArray(objectId, currentObjectIds) === -1) {\n $(row).remove();\n }\n });\n Promise.all(cookingTaskRequests)\n .then(handleFetchErrors)\n .then(responses => Promise.all(responses.map(r => r.json())))\n .then(cookingTasks => {\n let table = $('#vault-cooking-tasks tbody');\n for (let i = 0; i < cookingTasks.length; ++i) {\n let cookingTask = tasks[cookingTasks[i].obj_id];\n cookingTask.status = cookingTasks[i].status;\n cookingTask.fetch_url = cookingTasks[i].fetch_url;\n cookingTask.progress_message = cookingTasks[i].progress_message;\n }\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n let cookingTask = vaultCookingTasks[i];\n\n let rowTask = $('#vault-task-' + cookingTask.object_id);\n\n let downloadLinkWait = 'Waiting for download link to be available';\n if (!rowTask.length) {\n\n let browseUrl;\n if (cookingTask.object_type === 'directory') {\n browseUrl = Urls.browse_directory(cookingTask.object_id);\n } else {\n browseUrl = Urls.browse_revision(cookingTask.object_id);\n }\n\n let progressBar = $.parseHTML(progress)[0];\n let progressBarContent = $(progressBar).find('.progress-bar');\n updateProgressBar(progressBarContent, cookingTask);\n let tableRow;\n if (cookingTask.object_type === 'directory') {\n tableRow = ``;\n } else {\n tableRow = ``;\n }\n tableRow += '';\n tableRow += `${cookingTask.object_type}`;\n tableRow += `${cookingTask.object_id}`;\n tableRow += `${progressBar.outerHTML}`;\n let downloadLink = downloadLinkWait;\n if (cookingTask.status === 'done') {\n downloadLink = `';\n } else if (cookingTask.status === 'failed') {\n downloadLink = '';\n }\n tableRow += `${downloadLink}`;\n tableRow += '';\n table.prepend(tableRow);\n } else {\n let progressBar = rowTask.find('.progress-bar');\n updateProgressBar(progressBar, cookingTask);\n let downloadLink = rowTask.find('.vault-dl-link');\n if (cookingTask.status === 'done') {\n downloadLink[0].innerHTML = `';\n } else if (cookingTask.status === 'failed') {\n downloadLink[0].innerHTML = '';\n } else if (cookingTask.status === 'new') {\n downloadLink[0].innerHTML = downloadLinkWait;\n }\n }\n }\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n })\n .catch(() => {});\n}\n\nexport function removeCookingTaskInfo(tasksToRemove) {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n return;\n }\n vaultCookingTasks = $.grep(vaultCookingTasks, task => {\n return $.inArray(task.object_id, tasksToRemove) === -1;\n });\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n}\n\nexport function initUi() {\n\n $('#vault-tasks-toggle-selection').change(event => {\n $('.vault-task-toggle-selection').prop('checked', event.currentTarget.checked);\n });\n\n $('#vault-remove-tasks').click(() => {\n clearTimeout(checkVaultId);\n let tasksToRemove = [];\n $('.swh-vault-table tbody tr').each((i, row) => {\n let taskSelected = $(row).find('.vault-task-toggle-selection').prop('checked');\n if (taskSelected) {\n let objectId = $(row).find('.vault-object-id').data('object-id');\n tasksToRemove.push(objectId);\n $(row).remove();\n }\n });\n removeCookingTaskInfo(tasksToRemove);\n $('#vault-tasks-toggle-selection').prop('checked', false);\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n });\n\n checkVaultCookingTasks();\n\n window.onfocus = () => {\n clearTimeout(checkVaultId);\n checkVaultCookingTasks();\n };\n\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, csrfPost} from 'utils/functions';\n\nexport function vaultRequest(objectType, objectId) {\n let vaultUrl;\n if (objectType === 'directory') {\n vaultUrl = Urls.api_1_vault_cook_directory(objectId);\n } else {\n vaultUrl = Urls.api_1_vault_cook_revision_gitfast(objectId);\n }\n // check if object has already been cooked\n fetch(vaultUrl)\n .then(response => response.json())\n .then(data => {\n // object needs to be cooked\n if (data.exception === 'NotFoundExc' || data.status === 'failed') {\n // if last cooking has failed, remove previous task info from localStorage\n // in order to force the recooking of the object\n swh.vault.removeCookingTaskInfo([objectId]);\n $(`#vault-cook-${objectType}-modal`).modal('show');\n // object has been cooked and should be in the vault cache,\n // it will be asked to cook it again if it is not\n } else if (data.status === 'done') {\n $(`#vault-fetch-${objectType}-modal`).modal('show');\n }\n });\n}\n\nfunction addVaultCookingTask(cookingTask) {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n vaultCookingTasks = [];\n }\n if (vaultCookingTasks.find(val => {\n return val.object_type === cookingTask.object_type &&\n val.object_id === cookingTask.object_id;\n }) === undefined) {\n let cookingUrl;\n if (cookingTask.object_type === 'directory') {\n cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id);\n } else {\n cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id);\n }\n if (cookingTask.email) {\n cookingUrl += '?email=' + cookingTask.email;\n }\n csrfPost(cookingUrl)\n .then(handleFetchError)\n .then(() => {\n vaultCookingTasks.push(cookingTask);\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n window.location = Urls.browse_vault();\n })\n .catch(() => {\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n });\n } else {\n window.location = Urls.browse_vault();\n }\n}\n\nfunction validateEmail(email) {\n let re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n}\n\nexport function cookDirectoryArchive(directoryId) {\n let email = $('#swh-vault-directory-email').val().trim();\n if (!email || validateEmail(email)) {\n let cookingTask = {\n 'object_type': 'directory',\n 'object_id': directoryId,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask(cookingTask);\n\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport function fetchDirectoryArchive(directoryId) {\n $('#vault-fetch-directory-modal').modal('hide');\n const vaultUrl = Urls.api_1_vault_cook_directory(directoryId);\n fetch(vaultUrl)\n .then(response => response.json())\n .then(data => {\n swh.vault.fetchCookedObject(data.fetch_url);\n });\n}\n\nexport function cookRevisionArchive(revisionId) {\n let email = $('#swh-vault-revision-email').val().trim();\n if (!email || validateEmail(email)) {\n let cookingTask = {\n 'object_type': 'revision',\n 'object_id': revisionId,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask(cookingTask);\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport function fetchRevisionArchive(revisionId) {\n $('#vault-fetch-directory-modal').modal('hide');\n const vaultUrl = Urls.api_1_vault_cook_revision_gitfast(revisionId);\n fetch(vaultUrl)\n .then(response => response.json())\n .then(data => {\n swh.vault.fetchCookedObject(data.fetch_url);\n });\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, domain) {\n let endOfPattern = '\\\\/[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git(?:\\\\/?|\\\\#[\\\\w\\\\.\\\\-_]+)?)?$';\n let pattern = `(?:git|https?|git@)(?:\\\\:\\\\/\\\\/)?${domain}[/|:][A-Za-z0-9-]+?` + endOfPattern;\n let re = new RegExp(pattern);\n return re.test(url);\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n let selection = window.getSelection();\n selection.removeAllRanges();\n let range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n ``;\n extraClasses = 'alert-dismissible';\n }\n return `
${message}${closeButton}
`;\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// bundle for the vault related views\n\nimport './vault.css';\nexport * from './vault-ui';\nexport * from './vault-create-tasks';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/vault.ca0a73c50330026034f5.js b/static/js/vault.ca0a73c50330026034f5.js deleted file mode 100644 index 5ddbf125..00000000 --- a/static/js/vault.ca0a73c50330026034f5.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vault=e():(t.swh=t.swh||{},t.swh.vault=e())}(window,(function(){return function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="/static/",o(o.s=257)}({165:function(t,e,o){"use strict";o.d(e,"a",(function(){return c})),o.d(e,"c",(function(){return s})),o.d(e,"b",(function(){return u}));var n,r,a=o(2);function i(t,e){"new"===e.status?t.css("background-color","rgba(128, 128, 128, 0.5)"):"pending"===e.status?t.css("background-color","rgba(0, 0, 255, 0.5)"):"done"===e.status?t.css("background-color","#5cb85c"):"failed"===e.status&&(t.css("background-color","rgba(255, 0, 0, 0.5)"),t.css("background-image","none")),t.text(e.progress_message||e.status),"new"===e.status||"pending"===e.status?t.addClass("progress-bar-animated"):t.removeClass("progress-bar-striped")}function c(t){r=null,fetch(t).then((function(e){if(e.ok)$("#vault-fetch-iframe").attr("src",t);else{for(var o=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks")),n=0;nDownload':"failed"===u.status?f[0].innerHTML="":"new"===u.status&&(f[0].innerHTML="Waiting for download link to be available")}else{var v=void 0;v="directory"===u.object_type?Urls.browse_directory(u.object_id):Urls.browse_revision(u.object_id);var b=$.parseHTML('
\n
\n
\n
;')[0];i($(b).find(".progress-bar"),u);var h=void 0;h="directory"===u.object_type?'':'',h+='',h+=''+u.object_type+"",h+=''+u.object_id+"",h+=''+b.outerHTML+"";var g="Waiting for download link to be available";"done"===u.status?g='':"failed"===u.status&&(g=""),h+=''+g+"",h+="",r.prepend(h)}}localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(t)),n=setTimeout(l,5e3)})).catch((function(){}))}function u(){$("#vault-tasks-toggle-selection").change((function(t){$(".vault-task-toggle-selection").prop("checked",t.currentTarget.checked)})),$("#vault-remove-tasks").click((function(){clearTimeout(n);var t=[];$(".swh-vault-table tbody tr").each((function(e,o){if($(o).find(".vault-task-toggle-selection").prop("checked")){var n=$(o).find(".vault-object-id").data("object-id");t.push(n),$(o).remove()}}));var e=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks"));e=$.grep(e,(function(e){return-1===$.inArray(e.object_id,t)})),localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(e)),$("#vault-tasks-toggle-selection").prop("checked",!1),n=setTimeout(l,5e3)})),l(),window.onfocus=function(){clearTimeout(n),l()}}},166:function(t,e,o){"use strict";o.d(e,"e",(function(){return r})),o.d(e,"a",(function(){return c})),o.d(e,"c",(function(){return s})),o.d(e,"b",(function(){return l})),o.d(e,"d",(function(){return u}));var n=o(2);function r(t,e){var o;o="directory"===t?Urls.api_1_vault_cook_directory(e):Urls.api_1_vault_cook_revision_gitfast(e),fetch(o).then((function(t){return t.json()})).then((function(e){"NotFoundExc"===e.exception?$("#vault-cook-"+t+"-modal").modal("show"):"done"===e.status&&$("#vault-fetch-"+t+"-modal").modal("show")}))}function a(t){var e,o=JSON.parse(localStorage.getItem("swh-vault-cooking-tasks"));(o||(o=[]),void 0===o.find((function(e){return e.object_type===t.object_type&&e.object_id===t.object_id})))?(e="directory"===t.object_type?Urls.api_1_vault_cook_directory(t.object_id):Urls.api_1_vault_cook_revision_gitfast(t.object_id),t.email&&(e+="?email="+t.email),Object(n.a)(e).then(n.b).then((function(){o.push(t),localStorage.setItem("swh-vault-cooking-tasks",JSON.stringify(o)),$("#vault-cook-directory-modal").modal("hide"),$("#vault-cook-revision-modal").modal("hide"),window.location=Urls.browse_vault()})).catch((function(){$("#vault-cook-directory-modal").modal("hide"),$("#vault-cook-revision-modal").modal("hide")}))):window.location=Urls.browse_vault()}function i(t){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(t).toLowerCase())}function c(t){var e=$("#swh-vault-directory-email").val().trim();!e||i(e)?a({object_type:"directory",object_id:t,email:e,status:"new"}):$("#invalid-email-modal").modal("show")}function s(t){$("#vault-fetch-directory-modal").modal("hide");var e=Urls.api_1_vault_cook_directory(t);fetch(e).then((function(t){return t.json()})).then((function(t){swh.vault.fetchCookedObject(t.fetch_url)}))}function l(t){var e=$("#swh-vault-revision-email").val().trim();!e||i(e)?a({object_type:"revision",object_id:t,email:e,status:"new"}):$("#invalid-email-modal").modal("show")}function u(t){$("#vault-fetch-directory-modal").modal("hide");var e=Urls.api_1_vault_cook_revision_gitfast(t);fetch(e).then((function(t){return t.json()})).then((function(t){swh.vault.fetchCookedObject(t.fetch_url)}))}},2:function(t,e,o){"use strict";function n(t){if(!t.ok)throw t;return t}function r(t){for(var e=0;e'+e+n+""}o.d(e,"b",(function(){return n})),o.d(e,"c",(function(){return r})),o.d(e,"h",(function(){return a})),o.d(e,"a",(function(){return i})),o.d(e,"e",(function(){return c})),o.d(e,"f",(function(){return s})),o.d(e,"g",(function(){return l})),o.d(e,"d",(function(){return u}))},257:function(t,e,o){t.exports=o(258)},258:function(t,e,o){"use strict";o.r(e);o(259);var n=o(165);o.d(e,"fetchCookedObject",(function(){return n.a})),o.d(e,"recookObject",(function(){return n.c})),o.d(e,"initUi",(function(){return n.b}));var r=o(166);o.d(e,"vaultRequest",(function(){return r.e})),o.d(e,"cookDirectoryArchive",(function(){return r.a})),o.d(e,"fetchDirectoryArchive",(function(){return r.c})),o.d(e,"cookRevisionArchive",(function(){return r.b})),o.d(e,"fetchRevisionArchive",(function(){return r.d}))},259:function(t,e,o){}})})); -//# sourceMappingURL=vault.ca0a73c50330026034f5.js.map \ No newline at end of file diff --git a/static/js/vault.ca0a73c50330026034f5.js.map b/static/js/vault.ca0a73c50330026034f5.js.map deleted file mode 100644 index ce54ad8e..00000000 --- a/static/js/vault.ca0a73c50330026034f5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://swh.vault/webpack/universalModuleDefinition","webpack://swh.vault/webpack/bootstrap","webpack://swh.vault/./swh/web/assets/src/bundles/vault/vault-ui.js","webpack://swh.vault/./swh/web/assets/src/bundles/vault/vault-create-tasks.js","webpack://swh.vault/./swh/web/assets/src/utils/functions.js","webpack://swh.vault/./swh/web/assets/src/bundles/vault/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","checkVaultId","recookTask","updateProgressBar","progressBar","cookingTask","status","css","text","progress_message","addClass","removeClass","fetchCookedObject","fetchUrl","fetch","then","response","ok","$","attr","vaultCookingTasks","JSON","parse","localStorage","getItem","length","fetch_url","modal","recookObject","cookingUrl","clearTimeout","object_type","Urls","api_1_vault_cook_directory","object_id","api_1_vault_cook_revision_gitfast","email","csrfPost","handleFetchError","setItem","stringify","checkVaultCookingTasks","remove","setTimeout","cookingTaskRequests","tasks","currentObjectIds","push","each","row","objectId","find","data","inArray","Promise","all","handleFetchErrors","responses","map","json","cookingTasks","table","obj_id","rowTask","downloadLink","innerHTML","browseUrl","browse_directory","browse_revision","parseHTML","tableRow","swh","webapp","getSwhObjectIcon","outerHTML","prepend","initUi","change","event","prop","currentTarget","checked","click","tasksToRemove","grep","task","onfocus","vaultRequest","objectType","vaultUrl","exception","addVaultCookingTask","undefined","val","location","browse_vault","validateEmail","test","String","toLowerCase","cookDirectoryArchive","directoryId","trim","fetchDirectoryArchive","vault","cookRevisionArchive","revisionId","fetchRevisionArchive","staticAsset","asset","__STATIC__","url","headers","body","Cookies","credentials","method","isGitRepoUrl","domain","RegExp","removeUrlFragment","history","replaceState","document","title","pathname","search","selectText","startNode","endNode","selection","getSelection","removeAllRanges","range","createRange","setStart","nodeName","setEnd","childNodes","textContent","addRange","htmlAlert","type","message","closable","closeButton","extraClasses"],"mappings":"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","file":"js/vault.ca0a73c50330026034f5.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vault\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"vault\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 257);\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions';\n\nlet progress = `
\n
\n
\n
;`;\n\nlet pollingInterval = 5000;\nlet checkVaultId;\n\nfunction updateProgressBar(progressBar, cookingTask) {\n if (cookingTask.status === 'new') {\n progressBar.css('background-color', 'rgba(128, 128, 128, 0.5)');\n } else if (cookingTask.status === 'pending') {\n progressBar.css('background-color', 'rgba(0, 0, 255, 0.5)');\n } else if (cookingTask.status === 'done') {\n progressBar.css('background-color', '#5cb85c');\n } else if (cookingTask.status === 'failed') {\n progressBar.css('background-color', 'rgba(255, 0, 0, 0.5)');\n progressBar.css('background-image', 'none');\n }\n progressBar.text(cookingTask.progress_message || cookingTask.status);\n if (cookingTask.status === 'new' || cookingTask.status === 'pending') {\n progressBar.addClass('progress-bar-animated');\n } else {\n progressBar.removeClass('progress-bar-striped');\n }\n}\n\nlet recookTask;\n\n// called when the user wants to download a cooked archive\nexport function fetchCookedObject(fetchUrl) {\n recookTask = null;\n // first, check if the link is still available from the vault\n fetch(fetchUrl)\n .then(response => {\n // link is still alive, proceed to download\n if (response.ok) {\n $('#vault-fetch-iframe').attr('src', fetchUrl);\n // link is dead\n } else {\n // get the associated cooking task\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].fetch_url === fetchUrl) {\n recookTask = vaultCookingTasks[i];\n break;\n }\n }\n // display a modal asking the user if he wants to recook the archive\n $('#vault-recook-object-modal').modal('show');\n }\n });\n}\n\n// called when the user wants to recook an archive\n// for which the download link is not available anymore\nexport function recookObject() {\n if (recookTask) {\n // stop cooking tasks status polling\n clearTimeout(checkVaultId);\n // build cook request url\n let cookingUrl;\n if (recookTask.object_type === 'directory') {\n cookingUrl = Urls.api_1_vault_cook_directory(recookTask.object_id);\n } else {\n cookingUrl = Urls.api_1_vault_cook_revision_gitfast(recookTask.object_id);\n }\n if (recookTask.email) {\n cookingUrl += '?email=' + recookTask.email;\n }\n // request archive cooking\n csrfPost(cookingUrl)\n .then(handleFetchError)\n .then(() => {\n // update task status\n recookTask.status = 'new';\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n if (vaultCookingTasks[i].object_id === recookTask.object_id) {\n vaultCookingTasks[i] = recookTask;\n break;\n }\n }\n // save updated tasks to local storage\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n // restart cooking tasks status polling\n checkVaultCookingTasks();\n // hide recook archive modal\n $('#vault-recook-object-modal').modal('hide');\n })\n // something went wrong\n .catch(() => {\n checkVaultCookingTasks();\n $('#vault-recook-object-modal').modal('hide');\n });\n }\n}\n\nfunction checkVaultCookingTasks() {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks || vaultCookingTasks.length === 0) {\n $('.swh-vault-table tbody tr').remove();\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n return;\n }\n let cookingTaskRequests = [];\n let tasks = {};\n let currentObjectIds = [];\n\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n let cookingTask = vaultCookingTasks[i];\n currentObjectIds.push(cookingTask.object_id);\n tasks[cookingTask.object_id] = cookingTask;\n let cookingUrl;\n if (cookingTask.object_type === 'directory') {\n cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id);\n } else {\n cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id);\n }\n if (cookingTask.status !== 'done' && cookingTask.status !== 'failed') {\n cookingTaskRequests.push(fetch(cookingUrl));\n }\n }\n $('.swh-vault-table tbody tr').each((i, row) => {\n let objectId = $(row).find('.vault-object-id').data('object-id');\n if ($.inArray(objectId, currentObjectIds) === -1) {\n $(row).remove();\n }\n });\n Promise.all(cookingTaskRequests)\n .then(handleFetchErrors)\n .then(responses => Promise.all(responses.map(r => r.json())))\n .then(cookingTasks => {\n let table = $('#vault-cooking-tasks tbody');\n for (let i = 0; i < cookingTasks.length; ++i) {\n let cookingTask = tasks[cookingTasks[i].obj_id];\n cookingTask.status = cookingTasks[i].status;\n cookingTask.fetch_url = cookingTasks[i].fetch_url;\n cookingTask.progress_message = cookingTasks[i].progress_message;\n }\n for (let i = 0; i < vaultCookingTasks.length; ++i) {\n let cookingTask = vaultCookingTasks[i];\n\n let rowTask = $('#vault-task-' + cookingTask.object_id);\n\n let downloadLinkWait = 'Waiting for download link to be available';\n if (!rowTask.length) {\n\n let browseUrl;\n if (cookingTask.object_type === 'directory') {\n browseUrl = Urls.browse_directory(cookingTask.object_id);\n } else {\n browseUrl = Urls.browse_revision(cookingTask.object_id);\n }\n\n let progressBar = $.parseHTML(progress)[0];\n let progressBarContent = $(progressBar).find('.progress-bar');\n updateProgressBar(progressBarContent, cookingTask);\n let tableRow;\n if (cookingTask.object_type === 'directory') {\n tableRow = ``;\n } else {\n tableRow = ``;\n }\n tableRow += '';\n tableRow += `${cookingTask.object_type}`;\n tableRow += `${cookingTask.object_id}`;\n tableRow += `${progressBar.outerHTML}`;\n let downloadLink = downloadLinkWait;\n if (cookingTask.status === 'done') {\n downloadLink = `';\n } else if (cookingTask.status === 'failed') {\n downloadLink = '';\n }\n tableRow += `${downloadLink}`;\n tableRow += '';\n table.prepend(tableRow);\n } else {\n let progressBar = rowTask.find('.progress-bar');\n updateProgressBar(progressBar, cookingTask);\n let downloadLink = rowTask.find('.vault-dl-link');\n if (cookingTask.status === 'done') {\n downloadLink[0].innerHTML = `';\n } else if (cookingTask.status === 'failed') {\n downloadLink[0].innerHTML = '';\n } else if (cookingTask.status === 'new') {\n downloadLink[0].innerHTML = downloadLinkWait;\n }\n }\n }\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n })\n .catch(() => {});\n}\n\nexport function initUi() {\n\n $('#vault-tasks-toggle-selection').change(event => {\n $('.vault-task-toggle-selection').prop('checked', event.currentTarget.checked);\n });\n\n $('#vault-remove-tasks').click(() => {\n clearTimeout(checkVaultId);\n let tasksToRemove = [];\n $('.swh-vault-table tbody tr').each((i, row) => {\n let taskSelected = $(row).find('.vault-task-toggle-selection').prop('checked');\n if (taskSelected) {\n let objectId = $(row).find('.vault-object-id').data('object-id');\n tasksToRemove.push(objectId);\n $(row).remove();\n }\n });\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n vaultCookingTasks = $.grep(vaultCookingTasks, task => {\n return $.inArray(task.object_id, tasksToRemove) === -1;\n });\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n $('#vault-tasks-toggle-selection').prop('checked', false);\n checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval);\n });\n\n checkVaultCookingTasks();\n\n window.onfocus = () => {\n clearTimeout(checkVaultId);\n checkVaultCookingTasks();\n };\n\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, csrfPost} from 'utils/functions';\n\nexport function vaultRequest(objectType, objectId) {\n let vaultUrl;\n if (objectType === 'directory') {\n vaultUrl = Urls.api_1_vault_cook_directory(objectId);\n } else {\n vaultUrl = Urls.api_1_vault_cook_revision_gitfast(objectId);\n }\n // check if object has already been cooked\n fetch(vaultUrl)\n .then(response => response.json())\n .then(data => {\n // object needs to be cooked\n if (data.exception === 'NotFoundExc') {\n $(`#vault-cook-${objectType}-modal`).modal('show');\n // object has been cooked and is in the vault cache\n } else if (data.status === 'done') {\n $(`#vault-fetch-${objectType}-modal`).modal('show');\n }\n });\n}\n\nfunction addVaultCookingTask(cookingTask) {\n let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks'));\n if (!vaultCookingTasks) {\n vaultCookingTasks = [];\n }\n if (vaultCookingTasks.find(val => {\n return val.object_type === cookingTask.object_type &&\n val.object_id === cookingTask.object_id;\n }) === undefined) {\n let cookingUrl;\n if (cookingTask.object_type === 'directory') {\n cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id);\n } else {\n cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id);\n }\n if (cookingTask.email) {\n cookingUrl += '?email=' + cookingTask.email;\n }\n csrfPost(cookingUrl)\n .then(handleFetchError)\n .then(() => {\n vaultCookingTasks.push(cookingTask);\n localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks));\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n window.location = Urls.browse_vault();\n })\n .catch(() => {\n $('#vault-cook-directory-modal').modal('hide');\n $('#vault-cook-revision-modal').modal('hide');\n });\n } else {\n window.location = Urls.browse_vault();\n }\n}\n\nfunction validateEmail(email) {\n let re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n}\n\nexport function cookDirectoryArchive(directoryId) {\n let email = $('#swh-vault-directory-email').val().trim();\n if (!email || validateEmail(email)) {\n let cookingTask = {\n 'object_type': 'directory',\n 'object_id': directoryId,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask(cookingTask);\n\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport function fetchDirectoryArchive(directoryId) {\n $('#vault-fetch-directory-modal').modal('hide');\n const vaultUrl = Urls.api_1_vault_cook_directory(directoryId);\n fetch(vaultUrl)\n .then(response => response.json())\n .then(data => {\n swh.vault.fetchCookedObject(data.fetch_url);\n });\n}\n\nexport function cookRevisionArchive(revisionId) {\n let email = $('#swh-vault-revision-email').val().trim();\n if (!email || validateEmail(email)) {\n let cookingTask = {\n 'object_type': 'revision',\n 'object_id': revisionId,\n 'email': email,\n 'status': 'new'\n };\n addVaultCookingTask(cookingTask);\n } else {\n $('#invalid-email-modal').modal('show');\n }\n}\n\nexport function fetchRevisionArchive(revisionId) {\n $('#vault-fetch-directory-modal').modal('hide');\n const vaultUrl = Urls.api_1_vault_cook_revision_gitfast(revisionId);\n fetch(vaultUrl)\n .then(response => response.json())\n .then(data => {\n swh.vault.fetchCookedObject(data.fetch_url);\n });\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, domain) {\n let endOfPattern = '\\\\/[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git(?:\\\\/?|\\\\#[\\\\w\\\\.\\\\-_]+)?)?$';\n let pattern = `(?:git|https?|git@)(?:\\\\:\\\\/\\\\/)?${domain}[/|:][A-Za-z0-9-]+?` + endOfPattern;\n let re = new RegExp(pattern);\n return re.test(url);\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n let selection = window.getSelection();\n selection.removeAllRanges();\n let range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n ``;\n extraClasses = 'alert-dismissible';\n }\n return `
${message}${closeButton}
`;\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// bundle for the vault related views\n\nimport './vault.css';\nexport * from './vault-ui';\nexport * from './vault-create-tasks';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/webapp.6583e14cb115c32af0b8.js b/static/js/webapp.0afe58b813354c5e6ded.js similarity index 99% rename from static/js/webapp.6583e14cb115c32af0b8.js rename to static/js/webapp.0afe58b813354c5e6ded.js index dac6db59..f045caee 100644 --- a/static/js/webapp.6583e14cb115c32af0b8.js +++ b/static/js/webapp.0afe58b813354c5e6ded.js @@ -1,3 +1,3 @@ -/*! For license information please see webapp.6583e14cb115c32af0b8.js.LICENSE.txt */ +/*! For license information please see webapp.0afe58b813354c5e6ded.js.LICENSE.txt */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.webapp=t():(e.swh=e.swh||{},e.swh.webapp=t())}(window,(function(){return function(e){function t(t){for(var n,o,s=t[0],c=t[1],u=t[2],l=0,d=[];l=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function c(){for(var e=[],t=0;t"}try{s.currentTarget=Object(n.c)(i.currentTarget)?Object(a.i)(i.currentTarget):Object.prototype.toString.call(i.currentTarget)}catch(e){s.currentTarget=""}for(var o in"undefined"!=typeof CustomEvent&&Object(n.g)(e,CustomEvent)&&(s.detail=i.detail),i)Object.prototype.hasOwnProperty.call(i,o)&&(s[o]=i);return s}return e}function l(e){return function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(e))}function p(e,t,r){void 0===t&&(t=3),void 0===r&&(r=102400);var n=h(e,t);return l(n)>r?p(e,t-1,r):n}function d(t,r){return"domain"===r&&t&&"object"==typeof t&&t._events?"[Domain]":"domainEmitter"===r?"[DomainEmitter]":void 0!==e&&t===e?"[Global]":"undefined"!=typeof window&&t===window?"[Window]":"undefined"!=typeof document&&t===document?"[Document]":Object(n.l)(t)?"[SyntheticEvent]":"number"==typeof t&&t!=t?"[NaN]":void 0===t?"[undefined]":"function"==typeof t?"[Function: "+Object(a.f)(t)+"]":t}function f(e,t,r,a){if(void 0===r&&(r=1/0),void 0===a&&(a=new o.a),0===r)return function(e){var t=Object.prototype.toString.call(e);if("string"==typeof e)return e;if("[object Object]"===t)return"[Object]";if("[object Array]"===t)return"[Array]";var r=d(e);return Object(n.i)(r)?r:t}(t);if(null!=t&&"function"==typeof t.toJSON)return t.toJSON();var i=d(t,e);if(Object(n.i)(i))return i;var s=u(t),c=Array.isArray(t)?[]:{};if(a.memoize(t))return"[Circular ~]";for(var l in s)Object.prototype.hasOwnProperty.call(s,l)&&(c[l]=f(l,s[l],r-1,a));return a.unmemoize(t),c}function h(e,t){try{return JSON.parse(JSON.stringify(e,(function(e,r){return f(e,r,t)})))}catch(e){return"**non-serializable**"}}function g(e,t){void 0===t&&(t=40);var r=Object.keys(u(e));if(r.sort(),!r.length)return"[object has no keys]";if(r[0].length>=t)return Object(i.d)(r[0],t);for(var n=r.length;n>0;n--){var o=r.slice(0,n).join(", ");if(!(o.length>t))return n===r.length?o:Object(i.d)(o,t)}return""}}).call(this,r(55))},148:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(17),o=r(10);function a(e,t){!0===t.debug&&o.a.enable(),Object(n.a)().bindClient(new e(t))}},149:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(10),o=r(49),a=r(115),i=function(){function e(e){this._options=e,this._options.dsn||n.a.warn("No DSN provided, backend will not do anything."),this._transport=this._setupTransport()}return e.prototype._setupTransport=function(){return new a.a},e.prototype.eventFromException=function(e,t){throw new o.a("Backend has to implement `eventFromException` method")},e.prototype.eventFromMessage=function(e,t,r){throw new o.a("Backend has to implement `eventFromMessage` method")},e.prototype.sendEvent=function(e){this._transport.sendEvent(e).then(null,(function(e){n.a.error("Error while sending event: "+e)}))},e.prototype.getTransport=function(){return this._transport},e}()},150:function(e,t,r){"use strict";r.d(t,"a",(function(){return d}));var n=r(1),o=r(233),a=r(10),i=r(6),s=r(22),c=r(32),u=r(3),l=r(14),p=r(232),d=function(){function e(e,t){this._integrations={},this._processing=!1,this._backend=new e(t),this._options=t,t.dsn&&(this._dsn=new o.a(t.dsn)),this._isEnabled()&&(this._integrations=Object(p.a)(this._options))}return e.prototype.captureException=function(e,t,r){var n=this,o=t&&t.event_id;return this._processing=!0,this._getBackend().eventFromException(e,t).then((function(e){return n._processEvent(e,t,r)})).then((function(e){o=e&&e.event_id,n._processing=!1})).then(null,(function(e){a.a.error(e),n._processing=!1})),o},e.prototype.captureMessage=function(e,t,r,n){var o=this,s=r&&r.event_id;return this._processing=!0,(Object(i.i)(e)?this._getBackend().eventFromMessage(""+e,t,r):this._getBackend().eventFromException(e,r)).then((function(e){return o._processEvent(e,r,n)})).then((function(e){s=e&&e.event_id,o._processing=!1})).then(null,(function(e){a.a.error(e),o._processing=!1})),s},e.prototype.captureEvent=function(e,t,r){var n=this,o=t&&t.event_id;return this._processing=!0,this._processEvent(e,t,r).then((function(e){o=e&&e.event_id,n._processing=!1})).then(null,(function(e){a.a.error(e),n._processing=!1})),o},e.prototype.getDsn=function(){return this._dsn},e.prototype.getOptions=function(){return this._options},e.prototype.flush=function(e){var t=this;return this._isClientProcessing(e).then((function(r){return clearInterval(r.interval),t._getBackend().getTransport().close(e).then((function(e){return r.ready&&e}))}))},e.prototype.close=function(e){var t=this;return this.flush(e).then((function(e){return t.getOptions().enabled=!1,e}))},e.prototype.getIntegrations=function(){return this._integrations||{}},e.prototype.getIntegration=function(e){try{return this._integrations[e.id]||null}catch(t){return a.a.warn("Cannot retrieve integration "+e.id+" from the current Client"),null}},e.prototype._isClientProcessing=function(e){var t=this;return new s.a((function(r){var n=0,o=0;clearInterval(o),o=setInterval((function(){t._processing?(n+=1,e&&n>=e&&r({interval:o,ready:!1})):r({interval:o,ready:!0})}),1)}))},e.prototype._getBackend=function(){return this._backend},e.prototype._isEnabled=function(){return!1!==this.getOptions().enabled&&void 0!==this._dsn},e.prototype._prepareEvent=function(e,t,r){var o=this,a=this.getOptions(),i=a.environment,l=a.release,p=a.dist,d=a.maxValueLength,f=void 0===d?250:d,h=a.normalizeDepth,g=void 0===h?3:h,m=n.a({},e);void 0===m.environment&&void 0!==i&&(m.environment=i),void 0===m.release&&void 0!==l&&(m.release=l),void 0===m.dist&&void 0!==p&&(m.dist=p),m.message&&(m.message=Object(c.d)(m.message,f));var b=m.exception&&m.exception.values&&m.exception.values[0];b&&b.value&&(b.value=Object(c.d)(b.value,f));var v=m.request;v&&v.url&&(v.url=Object(c.d)(v.url,f)),void 0===m.event_id&&(m.event_id=r&&r.event_id?r.event_id:Object(u.n)()),this._addIntegrations(m.sdk);var y=s.a.resolve(m);return t&&(y=t.applyToEvent(m,r)),y.then((function(e){return"number"==typeof g&&g>0?o._normalizeEvent(e,g):e}))},e.prototype._normalizeEvent=function(e,t){return e?n.a({},e,e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((function(e){return n.a({},e,e.data&&{data:Object(l.c)(e.data,t)})}))},e.user&&{user:Object(l.c)(e.user,t)},e.contexts&&{contexts:Object(l.c)(e.contexts,t)},e.extra&&{extra:Object(l.c)(e.extra,t)}):null},e.prototype._addIntegrations=function(e){var t=Object.keys(this._integrations);e&&t.length>0&&(e.integrations=t)},e.prototype._processEvent=function(e,t,r){var n=this,o=this.getOptions(),c=o.beforeSend,u=o.sampleRate;return this._isEnabled()?"number"==typeof u&&Math.random()>u?s.a.reject("This event has been sampled, will not send event."):new s.a((function(o,s){n._prepareEvent(e,r,t).then((function(e){if(null!==e){var r=e;try{if(t&&t.data&&!0===t.data.__sentry__||!c)return n._getBackend().sendEvent(r),void o(r);var u=c(e,t);if(void 0===u)a.a.error("`beforeSend` method has to return `null` or a valid event.");else if(Object(i.m)(u))n._handleAsyncBeforeSend(u,o,s);else{if(null===(r=u))return a.a.log("`beforeSend` returned `null`, will not send event."),void o(null);n._getBackend().sendEvent(r),o(r)}}catch(e){n.captureException(e,{data:{__sentry__:!0},originalException:e}),s("`beforeSend` threw an error, will not send event.")}}else s("An event processor returned null, will not send event.")})).then(null,(function(){s("`beforeSend` threw an error, will not send event.")}))})):s.a.reject("SDK not enabled, will not send event.")},e.prototype._handleAsyncBeforeSend=function(e,t,r){var n=this;e.then((function(e){null!==e?(n._getBackend().sendEvent(e),t(e)):r("`beforeSend` returned `null`, will not send event.")})).then(null,(function(e){r("beforeSend rejected with "+e)}))},e}()},154:function(e,t,r){e.exports=function(){"use strict";var e=Object.hasOwnProperty,t=Object.setPrototypeOf,r=Object.isFrozen,n=Object.keys,o=Object.freeze,a=Object.seal,i="undefined"!=typeof Reflect&&Reflect,s=i.apply,c=i.construct;s||(s=function(e,t,r){return e.apply(t,r)}),o||(o=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t1?r-1:0),o=1;o/gm),F=a(/^data-[\-\w.\u00B7-\uFFFF]/),I=a(/^aria-[\-\w]+$/),H=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),P=a(/^(?:\w+script|data):/i),M=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g),V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function G(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:$(),r=function(t){return e(t)};if(r.version="2.0.8",r.removed=[],!t||!t.document||9!==t.document.nodeType)return r.isSupported=!1,r;var a=t.document,i=!1,s=!1,c=t.document,E=t.DocumentFragment,k=t.HTMLTemplateElement,Y=t.Node,W=t.NodeFilter,J=t.NamedNodeMap,X=void 0===J?t.NamedNodeMap||t.MozNamedAttrMap:J,K=t.Text,Z=t.Comment,Q=t.DOMParser,ee=t.trustedTypes;if("function"==typeof k){var te=c.createElement("template");te.content&&te.content.ownerDocument&&(c=te.content.ownerDocument)}var re=z(ee,a),ne=re?re.createHTML(""):"",oe=c,ae=oe.implementation,ie=oe.createNodeIterator,se=oe.getElementsByTagName,ce=oe.createDocumentFragment,ue=a.importNode,le={};r.isSupported=ae&&void 0!==ae.createHTMLDocument&&9!==c.documentMode;var pe=B,de=U,fe=F,he=I,ge=P,me=M,be=H,ve=null,ye=S({},[].concat(G(O),G(q),G(j),G(A),G(T))),we=null,_e=S({},[].concat(G(L),G(R),G(C),G(N))),xe=null,Ee=null,ke=!0,Se=!0,De=!1,Oe=!1,qe=!1,je=!1,Ae=!1,Te=!1,Le=!1,Re=!1,Ce=!1,Ne=!1,Be=!0,Ue=!0,Fe=!1,Ie={},He=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","plaintext","script","style","svg","template","thead","title","video","xmp"]),Pe=S({},["audio","video","img","source","image"]),Me=null,Ve=S({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Ge=null,$e=c.createElement("form"),ze=function(e){Ge&&Ge===e||(e&&"object"===(void 0===e?"undefined":V(e))||(e={}),ve="ALLOWED_TAGS"in e?S({},e.ALLOWED_TAGS):ye,we="ALLOWED_ATTR"in e?S({},e.ALLOWED_ATTR):_e,Me="ADD_URI_SAFE_ATTR"in e?S(D(Ve),e.ADD_URI_SAFE_ATTR):Ve,xe="FORBID_TAGS"in e?S({},e.FORBID_TAGS):{},Ee="FORBID_ATTR"in e?S({},e.FORBID_ATTR):{},Ie="USE_PROFILES"in e&&e.USE_PROFILES,ke=!1!==e.ALLOW_ARIA_ATTR,Se=!1!==e.ALLOW_DATA_ATTR,De=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Oe=e.SAFE_FOR_JQUERY||!1,qe=e.SAFE_FOR_TEMPLATES||!1,je=e.WHOLE_DOCUMENT||!1,Le=e.RETURN_DOM||!1,Re=e.RETURN_DOM_FRAGMENT||!1,Ce=e.RETURN_DOM_IMPORT||!1,Ne=e.RETURN_TRUSTED_TYPE||!1,Te=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,Ue=!1!==e.KEEP_CONTENT,Fe=e.IN_PLACE||!1,be=e.ALLOWED_URI_REGEXP||be,qe&&(Se=!1),Re&&(Le=!0),Ie&&(ve=S({},[].concat(G(T))),we=[],!0===Ie.html&&(S(ve,O),S(we,L)),!0===Ie.svg&&(S(ve,q),S(we,R),S(we,N)),!0===Ie.svgFilters&&(S(ve,j),S(we,R),S(we,N)),!0===Ie.mathMl&&(S(ve,A),S(we,C),S(we,N))),e.ADD_TAGS&&(ve===ye&&(ve=D(ve)),S(ve,e.ADD_TAGS)),e.ADD_ATTR&&(we===_e&&(we=D(we)),S(we,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&S(Me,e.ADD_URI_SAFE_ATTR),Ue&&(ve["#text"]=!0),je&&S(ve,["html","head","body"]),ve.table&&(S(ve,["tbody"]),delete xe.tbody),o&&o(e),Ge=e)},Ye=function(e){f(r.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=ne}},We=function(e,t){try{f(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){f(r.removed,{attribute:null,from:t})}t.removeAttribute(e)},Je=function(e){var t=void 0,r=void 0;if(Te)e=""+e;else{var n=m(e,/^[\s]+/);r=n&&n[0]}var o=re?re.createHTML(e):e;if(i)try{t=(new Q).parseFromString(o,"text/html")}catch(e){}if(s&&S(xe,["title"]),!t||!t.documentElement){var a=(t=ae.createHTMLDocument("")).body;a.parentNode.removeChild(a.parentNode.firstElementChild),a.outerHTML=o}return e&&r&&t.body.insertBefore(c.createTextNode(r),t.body.childNodes[0]||null),se.call(t,je?"html":"body")[0]};r.isSupported&&(function(){try{Je('

').querySelector("svg img")&&(i=!0)}catch(e){}}(),function(){try{var e=Je("</title><img>");w(/<\/title/,e.querySelector("title").innerHTML)&&(s=!0)}catch(e){}}());var Xe=function(e){return ie.call(e.ownerDocument||e,e,W.SHOW_ELEMENT|W.SHOW_COMMENT|W.SHOW_TEXT,(function(){return W.FILTER_ACCEPT}),!1)},Ke=function(e){return!(e instanceof K||e instanceof Z||"string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof X&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute&&"string"==typeof e.namespaceURI)},Ze=function(e){return"object"===(void 0===Y?"undefined":V(Y))?e instanceof Y:e&&"object"===(void 0===e?"undefined":V(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},Qe=function(e,t,n){le[e]&&u(le[e],(function(e){e.call(r,t,n,Ge)}))},et=function(e){var t=void 0;if(Qe("beforeSanitizeElements",e,null),Ke(e))return Ye(e),!0;var n=g(e.nodeName);if(Qe("uponSanitizeElement",e,{tagName:n,allowedTags:ve}),("svg"===n||"math"===n)&&0!==e.querySelectorAll("p, br").length)return Ye(e),!0;if(!ve[n]||xe[n]){if(Ue&&!He[n]&&"function"==typeof e.insertAdjacentHTML)try{var o=e.innerHTML;e.insertAdjacentHTML("AfterEnd",re?re.createHTML(o):o)}catch(e){}return Ye(e),!0}return"noscript"===n&&w(/<\/noscript/i,e.innerHTML)?(Ye(e),!0):"noembed"===n&&w(/<\/noembed/i,e.innerHTML)?(Ye(e),!0):(!Oe||e.firstElementChild||e.content&&e.content.firstElementChild||!w(/</g,e.textContent)||(f(r.removed,{element:e.cloneNode()}),e.innerHTML?e.innerHTML=b(e.innerHTML,/</g,"<"):e.innerHTML=b(e.textContent,/</g,"<")),qe&&3===e.nodeType&&(t=e.textContent,t=b(t,pe," "),t=b(t,de," "),e.textContent!==t&&(f(r.removed,{element:e.cloneNode()}),e.textContent=t)),Qe("afterSanitizeElements",e,null),!1)},tt=function(e,t,r){if(Be&&("id"===t||"name"===t)&&(r in c||r in $e))return!1;if(Se&&w(fe,t));else if(ke&&w(he,t));else{if(!we[t]||Ee[t])return!1;if(Me[t]);else if(w(be,b(r,me,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(r,"data:")||!Pe[e])if(De&&!w(ge,b(r,me,"")));else if(r)return!1}return!0},rt=function(e){var t=void 0,o=void 0,a=void 0,i=void 0,s=void 0;Qe("beforeSanitizeAttributes",e,null);var c=e.attributes;if(c){var u={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:we};for(s=c.length;s--;){var f=t=c[s],m=f.name,v=f.namespaceURI;if(o=y(t.value),a=g(m),u.attrName=a,u.attrValue=o,u.keepAttr=!0,u.forceKeepAttr=void 0,Qe("uponSanitizeAttribute",e,u),o=u.attrValue,!u.forceKeepAttr){if("name"===a&&"IMG"===e.nodeName&&c.id)i=c.id,c=h(c,[]),We("id",e),We(m,e),l(c,i)>s&&e.setAttribute("id",i.value);else{if("INPUT"===e.nodeName&&"type"===a&&"file"===o&&u.keepAttr&&(we[a]||!Ee[a]))continue;"id"===m&&e.setAttribute(m,""),We(m,e)}if(u.keepAttr)if(Oe&&w(/\/>/i,o))We(m,e);else if(w(/svg|math/i,e.namespaceURI)&&w(_("</("+p(n(He),"|")+")","i"),o))We(m,e);else{qe&&(o=b(o,pe," "),o=b(o,de," "));var x=e.nodeName.toLowerCase();if(tt(x,a,o))try{v?e.setAttributeNS(v,m,o):e.setAttribute(m,o),d(r.removed)}catch(e){}}}}Qe("afterSanitizeAttributes",e,null)}},nt=function e(t){var r=void 0,n=Xe(t);for(Qe("beforeSanitizeShadowDOM",t,null);r=n.nextNode();)Qe("uponSanitizeShadowNode",r,null),et(r)||(r.content instanceof E&&e(r.content),rt(r));Qe("afterSanitizeShadowDOM",t,null)};return r.sanitize=function(e,n){var o=void 0,i=void 0,s=void 0,c=void 0,u=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Ze(e)){if("function"!=typeof e.toString)throw x("toString is not a function");if("string"!=typeof(e=e.toString()))throw x("dirty is not a string, aborting")}if(!r.isSupported){if("object"===V(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof e)return t.toStaticHTML(e);if(Ze(e))return t.toStaticHTML(e.outerHTML)}return e}if(Ae||ze(n),r.removed=[],"string"==typeof e&&(Fe=!1),Fe);else if(e instanceof Y)1===(i=(o=Je("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===i.nodeName?o=i:"HTML"===i.nodeName?o=i:o.appendChild(i);else{if(!Le&&!qe&&!je&&Ne&&-1===e.indexOf("<"))return re?re.createHTML(e):e;if(!(o=Je(e)))return Le?null:ne}o&&Te&&Ye(o.firstChild);for(var l=Xe(Fe?e:o);s=l.nextNode();)3===s.nodeType&&s===c||et(s)||(s.content instanceof E&&nt(s.content),rt(s),c=s);if(c=null,Fe)return e;if(Le){if(Re)for(u=ce.call(o.ownerDocument);o.firstChild;)u.appendChild(o.firstChild);else u=o;return Ce&&(u=ue.call(a,u,!0)),u}var p=je?o.outerHTML:o.innerHTML;return qe&&(p=b(p,pe," "),p=b(p,de," ")),re&&Ne?re.createHTML(p):p},r.setConfig=function(e){ze(e),Ae=!0},r.clearConfig=function(){Ge=null,Ae=!1},r.isValidAttribute=function(e,t,r){Ge||ze({});var n=g(e),o=g(t);return tt(n,o,r)},r.addHook=function(e,t){"function"==typeof t&&(le[e]=le[e]||[],f(le[e],t))},r.removeHook=function(e){le[e]&&d(le[e])},r.removeHooks=function(e){le[e]&&(le[e]=[])},r.removeAllHooks=function(){le={}},r}()}()},16:function(e,t,r){e.exports=r(76)},17:function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return l}));var n=r(1),o=r(3),a=r(10),i=r(48),s=function(){function e(e,t,r){void 0===t&&(t=new i.a),void 0===r&&(r=3),this._version=r,this._stack=[],this._stack.push({client:e,scope:t})}return e.prototype._invokeClient=function(e){for(var t,r=[],o=1;o<arguments.length;o++)r[o-1]=arguments[o];var a=this.getStackTop();a&&a.client&&a.client[e]&&(t=a.client)[e].apply(t,n.d(r,[a.scope]))},e.prototype.isOlderThan=function(e){return this._version<e},e.prototype.bindClient=function(e){this.getStackTop().client=e},e.prototype.pushScope=function(){var e=this.getStack(),t=e.length>0?e[e.length-1].scope:void 0,r=i.a.clone(t);return this.getStack().push({client:this.getClient(),scope:r}),r},e.prototype.popScope=function(){return void 0!==this.getStack().pop()},e.prototype.withScope=function(e){var t=this.pushScope();try{e(t)}finally{this.popScope()}},e.prototype.getClient=function(){return this.getStackTop().client},e.prototype.getScope=function(){return this.getStackTop().scope},e.prototype.getStack=function(){return this._stack},e.prototype.getStackTop=function(){return this._stack[this._stack.length-1]},e.prototype.captureException=function(e,t){var r=this._lastEventId=Object(o.n)(),a=t;if(!t){var i=void 0;try{throw new Error("Sentry syntheticException")}catch(e){i=e}a={originalException:e,syntheticException:i}}return this._invokeClient("captureException",e,n.a({},a,{event_id:r})),r},e.prototype.captureMessage=function(e,t,r){var a=this._lastEventId=Object(o.n)(),i=r;if(!r){var s=void 0;try{throw new Error(e)}catch(e){s=e}i={originalException:e,syntheticException:s}}return this._invokeClient("captureMessage",e,t,n.a({},i,{event_id:a})),a},e.prototype.captureEvent=function(e,t){var r=this._lastEventId=Object(o.n)();return this._invokeClient("captureEvent",e,n.a({},t,{event_id:r})),r},e.prototype.lastEventId=function(){return this._lastEventId},e.prototype.addBreadcrumb=function(e,t){var r=this.getStackTop();if(r.scope&&r.client){var a=r.client.getOptions&&r.client.getOptions()||{},i=a.beforeBreadcrumb,s=void 0===i?null:i,c=a.maxBreadcrumbs,u=void 0===c?100:c;if(!(u<=0)){var l=Object(o.m)(),p=n.a({timestamp:l},e),d=s?Object(o.c)((function(){return s(p,t)})):p;null!==d&&r.scope.addBreadcrumb(d,Math.min(u,100))}}},e.prototype.setUser=function(e){var t=this.getStackTop();t.scope&&t.scope.setUser(e)},e.prototype.setTags=function(e){var t=this.getStackTop();t.scope&&t.scope.setTags(e)},e.prototype.setExtras=function(e){var t=this.getStackTop();t.scope&&t.scope.setExtras(e)},e.prototype.setTag=function(e,t){var r=this.getStackTop();r.scope&&r.scope.setTag(e,t)},e.prototype.setExtra=function(e,t){var r=this.getStackTop();r.scope&&r.scope.setExtra(e,t)},e.prototype.setContext=function(e,t){var r=this.getStackTop();r.scope&&r.scope.setContext(e,t)},e.prototype.configureScope=function(e){var t=this.getStackTop();t.scope&&t.client&&e(t.scope)},e.prototype.run=function(e){var t=u(this);try{e(this)}finally{u(t)}},e.prototype.getIntegration=function(e){var t=this.getClient();if(!t)return null;try{return t.getIntegration(e)}catch(t){return a.a.warn("Cannot retrieve integration "+e.id+" from the current Hub"),null}},e.prototype.startSpan=function(e,t){return void 0===t&&(t=!1),this._callExtensionMethod("startSpan",e,t)},e.prototype.traceHeaders=function(){return this._callExtensionMethod("traceHeaders")},e.prototype._callExtensionMethod=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var n=c(),o=n.__SENTRY__;if(o&&o.extensions&&"function"==typeof o.extensions[e])return o.extensions[e].apply(this,t);a.a.warn("Extension method "+e+" couldn't be found, doing nothing.")},e}();function c(){var e=Object(o.g)();return e.__SENTRY__=e.__SENTRY__||{extensions:{},hub:void 0},e}function u(e){var t=c(),r=d(t);return f(t,e),r}function l(){var t=c();return p(t)&&!d(t).isOlderThan(3)||f(t,new s),Object(o.j)()?function(t){try{var r=Object(o.d)(e,"domain").active;if(!r)return d(t);if(!p(r)||d(r).isOlderThan(3)){var n=d(t).getStackTop();f(r,new s(n.client,i.a.clone(n.scope)))}return d(r)}catch(e){return d(t)}}(t):d(t)}function p(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function d(e){return e&&e.__SENTRY__&&e.__SENTRY__.hub?e.__SENTRY__.hub:(e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.hub=new s,e.__SENTRY__.hub)}function f(e,t){return!!e&&(e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.hub=t,!0)}}).call(this,r(533)(e))},2:function(e,t,r){"use strict";function n(e){if(!e.ok)throw e;return e}function o(e){for(var t=0;t<e.length;++t)if(!e[t].ok)throw e[t];return e}function a(e){return"/static/"+e}function i(e,t,r){return void 0===t&&(t={}),void 0===r&&(r=null),t["X-CSRFToken"]=Cookies.get("csrftoken"),fetch(e,{credentials:"include",headers:t,method:"POST",body:r})}function s(e,t){return new RegExp("(?:git|https?|git@)(?:\\:\\/\\/)?"+t+"[/|:][A-Za-z0-9-]+?\\/[\\w\\.-]+\\/?(?!=.git)(?:\\.git(?:\\/?|\\#[\\w\\.\\-_]+)?)?$").test(e)}function c(){history.replaceState("",document.title,window.location.pathname+window.location.search)}function u(e,t){var r=window.getSelection();r.removeAllRanges();var n=document.createRange();n.setStart(e,0),"#text"!==t.nodeName?n.setEnd(t,t.childNodes.length):n.setEnd(t,t.textContent.length),r.addRange(n)}function l(e,t,r){void 0===r&&(r=!1);var n="",o="";return r&&(n='<button type="button" class="close" data-dismiss="alert" aria-label="Close">\n <span aria-hidden="true">×</span>\n </button>',o="alert-dismissible"),'<div class="alert alert-'+e+" "+o+'" role="alert">'+t+n+"</div>"}r.d(t,"b",(function(){return n})),r.d(t,"c",(function(){return o})),r.d(t,"h",(function(){return a})),r.d(t,"a",(function(){return i})),r.d(t,"e",(function(){return s})),r.d(t,"f",(function(){return c})),r.d(t,"g",(function(){return u})),r.d(t,"d",(function(){return l}))},21:function(e,t,r){"use strict";r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return a})),r.d(t,"c",(function(){return i}));var n=r(2),o=768,a=992,i=Object(n.h)("img/swh-spinner.gif")},211:function(e,t,r){"use strict";r.d(t,"e",(function(){return p})),r.d(t,"d",(function(){return d})),r.d(t,"j",(function(){return f})),r.d(t,"h",(function(){return h})),r.d(t,"i",(function(){return g})),r.d(t,"a",(function(){return m})),r.d(t,"g",(function(){return b})),r.d(t,"c",(function(){return v})),r.d(t,"f",(function(){return w})),r.d(t,"b",(function(){return _}));var n,o=r(225),a=r.n(o),i=r(2),s=r(21),c=!1,u=localStorage.getItem("swh-sidebar-collapsed");function l(){$("body").css("padding-bottom",$("footer").outerHeight()+"px")}function p(e){$(document).ready((function(){$(".swh-"+e+"-item").addClass("active"),$(".swh-"+e+"-link").addClass("active"),$(window).on("unload",(function(){var t=$("body").hasClass("sidebar-collapse");localStorage.setItem("swh-sidebar-collapsed",JSON.stringify(t)),"browse"===e&&sessionStorage.setItem("last-browse-page",window.location)}))}))}function d(){$(document).ready((function(){$(".swh-coverage-list").iFrameResize({heightCalculationMethod:"taggedElement"}),fetch(Urls.stat_counters()).then((function(e){return e.json()})).then((function(e){e.stat_counters&&($("#swh-contents-count").html(e.stat_counters.content.toLocaleString()),$("#swh-revisions-count").html(e.stat_counters.revision.toLocaleString()),$("#swh-origins-count").html(e.stat_counters.origin.toLocaleString()),$("#swh-directories-count").html(e.stat_counters.directory.toLocaleString()),$("#swh-persons-count").html(e.stat_counters.person.toLocaleString()),$("#swh-releases-count").html(e.stat_counters.release.toLocaleString())),e.stat_counters_history&&(swh.webapp.drawHistoryCounterGraph("#swh-contents-count-history",e.stat_counters_history.content),swh.webapp.drawHistoryCounterGraph("#swh-revisions-count-history",e.stat_counters_history.revision),swh.webapp.drawHistoryCounterGraph("#swh-origins-count-history",e.stat_counters_history.origin))}))})),p("home")}function f(e,t){$("#swh-web-modal-message .modal-title").text(e),$("#swh-web-modal-message .modal-content p").text(t),$("#swh-web-modal-message").modal("show")}function h(e,t,r){$("#swh-web-modal-confirm .modal-title").text(e),$("#swh-web-modal-confirm .modal-content p").text(t),$("#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn").bind("click",(function(){r(),$("#swh-web-modal-confirm").modal("hide"),$("#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn").unbind("click")})),$("#swh-web-modal-confirm").modal("show")}function g(e,t){$("#swh-web-modal-html .modal-title").text(e),$("#swh-web-modal-html .modal-body").html(t),$("#swh-web-modal-html").modal("show")}function m(e){e.on("draw.dt",(function(){$(".paginate_button.disabled").css("cursor","pointer"),$(".paginate_button.disabled").on("click",(function(t){for(var r=e.page.info(),n='<select class="jump-to-page">',o=1;o<=r.pages;++o){var a="";o===r.page+1&&(a="selected"),n+='<option value="'+o+'" '+a+">"+o+"</option>"}n+="</select><span> / "+r.pages+"</span>",$(t.target).popover({title:"Jump to page",content:n,html:!0,placement:"top",sanitizeFn:swh.webapp.filterXSS}),$(t.target).popover("show"),$(".jump-to-page").on("change",(function(){$(".paginate_button.disabled").popover("hide");var t=parseInt($(this).val())-1;e.page(t).draw("page")}))}))})),e.on("preXhr.dt",(function(){$(".paginate_button.disabled").popover("hide")}))}function b(e){n=e}function v(e){return n[e]}void 0!==u&&(c=JSON.parse(u)),$(document).on("DOMContentLoaded",(function(){if($(window).width()<s.a&&(c=!0),c){var e=$(".main-sidebar, .main-sidebar:before").css("transition"),t=$(".sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info").css("transition");$(".main-sidebar, .main-sidebar:before").css("transition","none"),$(".sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info").css("transition","none"),$("body").addClass("sidebar-collapse"),$(".swh-words-logo-swh").css("visibility","visible"),setTimeout((function(){$(".main-sidebar, .main-sidebar:before").css("transition",e),$(".sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info").css("transition",t)}))}})),$(document).on("collapsed.lte.pushmenu",(function(e){$("body").width()>=s.a&&$(".swh-words-logo-swh").css("visibility","visible")})),$(document).on("shown.lte.pushmenu",(function(e){$(".swh-words-logo-swh").css("visibility","hidden")})),$(document).ready((function(){$(".swh-browse-link").click((function(e){var t=sessionStorage.getItem("last-browse-page");t&&(e.preventDefault(),window.location=t)})),l(),$(window).resize((function(){l(),$("body").hasClass("sidebar-collapse")&&$("body").width()>=s.a&&$(".swh-words-logo-swh").css("visibility","visible")})),a()(),$(".swh-browse-top-navigation").append($(".modal"));var e=null;function t(e){var t=document.elementsFromPoint(e.clientX,e.clientY),r=Array.isArray(t),n=0;for(t=r?t:t[Symbol.iterator]();;){var o;if(r){if(n>=t.length)break;o=t[n++]}else{if((n=t.next()).done)break;o=n.value}var a=o;if("CODE"===a.nodeName||"PRE"===a.nodeName)return a}return null}function r(e,t){if(t){var r=$(t).find(".hljs-ln-code");r.length?Object(i.g)(r[0],r[r.length-1]):Object(i.g)(t.firstChild,t.lastChild),e.preventDefault()}}$(document).click((function(r){e=t(r)})),$(document).dblclick((function(e){(e.ctrlKey||e.metaKey)&&r(e,t(e))})),$(document).keydown((function(t){(t.ctrlKey||t.metaKey)&&"a"===t.key&&r(t,e)}));var n=0;n+=$(".swh-top-bar").height()||0,n+=$(".navbar").height()||0,$(window).scroll((function(){$(window).scrollTop()>n?$("#back-to-top").css("display","block"):$("#back-to-top").css("display","none")}))}));var y={};function w(e){y=e}function _(){return y}},212:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(16),o=r.n(n),a=r(24),i=r.n(a),s=r(2);function c(){return u.apply(this,arguments)}function u(){return(u=i()(o.a.mark((function e(t){var n,a,i,c,u,l;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=function(){for(var e=[],t=new RegExp(/L(\d+)/g),r=t.exec(window.location.hash);r;)e.push(parseInt(r[1])),r=t.exec(window.location.hash);if(c(),1===e.length)n=parseInt(e[0]),u(i(e[0]));else if(e[0]<e[e.length-1]){n=parseInt(e[0]),u(i(e[0]));for(var o=e[0]+1;o<=e[e.length-1];++o)i(o)}},u=function(e){$(e).closest(".swh-content").length>0&&$("html, body").animate({scrollTop:$(e).offset().top-70},500)},c=function(){n=null,$(".hljs-ln-line[data-line-number]").css("background-color","inherit")},i=function(e){var t=$('.hljs-ln-line[data-line-number="'+e+'"]');return t.css("background-color",a),t},void 0===t&&(t=!0),e.next=7,Promise.all([r.e(0),r.e(4)]).then(r.bind(null,118));case 7:n=null,a="rgb(193, 255, 193)",$(document).ready((function(){$("code").each((function(e,r){hljs.highlightBlock(r),t&&hljs.lineNumbersBlock(r,{singleLine:!0})})),t&&($("body").click((function(e){if(e.target.classList.contains("hljs-ln-n")){var t=parseInt($(e.target).data("line-number"));if(e.shiftKey&&n&&t>n){var r=n;c();for(var o=r;o<=t;++o)i(o);n=r,window.location.hash="#L"+r+"-L"+t}else c(),i(t),window.location.hash="#L"+t,u(e.target)}else $(e.target).closest(".hljs-ln").length&&(c(),Object(s.f)())})),$(window).on("hashchange",(function(){return l()})),setTimeout((function(){l()})))}));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},213:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"c",(function(){return p})),r.d(t,"b",(function(){return f})),r.d(t,"d",(function(){return h}));var n=r(16),o=r.n(n),a=r(24),i=r.n(a),s=r(2),c=r(226);function u(e,t){return l.apply(this,arguments)}function l(){return(l=i()(o.a.mark((function e(t,n){var a,i;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=function(){return[{type:"output",filter:function(e,t,r){return a.helper.replaceRecursiveRegExp(e,(function(e,t,r,n){t=Object(c.decode)(t);var o=(r.match(/class="([^ "]+)/)||[])[1];if(r.includes('class="')){var a=r.indexOf('class="')+'class="'.length;r=r.slice(0,a)+"hljs "+r.slice(a)}else r=r.slice(0,-1)+' class="hljs">';return o&&hljs.getLanguage(o)?r+hljs.highlight(o,t).value+n:r+t+n}),"<pre><code\\b[^>]*>","</code></pre>","g")}}]},e.next=3,r.e(10).then(r.bind(null,235));case 3:return a=e.sent,e.next=6,Promise.all([r.e(0),r.e(4)]).then(r.bind(null,118));case 6:$(document).ready((function(){var e=new a.Converter({tables:!0,extensions:[i]});fetch(n).then(s.b).then((function(e){return e.text()})).then((function(r){$(t).addClass("swh-showdown"),$(t).html(swh.webapp.filterXSS(e.makeHtml(r)))})).catch((function(){$(t).text("Readme bytes are not available")}))}));case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function p(e,t){return d.apply(this,arguments)}function d(){return(d=i()(o.a.mark((function e(t,n){var a,i,s,c;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.e(5).then(r.bind(null,543));case 2:a=e.sent,i=new a.Parser,s=i.parse(n,{toc:!1}),c=s.convert(a.ConverterHTML,{}),$(t).addClass("swh-org"),$(t).html(swh.webapp.filterXSS(c.toString())),$(".swh-org ul").first().remove(),$(".section-number").remove();case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function f(e,t){$(document).ready((function(){fetch(t).then(s.b).then((function(e){return e.text()})).then((function(t){p(e,t)})).catch((function(){$(e).text("Readme bytes are not available")}))}))}function h(e,t){$(document).ready((function(){fetch(t).then(s.b).then((function(e){return e.text()})).then((function(t){-1!==t.indexOf("-*- mode: org -*-")?p(e,t.replace("-*- mode: org -*-","")):($(e).addClass("swh-readme-txt"),$(e).html("").append($("<pre></pre>").text(t)))})).catch((function(){$(e).text("Readme bytes are not available")}))}))}},214:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(16),o=r.n(n),a=r(24),i=r.n(a),s=r(2);function c(e){return u.apply(this,arguments)}function u(){return(u=i()(o.a.mark((function e(t){var n,a,i,c,u,l,p,d,f,h,g,m;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return g=function(){a>=n.numPages||(a++,f(a))},h=function(){a<=1||(a--,f(a))},f=function(e){i?c=e:d(e)},d=function(e){i=!0,n.getPage(e).then((function(e){var t=$(".swh-content").width(),r=Math.min(u,t/e.getViewport(1).width),n=e.getViewport(r);l.width=n.width,l.height=n.height;var o={canvasContext:p,viewport:n};e.render(o).promise.then((function(){i=!1,null!==c&&(d(c),c=null)}))})),$("#pdf-page-num").text(e)},n=null,a=1,i=!1,c=null,u=1.5,l=$("#pdf-canvas")[0],p=l.getContext("2d"),e.next=13,r.e(7).then(r.t.bind(null,544,7));case 13:(m=e.sent).GlobalWorkerOptions.workerSrc=Object(s.h)("js/pdf.worker.min.js"),$(document).ready((function(){$("#pdf-prev").click(h),$("#pdf-next").click(g),m.getDocument(t).promise.then((function(e){n=e,$("#pdf-page-count").text(n.numPages),d(a)}),(function(e){console.error(e)})),$(window).on("resize",(function(){f(a)}))}));case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},215:function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));var n=r(16),o=r.n(n),a=r(24),i=r.n(a),s=(r(527),r(227)),c=r.n(s),u=(r(530),new c.a);function l(e){return e=(e=e.replace(/</g,"<")).replace(/>/g,">")}function p(e){return e=(e=e.replace(/</g,"<")).replace(/>/g,">")}function d(e){for(var t,r,n,o=/\$\$([\s\S]+?)\$\$|\\\\\[([\s\S]+?)\\\\\]/gm,a=/\$(.+?)\$|\\\\\((.+?)\\\\\)/g,i=/\\begin\{([a-z]*\*?)\}([\s\S]+?)\\end\{\1\}/gm,s=[];null!==(t=o.exec(e));)s.push(t[1]);for(;null!==(r=a.exec(e));)s.push(r[1]);for(;null!==(n=i.exec(e));)s.push(n[1]);for(var c=0,u=s;c<u.length;c++){for(var p=u[c],d=p.replace("\\\\","\\\\\\\\"),f=0,h=["{","}","#","%","&","_"];f<h.length;f++){var g=h[f];d=d.replace(new RegExp("\\\\"+g,"g"),"\\\\"+g)}p!==(d=(d=l(d)).replace(/_/g,"{@}underscore{@}"))&&(e=e.replace(p,d))}return e}function f(e,t){return h.apply(this,arguments)}function h(){return(h=i()(o.a.mark((function e(t,n){var a,i,s,c,l;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=function(){window.MathJax={TeX:{equationNumbers:{autoNumber:"AMS",useLabelIds:!0}},tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],displayMath:[["$$","$$"],["\\[","\\]"]],processEscapes:!0,processEnvironments:!0},displayAlign:"center","HTML-CSS":{styles:{".MathJax_Display":{margin:0}},linebreaks:{automatic:!0}}};var e=document.getElementsByTagName("head")[0],t=document.createElement("script");t.type="text/javascript",t.src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML",e.appendChild(t)},c=function(e){return u.ansi_to_html(e)},s=function(e,t,r,n){return-1===e.indexOf('<span style="color:rgb(')&&(e=p(e)),n&&hljs.getLanguage(n)?hljs.highlight(n,e).value:e},i=function(e){var t=new a.Converter({tables:!0,simplifiedAutoLink:!0,rawHeaderId:!0,literalMidWordUnderscores:!0});e=d(e);var r=t.makeHtml(e);return r=r.replace(/{@}underscore{@}/g,"_")},e.next=6,r.e(10).then(r.bind(null,235));case 6:return a=e.sent,e.next=9,Promise.all([r.e(0),r.e(4)]).then(r.bind(null,118));case 9:nb.markdown=i,nb.highlighter=s,nb.ansi=c,fetch(t).then((function(e){return e.json()})).then((function(e){var t=nb.parse(e),r=swh.webapp.filterXSS(t.render());$(n).append(r),$("pre.nb-stderr").parent().css("background","#fdd"),l()}));case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}u.escape_for_html=!1},216:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(154),o=r.n(n);function a(e){return o.a.sanitize(e)}o.a.addHook("uponSanitizeAttribute",(function(e,t){if("IMG"===e.nodeName&&"src"===t.attrName){if(t.attrValue.startsWith("data:image")||t.attrValue.startsWith("http:")||t.attrValue.startsWith("https:"))return;var r=swh.webapp.getBrowsedSwhObjectMetadata();if(!r.hasOwnProperty("directory"))return;var n=Urls.browse_directory_resolve_content_path(r.directory,t.attrValue);t.attrValue=n}}))},217:function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(16),o=r.n(n),a=r(24),i=r.n(a);r(531);function s(e,t){return c.apply(this,arguments)}function c(){return(c=i()(o.a.mark((function e(t,n){var a,i,s,c,u,l,p,d,f,h,g,m,b,v,y,w,_;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return _=function(e){var t=h.invert(a.mouse(e)[0]),r=y(n,t,1);if(!(r>=n.length)){var o=n[r-1],i=n[r],s=t-o[0]>i[0]-t?i:o;w.attr("transform","translate("+h(s[0])+", "+g(s[1])+")");var c=b(s[0])+" "+v(s[1]);l.html(c).style("left",a.event.pageX+15+"px").style("top",a.event.pageY+"px")}},e.next=3,r.e(3).then(r.bind(null,234));case 3:(a=e.sent).select(t).select("svg").remove(),a.select(t+"-tooltip").remove(),i=400,s=300,c={top:20,right:50,bottom:70,left:30},u=a.select(t).attr("style","padding-bottom: "+Math.ceil(100*s/i)+"%").append("svg").attr("viewBox","0 0 "+i+" "+s),l=a.select("body").append("div").attr("class","d3-tooltip").attr("id",t+"-tooltip").style("opacity",0),i=i-c.left-c.right,s=s-c.top-c.bottom,n.sort((function(e,t){return e[0]-t[0]!=0?e[0]-t[0]:e[1]-t[1]})),p=n[0],d=n[n.length-1],f=u.append("g").attr("transform","translate("+c.left+", "+c.top+")"),h=a.scaleTime().rangeRound([0,i]).domain([p[0],d[0]]).nice(),g=a.scaleLinear().range([s,0]).domain([p[1],d[1]]).nice(),m=a.line().x((function(e){return h(e[0])})).y((function(e){return g(e[1])})),b=a.timeFormat("%d %b %Y"),v=a.format(".3s"),y=a.bisector((function(e){return e[0]})).left,f.append("g").attr("class","axis").attr("transform","translate(0, "+s+")").call(a.axisBottom(h).ticks(10).tickFormat(b)).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".15em").attr("transform","rotate(-65)"),f.append("g").attr("class","axis").attr("transform","translate("+i+", 0)").call(a.axisRight(g).ticks(10).tickFormat(v)),f.append("path").datum(n).attr("class","swh-history-counter-line").attr("d",m),(w=f.append("g").attr("class","swh-history-counter-focus").style("display","none")).append("circle").attr("r",8),f.append("rect").attr("class","swh-history-counter-overlay").attr("width",i).attr("height",s).on("mouseover",(function(){w.style("display",null),_(this),l.transition().duration(200).style("opacity",1)})).on("mouseout",(function(){w.style("display","none"),l.transition().duration(200).style("opacity",0)})).on("mousemove",(function(){_(this)}));case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},218:function(e,t,r){"use strict";function n(e,t){var r,n;"origin"===e?(r=Urls.swh_badge(e,t),n=Urls.browse_origin(t)):(r=Urls.swh_badge_pid(t),n=Urls.browse_swh_id(t));var o=window.location.protocol+"//"+window.location.hostname;window.location.port&&(o+=":"+window.location.port);var a=""+o+r,i=""+o+n,s='\n <a href="'+i+'">\n <img class="swh-badge" src="'+a+'">\n </a>\n <div>\n <label>HTML</label>\n <pre class="swh-badge-html"><a href="'+i+'">\n <img src="'+a+'">\n</a></pre>\n </div>\n <div>\n <label>Markdown</label>\n <pre class="swh-badge-md">[![SWH]('+a+")]("+i+')</pre>\n </div>\n <div>\n <label>reStructuredText</label>\n <pre class="swh-badge-rst">.. image:: '+a+"\n :target: "+i+"</pre>\n </div>";swh.webapp.showModalHtml("Software Heritage badge integration",s)}r.d(t,"a",(function(){return n}))},219:function(e,t,r){"use strict";r.d(t,"b",(function(){return a})),r.d(t,"a",(function(){return i}));var n=r(534),o=r(28);function a(e){void 0!==e&&n.a({dsn:e})}function i(e){o.a(e)}},22:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n,o=r(6);!function(e){e.PENDING="PENDING",e.RESOLVED="RESOLVED",e.REJECTED="REJECTED"}(n||(n={}));var a=function(){function e(e){var t=this;this._state=n.PENDING,this._handlers=[],this._resolve=function(e){t._setResult(n.RESOLVED,e)},this._reject=function(e){t._setResult(n.REJECTED,e)},this._setResult=function(e,r){t._state===n.PENDING&&(Object(o.m)(r)?r.then(t._resolve,t._reject):(t._state=e,t._value=r,t._executeHandlers()))},this._attachHandler=function(e){t._handlers=t._handlers.concat(e),t._executeHandlers()},this._executeHandlers=function(){t._state!==n.PENDING&&(t._state===n.REJECTED?t._handlers.forEach((function(e){e.onrejected&&e.onrejected(t._value)})):t._handlers.forEach((function(e){e.onfulfilled&&e.onfulfilled(t._value)})),t._handlers=[])};try{e(this._resolve,this._reject)}catch(e){this._reject(e)}}return e.prototype.toString=function(){return"[object SyncPromise]"},e.resolve=function(t){return new e((function(e){e(t)}))},e.reject=function(t){return new e((function(e,r){r(t)}))},e.all=function(t){return new e((function(r,n){if(Array.isArray(t))if(0!==t.length){var o=t.length,a=[];t.forEach((function(t,i){e.resolve(t).then((function(e){a[i]=e,0===(o-=1)&&r(a)})).then(null,n)}))}else r([]);else n(new TypeError("Promise.all requires an array as input."))}))},e.prototype.then=function(t,r){var n=this;return new e((function(e,o){n._attachHandler({onfulfilled:function(r){if(t)try{return void e(t(r))}catch(e){return void o(e)}else e(r)},onrejected:function(t){if(r)try{return void e(r(t))}catch(e){return void o(e)}else o(t)}})}))},e.prototype.catch=function(e){return this.then((function(e){return e}),e)},e.prototype.finally=function(t){var r=this;return new e((function(e,n){var o,a;return r.then((function(e){a=!1,o=e,t&&t()}),(function(e){a=!0,o=e,t&&t()})).then((function(){a?n(o):e(o)}))}))},e}()},220:function(e,t,r){"use strict";r.r(t);var n=r(221);r.d(t,"FunctionToString",(function(){return n.a}));var o=r(222);r.d(t,"InboundFilters",(function(){return o.a}))},221:function(e,t,r){"use strict";var n;r.d(t,"a",(function(){return o}));var o=function(){function e(){this.name=e.id}return e.prototype.setupOnce=function(){n=Function.prototype.toString,Function.prototype.toString=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=this.__sentry_original__||this;return n.apply(r,e)}},e.id="FunctionToString",e}()},222:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(1),o=r(48),a=r(17),i=r(10),s=r(3),c=r(32),u=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/],l=function(){function e(t){void 0===t&&(t={}),this._options=t,this.name=e.id}return e.prototype.setupOnce=function(){Object(o.b)((function(t){var r=Object(a.a)();if(!r)return t;var n=r.getIntegration(e);if(n){var o=r.getClient(),i=o?o.getOptions():{},s=n._mergeOptions(i);if(n._shouldDropEvent(t,s))return null}return t}))},e.prototype._shouldDropEvent=function(e,t){return this._isSentryError(e,t)?(i.a.warn("Event dropped due to being internal Sentry Error.\nEvent: "+Object(s.e)(e)),!0):this._isIgnoredError(e,t)?(i.a.warn("Event dropped due to being matched by `ignoreErrors` option.\nEvent: "+Object(s.e)(e)),!0):this._isBlacklistedUrl(e,t)?(i.a.warn("Event dropped due to being matched by `blacklistUrls` option.\nEvent: "+Object(s.e)(e)+".\nUrl: "+this._getEventFilterUrl(e)),!0):!this._isWhitelistedUrl(e,t)&&(i.a.warn("Event dropped due to not being matched by `whitelistUrls` option.\nEvent: "+Object(s.e)(e)+".\nUrl: "+this._getEventFilterUrl(e)),!0)},e.prototype._isSentryError=function(e,t){if(void 0===t&&(t={}),!t.ignoreInternal)return!1;try{return e&&e.exception&&e.exception.values&&e.exception.values[0]&&"SentryError"===e.exception.values[0].type||!1}catch(e){return!1}},e.prototype._isIgnoredError=function(e,t){return void 0===t&&(t={}),!(!t.ignoreErrors||!t.ignoreErrors.length)&&this._getPossibleEventMessages(e).some((function(e){return t.ignoreErrors.some((function(t){return Object(c.a)(e,t)}))}))},e.prototype._isBlacklistedUrl=function(e,t){if(void 0===t&&(t={}),!t.blacklistUrls||!t.blacklistUrls.length)return!1;var r=this._getEventFilterUrl(e);return!!r&&t.blacklistUrls.some((function(e){return Object(c.a)(r,e)}))},e.prototype._isWhitelistedUrl=function(e,t){if(void 0===t&&(t={}),!t.whitelistUrls||!t.whitelistUrls.length)return!0;var r=this._getEventFilterUrl(e);return!r||t.whitelistUrls.some((function(e){return Object(c.a)(r,e)}))},e.prototype._mergeOptions=function(e){return void 0===e&&(e={}),{blacklistUrls:n.d(this._options.blacklistUrls||[],e.blacklistUrls||[]),ignoreErrors:n.d(this._options.ignoreErrors||[],e.ignoreErrors||[],u),ignoreInternal:void 0===this._options.ignoreInternal||this._options.ignoreInternal,whitelistUrls:n.d(this._options.whitelistUrls||[],e.whitelistUrls||[])}},e.prototype._getPossibleEventMessages=function(e){if(e.message)return[e.message];if(e.exception)try{var t=e.exception.values&&e.exception.values[0]||{},r=t.type,n=void 0===r?"":r,o=t.value,a=void 0===o?"":o;return[""+a,n+": "+a]}catch(t){return i.a.error("Cannot extract message for event "+Object(s.e)(e)),[]}return[]},e.prototype._getEventFilterUrl=function(e){try{if(e.stacktrace){var t=e.stacktrace.frames;return t&&t[t.length-1].filename||null}if(e.exception){var r=e.exception.values&&e.exception.values[0].stacktrace&&e.exception.values[0].stacktrace.frames;return r&&r[r.length-1].filename||null}return null}catch(t){return i.a.error("Cannot extract url for event "+Object(s.e)(e)),null}},e.id="InboundFilters",e}()},225:function(e,t,r){"use strict";var n="bfred-it:object-fit-images",o=/(object-fit|object-position)\s*:\s*([-.\w\s%]+)/g,a="undefined"==typeof Image?{style:{"object-position":1}}:new Image,i="object-fit"in a.style,s="object-position"in a.style,c="background-size"in a.style,u="string"==typeof a.currentSrc,l=a.getAttribute,p=a.setAttribute,d=!1;function f(e,t,r){var n="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='"+(t||1)+"' height='"+(r||0)+"'%3E%3C/svg%3E";l.call(e,"src")!==n&&p.call(e,"src",n)}function h(e,t){e.naturalWidth?t(e):setTimeout(h,100,e,t)}function g(e){var t=function(e){for(var t,r=getComputedStyle(e).fontFamily,n={};null!==(t=o.exec(r));)n[t[1]]=t[2];return n}(e),r=e[n];if(t["object-fit"]=t["object-fit"]||"fill",!r.img){if("fill"===t["object-fit"])return;if(!r.skipTest&&i&&!t["object-position"])return}if(!r.img){r.img=new Image(e.width,e.height),r.img.srcset=l.call(e,"data-ofi-srcset")||e.srcset,r.img.src=l.call(e,"data-ofi-src")||e.src,p.call(e,"data-ofi-src",e.src),e.srcset&&p.call(e,"data-ofi-srcset",e.srcset),f(e,e.naturalWidth||e.width,e.naturalHeight||e.height),e.srcset&&(e.srcset="");try{!function(e){var t={get:function(t){return e[n].img[t||"src"]},set:function(t,r){return e[n].img[r||"src"]=t,p.call(e,"data-ofi-"+r,t),g(e),t}};Object.defineProperty(e,"src",t),Object.defineProperty(e,"currentSrc",{get:function(){return t.get("currentSrc")}}),Object.defineProperty(e,"srcset",{get:function(){return t.get("srcset")},set:function(e){return t.set(e,"srcset")}})}(e)}catch(e){window.console&&console.warn("https://bit.ly/ofi-old-browser")}}!function(e){if(e.srcset&&!u&&window.picturefill){var t=window.picturefill._;e[t.ns]&&e[t.ns].evaled||t.fillImg(e,{reselect:!0}),e[t.ns].curSrc||(e[t.ns].supported=!1,t.fillImg(e,{reselect:!0})),e.currentSrc=e[t.ns].curSrc||e.src}}(r.img),e.style.backgroundImage='url("'+(r.img.currentSrc||r.img.src).replace(/"/g,'\\"')+'")',e.style.backgroundPosition=t["object-position"]||"center",e.style.backgroundRepeat="no-repeat",e.style.backgroundOrigin="content-box",/scale-down/.test(t["object-fit"])?h(r.img,(function(){r.img.naturalWidth>e.width||r.img.naturalHeight>e.height?e.style.backgroundSize="contain":e.style.backgroundSize="auto"})):e.style.backgroundSize=t["object-fit"].replace("none","auto").replace("fill","100% 100%"),h(r.img,(function(t){f(e,t.naturalWidth,t.naturalHeight)}))}function m(e,t){var r=!d&&!e;if(t=t||{},e=e||"img",s&&!t.skipTest||!c)return!1;"img"===e?e=document.getElementsByTagName("img"):"string"==typeof e?e=document.querySelectorAll(e):"length"in e||(e=[e]);for(var o=0;o<e.length;o++)e[o][n]=e[o][n]||{skipTest:t.skipTest},g(e[o]);r&&(document.body.addEventListener("load",(function(e){"IMG"===e.target.tagName&&m(e.target,{skipTest:t.skipTest})}),!0),d=!0,e="img"),t.watchMQ&&window.addEventListener("resize",m.bind(null,e,{skipTest:t.skipTest}))}m.supportsObjectFit=i,m.supportsObjectPosition=s,function(){function e(e,t){return e[n]&&e[n].img&&("src"===t||"srcset"===t)?e[n].img:e}s||(HTMLImageElement.prototype.getAttribute=function(t){return l.call(e(this,t),t)},HTMLImageElement.prototype.setAttribute=function(t,r){return p.call(e(this,t),t,String(r))})}(),e.exports=m},226:function(e,t,r){"use strict";r(524),r(525);var n=r(526);e.exports={decode:function(e){return n.decode(e)},encode:function(e){return n.encode(e)}}},227:function(e,t,r){var n,o,a;o=[t],void 0===(a="function"==typeof(n=function(e){"use strict";var t,r=this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};!function(e){e[e.EOS=0]="EOS",e[e.Text=1]="Text",e[e.Incomplete=2]="Incomplete",e[e.ESC=3]="ESC",e[e.Unknown=4]="Unknown",e[e.SGR=5]="SGR",e[e.OSCURL=6]="OSCURL"}(t||(t={}));var n=function(){function e(){this.VERSION="4.0.4",this.setup_palettes(),this._use_classes=!1,this._escape_for_html=!0,this.bold=!1,this.fg=this.bg=null,this._buffer="",this._url_whitelist={http:1,https:1}}return Object.defineProperty(e.prototype,"use_classes",{get:function(){return this._use_classes},set:function(e){this._use_classes=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"escape_for_html",{get:function(){return this._escape_for_html},set:function(e){this._escape_for_html=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url_whitelist",{get:function(){return this._url_whitelist},set:function(e){this._url_whitelist=e},enumerable:!0,configurable:!0}),e.prototype.setup_palettes=function(){var e=this;this.ansi_colors=[[{rgb:[0,0,0],class_name:"ansi-black"},{rgb:[187,0,0],class_name:"ansi-red"},{rgb:[0,187,0],class_name:"ansi-green"},{rgb:[187,187,0],class_name:"ansi-yellow"},{rgb:[0,0,187],class_name:"ansi-blue"},{rgb:[187,0,187],class_name:"ansi-magenta"},{rgb:[0,187,187],class_name:"ansi-cyan"},{rgb:[255,255,255],class_name:"ansi-white"}],[{rgb:[85,85,85],class_name:"ansi-bright-black"},{rgb:[255,85,85],class_name:"ansi-bright-red"},{rgb:[0,255,0],class_name:"ansi-bright-green"},{rgb:[255,255,85],class_name:"ansi-bright-yellow"},{rgb:[85,85,255],class_name:"ansi-bright-blue"},{rgb:[255,85,255],class_name:"ansi-bright-magenta"},{rgb:[85,255,255],class_name:"ansi-bright-cyan"},{rgb:[255,255,255],class_name:"ansi-bright-white"}]],this.palette_256=[],this.ansi_colors.forEach((function(t){t.forEach((function(t){e.palette_256.push(t)}))}));for(var t=[0,95,135,175,215,255],r=0;r<6;++r)for(var n=0;n<6;++n)for(var o=0;o<6;++o){var a={rgb:[t[r],t[n],t[o]],class_name:"truecolor"};this.palette_256.push(a)}for(var i=8,s=0;s<24;++s,i+=10){var c={rgb:[i,i,i],class_name:"truecolor"};this.palette_256.push(c)}},e.prototype.escape_txt_for_html=function(e){return e.replace(/[&<>]/gm,(function(e){return"&"===e?"&":"<"===e?"<":">"===e?">":void 0}))},e.prototype.append_buffer=function(e){var t=this._buffer+e;this._buffer=t},e.prototype.get_next_packet=function(){var e={kind:t.EOS,text:"",url:""},n=this._buffer.length;if(0==n)return e;var a=this._buffer.indexOf("");if(-1==a)return e.kind=t.Text,e.text=this._buffer,this._buffer="",e;if(a>0)return e.kind=t.Text,e.text=this._buffer.slice(0,a),this._buffer=this._buffer.slice(a),e;if(0==a){if(1==n)return e.kind=t.Incomplete,e;var i=this._buffer.charAt(1);if("["!=i&&"]"!=i)return e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;if("["==i){if(this._csi_regex||(this._csi_regex=o(r(["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n [ # CSI\n ([<-?]?) # private-mode char\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n [ # CSI\n [ -~]* # anything legal\n ([\0-:]) # anything illegal\n )\n "],["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \\x1b\\[ # CSI\n ([\\x3c-\\x3f]?) # private-mode char\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \\x1b\\[ # CSI\n [\\x20-\\x7e]* # anything legal\n ([\\x00-\\x1f:]) # anything illegal\n )\n "]))),null===(u=this._buffer.match(this._csi_regex)))return e.kind=t.Incomplete,e;if(u[4])return e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;""!=u[1]||"m"!=u[3]?e.kind=t.Unknown:e.kind=t.SGR,e.text=u[2];var s=u[0].length;return this._buffer=this._buffer.slice(s),e}if("]"==i){if(n<4)return e.kind=t.Incomplete,e;if("8"!=this._buffer.charAt(2)||";"!=this._buffer.charAt(3))return e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;this._osc_st||(this._osc_st=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var n=e.raw[0],o=/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,a=n.replace(o,"");return new RegExp(a,"g")}(r(["\n (?: # legal sequence\n (\\) # ESC | # alternate\n () # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\0-] # anything illegal\n | # alternate\n [\b-] # anything illegal\n | # alternate\n [-] # anything illegal\n )\n "],["\n (?: # legal sequence\n (\\x1b\\\\) # ESC \\\n | # alternate\n (\\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\\x00-\\x06] # anything illegal\n | # alternate\n [\\x08-\\x1a] # anything illegal\n | # alternate\n [\\x1c-\\x1f] # anything illegal\n )\n "]))),this._osc_st.lastIndex=0;var c=this._osc_st.exec(this._buffer);if(null===c)return e.kind=t.Incomplete,e;if(c[3])return e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;var u,l=this._osc_st.exec(this._buffer);return null===l?(e.kind=t.Incomplete,e):l[3]?(e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e):(this._osc_regex||(this._osc_regex=o(r(["\n ^ # beginning of line\n #\n ]8; # OSC Hyperlink\n [ -:<-~]* # params (excluding ;)\n ; # end of params\n ([!-~]{0,512}) # URL capture\n (?: # ST\n (?:\\) # ESC | # alternate\n (?:) # BEL (what xterm did)\n )\n ([!-~]+) # TEXT capture\n ]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\) # ESC | # alternate\n (?:) # BEL (what xterm did)\n )\n "],["\n ^ # beginning of line\n #\n \\x1b\\]8; # OSC Hyperlink\n [\\x20-\\x3a\\x3c-\\x7e]* # params (excluding ;)\n ; # end of params\n ([\\x21-\\x7e]{0,512}) # URL capture\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n ([\\x21-\\x7e]+) # TEXT capture\n \\x1b\\]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n "]))),null===(u=this._buffer.match(this._osc_regex))?(e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e):(e.kind=t.OSCURL,e.url=u[1],e.text=u[2],s=u[0].length,this._buffer=this._buffer.slice(s),e))}}},e.prototype.ansi_to_html=function(e){this.append_buffer(e);for(var r=[];;){var n=this.get_next_packet();if(n.kind==t.EOS||n.kind==t.Incomplete)break;n.kind!=t.ESC&&n.kind!=t.Unknown&&(n.kind==t.Text?r.push(this.transform_to_html(this.with_state(n))):n.kind==t.SGR?this.process_ansi(n):n.kind==t.OSCURL&&r.push(this.process_hyperlink(n)))}return r.join("")},e.prototype.with_state=function(e){return{bold:this.bold,fg:this.fg,bg:this.bg,text:e.text}},e.prototype.process_ansi=function(e){for(var t=e.text.split(";");t.length>0;){var r=t.shift(),n=parseInt(r,10);if(isNaN(n)||0===n)this.fg=this.bg=null,this.bold=!1;else if(1===n)this.bold=!0;else if(22===n)this.bold=!1;else if(39===n)this.fg=null;else if(49===n)this.bg=null;else if(n>=30&&n<38)this.fg=this.ansi_colors[0][n-30];else if(n>=40&&n<48)this.bg=this.ansi_colors[0][n-40];else if(n>=90&&n<98)this.fg=this.ansi_colors[1][n-90];else if(n>=100&&n<108)this.bg=this.ansi_colors[1][n-100];else if((38===n||48===n)&&t.length>0){var o=38===n,a=t.shift();if("5"===a&&t.length>0){var i=parseInt(t.shift(),10);i>=0&&i<=255&&(o?this.fg=this.palette_256[i]:this.bg=this.palette_256[i])}if("2"===a&&t.length>2){var s=parseInt(t.shift(),10),c=parseInt(t.shift(),10),u=parseInt(t.shift(),10);if(s>=0&&s<=255&&c>=0&&c<=255&&u>=0&&u<=255){var l={rgb:[s,c,u],class_name:"truecolor"};o?this.fg=l:this.bg=l}}}}},e.prototype.transform_to_html=function(e){var t=e.text;if(0===t.length)return t;if(this._escape_for_html&&(t=this.escape_txt_for_html(t)),!e.bold&&null===e.fg&&null===e.bg)return t;var r=[],n=[],o=e.fg,a=e.bg;e.bold&&r.push("font-weight:bold"),this._use_classes?(o&&("truecolor"!==o.class_name?n.push(o.class_name+"-fg"):r.push("color:rgb("+o.rgb.join(",")+")")),a&&("truecolor"!==a.class_name?n.push(a.class_name+"-bg"):r.push("background-color:rgb("+a.rgb.join(",")+")"))):(o&&r.push("color:rgb("+o.rgb.join(",")+")"),a&&r.push("background-color:rgb("+a.rgb+")"));var i="",s="";return n.length&&(i=' class="'+n.join(" ")+'"'),r.length&&(s=' style="'+r.join(";")+'"'),"<span"+s+i+">"+t+"</span>"},e.prototype.process_hyperlink=function(e){var t=e.url.split(":");return t.length<1?"":this._url_whitelist[t[0]]?'<a href="'+this.escape_txt_for_html(e.url)+'">'+this.escape_txt_for_html(e.text)+"</a>":""},e}();function o(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var n=e.raw[0],o=/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm,a=n.replace(o,"");return new RegExp(a)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=n})?n.apply(t,o):n)||(e.exports=a)},228:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(){function e(){this._hasWeakSet="function"==typeof WeakSet,this._inner=this._hasWeakSet?new WeakSet:[]}return e.prototype.memoize=function(e){if(this._hasWeakSet)return!!this._inner.has(e)||(this._inner.add(e),!1);for(var t=0;t<this._inner.length;t++){if(this._inner[t]===e)return!0}return this._inner.push(e),!1},e.prototype.unmemoize=function(e){if(this._hasWeakSet)this._inner.delete(e);else for(var t=0;t<this._inner.length;t++)if(this._inner[t]===e){this._inner.splice(t,1);break}},e}()},229:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){return e.__proto__=t,e}:function(e,t){for(var r in t)e.hasOwnProperty(r)||(e[r]=t[r]);return e})},230:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(1),o=r(92),a=r(150),i=r(3),s=r(10),c=r(231),u=r(117),l=function(e){function t(t){return void 0===t&&(t={}),e.call(this,c.a,t)||this}return n.b(t,e),t.prototype._prepareEvent=function(t,r,o){return t.platform=t.platform||"javascript",t.sdk=n.a({},t.sdk,{name:u.a,packages:n.d(t.sdk&&t.sdk.packages||[],[{name:"npm:@sentry/browser",version:u.b}]),version:u.b}),e.prototype._prepareEvent.call(this,t,r,o)},t.prototype.showReportDialog=function(e){void 0===e&&(e={});var t=Object(i.g)().document;if(t)if(this._isEnabled()){var r=e.dsn||this.getDsn();if(e.eventId)if(r){var n=t.createElement("script");n.async=!0,n.src=new o.a(r).getReportDialogEndpoint(e),e.onLoad&&(n.onload=e.onLoad),(t.head||t.body).appendChild(n)}else s.a.error("Missing `Dsn` option in showReportDialog call");else s.a.error("Missing `eventId` option in showReportDialog call")}else s.a.error("Trying to call showReportDialog with Sentry Client is disabled")},t}(a.a)},231:function(e,t,r){"use strict";r.d(t,"a",(function(){return d}));var n=r(1),o=r(149),a=r(74),i=r(93),s=r(3),c=r(22),u=r(73),l=r(540),p=r(542),d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.b(t,e),t.prototype._setupTransport=function(){if(!this._options.dsn)return e.prototype._setupTransport.call(this);var t=n.a({},this._options.transportOptions,{dsn:this._options.dsn});return this._options.transport?new this._options.transport(t):Object(i.a)()?new l.a(t):new p.a(t)},t.prototype.eventFromException=function(e,t){var r=t&&t.syntheticException||void 0,n=Object(u.b)(e,r,{attachStacktrace:this._options.attachStacktrace});return Object(s.a)(n,{handled:!0,type:"generic"}),n.level=a.a.Error,t&&t.event_id&&(n.event_id=t.event_id),c.a.resolve(n)},t.prototype.eventFromMessage=function(e,t,r){void 0===t&&(t=a.a.Info);var n=r&&r.syntheticException||void 0,o=Object(u.a)(e,n,{attachStacktrace:this._options.attachStacktrace});return o.level=t,r&&r.event_id&&(o.event_id=r.event_id),c.a.resolve(o)},t}(o.a)},232:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(1),o=r(48),a=r(17),i=r(10),s=[];function c(e){var t={};return function(e){var t=e.defaultIntegrations&&n.d(e.defaultIntegrations)||[],r=e.integrations,o=[];if(Array.isArray(r)){var a=r.map((function(e){return e.name})),i=[];t.forEach((function(e){-1===a.indexOf(e.name)&&-1===i.indexOf(e.name)&&(o.push(e),i.push(e.name))})),r.forEach((function(e){-1===i.indexOf(e.name)&&(o.push(e),i.push(e.name))}))}else"function"==typeof r?(o=r(t),o=Array.isArray(o)?o:[o]):o=n.d(t);var s=o.map((function(e){return e.name}));return-1!==s.indexOf("Debug")&&o.push.apply(o,n.d(o.splice(s.indexOf("Debug"),1))),o}(e).forEach((function(e){t[e.name]=e,function(e){-1===s.indexOf(e.name)&&(e.setupOnce(o.b,a.a),s.push(e.name),i.a.log("Integration installed: "+e.name))}(e)})),t}},233:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(1),o=r(49),a=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w\.-]+)(?::(\d+))?\/(.+)/,i=function(){function e(e){"string"==typeof e?this._fromString(e):this._fromComponents(e),this._validate()}return e.prototype.toString=function(e){void 0===e&&(e=!1);var t=this,r=t.host,n=t.path,o=t.pass,a=t.port,i=t.projectId;return t.protocol+"://"+t.user+(e&&o?":"+o:"")+"@"+r+(a?":"+a:"")+"/"+(n?n+"/":n)+i},e.prototype._fromString=function(e){var t=a.exec(e);if(!t)throw new o.a("Invalid Dsn");var r=n.c(t.slice(1),6),i=r[0],s=r[1],c=r[2],u=void 0===c?"":c,l=r[3],p=r[4],d=void 0===p?"":p,f="",h=r[5],g=h.split("/");g.length>1&&(f=g.slice(0,-1).join("/"),h=g.pop()),this._fromComponents({host:l,pass:u,path:f,projectId:h,port:d,protocol:i,user:s})},e.prototype._fromComponents=function(e){this.protocol=e.protocol,this.user=e.user,this.pass=e.pass||"",this.host=e.host,this.port=e.port||"",this.path=e.path||"",this.projectId=e.projectId},e.prototype._validate=function(){var e=this;if(["protocol","user","host","projectId"].forEach((function(t){if(!e[t])throw new o.a("Invalid Dsn")})),"http"!==this.protocol&&"https"!==this.protocol)throw new o.a("Invalid Dsn");if(this.port&&isNaN(parseInt(this.port,10)))throw new o.a("Invalid Dsn")},e}()},24:function(e,t){function r(e,t,r,n,o,a,i){try{var s=e[a](i),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function s(e){r(i,o,a,s,c,"next",e)}function c(e){r(i,o,a,s,c,"throw",e)}s(void 0)}))}}},28:function(e,t,r){"use strict";r.d(t,"a",(function(){return i})),r.d(t,"b",(function(){return s}));var n=r(1),o=r(17);function a(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var a=Object(o.a)();if(a&&a[e])return a[e].apply(a,n.d(t));throw new Error("No hub defined or "+e+" was not found on the hub, please open a bug report.")}function i(e){var t;try{throw new Error("Sentry syntheticException")}catch(e){t=e}return a("captureException",e,{originalException:e,syntheticException:t})}function s(e){a("withScope",e)}},3:function(e,t,r){"use strict";(function(e,n){r.d(t,"d",(function(){return a})),r.d(t,"j",(function(){return i})),r.d(t,"g",(function(){return c})),r.d(t,"n",(function(){return u})),r.d(t,"l",(function(){return l})),r.d(t,"e",(function(){return p})),r.d(t,"c",(function(){return d})),r.d(t,"b",(function(){return f})),r.d(t,"a",(function(){return h})),r.d(t,"h",(function(){return g})),r.d(t,"i",(function(){return m})),r.d(t,"m",(function(){return v})),r.d(t,"k",(function(){return y})),r.d(t,"f",(function(){return w}));var o=r(6);r(32);function a(e,t){return e.require(t)}function i(){return"[object process]"===Object.prototype.toString.call(void 0!==e?e:0)}var s={};function c(){return i()?n:"undefined"!=typeof window?window:"undefined"!=typeof self?self:s}function u(){var e=c(),t=e.crypto||e.msCrypto;if(void 0!==t&&t.getRandomValues){var r=new Uint16Array(8);t.getRandomValues(r),r[3]=4095&r[3]|16384,r[4]=16383&r[4]|32768;var n=function(e){for(var t=e.toString(16);t.length<4;)t="0"+t;return t};return n(r[0])+n(r[1])+n(r[2])+n(r[3])+n(r[4])+n(r[5])+n(r[6])+n(r[7])}return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}function l(e){if(!e)return{};var t=e.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};var r=t[6]||"",n=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],relative:t[5]+r+n}}function p(e){if(e.message)return e.message;if(e.exception&&e.exception.values&&e.exception.values[0]){var t=e.exception.values[0];return t.type&&t.value?t.type+": "+t.value:t.type||t.value||e.event_id||"<unknown>"}return e.event_id||"<unknown>"}function d(e){var t=c();if(!("console"in t))return e();var r=t.console,n={};["debug","info","warn","error","log","assert"].forEach((function(e){e in t.console&&r[e].__sentry_original__&&(n[e]=r[e],r[e]=r[e].__sentry_original__)}));var o=e();return Object.keys(n).forEach((function(e){r[e]=n[e]})),o}function f(e,t,r){e.exception=e.exception||{},e.exception.values=e.exception.values||[],e.exception.values[0]=e.exception.values[0]||{},e.exception.values[0].value=e.exception.values[0].value||t||"",e.exception.values[0].type=e.exception.values[0].type||r||"Error"}function h(e,t){void 0===t&&(t={});try{e.exception.values[0].mechanism=e.exception.values[0].mechanism||{},Object.keys(t).forEach((function(r){e.exception.values[0].mechanism[r]=t[r]}))}catch(e){}}function g(){try{return document.location.href}catch(e){return""}}function m(e){try{for(var t=e,r=[],n=0,o=0,a=" > ".length,i=void 0;t&&n++<5&&!("html"===(i=b(t))||n>1&&o+r.length*a+i.length>=80);)r.push(i),o+=i.length,t=t.parentNode;return r.reverse().join(" > ")}catch(e){return"<unknown>"}}function b(e){var t,r,n,a,i,s=e,c=[];if(!s||!s.tagName)return"";if(c.push(s.tagName.toLowerCase()),s.id&&c.push("#"+s.id),(t=s.className)&&Object(o.k)(t))for(r=t.split(/\s+/),i=0;i<r.length;i++)c.push("."+r[i]);var u=["type","name","title","alt"];for(i=0;i<u.length;i++)n=u[i],(a=s.getAttribute(n))&&c.push("["+n+'="'+a+'"]');return c.join("")}function v(){return(new Date).getTime()/1e3}function y(e,t){if(!t)return 6e4;var r=parseInt(""+t,10);if(!isNaN(r))return 1e3*r;var n=Date.parse(""+t);return isNaN(n)?6e4:n-e}function w(e){try{return e&&"function"==typeof e&&e.name||"<anonymous>"}catch(e){return"<anonymous>"}}}).call(this,r(532),r(55))},32:function(e,t,r){"use strict";r.d(t,"d",(function(){return o})),r.d(t,"c",(function(){return a})),r.d(t,"b",(function(){return i})),r.d(t,"a",(function(){return s}));var n=r(6);function o(e,t){return void 0===t&&(t=0),"string"!=typeof e||0===t?e:e.length<=t?e:e.substr(0,t)+"..."}function a(e,t){var r=e,n=r.length;if(n<=150)return r;t>n&&(t=n);var o=Math.max(t-60,0);o<5&&(o=0);var a=Math.min(o+140,n);return a>n-5&&(a=n),a===n&&(o=Math.max(a-140,0)),r=r.slice(o,a),o>0&&(r="'{snip} "+r),a<n&&(r+=" {snip}"),r}function i(e,t){if(!Array.isArray(e))return"";for(var r=[],n=0;n<e.length;n++){var o=e[n];try{r.push(String(o))}catch(e){r.push("[value cannot be serialized]")}}return r.join(t)}function s(e,t){return Object(n.j)(t)?t.test(e):"string"==typeof t&&-1!==e.indexOf(t)}},42:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return u}));var n=r(1),o=r(28),a=r(3),i=0;function s(){return i>0}function c(){i+=1,setTimeout((function(){i-=1}))}function u(e,t,r){if(void 0===t&&(t={}),"function"!=typeof e)return e;try{if(e.__sentry__)return e;if(e.__sentry_wrapped__)return e.__sentry_wrapped__}catch(t){return e}var i=function(){var i=Array.prototype.slice.call(arguments);try{r&&"function"==typeof r&&r.apply(this,arguments);var s=i.map((function(e){return u(e,t)}));return e.handleEvent?e.handleEvent.apply(this,s):e.apply(this,s)}catch(e){throw c(),Object(o.b)((function(r){r.addEventProcessor((function(e){var r=n.a({},e);return t.mechanism&&(Object(a.b)(r,void 0,void 0),Object(a.a)(r,t.mechanism)),r.extra=n.a({},r.extra,{arguments:i}),r})),Object(o.a)(e)})),e}};try{for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(i[s]=e[s])}catch(e){}e.prototype=e.prototype||{},i.prototype=e.prototype,Object.defineProperty(e,"__sentry_wrapped__",{enumerable:!1,value:i}),Object.defineProperties(i,{__sentry__:{enumerable:!1,value:!0},__sentry_original__:{enumerable:!1,value:e}});try{Object.getOwnPropertyDescriptor(i,"name").configurable&&Object.defineProperty(i,"name",{get:function(){return e.name}})}catch(e){}return i}},46:function(e,t,r){"use strict";var n=r(220);r.d(t,"a",(function(){return n}))},48:function(e,t,r){"use strict";r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return u}));var n=r(1),o=r(22),a=r(6),i=r(3),s=function(){function e(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._user={},this._tags={},this._extra={},this._context={}}return e.prototype.addScopeListener=function(e){this._scopeListeners.push(e)},e.prototype.addEventProcessor=function(e){return this._eventProcessors.push(e),this},e.prototype._notifyScopeListeners=function(){var e=this;this._notifyingListeners||(this._notifyingListeners=!0,setTimeout((function(){e._scopeListeners.forEach((function(t){t(e)})),e._notifyingListeners=!1})))},e.prototype._notifyEventProcessors=function(e,t,r,i){var s=this;return void 0===i&&(i=0),new o.a((function(o,c){var u=e[i];if(null===t||"function"!=typeof u)o(t);else{var l=u(n.a({},t),r);Object(a.m)(l)?l.then((function(t){return s._notifyEventProcessors(e,t,r,i+1).then(o)})).then(null,c):s._notifyEventProcessors(e,l,r,i+1).then(o).then(null,c)}}))},e.prototype.setUser=function(e){return this._user=e||{},this._notifyScopeListeners(),this},e.prototype.setTags=function(e){return this._tags=n.a({},this._tags,e),this._notifyScopeListeners(),this},e.prototype.setTag=function(e,t){var r;return this._tags=n.a({},this._tags,((r={})[e]=t,r)),this._notifyScopeListeners(),this},e.prototype.setExtras=function(e){return this._extra=n.a({},this._extra,e),this._notifyScopeListeners(),this},e.prototype.setExtra=function(e,t){var r;return this._extra=n.a({},this._extra,((r={})[e]=t,r)),this._notifyScopeListeners(),this},e.prototype.setFingerprint=function(e){return this._fingerprint=e,this._notifyScopeListeners(),this},e.prototype.setLevel=function(e){return this._level=e,this._notifyScopeListeners(),this},e.prototype.setTransaction=function(e){return this._transaction=e,this._span&&(this._span.transaction=e),this._notifyScopeListeners(),this},e.prototype.setContext=function(e,t){var r;return this._context=n.a({},this._context,((r={})[e]=t,r)),this._notifyScopeListeners(),this},e.prototype.setSpan=function(e){return this._span=e,this._notifyScopeListeners(),this},e.prototype.getSpan=function(){return this._span},e.clone=function(t){var r=new e;return t&&(r._breadcrumbs=n.d(t._breadcrumbs),r._tags=n.a({},t._tags),r._extra=n.a({},t._extra),r._context=n.a({},t._context),r._user=t._user,r._level=t._level,r._span=t._span,r._transaction=t._transaction,r._fingerprint=t._fingerprint,r._eventProcessors=n.d(t._eventProcessors)),r},e.prototype.clear=function(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._context={},this._level=void 0,this._transaction=void 0,this._fingerprint=void 0,this._span=void 0,this._notifyScopeListeners(),this},e.prototype.addBreadcrumb=function(e,t){var r=n.a({timestamp:Object(i.m)()},e);return this._breadcrumbs=void 0!==t&&t>=0?n.d(this._breadcrumbs,[r]).slice(-t):n.d(this._breadcrumbs,[r]),this._notifyScopeListeners(),this},e.prototype.clearBreadcrumbs=function(){return this._breadcrumbs=[],this._notifyScopeListeners(),this},e.prototype._applyFingerprint=function(e){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],this._fingerprint&&(e.fingerprint=e.fingerprint.concat(this._fingerprint)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint},e.prototype.applyToEvent=function(e,t){return this._extra&&Object.keys(this._extra).length&&(e.extra=n.a({},this._extra,e.extra)),this._tags&&Object.keys(this._tags).length&&(e.tags=n.a({},this._tags,e.tags)),this._user&&Object.keys(this._user).length&&(e.user=n.a({},this._user,e.user)),this._context&&Object.keys(this._context).length&&(e.contexts=n.a({},this._context,e.contexts)),this._level&&(e.level=this._level),this._transaction&&(e.transaction=this._transaction),this._applyFingerprint(e),e.breadcrumbs=n.d(e.breadcrumbs||[],this._breadcrumbs),e.breadcrumbs=e.breadcrumbs.length>0?e.breadcrumbs:void 0,this._notifyEventProcessors(n.d(c(),this._eventProcessors),e,t)},e}();function c(){var e=Object(i.g)();return e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.globalEventProcessors=e.__SENTRY__.globalEventProcessors||[],e.__SENTRY__.globalEventProcessors}function u(e){c().push(e)}},49:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(1),o=r(229),a=function(e){function t(t){var r=this.constructor,n=e.call(this,t)||this;return n.message=t,n.name=r.prototype.constructor.name,Object(o.a)(n,r.prototype),n}return n.b(t,e),t}(Error)},520:function(e,t,r){e.exports=r(521)},521:function(e,t,r){"use strict";r.r(t);r(167),r(522),r(523);var n=r(211);r.d(t,"initPage",(function(){return n.e})),r.d(t,"initHomePage",(function(){return n.d})),r.d(t,"showModalMessage",(function(){return n.j})),r.d(t,"showModalConfirm",(function(){return n.h})),r.d(t,"showModalHtml",(function(){return n.i})),r.d(t,"addJumpToPagePopoverToDataTable",(function(){return n.a})),r.d(t,"setSwhObjectIcons",(function(){return n.g})),r.d(t,"getSwhObjectIcon",(function(){return n.c})),r.d(t,"setBrowsedSwhObjectMetadata",(function(){return n.f})),r.d(t,"getBrowsedSwhObjectMetadata",(function(){return n.b}));var o=r(212);r.d(t,"highlightCode",(function(){return o.a}));var a=r(213);r.d(t,"renderMarkdown",(function(){return a.a})),r.d(t,"renderOrgData",(function(){return a.c})),r.d(t,"renderOrg",(function(){return a.b})),r.d(t,"renderTxt",(function(){return a.d}));var i=r(214);r.d(t,"renderPdf",(function(){return i.a}));var s=r(215);r.d(t,"renderNotebook",(function(){return s.a}));var c=r(216);r.d(t,"filterXSS",(function(){return c.a}));var u=r(217);r.d(t,"drawHistoryCounterGraph",(function(){return u.a}));var l=r(218);r.d(t,"showBadgeInfoModal",(function(){return l.a}));var p=r(219);r.d(t,"sentryInit",(function(){return p.b})),r.d(t,"sentryCaptureException",(function(){return p.a}))},522:function(e,t,r){},523:function(e,t,r){},524:function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e,t){var r=0,o=[];if(Array.isArray(e))for(;r<e.length&&!1!==t(e[r],r,e);++r);else if("object"===(void 0===e?"undefined":n(e))&&null!==e)for(o=Object.keys(e);r<o.length&&!1!==t(e[o[r]],o[r],e);++r);}},525:function(e,t,r){"use strict";function n(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}n.proto=function(){return RegExp.escape=n,n},e.exports=n},526:function(e,t,r){(function(e,n){var o;!function(a){var i=t,s=(e&&e.exports,"object"==typeof n&&n);s.global!==s&&s.window;var c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/[\x01-\x7F]/g,l=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,p=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,d={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},f=/["&'<>`]/g,h={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},g=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,m=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,b=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,v={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},y={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},w={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},_=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],x=String.fromCharCode,E={}.hasOwnProperty,k=function(e,t){return E.call(e,t)},S=function(e,t){if(!e)return t;var r,n={};for(r in t)n[r]=k(e,r)?e[r]:t[r];return n},D=function(e,t){var r="";return e>=55296&&e<=57343||e>1114111?(t&&j("character reference outside the permissible Unicode range"),"�"):k(w,e)?(t&&j("disallowed character reference"),w[e]):(t&&function(e,t){for(var r=-1,n=e.length;++r<n;)if(e[r]==t)return!0;return!1}(_,e)&&j("disallowed character reference"),e>65535&&(r+=x((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=x(e))},O=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},q=function(e){return"&#"+e+";"},j=function(e){throw Error("Parse error: "+e)},A=function(e,t){(t=S(t,A.options)).strict&&m.test(e)&&j("forbidden code point");var r=t.encodeEverything,n=t.useNamedReferences,o=t.allowUnsafeSymbols,a=t.decimal?q:O,i=function(e){return a(e.charCodeAt(0))};return r?(e=e.replace(u,(function(e){return n&&k(d,e)?"&"+d[e]+";":i(e)})),n&&(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),n&&(e=e.replace(p,(function(e){return"&"+d[e]+";"})))):n?(o||(e=e.replace(f,(function(e){return"&"+d[e]+";"}))),e=(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(p,(function(e){return"&"+d[e]+";"}))):o||(e=e.replace(f,i)),e.replace(c,(function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1);return a(1024*(t-55296)+r-56320+65536)})).replace(l,i)};A.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var T=function(e,t){var r=(t=S(t,T.options)).strict;return r&&g.test(e)&&j("malformed character reference"),e.replace(b,(function(e,n,o,a,i,s,c,u,l){var p,d,f,h,g,m;return n?v[g=n]:o?(g=o,(m=a)&&t.isAttributeValue?(r&&"="==m&&j("`&` did not start a character reference"),e):(r&&j("named character reference was not terminated by a semicolon"),y[g]+(m||""))):i?(f=i,d=s,r&&!d&&j("character reference was not terminated by a semicolon"),p=parseInt(f,10),D(p,r)):c?(h=c,d=u,r&&!d&&j("character reference was not terminated by a semicolon"),p=parseInt(h,16),D(p,r)):(r&&j("named character reference was not terminated by a semicolon"),e)}))};T.options={isAttributeValue:!1,strict:!1};var L={version:"1.2.0",encode:A,decode:T,escape:function(e){return e.replace(f,(function(e){return h[e]}))},unescape:T};void 0===(o=function(){return L}.call(t,r,t,e))||(e.exports=o)}()}).call(this,r(119)(e),r(55))},527:function(e,t,r){r(528)(r(529))},528:function(e,t){e.exports=function(e){function t(e){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",e)}try{"undefined"!=typeof execScript&&"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener?execScript(e):"undefined"!=typeof eval?eval.call(null,e):t("EvalError: No eval function available")}catch(e){t(e)}}},529:function(e,t){e.exports='// notebook.js 0.4.2\n// http://github.com/jsvine/notebookjs\n// notebook.js may be freely distributed under the MIT license.\n(function () {\n var root = this;\n var VERSION = "0.4.2";\n\n // Get browser or JSDOM document\n var doc = root.document;\n if (!doc) {\n var jsdom = require("jsdom");\n doc = new jsdom.JSDOM().window.document;\n }\n\n // Helper functions\n var ident = function (x) { return x; };\n\n var makeElement = function (tag, classNames) {\n var el = doc.createElement(tag);\n el.className = (classNames || []).map(function (cn) {\n return nb.prefix + cn;\n }).join(" ");\n return el;\n }; \n\n var escapeHTML = function (raw) {\n var replaced = raw\n .replace(/</g, "<")\n .replace(/>/g, ">");\n return replaced;\n };\n\n var joinText = function (text) {\n if (text.join) {\n return text.map(joinText).join("");\n } else {\n return text; \n } \n };\n\n // Get supporting libraries\n var condRequire = function (module_name) {\n return typeof require === "function" && require(module_name);\n };\n\n var getMarkdown = function () {\n return root.marked || condRequire("marked"); \n };\n\n var getAnsi = function () {\n var lib = root.ansi_up || condRequire("ansi_up");\n return lib && lib.ansi_to_html;\n };\n\n // Set up `nb` namespace\n var nb = {\n prefix: "nb-",\n markdown: getMarkdown() || ident,\n ansi: getAnsi() || ident,\n highlighter: ident,\n VERSION: VERSION\n };\n\n // Inputs\n nb.Input = function (raw, cell) {\n this.raw = raw; \n this.cell = cell;\n };\n\n nb.Input.prototype.render = function () {\n if (!this.raw.length) { return makeElement("div"); }\n var holder = makeElement("div", [ "input" ]);\n var cell = this.cell;\n if (typeof cell.number === "number") {\n holder.setAttribute("data-prompt-number", this.cell.number);\n }\n var pre_el = makeElement("pre");\n var code_el = makeElement("code");\n var notebook = cell.worksheet.notebook;\n var m = notebook.metadata;\n var lang = this.cell.raw.language || m.language || (m.kernelspec && m.kernelspec.language) || (m.language_info && m.language_info.name);\n code_el.setAttribute("data-language", lang);\n code_el.className = "lang-" + lang;\n code_el.innerHTML = nb.highlighter(escapeHTML(joinText(this.raw)), pre_el, code_el, lang);\n pre_el.appendChild(code_el);\n holder.appendChild(pre_el);\n this.el = holder;\n return holder;\n }; \n\n // Outputs and output-renderers\n var imageCreator = function (format) {\n return function (data) {\n var el = makeElement("img", [ "image-output" ]);\n el.src = "data:image/" + format + ";base64," + joinText(data).replace(/\\n/g, "");\n return el;\n };\n };\n\n nb.display = {};\n nb.display.text = function (text) {\n var el = makeElement("pre", [ "text-output" ]);\n el.innerHTML = escapeHTML(joinText(text));\n return el;\n };\n nb.display["text/plain"] = nb.display.text;\n\n nb.display.html = function (html) {\n var el = makeElement("div", [ "html-output" ]);\n el.innerHTML = joinText(html);\n return el;\n };\n nb.display["text/html"] = nb.display.html;\n\n nb.display.marked = function(md) {\n return nb.display.html(nb.markdown(joinText(md)));\n };\n nb.display["text/markdown"] = nb.display.marked;\n \n nb.display.svg = function (svg) {\n var el = makeElement("div", [ "svg-output" ]);\n el.innerHTML = joinText(svg);\n return el;\n };\n nb.display["text/svg+xml"] = nb.display.svg;\n nb.display["image/svg+xml"] = nb.display.svg;\n\n nb.display.latex = function (latex) {\n var el = makeElement("div", [ "latex-output" ]);\n el.innerHTML = joinText(latex);\n return el;\n };\n nb.display["text/latex"] = nb.display.latex;\n\n nb.display.javascript = function (js) {\n var el = makeElement("script");\n el.innerHTML = joinText(js);\n return el;\n };\n nb.display["application/javascript"] = nb.display.javascript;\n\n nb.display.png = imageCreator("png");\n nb.display["image/png"] = nb.display.png;\n nb.display.jpeg = imageCreator("jpeg");\n nb.display["image/jpeg"] = nb.display.jpeg;\n\n nb.display_priority = [\n "png", "image/png", "jpeg", "image/jpeg",\n "svg", "image/svg+xml", "text/svg+xml", "html", "text/html",\n "text/markdown", "latex", "text/latex",\n "javascript", "application/javascript",\n "text", "text/plain"\n ];\n\n var render_display_data = function () {\n var o = this;\n var formats = nb.display_priority.filter(function (d) {\n return o.raw.data ? o.raw.data[d] : o.raw[d];\n });\n var format = formats[0];\n if (format) {\n if (nb.display[format]) {\n return nb.display[format](o.raw[format] || o.raw.data[format]);\n }\n }\n return makeElement("div", [ "empty-output" ]);\n };\n\n var render_error = function () {\n var el = makeElement("pre", [ "pyerr" ]);\n var raw = this.raw.traceback.join("\\n");\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\n return el;\n };\n\n nb.Output = function (raw, cell) {\n this.raw = raw; \n this.cell = cell;\n this.type = raw.output_type;\n };\n\n nb.Output.prototype.renderers = {\n "display_data": render_display_data,\n "execute_result": render_display_data,\n "pyout": render_display_data,\n "pyerr": render_error,\n "error": render_error,\n "stream": function () {\n var el = makeElement("pre", [ (this.raw.stream || this.raw.name) ]);\n var raw = joinText(this.raw.text);\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\n return el;\n }\n };\n\n nb.Output.prototype.render = function () {\n var outer = makeElement("div", [ "output" ]);\n if (typeof this.cell.number === "number") {\n outer.setAttribute("data-prompt-number", this.cell.number);\n }\n var inner = this.renderers[this.type].call(this); \n outer.appendChild(inner);\n this.el = outer;\n return outer;\n };\n\n // Post-processing\n nb.coalesceStreams = function (outputs) {\n if (!outputs.length) { return outputs; }\n var last = outputs[0];\n var new_outputs = [ last ];\n outputs.slice(1).forEach(function (o) {\n if (o.raw.output_type === "stream" &&\n last.raw.output_type === "stream" &&\n o.raw.stream === last.raw.stream) {\n last.raw.text = last.raw.text.concat(o.raw.text);\n } else {\n new_outputs.push(o);\n last = o;\n }\n });\n return new_outputs;\n };\n\n // Cells\n nb.Cell = function (raw, worksheet) {\n var cell = this;\n cell.raw = raw;\n cell.worksheet = worksheet;\n cell.type = raw.cell_type;\n if (cell.type === "code") {\n cell.number = raw.prompt_number > -1 ? raw.prompt_number : raw.execution_count;\n var source = raw.input || [ raw.source ];\n cell.input = new nb.Input(source, cell);\n var raw_outputs = (cell.raw.outputs || []).map(function (o) {\n return new nb.Output(o, cell); \n });\n cell.outputs = nb.coalesceStreams(raw_outputs);\n }\n };\n\n nb.Cell.prototype.renderers = {\n markdown: function () {\n var el = makeElement("div", [ "cell", "markdown-cell" ]);\n el.innerHTML = nb.markdown(joinText(this.raw.source));\n\n /* Requires to render KaTeX\n \'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.js\',\n \'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.css\',\n \'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/contrib/auto-render.min.js\',\n */\n if (root.renderMathInElement != null) {\n root.renderMathInElement(el, {delimiters: [\n {left: "$$", right: "$$", display: true},\n {left: "\\\\[", right: "\\\\]", display: true},\n {left: "\\\\(", right: "\\\\)", display: false},\n {left: "$", right: "$", display: false}\n ]});\n }\n\n return el;\n },\n heading: function () {\n var el = makeElement("h" + this.raw.level, [ "cell", "heading-cell" ]);\n el.innerHTML = joinText(this.raw.source);\n return el;\n },\n raw: function () {\n var el = makeElement("div", [ "cell", "raw-cell" ]);\n el.innerHTML = joinText(this.raw.source);\n return el;\n },\n code: function () {\n var cell_el = makeElement("div", [ "cell", "code-cell" ]);\n cell_el.appendChild(this.input.render());\n var output_els = this.outputs.forEach(function (o) {\n cell_el.appendChild(o.render());\n });\n return cell_el;\n }\n };\n\n nb.Cell.prototype.render = function () {\n var el = this.renderers[this.type].call(this); \n this.el = el;\n return el;\n };\n\n // Worksheets\n nb.Worksheet = function (raw, notebook) {\n var worksheet = this;\n this.raw = raw;\n this.notebook = notebook;\n this.cells = raw.cells.map(function (c) {\n return new nb.Cell(c, worksheet);\n });\n this.render = function () {\n var worksheet_el = makeElement("div", [ "worksheet" ]);\n worksheet.cells.forEach(function (c) {\n worksheet_el.appendChild(c.render()); \n });\n this.el = worksheet_el;\n return worksheet_el;\n };\n };\n\n // Notebooks\n nb.Notebook = function (raw, config) {\n var notebook = this;\n this.raw = raw;\n this.config = config;\n var meta = this.metadata = raw.metadata || {};\n this.title = meta.title || meta.name;\n var _worksheets = raw.worksheets || [ { cells: raw.cells } ];\n this.worksheets = _worksheets.map(function (ws) {\n return new nb.Worksheet(ws, notebook);\n });\n this.sheet = this.worksheets[0];\n };\n\n nb.Notebook.prototype.render = function () {\n var notebook_el = makeElement("div", [ "notebook" ]);\n this.worksheets.forEach(function (w) {\n notebook_el.appendChild(w.render()); \n });\n this.el = notebook_el;\n return notebook_el;\n };\n \n nb.parse = function (nbjson, config) {\n return new nb.Notebook(nbjson, config);\n };\n\n // Exports\n if (typeof define === \'function\' && define.amd) {\n define(function() {\n return nb;\n });\n }\n if (typeof exports !== \'undefined\') {\n if (typeof module !== \'undefined\' && module.exports) {\n exports = module.exports = nb;\n }\n exports.nb = nb;\n } else {\n root.nb = nb;\n }\n \n}).call(this);\n'},530:function(e,t,r){},531:function(e,t,r){},532:function(e,t){var r,n,o=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(e){r=a}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var c,u=[],l=!1,p=-1;function d(){l&&c&&(l=!1,c.length?u=c.concat(u):p=-1,u.length&&f())}function f(){if(!l){var e=s(d);l=!0;for(var t=u.length;t;){for(c=u,u=[];++p<t;)c&&c[p].run();p=-1,t=u.length}c=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function g(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new h(e,t)),1!==u.length||l||s(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},533:function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},534:function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));var n=r(46),o=r(148),a=(r(17),r(3)),i=(r(22),r(230)),s=(r(42),r(535)),c=r(536),u=r(537),l=r(538),p=r(539),d=[new n.a.InboundFilters,new n.a.FunctionToString,new s.a,new c.a,new u.a,new l.a,new p.a];function f(e){if(void 0===e&&(e={}),void 0===e.defaultIntegrations&&(e.defaultIntegrations=d),void 0===e.release){var t=Object(a.g)();t.SENTRY_RELEASE&&t.SENTRY_RELEASE.id&&(e.release=t.SENTRY_RELEASE.id)}Object(o.a)(i.a,e)}},535:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(3),o=r(14),a=r(42),i=function(){function e(){this._ignoreOnError=0,this.name=e.id}return e.prototype._wrapTimeFunction=function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var o=t[0];return t[0]=Object(a.b)(o,{mechanism:{data:{function:Object(n.f)(e)},handled:!0,type:"instrument"}}),e.apply(this,t)}},e.prototype._wrapRAF=function(e){return function(t){return e(Object(a.b)(t,{mechanism:{data:{function:"requestAnimationFrame",handler:Object(n.f)(e)},handled:!0,type:"instrument"}}))}},e.prototype._wrapEventTarget=function(e){var t=Object(n.g)(),r=t[e]&&t[e].prototype;r&&r.hasOwnProperty&&r.hasOwnProperty("addEventListener")&&(Object(o.b)(r,"addEventListener",(function(t){return function(r,o,i){try{"function"==typeof o.handleEvent&&(o.handleEvent=Object(a.b)(o.handleEvent.bind(o),{mechanism:{data:{function:"handleEvent",handler:Object(n.f)(o),target:e},handled:!0,type:"instrument"}}))}catch(e){}return t.call(this,r,Object(a.b)(o,{mechanism:{data:{function:"addEventListener",handler:Object(n.f)(o),target:e},handled:!0,type:"instrument"}}),i)}})),Object(o.b)(r,"removeEventListener",(function(e){return function(t,r,n){var o=r;try{o=o&&(o.__sentry_wrapped__||o)}catch(e){}return e.call(this,t,o,n)}})))},e.prototype._wrapXHR=function(e){return function(){for(var t=this,r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];var s=this,c=["onload","onerror","onprogress"];return c.forEach((function(e){e in t&&"function"==typeof t[e]&&Object(o.b)(t,e,(function(t){return Object(a.b)(t,{mechanism:{data:{function:e,handler:Object(n.f)(t)},handled:!0,type:"instrument"}})}))})),"onreadystatechange"in s&&"function"==typeof s.onreadystatechange&&Object(o.b)(s,"onreadystatechange",(function(e){var t={mechanism:{data:{function:"onreadystatechange",handler:Object(n.f)(e)},handled:!0,type:"instrument"}};return e.__sentry_original__&&(t.mechanism.data.handler=Object(n.f)(e.__sentry_original__)),Object(a.b)(e,t)})),e.apply(this,r)}},e.prototype.setupOnce=function(){this._ignoreOnError=this._ignoreOnError;var e=Object(n.g)();Object(o.b)(e,"setTimeout",this._wrapTimeFunction.bind(this)),Object(o.b)(e,"setInterval",this._wrapTimeFunction.bind(this)),Object(o.b)(e,"requestAnimationFrame",this._wrapRAF.bind(this)),"XMLHttpRequest"in e&&Object(o.b)(XMLHttpRequest.prototype,"send",this._wrapXHR.bind(this)),["EventTarget","Window","Node","ApplicationCache","AudioTrackList","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"].forEach(this._wrapEventTarget.bind(this))},e.id="TryCatch",e}()},536:function(e,t,r){"use strict";r.d(t,"a",(function(){return p}));var n=r(1),o=r(17),a=r(92),i=r(74),s=r(32),c=r(3),u=r(94),l=r(10),p=function(){function e(t){this.name=e.id,this._options=n.a({console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0},t)}return e.prototype._consoleBreadcrumb=function(e){var t={category:"console",data:{arguments:e.args,logger:"console"},level:i.a.fromString(e.level),message:Object(s.b)(e.args," ")};if("assert"===e.level){if(!1!==e.args[0])return;t.message="Assertion failed: "+(Object(s.b)(e.args.slice(1)," ")||"console.assert"),t.data.arguments=e.args.slice(1)}Object(o.a)().addBreadcrumb(t,{input:e.args,level:e.level})},e.prototype._domBreadcrumb=function(e){var t;try{t=e.event.target?Object(c.i)(e.event.target):Object(c.i)(e.event)}catch(e){t="<unknown>"}0!==t.length&&Object(o.a)().addBreadcrumb({category:"ui."+e.name,message:t},{event:event,name:e.name})},e.prototype._xhrBreadcrumb=function(e){if(e.endTimestamp){if(e.xhr.__sentry_own_request__)return;Object(o.a)().addBreadcrumb({category:"xhr",data:e.xhr.__sentry_xhr__,type:"http"},{xhr:e.xhr})}else e.xhr.__sentry_own_request__&&d(e.args[0])},e.prototype._fetchBreadcrumb=function(e){if(e.endTimestamp){var t=Object(o.a)().getClient(),r=t&&t.getDsn();if(r){var s=new a.a(r).getStoreEndpoint();if(s&&-1!==e.fetchData.url.indexOf(s)&&"POST"===e.fetchData.method&&e.args[1]&&e.args[1].body)return void d(e.args[1].body)}e.error?Object(o.a)().addBreadcrumb({category:"fetch",data:n.a({},e.fetchData,{status_code:e.response.status}),level:i.a.Error,type:"http"},{data:e.error,input:e.args}):Object(o.a)().addBreadcrumb({category:"fetch",data:n.a({},e.fetchData,{status_code:e.response.status}),type:"http"},{input:e.args,response:e.response})}},e.prototype._historyBreadcrumb=function(e){var t=Object(c.g)(),r=e.from,n=e.to,a=Object(c.l)(t.location.href),i=Object(c.l)(r),s=Object(c.l)(n);i.path||(i=a),a.protocol===s.protocol&&a.host===s.host&&(n=s.relative),a.protocol===i.protocol&&a.host===i.host&&(r=i.relative),Object(o.a)().addBreadcrumb({category:"navigation",data:{from:r,to:n}})},e.prototype.setupOnce=function(){var e=this;this._options.console&&Object(u.a)({callback:function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];e._consoleBreadcrumb.apply(e,n.d(t))},type:"console"}),this._options.dom&&Object(u.a)({callback:function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];e._domBreadcrumb.apply(e,n.d(t))},type:"dom"}),this._options.xhr&&Object(u.a)({callback:function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];e._xhrBreadcrumb.apply(e,n.d(t))},type:"xhr"}),this._options.fetch&&Object(u.a)({callback:function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];e._fetchBreadcrumb.apply(e,n.d(t))},type:"fetch"}),this._options.history&&Object(u.a)({callback:function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];e._historyBreadcrumb.apply(e,n.d(t))},type:"history"})},e.id="Breadcrumbs",e}();function d(e){try{var t=JSON.parse(e);Object(o.a)().addBreadcrumb({category:"sentry",event_id:t.event_id,level:t.level||i.a.fromString("error"),message:Object(c.e)(t)},{event:t})}catch(e){l.a.error("Error while adding sentry type breadcrumb")}}},537:function(e,t,r){"use strict";r.d(t,"a",(function(){return p}));var n=r(1),o=r(17),a=r(74),i=r(3),s=r(10),c=r(6),u=r(73),l=r(42),p=function(){function e(t){this.name=e.id,this._global=Object(i.g)(),this._oldOnErrorHandler=null,this._oldOnUnhandledRejectionHandler=null,this._onErrorHandlerInstalled=!1,this._onUnhandledRejectionHandlerInstalled=!1,this._options=n.a({onerror:!0,onunhandledrejection:!0},t)}return e.prototype.setupOnce=function(){Error.stackTraceLimit=50,this._options.onerror&&(s.a.log("Global Handler attached: onerror"),this._installGlobalOnErrorHandler()),this._options.onunhandledrejection&&(s.a.log("Global Handler attached: onunhandledrejection"),this._installGlobalOnUnhandledRejectionHandler())},e.prototype._installGlobalOnErrorHandler=function(){if(!this._onErrorHandlerInstalled){var t=this;this._oldOnErrorHandler=this._global.onerror,this._global.onerror=function(r,n,a,s,p){var d=Object(o.a)(),f=d.getIntegration(e),h=p&&!0===p.__sentry_own_request__;if(!f||Object(l.a)()||h)return!!t._oldOnErrorHandler&&t._oldOnErrorHandler.apply(this,arguments);var g=d.getClient(),m=Object(c.i)(p)?t._eventFromIncompleteOnError(r,n,a,s):t._enhanceEventWithInitialFrame(Object(u.b)(p,void 0,{attachStacktrace:g&&g.getOptions().attachStacktrace,rejection:!1}),n,a,s);return Object(i.a)(m,{handled:!1,type:"onerror"}),d.captureEvent(m,{originalException:p}),!!t._oldOnErrorHandler&&t._oldOnErrorHandler.apply(this,arguments)},this._onErrorHandlerInstalled=!0}},e.prototype._installGlobalOnUnhandledRejectionHandler=function(){if(!this._onUnhandledRejectionHandlerInstalled){var t=this;this._oldOnUnhandledRejectionHandler=this._global.onunhandledrejection,this._global.onunhandledrejection=function(r){var n=r;try{n=r&&"reason"in r?r.reason:r}catch(e){}var s=Object(o.a)(),p=s.getIntegration(e),d=n&&!0===n.__sentry_own_request__;if(!p||Object(l.a)()||d)return!t._oldOnUnhandledRejectionHandler||t._oldOnUnhandledRejectionHandler.apply(this,arguments);var f=s.getClient(),h=Object(c.i)(n)?t._eventFromIncompleteRejection(n):Object(u.b)(n,void 0,{attachStacktrace:f&&f.getOptions().attachStacktrace,rejection:!0});return h.level=a.a.Error,Object(i.a)(h,{handled:!1,type:"onunhandledrejection"}),s.captureEvent(h,{originalException:n}),!t._oldOnUnhandledRejectionHandler||t._oldOnUnhandledRejectionHandler.apply(this,arguments)},this._onUnhandledRejectionHandlerInstalled=!0}},e.prototype._eventFromIncompleteOnError=function(e,t,r,n){var o,a=Object(c.e)(e)?e.message:e;if(Object(c.k)(a)){var i=a.match(/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i);i&&(o=i[1],a=i[2])}var s={exception:{values:[{type:o||"Error",value:a}]}};return this._enhanceEventWithInitialFrame(s,t,r,n)},e.prototype._eventFromIncompleteRejection=function(e){return{exception:{values:[{type:"UnhandledRejection",value:"Non-Error promise rejection captured with value: "+e}]}}},e.prototype._enhanceEventWithInitialFrame=function(e,t,r,n){e.exception=e.exception||{},e.exception.values=e.exception.values||[],e.exception.values[0]=e.exception.values[0]||{},e.exception.values[0].stacktrace=e.exception.values[0].stacktrace||{},e.exception.values[0].stacktrace.frames=e.exception.values[0].stacktrace.frames||[];var o=isNaN(parseInt(n,10))?void 0:n,a=isNaN(parseInt(r,10))?void 0:r,s=Object(c.k)(t)&&t.length>0?t:Object(i.h)();return 0===e.exception.values[0].stacktrace.frames.length&&e.exception.values[0].stacktrace.frames.push({colno:o,filename:s,function:"?",in_app:!0,lineno:a}),e},e.id="GlobalHandlers",e}()},538:function(e,t,r){"use strict";r.d(t,"a",(function(){return u}));var n=r(1),o=r(48),a=r(17),i=r(6),s=r(67),c=r(61),u=function(){function e(t){void 0===t&&(t={}),this.name=e.id,this._key=t.key||"cause",this._limit=t.limit||5}return e.prototype.setupOnce=function(){Object(o.b)((function(t,r){var n=Object(a.a)().getIntegration(e);return n?n._handler(t,r):t}))},e.prototype._handler=function(e,t){if(!(e.exception&&e.exception.values&&t&&Object(i.g)(t.originalException,Error)))return e;var r=this._walkErrorTree(t.originalException,this._key);return e.exception.values=n.d(r,e.exception.values),e},e.prototype._walkErrorTree=function(e,t,r){if(void 0===r&&(r=[]),!Object(i.g)(e[t],Error)||r.length+1>=this._limit)return r;var o=Object(c.a)(e[t]),a=Object(s.c)(o);return this._walkErrorTree(e[t],t,n.d([a],r))},e.id="LinkedErrors",e}()},539:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(1),o=r(48),a=r(17),i=r(3),s=Object(i.g)(),c=function(){function e(){this.name=e.id}return e.prototype.setupOnce=function(){Object(o.b)((function(t){if(Object(a.a)().getIntegration(e)){if(!s.navigator||!s.location)return t;var r=t.request||{};return r.url=r.url||s.location.href,r.headers=r.headers||{},r.headers["User-Agent"]=s.navigator.userAgent,n.a({},t,{request:r})}return t}))},e.id="UserAgent",e}()},540:function(e,t,r){"use strict";r.d(t,"a",(function(){return p}));var n=r(1),o=r(68),a=r(3),i=r(93),s=r(22),c=r(10),u=r(116),l=Object(a.g)(),p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._disabledUntil=new Date(Date.now()),t}return n.b(t,e),t.prototype.sendEvent=function(e){var t=this;if(new Date(Date.now())<this._disabledUntil)return Promise.reject({event:e,reason:"Transport locked till "+this._disabledUntil+" due to too many requests.",status:429});var r={body:JSON.stringify(e),method:"POST",referrerPolicy:Object(i.d)()?"origin":""};return void 0!==this.options.headers&&(r.headers=this.options.headers),this._buffer.add(new s.a((function(e,n){l.fetch(t.url,r).then((function(r){var i=o.a.fromHttpCode(r.status);if(i!==o.a.Success){if(i===o.a.RateLimit){var s=Date.now();t._disabledUntil=new Date(s+Object(a.k)(s,r.headers.get("Retry-After"))),c.a.warn("Too many requests, backing off till: "+t._disabledUntil)}n(r)}else e({status:i})})).catch(n)})))},t}(u.a)},541:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(49),o=r(22),a=function(){function e(e){this._limit=e,this._buffer=[]}return e.prototype.isReady=function(){return void 0===this._limit||this.length()<this._limit},e.prototype.add=function(e){var t=this;return this.isReady()?(-1===this._buffer.indexOf(e)&&this._buffer.push(e),e.then((function(){return t.remove(e)})).then(null,(function(){return t.remove(e).then(null,(function(){}))})),e):o.a.reject(new n.a("Not adding Promise due to buffer limit reached."))},e.prototype.remove=function(e){return this._buffer.splice(this._buffer.indexOf(e),1)[0]},e.prototype.length=function(){return this._buffer.length},e.prototype.drain=function(e){var t=this;return new o.a((function(r){var n=setTimeout((function(){e&&e>0&&r(!1)}),e);o.a.all(t._buffer).then((function(){clearTimeout(n),r(!0)})).then(null,(function(){r(!0)}))}))},e}()},542:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(1),o=r(68),a=r(22),i=r(3),s=r(10),c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._disabledUntil=new Date(Date.now()),t}return n.b(t,e),t.prototype.sendEvent=function(e){var t=this;return new Date(Date.now())<this._disabledUntil?Promise.reject({event:e,reason:"Transport locked till "+this._disabledUntil+" due to too many requests.",status:429}):this._buffer.add(new a.a((function(r,n){var a=new XMLHttpRequest;for(var c in a.onreadystatechange=function(){if(4===a.readyState){var e=o.a.fromHttpCode(a.status);if(e!==o.a.Success){if(e===o.a.RateLimit){var c=Date.now();t._disabledUntil=new Date(c+Object(i.k)(c,a.getResponseHeader("Retry-After"))),s.a.warn("Too many requests, backing off till: "+t._disabledUntil)}n(a)}else r({status:e})}},a.open("POST",t.url),t.options.headers)t.options.headers.hasOwnProperty(c)&&a.setRequestHeader(c,t.options.headers[c]);a.send(JSON.stringify(e))})))},t}(r(116).a)},6:function(e,t,r){"use strict";function n(e){switch(Object.prototype.toString.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return g(e,Error)}}function o(e){return"[object ErrorEvent]"===Object.prototype.toString.call(e)}function a(e){return"[object DOMError]"===Object.prototype.toString.call(e)}function i(e){return"[object DOMException]"===Object.prototype.toString.call(e)}function s(e){return"[object String]"===Object.prototype.toString.call(e)}function c(e){return null===e||"object"!=typeof e&&"function"!=typeof e}function u(e){return"[object Object]"===Object.prototype.toString.call(e)}function l(e){return"undefined"!=typeof Event&&g(e,Event)}function p(e){return"undefined"!=typeof Element&&g(e,Element)}function d(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function f(e){return Boolean(e&&e.then&&"function"==typeof e.then)}function h(e){return u(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function g(e,t){try{return e instanceof t}catch(e){return!1}}r.d(t,"d",(function(){return n})),r.d(t,"e",(function(){return o})),r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return i})),r.d(t,"k",(function(){return s})),r.d(t,"i",(function(){return c})),r.d(t,"h",(function(){return u})),r.d(t,"f",(function(){return l})),r.d(t,"c",(function(){return p})),r.d(t,"j",(function(){return d})),r.d(t,"m",(function(){return f})),r.d(t,"l",(function(){return h})),r.d(t,"g",(function(){return g}))},61:function(e,t,r){"use strict";r.d(t,"a",(function(){return u}));var n=r(1),o=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,a=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js))(?::(\d+))?(?::(\d+))?\s*$/i,i=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,s=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,c=/\((\S*)(?::(\d+))(?::(\d+))\)/;function u(e){var t=null,r=e&&e.framesToPop;try{if(t=function(e){if(!e||!e.stacktrace)return null;for(var t,r=e.stacktrace,n=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,o=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i,a=r.split("\n"),i=[],s=0;s<a.length;s+=2){var c=null;(t=n.exec(a[s]))?c={url:t[2],func:t[3],args:[],line:+t[1],column:null}:(t=o.exec(a[s]))&&(c={url:t[6],func:t[3]||t[4],args:t[5]?t[5].split(","):[],line:+t[1],column:+t[2]}),c&&(!c.func&&c.line&&(c.func="?"),i.push(c))}if(!i.length)return null;return{message:p(e),name:e.name,stack:i}}(e))return l(t,r)}catch(e){}try{if(t=function(e){if(!e||!e.stack)return null;for(var t,r,n,u=[],l=e.stack.split("\n"),d=0;d<l.length;++d){if(r=o.exec(l[d])){var f=r[2]&&0===r[2].indexOf("native");r[2]&&0===r[2].indexOf("eval")&&(t=c.exec(r[2]))&&(r[2]=t[1],r[3]=t[2],r[4]=t[3]),n={url:r[2]&&0===r[2].indexOf("address at ")?r[2].substr("address at ".length):r[2],func:r[1]||"?",args:f?[r[2]]:[],line:r[3]?+r[3]:null,column:r[4]?+r[4]:null}}else if(r=i.exec(l[d]))n={url:r[2],func:r[1]||"?",args:[],line:+r[3],column:r[4]?+r[4]:null};else{if(!(r=a.exec(l[d])))continue;r[3]&&r[3].indexOf(" > eval")>-1&&(t=s.exec(r[3]))?(r[1]=r[1]||"eval",r[3]=t[1],r[4]=t[2],r[5]=""):0!==d||r[5]||void 0===e.columnNumber||(u[0].column=e.columnNumber+1),n={url:r[3],func:r[1]||"?",args:r[2]?r[2].split(","):[],line:r[4]?+r[4]:null,column:r[5]?+r[5]:null}}!n.func&&n.line&&(n.func="?"),u.push(n)}if(!u.length)return null;return{message:p(e),name:e.name,stack:u}}(e))return l(t,r)}catch(e){}return{message:p(e),name:e&&e.name,stack:[],failed:!0}}function l(e,t){try{return n.a({},e,{stack:e.stack.slice(t)})}catch(t){return e}}function p(e){var t=e&&e.message;return t?t.error&&"string"==typeof t.error.message?t.error.message:t:"No error message"}},67:function(e,t,r){"use strict";r.d(t,"c",(function(){return i})),r.d(t,"a",(function(){return s})),r.d(t,"b",(function(){return c})),r.d(t,"d",(function(){return u}));var n=r(6),o=r(14),a=r(61);function i(e){var t=u(e.stack),r={type:e.name,value:e.message};return t&&t.length&&(r.stacktrace={frames:t}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function s(e,t,r){var i={exception:{values:[{type:Object(n.f)(e)?e.constructor.name:r?"UnhandledRejection":"Error",value:"Non-Error "+(r?"promise rejection":"exception")+" captured with keys: "+Object(o.a)(e)}]},extra:{__serialized__:Object(o.d)(e)}};if(t){var s=u(Object(a.a)(t).stack);i.stacktrace={frames:s}}return i}function c(e){return{exception:{values:[i(e)]}}}function u(e){if(!e||!e.length)return[];var t=e,r=t[0].func||"",n=t[t.length-1].func||"";return-1===r.indexOf("captureMessage")&&-1===r.indexOf("captureException")||(t=t.slice(1)),-1!==n.indexOf("sentryWrapped")&&(t=t.slice(0,-1)),t.map((function(e){return{colno:null===e.column?void 0:e.column,filename:e.url||t[0].url,function:e.func||"?",in_app:!0,lineno:null===e.line?void 0:e.line}})).slice(0,50).reverse()}},68:function(e,t,r){"use strict";var n;r.d(t,"a",(function(){return n})),function(e){e.Unknown="unknown",e.Skipped="skipped",e.Success="success",e.RateLimit="rate_limit",e.Invalid="invalid",e.Failed="failed"}(n||(n={})),function(e){e.fromHttpCode=function(t){return t>=200&&t<300?e.Success:429===t?e.RateLimit:t>=400&&t<500?e.Invalid:t>=500?e.Failed:e.Unknown}}(n||(n={}))},73:function(e,t,r){"use strict";r.d(t,"b",(function(){return s})),r.d(t,"a",(function(){return c}));var n=r(6),o=r(3),a=r(67),i=r(61);function s(e,t,r){var s;if(void 0===r&&(r={}),Object(n.e)(e)&&e.error)return e=e.error,s=Object(a.b)(Object(i.a)(e));if(Object(n.a)(e)||Object(n.b)(e)){var u=e,l=u.name||(Object(n.a)(u)?"DOMError":"DOMException"),p=u.message?l+": "+u.message:l;return s=c(p,t,r),Object(o.b)(s,p),s}if(Object(n.d)(e))return s=Object(a.b)(Object(i.a)(e));if(Object(n.h)(e)||Object(n.f)(e)){var d=e;return s=Object(a.a)(d,t,r.rejection),Object(o.a)(s,{synthetic:!0}),s}return s=c(e,t,r),Object(o.b)(s,""+e,void 0),Object(o.a)(s,{synthetic:!0}),s}function c(e,t,r){void 0===r&&(r={});var n={message:e};if(r.attachStacktrace&&t){var o=Object(i.a)(t),s=Object(a.d)(o.stack);n.stacktrace={frames:s}}return n}},74:function(e,t,r){"use strict";var n;r.d(t,"a",(function(){return n})),function(e){e.Fatal="fatal",e.Error="error",e.Warning="warning",e.Log="log",e.Info="info",e.Debug="debug",e.Critical="critical"}(n||(n={})),function(e){e.fromString=function(t){switch(t){case"debug":return e.Debug;case"info":return e.Info;case"warn":case"warning":return e.Warning;case"error":return e.Error;case"fatal":return e.Fatal;case"critical":return e.Critical;case"log":default:return e.Log}}}(n||(n={}))},76:function(e,t,r){var n=function(){return this||"object"==typeof self&&self}()||Function("return this")(),o=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf("regeneratorRuntime")>=0,a=o&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,e.exports=r(77),o)n.regeneratorRuntime=a;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}},77:function(e,t){!function(t){"use strict";var r=Object.prototype,n=r.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag",c="object"==typeof e,u=t.regeneratorRuntime;if(u)c&&(e.exports=u);else{(u=t.regeneratorRuntime=c?e.exports:{}).wrap=g;var l={},p={};p[a]=function(){return this};var d=Object.getPrototypeOf,f=d&&d(d(D([])));f&&f!==r&&n.call(f,a)&&(p=f);var h=y.prototype=b.prototype=Object.create(p);v.prototype=h.constructor=y,y.constructor=v,y[s]=v.displayName="GeneratorFunction",u.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},u.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,s in e||(e[s]="GeneratorFunction")),e.prototype=Object.create(h),e},u.awrap=function(e){return{__await:e}},w(_.prototype),_.prototype[i]=function(){return this},u.AsyncIterator=_,u.async=function(e,t,r,n){var o=new _(g(e,t,r,n));return u.isGeneratorFunction(t)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},w(h),h[s]="Generator",h[a]=function(){return this},h.toString=function(){return"[object Generator]"},u.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},u.values=D,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(s&&c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),l},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:D(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}}}function g(e,t,r,n){var o=t&&t.prototype instanceof b?t:b,a=Object.create(o.prototype),i=new S(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return O()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=x(i,r);if(s){if(s===l)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=m(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(e,r,i),a}function m(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}function b(){}function v(){}function y(){}function w(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function _(e){var t;this._invoke=function(r,o){function a(){return new Promise((function(t,a){!function t(r,o,a,i){var s=m(e[r],e,o);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&n.call(u,"__await")?Promise.resolve(u.__await).then((function(e){t("next",e,a,i)}),(function(e){t("throw",e,a,i)})):Promise.resolve(u).then((function(e){c.value=e,a(c)}),(function(e){return t("throw",e,a,i)}))}i(s.arg)}(r,o,t,a)}))}return t=t?t.then(a,a):a()}}function x(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,x(e,t),"throw"===t.method))return l;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=m(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,l;var o=n.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function D(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:O}}function O(){return{value:void 0,done:!0}}}(function(){return this||"object"==typeof self&&self}()||Function("return this")())},92:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(233),o=r(14),a=r(3),i=function(){function e(e){this.dsn=e,this._dsnObject=new n.a(e)}return e.prototype.getDsn=function(){return this._dsnObject},e.prototype.getStoreEndpoint=function(){return""+this._getBaseUrl()+this.getStoreEndpointPath()},e.prototype.getStoreEndpointWithUrlEncodedAuth=function(){var e={sentry_key:this._dsnObject.user,sentry_version:"7"};return this.getStoreEndpoint()+"?"+Object(o.e)(e)},e.prototype._getBaseUrl=function(){var e=this._dsnObject,t=e.protocol?e.protocol+":":"",r=e.port?":"+e.port:"";return t+"//"+e.host+r},e.prototype.getStoreEndpointPath=function(){var e=this._dsnObject;return(e.path?"/"+e.path:"")+"/api/"+e.projectId+"/store/"},e.prototype.getRequestHeaders=function(e,t){var r=this._dsnObject,n=["Sentry sentry_version=7"];return n.push("sentry_timestamp="+Object(a.m)()),n.push("sentry_client="+e+"/"+t),n.push("sentry_key="+r.user),r.pass&&n.push("sentry_secret="+r.pass),{"Content-Type":"application/json","X-Sentry-Auth":n.join(", ")}},e.prototype.getReportDialogEndpoint=function(e){void 0===e&&(e={});var t=this._dsnObject,r=this._getBaseUrl()+(t.path?"/"+t.path:"")+"/api/embed/error-page/",n=[];for(var o in n.push("dsn="+t.toString()),e)if("user"===o){if(!e.user)continue;e.user.name&&n.push("name="+encodeURIComponent(e.user.name)),e.user.email&&n.push("email="+encodeURIComponent(e.user.email))}else n.push(encodeURIComponent(o)+"="+encodeURIComponent(e[o]));return n.length?r+"?"+n.join("&"):r},e}()},93:function(e,t,r){"use strict";r.d(t,"a",(function(){return a})),r.d(t,"c",(function(){return s})),r.d(t,"d",(function(){return c})),r.d(t,"b",(function(){return u}));var n=r(10),o=r(3);function a(){if(!("fetch"in Object(o.g)()))return!1;try{return new Headers,new Request(""),new Response,!0}catch(e){return!1}}function i(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function s(){if(!a())return!1;var e=Object(o.g)();if(i(e.fetch))return!0;var t=!1,r=e.document;if(r){var s=r.createElement("iframe");s.hidden=!0;try{r.head.appendChild(s),s.contentWindow&&s.contentWindow.fetch&&(t=i(s.contentWindow.fetch)),r.head.removeChild(s)}catch(e){n.a.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",e)}}return t}function c(){if(!a())return!1;try{return new Request("_",{referrerPolicy:"origin"}),!0}catch(e){return!1}}function u(){var e=Object(o.g)(),t=e.chrome,r=t&&t.app&&t.app.runtime,n="history"in e&&!!e.history.pushState&&!!e.history.replaceState;return!r&&n}},94:function(e,t,r){"use strict";r.d(t,"a",(function(){return h}));var n,o=r(1),a=r(6),i=r(10),s=r(3),c=r(14),u=r(93),l=Object(s.g)(),p={},d={};function f(e){if(!d[e])switch(d[e]=!0,e){case"console":!function(){if(!("console"in l))return;["debug","info","warn","error","log","assert"].forEach((function(e){e in l.console&&Object(c.b)(l.console,e,(function(t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];g("console",{args:r,level:e}),t&&Function.prototype.apply.call(t,l.console,r)}}))}))}();break;case"dom":!function(){if(!("document"in l))return;l.document.addEventListener("click",_("click",g.bind(null,"dom")),!1),l.document.addEventListener("keypress",x(g.bind(null,"dom")),!1),["EventTarget","Node"].forEach((function(e){var t=l[e]&&l[e].prototype;t&&t.hasOwnProperty&&t.hasOwnProperty("addEventListener")&&(Object(c.b)(t,"addEventListener",(function(e){return function(t,r,n){return r&&r.handleEvent?("click"===t&&Object(c.b)(r,"handleEvent",(function(e){return function(t){return _("click",g.bind(null,"dom"))(t),e.call(this,t)}})),"keypress"===t&&Object(c.b)(r,"handleEvent",(function(e){return function(t){return x(g.bind(null,"dom"))(t),e.call(this,t)}}))):("click"===t&&_("click",g.bind(null,"dom"),!0)(this),"keypress"===t&&x(g.bind(null,"dom"))(this)),e.call(this,t,r,n)}})),Object(c.b)(t,"removeEventListener",(function(e){return function(t,r,n){var o=r;try{o=o&&(o.__sentry_wrapped__||o)}catch(e){}return e.call(this,t,o,n)}})))}))}();break;case"xhr":!function(){if(!("XMLHttpRequest"in l))return;var e=XMLHttpRequest.prototype;Object(c.b)(e,"open",(function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=t[1];return this.__sentry_xhr__={method:Object(a.k)(t[0])?t[0].toUpperCase():t[0],url:t[1]},Object(a.k)(n)&&"POST"===this.__sentry_xhr__.method&&n.match(/sentry_key/)&&(this.__sentry_own_request__=!0),e.apply(this,t)}})),Object(c.b)(e,"send",(function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=this,a={args:t,startTimestamp:Date.now(),xhr:n};function i(){if(4===n.readyState){try{n.__sentry_xhr__&&(n.__sentry_xhr__.status_code=n.status)}catch(e){}g("xhr",o.a({},a,{endTimestamp:Date.now()}))}}return g("xhr",o.a({},a)),"onreadystatechange"in n&&"function"==typeof n.onreadystatechange?Object(c.b)(n,"onreadystatechange",(function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return i(),e.apply(n,t)}})):n.onreadystatechange=i,e.apply(this,t)}}))}();break;case"fetch":!function(){if(!Object(u.c)())return;Object(c.b)(l,"fetch",(function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n={args:t,fetchData:{method:m(t),url:b(t)},startTimestamp:Date.now()};return g("fetch",o.a({},n)),e.apply(l,t).then((function(e){return g("fetch",o.a({},n,{endTimestamp:Date.now(),response:e})),e}),(function(e){throw g("fetch",o.a({},n,{endTimestamp:Date.now(),error:e})),e}))}}))}();break;case"history":!function(){if(!Object(u.b)())return;var e=l.onpopstate;function t(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var o=t.length>2?t[2]:void 0;if(o){var a=n,i=String(o);n=i,g("history",{from:a,to:i})}return e.apply(this,t)}}l.onpopstate=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var o=l.location.href,a=n;if(n=o,g("history",{from:a,to:o}),e)return e.apply(this,t)},Object(c.b)(l.history,"pushState",t),Object(c.b)(l.history,"replaceState",t)}();break;default:i.a.warn("unknown instrumentation type:",e)}}function h(e){e&&"string"==typeof e.type&&"function"==typeof e.callback&&(p[e.type]=p[e.type]||[],p[e.type].push(e.callback),f(e.type))}function g(e,t){var r,n;if(e&&p[e])try{for(var a=o.e(p[e]||[]),c=a.next();!c.done;c=a.next()){var u=c.value;try{u(t)}catch(t){i.a.error("Error while triggering instrumentation handler.\nType: "+e+"\nName: "+Object(s.f)(u)+"\nError: "+t)}}}catch(e){r={error:e}}finally{try{c&&!c.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}}function m(e){return void 0===e&&(e=[]),"Request"in l&&Object(a.g)(e[0],Request)&&e[0].method?String(e[0].method).toUpperCase():e[1]&&e[1].method?String(e[1].method).toUpperCase():"GET"}function b(e){return void 0===e&&(e=[]),"string"==typeof e[0]?e[0]:"Request"in l&&Object(a.g)(e[0],Request)?e[0].url:String(e[0])}var v,y,w=0;function _(e,t,r){return void 0===r&&(r=!1),function(n){v=void 0,n&&y!==n&&(y=n,w&&clearTimeout(w),r?w=setTimeout((function(){t({event:n,name:e})})):t({event:n,name:e}))}}function x(e){return function(t){var r;try{r=t.target}catch(e){return}var n=r&&r.tagName;n&&("INPUT"===n||"TEXTAREA"===n||r.isContentEditable)&&(v||_("input",e)(t),clearTimeout(v),v=setTimeout((function(){v=void 0}),1e3))}}}})})); -//# sourceMappingURL=webapp.6583e14cb115c32af0b8.js.map \ No newline at end of file +//# sourceMappingURL=webapp.0afe58b813354c5e6ded.js.map \ No newline at end of file diff --git a/static/js/webapp.6583e14cb115c32af0b8.js.LICENSE.txt b/static/js/webapp.0afe58b813354c5e6ded.js.LICENSE.txt similarity index 100% rename from static/js/webapp.6583e14cb115c32af0b8.js.LICENSE.txt rename to static/js/webapp.0afe58b813354c5e6ded.js.LICENSE.txt diff --git a/static/js/webapp.6583e14cb115c32af0b8.js.map b/static/js/webapp.0afe58b813354c5e6ded.js.map similarity index 99% rename from static/js/webapp.6583e14cb115c32af0b8.js.map rename to static/js/webapp.0afe58b813354c5e6ded.js.map index da4142ef..9d662bdf 100644 --- a/static/js/webapp.6583e14cb115c32af0b8.js.map +++ b/static/js/webapp.0afe58b813354c5e6ded.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://swh.webapp/webpack/universalModuleDefinition","webpack://swh.webapp/webpack/bootstrap","webpack://swh.webapp/./node_modules/tslib/tslib.es6.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/logger.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/transports/noop.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/base.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/version.js","webpack://swh.webapp/(webpack)/buildin/module.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/object.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/sdk.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/basebackend.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/baseclient.js","webpack://swh.webapp/./node_modules/dompurify/dist/purify.js","webpack://swh.webapp/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh.webapp/./node_modules/@sentry/hub/esm/hub.js","webpack://swh.webapp/./swh/web/assets/src/utils/functions.js","webpack://swh.webapp/./swh/web/assets/src/utils/constants.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/webapp-utils.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/code-highlighting.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/readme-rendering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/pdf-rendering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/notebook-rendering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/xss-filtering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/history-counters.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/badges.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/sentry.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/index.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://swh.webapp/./node_modules/object-fit-images/dist/ofi.common-js.js","webpack://swh.webapp/./node_modules/html-encoder-decoder/lib/index.js","webpack://swh.webapp/./node_modules/ansi_up/ansi_up.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/memo.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/polyfill.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/client.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/backend.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integration.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/dsn.js","webpack://swh.webapp/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://swh.webapp/./node_modules/@sentry/minimal/esm/index.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/misc.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/string.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/helpers.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/index.js","webpack://swh.webapp/./node_modules/@sentry/hub/esm/scope.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/error.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/index.js","webpack://swh.webapp/./node_modules/iterate-object/lib/index.js","webpack://swh.webapp/./node_modules/regex-escape/lib/index.js","webpack://swh.webapp/./node_modules/he/he.js","webpack://swh.webapp/./node_modules/notebookjs/notebook.js?4084","webpack://swh.webapp/./node_modules/script-loader/addScript.js","webpack://swh.webapp/./node_modules/notebookjs/notebook.js","webpack://swh.webapp/./node_modules/process/browser.js","webpack://swh.webapp/(webpack)/buildin/harmony-module.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/sdk.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/is.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/tracekit.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/parsers.js","webpack://swh.webapp/./node_modules/@sentry/types/esm/status.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://swh.webapp/./node_modules/@sentry/types/esm/severity.js","webpack://swh.webapp/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://swh.webapp/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/api.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/supports.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/instrument.js"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","12","l","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","oldJsonpFunction","slice","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","this","constructor","__assign","assign","arguments","__values","iterator","next","done","__read","ar","__spread","concat","global","PREFIX","Logger","_enabled","disable","enable","log","args","_i","join","warn","__SENTRY__","logger","NoopTransport","sendEvent","_","reason","status","Skipped","close","BaseTransport","options","_buffer","url","dsn","getStoreEndpointWithUrlEncodedAuth","drain","SDK_NAME","SDK_VERSION","webpackPolyfill","deprecate","paths","children","fill","source","replacement","original","wrapped","defineProperties","__sentry_original__","_Oo","urlEncode","keys","map","encodeURIComponent","getWalkSource","stack","event_1","toString","_oO","currentTarget","CustomEvent","detail","jsonSize","encodeURI","split","utf8Length","JSON","stringify","normalizeToSize","depth","maxSize","serialized","normalize","normalizeValue","_events","walk","memo","Infinity","normalized","serializeValue","toJSON","acc","isArray","memoize","innerKey","unmemoize","input","parse","extractExceptionKeysForMessage","exception","maxLength","sort","includedKeys","initAndBind","clientClass","debug","bindClient","BaseBackend","_options","_transport","_setupTransport","eventFromException","_exception","_hint","eventFromMessage","_message","_level","getTransport","BaseClient","backendClass","_integrations","_processing","_backend","_dsn","_isEnabled","captureException","hint","scope","_this","eventId","event_id","_getBackend","_processEvent","finalEvent","captureMessage","level","captureEvent","getDsn","getOptions","flush","_isClientProcessing","clearInterval","interval","transportFlushed","ready","enabled","getIntegrations","getIntegration","integration","id","ticked","setInterval","_prepareEvent","_a","environment","release","dist","_b","maxValueLength","_c","normalizeDepth","prepared","values","_addIntegrations","sdk","applyToEvent","evt","_normalizeEvent","breadcrumbs","user","contexts","extra","sdkInfo","integrationsArray","integrations","beforeSend","sampleRate","Math","random","__sentry__","beforeSendResult","_handleAsyncBeforeSend","originalException","processedEvent","isFrozen","objectKeys","freeze","seal","_ref","Reflect","construct","fun","thisValue","x","Func","Function","arr","arr2","from","_toConsumableArray$1","arrayForEach","unapply","forEach","arrayIndexOf","indexOf","arrayJoin","arrayPop","pop","arrayPush","arraySlice","stringToLowerCase","String","toLowerCase","stringMatch","match","stringReplace","replace","stringIndexOf","stringTrim","trim","regExpTest","RegExp","test","regExpCreate","unconstruct","typeErrorCreate","TypeError","func","thisArg","_len","_key","_len2","_key2","addToSet","set","array","element","lcElement","clone","newObject","html","svg","svgFilters","mathMl","text","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","obj","_toConsumableArray","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","currentScript","hasAttribute","policyName","createHTML","html$$1","createDOMPurify","DOMPurify","version","removed","nodeType","isSupported","originalDocument","useDOMParser","removeTitle","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","template","content","ownerDocument","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","createDocumentFragment","importNode","hooks","createHTMLDocument","documentMode","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","_forceRemove","node","outerHTML","_removeAttribute","attribute","getAttributeNode","removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","body","firstElementChild","insertBefore","createTextNode","childNodes","querySelector","innerHTML","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","textContent","attributes","namespaceURI","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","tagName","allowedTags","querySelectorAll","insertAdjacentHTML","htmlToInsert","cloneNode","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","idAttr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toStaticHTML","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","Hub","client","_version","_stack","_invokeClient","method","top","getStackTop","isOlderThan","pushScope","getStack","parentScope","getClient","popScope","withScope","callback","getScope","_lastEventId","finalHint","syntheticException","lastEventId","addBreadcrumb","breadcrumb","beforeBreadcrumb","maxBreadcrumbs","timestamp","mergedBreadcrumb","finalBreadcrumb","min","setUser","setTags","tags","setExtras","extras","setTag","setExtra","setContext","context","configureScope","run","oldHub","makeMain","startSpan","spanOrSpanContext","forceNoChild","_callExtensionMethod","traceHeaders","carrier","getMainCarrier","sentry","extensions","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","activeDomain","active","registryHubTopStack","getHubFromActiveDomain","handleFetchError","response","ok","handleFetchErrors","responses","staticAsset","asset","__STATIC__","csrfPost","headers","Cookies","fetch","credentials","isGitRepoUrl","domain","removeUrlFragment","history","replaceState","title","location","pathname","search","selectText","startNode","endNode","selection","getSelection","removeAllRanges","range","createRange","setStart","setEnd","addRange","htmlAlert","closable","closeButton","extraClasses","BREAKPOINT_SM","BREAKPOINT_MD","swhSpinnerSrc","swhObjectIcons","collapseSidebar","previousSidebarState","localStorage","getItem","ensureNoFooterOverflow","$","css","outerHeight","initPage","page","addClass","on","sidebarCollapsed","hasClass","setItem","sessionStorage","initHomePage","iFrameResize","heightCalculationMethod","Urls","stat_counters","json","toLocaleString","revision","origin","directory","person","stat_counters_history","swh","webapp","drawHistoryCounterGraph","showModalMessage","modal","showModalConfirm","unbind","showModalHtml","addJumpToPagePopoverToDataTable","dataTableElt","pageInfo","info","pages","selected","popover","filterXSS","pageNumber","parseInt","val","draw","setSwhObjectIcons","icons","getSwhObjectIcon","swhObjectType","width","sidebarTransition","sidebarEltsTransition","click","lastBrowsePage","preventDefault","resize","objectFitImages","append","selectedCode","getCodeOrPreEltUnderPointer","elementsFromPoint","clientX","clientY","elt","selectCode","hljsLnCodeElts","find","lastChild","dblclick","ctrlKey","metaKey","keydown","scrollThreshold","height","scroll","scrollTop","browsedSwhObjectMetadata","setBrowsedSwhObjectMetadata","metadata","getBrowsedSwhObjectMetadata","highlightCode","showLineNumbers","highlightLine","resetHighlightedLines","scrollToLine","parseUrlFragmentForLinesToHighlight","a","lines","linesRegexp","line","exec","hash","firstHighlightedLine","lineDomElt","closest","animate","offset","lineTd","lineHighlightColor","each","block","hljs","highlightBlock","lineNumbersBlock","singleLine","classList","contains","shiftKey","firstLine","renderMarkdown","domElt","markdownDocUrl","showdownHighlight","filter","converter","showdown","helper","replaceRecursiveRegExp","wholeMatch","left","right","decode","lang","includes","attrIndex","getLanguage","highlight","Converter","tables","makeHtml","renderOrgData","orgDocData","org","parser","Parser","orgDocument","toc","orgHTMLDocument","convert","ConverterHTML","first","remove","renderOrg","orgDocUrl","renderTxt","txtDocUrl","renderPdf","pdfUrl","renderPage","queueRenderPage","onPrevPage","onNextPage","pageNum","pdfDoc","numPages","num","pageRendering","pageNumPending","getPage","divWidth","scale","defaultScale","getViewport","viewport","canvas","renderContext","canvasContext","ctx","render","getContext","pdfjs","GlobalWorkerOptions","workerSrc","getDocument","pdf","ansiup","AnsiUp","escapeHTML","unescapeHTML","escapeLaTeX","bm","im","le","blockMath","inlineMath","latexEnvironment","mathTextFound","mathText","escapedText","specialLaTexChar","renderNotebook","nbJsonUrl","renderAnsi","initMathJax","MathJax","TeX","equationNumbers","autoNumber","useLabelIds","tex2jax","displayMath","processEscapes","processEnvironments","displayAlign","styles","linebreaks","automatic","ansi_to_html","preElt","codeElt","simplifiedAutoLink","rawHeaderId","literalMidWordUnderscores","rendered","nb","markdown","highlighter","ansi","nbJson","notebook","parent","escape_for_html","startsWith","swhObjectMetadata","browse_directory_resolve_content_path","container","historyData","updateTooltip","x0","xScale","invert","d3","mouse","bisectDate","d0","d1","focus","yScale","tooltipText","dateFormatter","valueFormatter","tooltip","style","pageX","pageY","select","margin","bottom","ceil","firstPoint","lastPoint","g","scaleTime","rangeRound","nice","scaleLinear","y","timeFormat","format","bisector","axisBottom","ticks","tickFormat","selectAll","axisRight","datum","transition","duration","showBadgeInfoModal","objectType","objectPid","badgeImageUrl","badgeLinkUrl","swh_badge","browse_origin","swh_badge_pid","browse_swh_id","urlPrefix","protocol","hostname","port","absoluteBadgeImageUrl","absoluteBadgeLinkUrl","sentryInit","sentryDsn","Sentry","sentryCaptureException","exc","States","SyncPromise","executor","_state","PENDING","_handlers","_resolve","_setResult","RESOLVED","_reject","REJECTED","state","_value","_executeHandlers","_attachHandler","handler","onrejected","onfulfilled","collection","counter","resolvedCollection","item","index","catch","finally","onfinally","isRejected","originalFunctionToString","FunctionToString","setupOnce","DEFAULT_IGNORE_ERRORS","InboundFilters","self","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isBlacklistedUrl","_getEventFilterUrl","_isWhitelistedUrl","ignoreInternal","ignoreErrors","_getPossibleEventMessages","some","pattern","blacklistUrls","whitelistUrls","oO","stacktrace","frames_1","frames","filename","frames_2","OFI","propRegex","testImg","Image","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","img","placeholder","onImageReady","naturalWidth","fixOne","el","parsed","getComputedStyle","fontFamily","props","getStyle","ofi","skipTest","srcset","naturalHeight","descriptors","prop","ss","keepSrcUsable","picturefill","pf","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","imgs","opts","startAutoMode","addEventListener","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes","he","encode","PacketKind","__makeTemplateObject","cooked","raw","VERSION","setup_palettes","_use_classes","_escape_for_html","bold","fg","bg","_url_whitelist","arg","configurable","ansi_colors","rgb","class_name","palette_256","palette","rec","levels","col","grey_level","gry","escape_txt_for_html","txt","str","append_buffer","get_next_packet","pkt","kind","EOS","len","pos","Incomplete","next_char","charAt","ESC","_csi_regex","rgx","Unknown","SGR","rpos","_osc_st","tmplObj","subst","regexText","wsrgx","txt2","rgxG","lastIndex","match_1","match_2","_osc_regex","OSCURL","blocks","packet","transform_to_html","with_state","process_ansi","process_hyperlink","sgr_cmds","sgr_cmd_str","isNaN","is_foreground","mode_cmd","palette_index","classes","class_string","style_string","parts","default","Memo","_hasWeakSet","WeakSet","_inner","has","add","delete","proto","BrowserClient","_super","platform","packages","showReportDialog","async","getReportDialogEndpoint","onLoad","BrowserBackend","transportOptions","transport","attachStacktrace","handled","Info","installedIntegrations","setupIntegrations","defaultIntegrations","userIntegrations","userIntegrationsNames_1","pickedIntegrationsNames_1","defaultIntegration","userIntegration","integrationsNames","getIntegrationsToSetup","setupIntegration","DSN_REGEX","Dsn","_fromString","_fromComponents","_validate","withPassword","host","path","pass","projectId","components","component","asyncGeneratorStep","gen","_next","_throw","fn","callOnHub","dynamicRequire","mod","require","isNodeEnv","process","fallbackGlobalObject","getGlobalObject","uuid4","crypto","msCrypto","getRandomValues","Uint16Array","pad","v","parseUrl","query","relative","getEventDescription","consoleSandbox","originalConsole","wrappedLevels","addExceptionTypeValue","addExceptionMechanism","mechanism","getLocationHref","htmlTreeAsString","elem","currentElem","out","sepLength","nextStr","_htmlElementAsString","reverse","className","attrWhitelist","timestampWithMs","Date","getTime","parseRetryAfterHeader","now","header","headerDelay","headerDate","getFunctionName","truncate","max","substr","snipLine","colno","newLine","ll","start","end","safeJoin","delimiter","output","isMatchingPattern","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","handleEvent","ex","addEventProcessor","getOwnPropertyDescriptor","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_context","addScopeListener","_notifyScopeListeners","_notifyEventProcessors","processors","processor","final","setFingerprint","fingerprint","_fingerprint","setLevel","setTransaction","transaction","_transaction","_span","setSpan","span","getSpan","newScope","clear","clearBreadcrumbs","_applyFingerprint","getGlobalEventProcessors","globalEventProcessors","addGlobalEventProcessor","SentryError","_newTarget","RegexEscape","escape","freeExports","freeGlobal","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","'","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","fromCharCode","propertyName","merge","defaults","codePointToSymbol","codePoint","strict","parseError","hexEscape","toUpperCase","decEscape","string","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","symbol","charCodeAt","$0","high","low","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","isAttributeValue","execScript","attachEvent","eval","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","nextTick","browser","env","argv","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","originalModule","init","window_1","SENTRY_RELEASE","TryCatch","_ignoreOnError","_wrapTimeFunction","originalCallback","function","_wrapRAF","_wrapEventTarget","eventName","_wrapXHR","originalSend","xhr","xmlHttpRequestProps","onreadystatechange","wrapOptions","XMLHttpRequest","Breadcrumbs","dom","_consoleBreadcrumb","handlerData","category","fromString","_domBreadcrumb","_xhrBreadcrumb","endTimestamp","__sentry_own_request__","__sentry_xhr__","addSentryBreadcrumb","_fetchBreadcrumb","filterUrl","getStoreEndpoint","fetchData","status_code","_historyBreadcrumb","to","parsedLoc","parsedFrom","parsedTo","serializedData","GlobalHandlers","_global","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","onunhandledrejection","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","msg","column","currentHub","hasIntegration","isFailedOwnDelivery","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","rejection","_eventFromIncompleteRejection","groups","lineno","in_app","LinkedErrors","_limit","limit","_handler","linkedErrors","_walkErrorTree","UserAgent","navigator","userAgent","FetchTransport","_disabledUntil","defaultOptions","referrerPolicy","fromHttpCode","Success","RateLimit","PromiseBuffer","isReady","task","capturedSetTimeout","XHRTransport","readyState","getResponseHeader","open","setRequestHeader","send","isError","wat","isInstanceOf","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","Boolean","isSyntheticEvent","base","_e","chrome","gecko","winjs","geckoEval","chromeEval","computeStackTrace","popSize","framesToPop","opera10Regex","opera11Regex","extractMessage","computeStackTraceFromStacktraceProp","popFrames","submatch","isNative","columnNumber","computeStackTraceFromStackProp","failed","exceptionFromStacktrace","prepareFramesForEvent","eventFromPlainObject","__serialized__","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","Status","Invalid","Failed","eventFromUnknownInput","domException","name_1","eventFromString","objectException","synthetic","Severity","Debug","Warning","Fatal","Critical","Log","hadRuntime","regeneratorRuntime","getOwnPropertyNames","oldRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","innerFn","outerFn","tryLocsList","iter","Context","reset","skipTempReset","prev","sent","_sent","delegate","tryEntries","resetTryEntry","stop","rootRecord","completion","rval","dispatchException","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","complete","afterLoc","finish","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","API","_dsnObject","_getBaseUrl","getStoreEndpointPath","auth","sentry_key","sentry_version","getRequestHeaders","clientName","clientVersion","dialogOptions","endpoint","encodedOptions","email","supportsFetch","Headers","Request","Response","isNativeFetch","supportsNativeFetch","sandbox","hidden","contentWindow","supportsReferrerPolicy","supportsHistory","isChromePackagedApp","app","hasHistoryApi","pushState","lastHref","handlers","instrumented","instrument","originalConsoleLevel","triggerHandlers","instrumentConsole","domEventHandler","keypressEventHandler","innerOriginal","instrumentDOM","xhrproto","originalOpen","commonHandlerData","startTimestamp","onreadystatechangeHandler","readyStateArgs","instrumentXHR","originalFetch","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","addInstrumentationHandler","e_1","e_1_1","fetchArgs","keypressTimeout","lastCapturedEvent","debounceTimer","debounce","isContentEditable"],"mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAgB,OAAID,KAEpBD,EAAU,IAAIA,EAAU,KAAK,GAAIA,EAAU,IAAU,OAAIC,KAR3D,CASGK,QAAQ,WACX,O,YCTE,SAASC,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxBC,GAAI,GAMDlB,EAAkB,CACrBkB,GAAI,GAGDb,EAAkB,GAQtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUP,QAGnC,IAAIC,EAASkC,EAAiB5B,GAAY,CACzCK,EAAGL,EACH+B,GAAG,EACHtC,QAAS,IAUV,OANAqB,EAAQd,GAAUW,KAAKjB,EAAOD,QAASC,EAAQA,EAAOD,QAASiC,GAG/DhC,EAAOqC,GAAI,EAGJrC,EAAOD,QAKfiC,EAAoBM,EAAI,SAAuB/B,GAC9C,IAAIgC,EAAW,GAKZJ,EAAmB5B,GAAUgC,EAASpB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAFX,CAAC,EAAI,EAAE,EAAI,EAAE,GAAK,GAEqBA,IACtDgC,EAASpB,KAAKgB,EAAmB5B,GAAW,IAAIiC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,EAAI,KAAK,EAAI,cAAc,EAAI,MAAM,EAAI,QAAQ,GAAK,YAAYpC,IAAUA,GAAW,IAAM,CAAC,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,GAAK,wBAAwBA,GAAW,OACpQqC,EAAWZ,EAAoBa,EAAIF,EACnCG,EAAmBC,SAASC,qBAAqB,QAC7CrC,EAAI,EAAGA,EAAImC,EAAiBjC,OAAQF,IAAK,CAChD,IACIsC,GADAC,EAAMJ,EAAiBnC,IACRwC,aAAa,cAAgBD,EAAIC,aAAa,QACjE,GAAe,eAAZD,EAAIE,MAAyBH,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIY,EAAoBN,SAASC,qBAAqB,SACtD,IAAQrC,EAAI,EAAGA,EAAI0C,EAAkBxC,OAAQF,IAAK,CACjD,IAAIuC,EAEJ,IADID,GADAC,EAAMG,EAAkB1C,IACTwC,aAAa,gBAChBR,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIa,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAAShB,EACjBa,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOlB,EACvDmB,EAAM,IAAIC,MAAM,qBAAuBzD,EAAU,cAAgBqD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACPzB,EAAmB5B,GAC1B+C,EAAQY,WAAWC,YAAYb,GAC/BZ,EAAOqB,IAERT,EAAQX,KAAOC,EAEJG,SAASC,qBAAqB,QAAQ,GAC5CoB,YAAYd,MACfe,MAAK,WACPlC,EAAmB5B,GAAW,MAMhC,IAAI+D,EAAqBpD,EAAgBX,GACzC,GAA0B,IAAvB+D,EAGF,GAAGA,EACF/B,EAASpB,KAAKmD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBpD,EAAgBX,GAAW,CAACkC,EAASC,MAE3DH,EAASpB,KAAKmD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS1B,SAASQ,cAAc,UAGpCkB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb3C,EAAoB4C,IACvBH,EAAOI,aAAa,QAAS7C,EAAoB4C,IAElDH,EAAOX,IAnGV,SAAwBvD,GACvB,OAAOyB,EAAoBa,EAAI,OAAS,CAAC,EAAI,KAAK,EAAI,cAAc,EAAI,MAAM,EAAI,QAAQ,GAAK,YAAYtC,IAAUA,GAAW,IAAM,CAAC,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,uBAAuB,GAAK,wBAAwBA,GAAW,MAkG5QuE,CAAevE,GAG5B,IAAIwE,EAAQ,IAAIf,MAChBQ,EAAmB,SAAUb,GAE5Bc,EAAOf,QAAUe,EAAOhB,OAAS,KACjCuB,aAAaL,GACb,IAAIM,EAAQ/D,EAAgBX,GAC5B,GAAa,IAAV0E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmB7E,EAAU,cAAgB2E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEV7D,EAAgBX,QAAW+E,IAG7B,IAAIX,EAAUY,YAAW,WACxBf,EAAiB,CAAEhB,KAAM,UAAWK,OAAQY,MAC1C,MACHA,EAAOf,QAAUe,EAAOhB,OAASe,EACjCzB,SAASyC,KAAKpB,YAAYK,GAG5B,OAAOjC,QAAQiD,IAAIlD,IAIpBP,EAAoB0D,EAAItE,EAGxBY,EAAoB2D,EAAIzD,EAGxBF,EAAoB4D,EAAI,SAAS7F,EAASsF,EAAMQ,GAC3C7D,EAAoB8D,EAAE/F,EAASsF,IAClCvE,OAAOiF,eAAehG,EAASsF,EAAM,CAAEW,YAAY,EAAMC,IAAKJ,KAKhE7D,EAAoBkE,EAAI,SAASnG,GACX,oBAAXoG,QAA0BA,OAAOC,aAC1CtF,OAAOiF,eAAehG,EAASoG,OAAOC,YAAa,CAAEC,MAAO,WAE7DvF,OAAOiF,eAAehG,EAAS,aAAc,CAAEsG,OAAO,KAQvDrE,EAAoBsE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrE,EAAoBqE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK3F,OAAO4F,OAAO,MAGvB,GAFA1E,EAAoBkE,EAAEO,GACtB3F,OAAOiF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrE,EAAoB4D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzE,EAAoB6E,EAAI,SAAS7G,GAChC,IAAI6F,EAAS7F,GAAUA,EAAOwG,WAC7B,WAAwB,OAAOxG,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAgC,EAAoB4D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR7D,EAAoB8D,EAAI,SAASgB,EAAQC,GAAY,OAAOjG,OAAOC,UAAUC,eAAeC,KAAK6F,EAAQC,IAGzG/E,EAAoBa,EAAI,WAGxBb,EAAoBgF,GAAK,SAASjD,GAA2B,MAApBkD,QAAQlC,MAAMhB,GAAYA,GAEnE,IAAImD,EAAa/G,OAAqB,aAAIA,OAAqB,cAAK,GAChEgH,EAAmBD,EAAW/F,KAAKyF,KAAKM,GAC5CA,EAAW/F,KAAOf,EAClB8G,EAAaA,EAAWE,QACxB,IAAI,IAAIzG,EAAI,EAAGA,EAAIuG,EAAWrG,OAAQF,IAAKP,EAAqB8G,EAAWvG,IAC3E,IAAIU,EAAsB8F,EAM1B,OAFA5F,EAAgBJ,KAAK,CAAC,IAAI,IAEnBM,I,iCC1QT,0KAgBA,IAAI4F,EAAgB,SAASzB,EAAG0B,GAI5B,OAHAD,EAAgBvG,OAAOyG,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAU7B,EAAG0B,GAAK1B,EAAE4B,UAAYF,IACvE,SAAU1B,EAAG0B,GAAK,IAAK,IAAIzE,KAAKyE,EAAOA,EAAEtG,eAAe6B,KAAI+C,EAAE/C,GAAKyE,EAAEzE,MACpD+C,EAAG0B,IAGrB,SAASI,EAAU9B,EAAG0B,GAEzB,SAASK,IAAOC,KAAKC,YAAcjC,EADnCyB,EAAczB,EAAG0B,GAEjB1B,EAAE7E,UAAkB,OAANuG,EAAaxG,OAAO4F,OAAOY,IAAMK,EAAG5G,UAAYuG,EAAEvG,UAAW,IAAI4G,GAG5E,IAAIG,EAAW,WAQlB,OAPAA,EAAWhH,OAAOiH,QAAU,SAAkBzB,GAC1C,IAAK,IAAIrE,EAAGtB,EAAI,EAAGkG,EAAImB,UAAUnH,OAAQF,EAAIkG,EAAGlG,IAE5C,IAAK,IAAIkC,KADTZ,EAAI+F,UAAUrH,GACOG,OAAOC,UAAUC,eAAeC,KAAKgB,EAAGY,KAAIyD,EAAEzD,GAAKZ,EAAEY,IAE9E,OAAOyD,IAEK9E,MAAMoG,KAAMI,YAuEzB,SAASC,EAASnC,GACrB,IAAIJ,EAAsB,mBAAXS,QAAyBL,EAAEK,OAAO+B,UAAWvH,EAAI,EAChE,OAAI+E,EAAUA,EAAEzE,KAAK6E,GACd,CACHqC,KAAM,WAEF,OADIrC,GAAKnF,GAAKmF,EAAEjF,SAAQiF,OAAI,GACrB,CAAEO,MAAOP,GAAKA,EAAEnF,KAAMyH,MAAOtC,KAKzC,SAASuC,EAAOvC,EAAGe,GACtB,IAAInB,EAAsB,mBAAXS,QAAyBL,EAAEK,OAAO+B,UACjD,IAAKxC,EAAG,OAAOI,EACf,IAAmBI,EAAY5D,EAA3B3B,EAAI+E,EAAEzE,KAAK6E,GAAOwC,EAAK,GAC3B,IACI,WAAc,IAANzB,GAAgBA,KAAM,MAAQX,EAAIvF,EAAEwH,QAAQC,MAAME,EAAGnH,KAAK+E,EAAEG,OAExE,MAAOtB,GAASzC,EAAI,CAAEyC,MAAOA,GAC7B,QACI,IACQmB,IAAMA,EAAEkC,OAAS1C,EAAI/E,EAAU,SAAI+E,EAAEzE,KAAKN,GAElD,QAAU,GAAI2B,EAAG,MAAMA,EAAEyC,OAE7B,OAAOuD,EAGJ,SAASC,IACZ,IAAK,IAAID,EAAK,GAAI3H,EAAI,EAAGA,EAAIqH,UAAUnH,OAAQF,IAC3C2H,EAAKA,EAAGE,OAAOH,EAAOL,UAAUrH,KACpC,OAAO2H,I,gCC3IX,6CAEIG,EAAS,cAETC,EAAS,iBAETC,EAAwB,WAExB,SAASA,IACLf,KAAKgB,UAAW,EAiDpB,OA9CAD,EAAO5H,UAAU8H,QAAU,WACvBjB,KAAKgB,UAAW,GAGpBD,EAAO5H,UAAU+H,OAAS,WACtBlB,KAAKgB,UAAW,GAGpBD,EAAO5H,UAAUgI,IAAM,WAEnB,IADA,IAAIC,EAAO,GACFC,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCD,EAAKC,GAAMjB,UAAUiB,GAEpBrB,KAAKgB,UAGV,aAAe,WACXH,EAAOxB,QAAQ8B,IAAIL,EAAS,UAAYM,EAAKE,KAAK,UAI1DP,EAAO5H,UAAUoI,KAAO,WAEpB,IADA,IAAIH,EAAO,GACFC,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCD,EAAKC,GAAMjB,UAAUiB,GAEpBrB,KAAKgB,UAGV,aAAe,WACXH,EAAOxB,QAAQkC,KAAKT,EAAS,WAAaM,EAAKE,KAAK,UAI5DP,EAAO5H,UAAUgE,MAAQ,WAErB,IADA,IAAIiE,EAAO,GACFC,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCD,EAAKC,GAAMjB,UAAUiB,GAEpBrB,KAAKgB,UAGV,aAAe,WACXH,EAAOxB,QAAQlC,MAAM2D,EAAS,YAAcM,EAAKE,KAAK,UAGvDP,EApDgB,GAuD3BF,EAAOW,WAAaX,EAAOW,YAAc,GACzC,IAAIC,EAASZ,EAAOW,WAAWC,SAAWZ,EAAOW,WAAWC,OAAS,IAAIV,I,iCC9DzE,sDAGIW,EAA+B,WAC/B,SAASA,KAiBT,OAZAA,EAAcvI,UAAUwI,UAAY,SAAUC,GAC1C,OAAO,IAAY/G,QAAQ,CACvBgH,OAAQ,sEACRC,OAAQ,IAAOC,WAMvBL,EAAcvI,UAAU6I,MAAQ,SAAUJ,GACtC,OAAO,IAAY/G,SAAQ,IAExB6G,EAlBuB,I,iCCHlC,+DAGIO,EAA+B,WAC/B,SAASA,EAAcC,GACnBlC,KAAKkC,QAAUA,EAEflC,KAAKmC,QAAU,IAAI,IAAc,IACjCnC,KAAKoC,IAAM,IAAI,IAAIpC,KAAKkC,QAAQG,KAAKC,qCAczC,OATAL,EAAc9I,UAAUwI,UAAY,SAAUC,GAC1C,MAAM,IAAI,IAAY,wDAK1BK,EAAc9I,UAAU6I,MAAQ,SAAUjF,GACtC,OAAOiD,KAAKmC,QAAQI,MAAMxF,IAEvBkF,EAnBuB,I,iCCHlC,oEAAO,IAAIO,EAAW,4BACXC,EAAc,U,kBCDzBrK,EAAOD,QAAU,SAASC,GAoBzB,OAnBKA,EAAOsK,kBACXtK,EAAOuK,UAAY,aACnBvK,EAAOwK,MAAQ,GAEVxK,EAAOyK,WAAUzK,EAAOyK,SAAW,IACxC3J,OAAOiF,eAAe/F,EAAQ,SAAU,CACvCgG,YAAY,EACZC,IAAK,WACJ,OAAOjG,EAAOqC,KAGhBvB,OAAOiF,eAAe/F,EAAQ,KAAM,CACnCgG,YAAY,EACZC,IAAK,WACJ,OAAOjG,EAAOW,KAGhBX,EAAOsK,gBAAkB,GAEnBtK,I,iCCpBR,yNAYO,SAAS0K,EAAKC,EAAQtF,EAAMuF,GAC/B,GAAMvF,KAAQsF,EAAd,CAGA,IAAIE,EAAWF,EAAOtF,GAClByF,EAAUF,EAAYC,GAI1B,GAAuB,mBAAZC,EACP,IACIA,EAAQ/J,UAAY+J,EAAQ/J,WAAa,GACzCD,OAAOiK,iBAAiBD,EAAS,CAC7BE,oBAAqB,CACjBhF,YAAY,EACZK,MAAOwE,KAInB,MAAOI,IAKXN,EAAOtF,GAAQyF,GAQZ,SAASI,EAAUpE,GACtB,OAAOhG,OAAOqK,KAAKrE,GACdsE,KAEL,SAAUzE,GAAO,OAAO0E,mBAAmB1E,GAAO,IAAM0E,mBAAmBvE,EAAOH,OAC7EuC,KAAK,KAQd,SAASoC,EAAcjF,GACnB,GAAI,YAAQA,GAAQ,CAChB,IAAItB,EAAQsB,EACRtC,EAAM,CACNqB,QAASL,EAAMK,QACfC,KAAMN,EAAMM,KACZkG,MAAOxG,EAAMwG,OAEjB,IAAK,IAAI5K,KAAKoE,EACNjE,OAAOC,UAAUC,eAAeC,KAAK8D,EAAOpE,KAC5CoD,EAAIpD,GAAKoE,EAAMpE,IAGvB,OAAOoD,EAEX,GAAI,YAAQsC,GAAQ,CAChB,IAAImF,EAAUnF,EACVsE,EAAS,GACbA,EAAOnH,KAAOgI,EAAQhI,KAEtB,IACImH,EAAO9G,OAAS,YAAU2H,EAAQ3H,QAC5B,YAAiB2H,EAAQ3H,QACzB/C,OAAOC,UAAU0K,SAASxK,KAAKuK,EAAQ3H,QAEjD,MAAO6H,GACHf,EAAO9G,OAAS,YAEpB,IACI8G,EAAOgB,cAAgB,YAAUH,EAAQG,eACnC,YAAiBH,EAAQG,eACzB7K,OAAOC,UAAU0K,SAASxK,KAAKuK,EAAQG,eAEjD,MAAOD,GACHf,EAAOgB,cAAgB,YAM3B,IAAK,IAAIhL,IAHkB,oBAAhBiL,aAA+B,YAAavF,EAAOuF,eAC1DjB,EAAOkB,OAASL,EAAQK,QAEdL,EACN1K,OAAOC,UAAUC,eAAeC,KAAKuK,EAAS7K,KAC9CgK,EAAOhK,GAAK6K,GAGpB,OAAOb,EAEX,OAAOtE,EAQX,SAASyF,EAASzF,GACd,OANJ,SAAoBA,GAEhB,QAAS0F,UAAU1F,GAAO2F,MAAM,SAASnL,OAIlCoL,CAAWC,KAAKC,UAAU9F,IAG9B,SAAS+F,EAAgBtF,EAEhCuF,EAEAC,QACkB,IAAVD,IAAoBA,EAAQ,QAChB,IAAZC,IAAsBA,EAAU,QACpC,IAAIC,EAAaC,EAAU1F,EAAQuF,GACnC,OAAIP,EAASS,GAAcD,EAChBF,EAAgBtF,EAAQuF,EAAQ,EAAGC,GAEvCC,EA4BX,SAASE,EAAepG,EAAOM,GAC3B,MAAY,WAARA,GAAoBN,GAA0B,iBAAVA,GAAsBA,EAAMqG,QACzD,WAEC,kBAAR/F,EACO,uBAEW,IAAX8B,GAA0BpC,IAAUoC,EACpC,WAEW,oBAAXtI,QAA0BkG,IAAUlG,OACpC,WAEa,oBAAb4C,UAA4BsD,IAAUtD,SACtC,aAGP,YAAiBsD,GACV,mBAGU,iBAAVA,GAAsBA,GAAUA,EAChC,aAEG,IAAVA,EACO,cAEU,mBAAVA,EACA,cAAgB,YAAgBA,GAAS,IAE7CA,EAUJ,SAASsG,EAAKhG,EAAKN,EAAOgG,EAAOO,GAIpC,QAHc,IAAVP,IAAoBA,EAASQ,UACpB,IAATD,IAAmBA,EAAO,IAAI,KAEpB,IAAVP,EACA,OAtER,SAAwBhG,GACpB,IAAI7C,EAAO1C,OAAOC,UAAU0K,SAASxK,KAAKoF,GAE1C,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAa,oBAAT7C,EACA,MAAO,WAEX,GAAa,mBAATA,EACA,MAAO,UAEX,IAAIsJ,EAAaL,EAAepG,GAChC,OAAO,YAAYyG,GAAcA,EAAatJ,EAyDnCuJ,CAAe1G,GAI1B,GAAIA,SAAiE,mBAAjBA,EAAM2G,OACtD,OAAO3G,EAAM2G,SAIjB,IAAIF,EAAaL,EAAepG,EAAOM,GACvC,GAAI,YAAYmG,GACZ,OAAOA,EAGX,IAAInC,EAASW,EAAcjF,GAEvB4G,EAAMxF,MAAMyF,QAAQ7G,GAAS,GAAK,GAEtC,GAAIuG,EAAKO,QAAQ9G,GACb,MAAO,eAGX,IAAK,IAAI+G,KAAYzC,EAEZ7J,OAAOC,UAAUC,eAAeC,KAAK0J,EAAQyC,KAIlDH,EAAIG,GAAYT,EAAKS,EAAUzC,EAAOyC,GAAWf,EAAQ,EAAGO,IAKhE,OAFAA,EAAKS,UAAUhH,GAER4G,EAcJ,SAAST,EAAUc,EAAOjB,GAC7B,IAEI,OAAOH,KAAKqB,MAAMrB,KAAKC,UAAUmB,GAAO,SAAU3G,EAAKN,GAAS,OAAOsG,EAAKhG,EAAKN,EAAOgG,OAE5F,MAAOX,GACH,MAAO,wBAQR,SAAS8B,EAA+BC,EAAWC,QACpC,IAAdA,IAAwBA,EAAY,IAExC,IAAIvC,EAAOrK,OAAOqK,KAAKG,EAAcmC,IAErC,GADAtC,EAAKwC,QACAxC,EAAKtK,OACN,MAAO,uBAEX,GAAIsK,EAAK,GAAGtK,QAAU6M,EAClB,OAAO,YAASvC,EAAK,GAAIuC,GAE7B,IAAK,IAAIE,EAAezC,EAAKtK,OAAQ+M,EAAe,EAAGA,IAAgB,CACnE,IAAIrB,EAAapB,EAAK/D,MAAM,EAAGwG,GAAc1E,KAAK,MAClD,KAAIqD,EAAW1L,OAAS6M,GAGxB,OAAIE,IAAiBzC,EAAKtK,OACf0L,EAEJ,YAASA,EAAYmB,GAEhC,MAAO,M,mDC1RX,sDASO,SAASG,EAAYC,EAAahE,IACf,IAAlBA,EAAQiE,OACR,IAAOjF,SAEX,cAAgBkF,WAAW,IAAIF,EAAYhE,M,iCCb/C,+DAMImE,EAA6B,WAE7B,SAASA,EAAYnE,GACjBlC,KAAKsG,SAAWpE,EACXlC,KAAKsG,SAASjE,KACf,IAAOd,KAAK,kDAEhBvB,KAAKuG,WAAavG,KAAKwG,kBAkC3B,OA7BAH,EAAYlN,UAAUqN,gBAAkB,WACpC,OAAO,IAAI,KAKfH,EAAYlN,UAAUsN,mBAAqB,SAAUC,EAAYC,GAC7D,MAAM,IAAI,IAAY,yDAK1BN,EAAYlN,UAAUyN,iBAAmB,SAAUC,EAAUC,EAAQH,GACjE,MAAM,IAAI,IAAY,uDAK1BN,EAAYlN,UAAUwI,UAAY,SAAU5F,GACxCiE,KAAKuG,WAAW5E,UAAU5F,GAAOU,KAAK,MAAM,SAAUoF,GAClD,IAAO1E,MAAM,8BAAgC0E,OAMrDwE,EAAYlN,UAAU4N,aAAe,WACjC,OAAO/G,KAAKuG,YAETF,EAzCqB,I,iCCNhC,6GAmCIW,EAA4B,WAO5B,SAASA,EAAWC,EAAc/E,GAE9BlC,KAAKkH,cAAgB,GAErBlH,KAAKmH,aAAc,EACnBnH,KAAKoH,SAAW,IAAIH,EAAa/E,GACjClC,KAAKsG,SAAWpE,EACZA,EAAQG,MACRrC,KAAKqH,KAAO,IAAI,IAAInF,EAAQG,MAE5BrC,KAAKsH,eACLtH,KAAKkH,cAAgB,YAAkBlH,KAAKsG,WAsVpD,OAhVAU,EAAW7N,UAAUoO,iBAAmB,SAAU1B,EAAW2B,EAAMC,GAC/D,IAAIC,EAAQ1H,KACR2H,EAAUH,GAAQA,EAAKI,SAc3B,OAbA5H,KAAKmH,aAAc,EACnBnH,KAAK6H,cACApB,mBAAmBZ,EAAW2B,GAC9B/K,MAAK,SAAUV,GAAS,OAAO2L,EAAMI,cAAc/L,EAAOyL,EAAMC,MAChEhL,MAAK,SAAUsL,GAEhBJ,EAAUI,GAAcA,EAAWH,SACnCF,EAAMP,aAAc,KAEnB1K,KAAK,MAAM,SAAUoF,GACtB,IAAO1E,MAAM0E,GACb6F,EAAMP,aAAc,KAEjBQ,GAKXX,EAAW7N,UAAU6O,eAAiB,SAAUxK,EAASyK,EAAOT,EAAMC,GAClE,IAAIC,EAAQ1H,KACR2H,EAAUH,GAAQA,EAAKI,SAgB3B,OAfA5H,KAAKmH,aAAc,GACC,YAAY3J,GAC1BwC,KAAK6H,cAAcjB,iBAAiB,GAAKpJ,EAASyK,EAAOT,GACzDxH,KAAK6H,cAAcpB,mBAAmBjJ,EAASgK,IAEhD/K,MAAK,SAAUV,GAAS,OAAO2L,EAAMI,cAAc/L,EAAOyL,EAAMC,MAChEhL,MAAK,SAAUsL,GAEhBJ,EAAUI,GAAcA,EAAWH,SACnCF,EAAMP,aAAc,KAEnB1K,KAAK,MAAM,SAAUoF,GACtB,IAAO1E,MAAM0E,GACb6F,EAAMP,aAAc,KAEjBQ,GAKXX,EAAW7N,UAAU+O,aAAe,SAAUnM,EAAOyL,EAAMC,GACvD,IAAIC,EAAQ1H,KACR2H,EAAUH,GAAQA,EAAKI,SAY3B,OAXA5H,KAAKmH,aAAc,EACnBnH,KAAK8H,cAAc/L,EAAOyL,EAAMC,GAC3BhL,MAAK,SAAUsL,GAEhBJ,EAAUI,GAAcA,EAAWH,SACnCF,EAAMP,aAAc,KAEnB1K,KAAK,MAAM,SAAUoF,GACtB,IAAO1E,MAAM0E,GACb6F,EAAMP,aAAc,KAEjBQ,GAKXX,EAAW7N,UAAUgP,OAAS,WAC1B,OAAOnI,KAAKqH,MAKhBL,EAAW7N,UAAUiP,WAAa,WAC9B,OAAOpI,KAAKsG,UAKhBU,EAAW7N,UAAUkP,MAAQ,SAAUtL,GACnC,IAAI2K,EAAQ1H,KACZ,OAAOA,KAAKsI,oBAAoBvL,GAASN,MAAK,SAAUqF,GAEpD,OADAyG,cAAczG,EAAO0G,UACdd,EAAMG,cACRd,eACA/E,MAAMjF,GACNN,MAAK,SAAUgM,GAAoB,OAAO3G,EAAO4G,OAASD,SAMvEzB,EAAW7N,UAAU6I,MAAQ,SAAUjF,GACnC,IAAI2K,EAAQ1H,KACZ,OAAOA,KAAKqI,MAAMtL,GAASN,MAAK,SAAU3C,GAEtC,OADA4N,EAAMU,aAAaO,SAAU,EACtB7O,MAMfkN,EAAW7N,UAAUyP,gBAAkB,WACnC,OAAO5I,KAAKkH,eAAiB,IAKjCF,EAAW7N,UAAU0P,eAAiB,SAAUC,GAC5C,IACI,OAAO9I,KAAKkH,cAAc4B,EAAYC,KAAO,KAEjD,MAAOjF,GAEH,OADA,IAAOvC,KAAK,+BAAiCuH,EAAYC,GAAK,4BACvD,OAIf/B,EAAW7N,UAAUmP,oBAAsB,SAAUvL,GACjD,IAAI2K,EAAQ1H,KACZ,OAAO,IAAI,KAAY,SAAUnF,GAC7B,IAAImO,EAAS,EAETR,EAAW,EACfD,cAAcC,GACdA,EAAWS,aAAY,WACdvB,EAAMP,aAOP6B,GAXG,EAYCjM,GAAWiM,GAAUjM,GACrBlC,EAAQ,CACJ2N,SAAUA,EACVE,OAAO,KAVf7N,EAAQ,CACJ2N,SAAUA,EACVE,OAAO,MAPR,OAuBnB1B,EAAW7N,UAAU0O,YAAc,WAC/B,OAAO7H,KAAKoH,UAGhBJ,EAAW7N,UAAUmO,WAAa,WAC9B,OAAqC,IAA9BtH,KAAKoI,aAAaO,cAAmCjL,IAAdsC,KAAKqH,MAgBvDL,EAAW7N,UAAU+P,cAAgB,SAAUnN,EAAO0L,EAAOD,GACzD,IAAIE,EAAQ1H,KACRmJ,EAAKnJ,KAAKoI,aAAcgB,EAAcD,EAAGC,YAAaC,EAAUF,EAAGE,QAASC,EAAOH,EAAGG,KAAMC,EAAKJ,EAAGK,eAAgBA,OAAwB,IAAPD,EAAgB,IAAMA,EAAIE,EAAKN,EAAGO,eAAgBA,OAAwB,IAAPD,EAAgB,EAAIA,EAC5NE,EAAW,IAAiB,GAAI5N,QACP2B,IAAzBiM,EAASP,kBAA6C1L,IAAhB0L,IACtCO,EAASP,YAAcA,QAEF1L,IAArBiM,EAASN,cAAqC3L,IAAZ2L,IAClCM,EAASN,QAAUA,QAED3L,IAAlBiM,EAASL,WAA+B5L,IAAT4L,IAC/BK,EAASL,KAAOA,GAEhBK,EAASnM,UACTmM,EAASnM,QAAU,YAASmM,EAASnM,QAASgM,IAElD,IAAI3D,EAAY8D,EAAS9D,WAAa8D,EAAS9D,UAAU+D,QAAUD,EAAS9D,UAAU+D,OAAO,GACzF/D,GAAaA,EAAUpH,QACvBoH,EAAUpH,MAAQ,YAASoH,EAAUpH,MAAO+K,IAEhD,IAAIxN,EAAU2N,EAAS3N,QACnBA,GAAWA,EAAQoG,MACnBpG,EAAQoG,IAAM,YAASpG,EAAQoG,IAAKoH,SAEd9L,IAAtBiM,EAAS/B,WACT+B,EAAS/B,SAAWJ,GAAQA,EAAKI,SAAWJ,EAAKI,SAAW,eAEhE5H,KAAK6J,iBAAiBF,EAASG,KAE/B,IAAIhQ,EAAS,IAAYe,QAAQ8O,GAOjC,OAJIlC,IAEA3N,EAAS2N,EAAMsC,aAAaJ,EAAUnC,IAEnC1N,EAAO2C,MAAK,SAAUuN,GAEzB,MAA8B,iBAAnBN,GAA+BA,EAAiB,EAChDhC,EAAMuC,gBAAgBD,EAAKN,GAE/BM,MAafhD,EAAW7N,UAAU8Q,gBAAkB,SAAUlO,EAAO0I,GACpD,OAAK1I,EAIE,IAAiB,GAAIA,EAAQA,EAAMmO,aAAe,CACrDA,YAAanO,EAAMmO,YAAY1G,KAAI,SAAU9D,GAAK,OAAQ,IAAiB,GAAIA,EAAIA,EAAEjH,MAAQ,CACzFA,KAAM,YAAUiH,EAAEjH,KAAMgM,SAE3B1I,EAAMoO,MAAQ,CACfA,KAAM,YAAUpO,EAAMoO,KAAM1F,IAC3B1I,EAAMqO,UAAY,CACnBA,SAAU,YAAUrO,EAAMqO,SAAU3F,IACnC1I,EAAMsO,OAAS,CAChBA,MAAO,YAAUtO,EAAMsO,MAAO5F,KAZvB,MAmBfuC,EAAW7N,UAAU0Q,iBAAmB,SAAUS,GAC9C,IAAIC,EAAoBrR,OAAOqK,KAAKvD,KAAKkH,eACrCoD,GAAWC,EAAkBtR,OAAS,IACtCqR,EAAQE,aAAeD,IAgB/BvD,EAAW7N,UAAU2O,cAAgB,SAAU/L,EAAOyL,EAAMC,GACxD,IAAIC,EAAQ1H,KACRmJ,EAAKnJ,KAAKoI,aAAcqC,EAAatB,EAAGsB,WAAYC,EAAavB,EAAGuB,WACxE,OAAK1K,KAAKsH,aAKgB,iBAAfoD,GAA2BC,KAAKC,SAAWF,EAC3C,IAAY5P,OAAO,qDAEvB,IAAI,KAAY,SAAUD,EAASC,GACtC4M,EAAMwB,cAAcnN,EAAO0L,EAAOD,GAC7B/K,MAAK,SAAUkN,GAChB,GAAiB,OAAbA,EAAJ,CAIA,IAAI5B,EAAa4B,EACjB,IAEI,GAD0BnC,GAAQA,EAAK/O,OAAiC,IAAzB+O,EAAK/O,KAAKoS,aAC7BJ,EAGxB,OAFA/C,EAAMG,cAAclG,UAAUoG,QAC9BlN,EAAQkN,GAGZ,IAAI+C,EAAmBL,EAAWd,EAAUnC,GAE5C,QAAgC,IAArBsD,EACP,IAAO3N,MAAM,mEAEZ,GAAI,YAAW2N,GAChBpD,EAAMqD,uBAAuBD,EAAkBjQ,EAASC,OAEvD,CAED,GAAmB,QADnBiN,EAAa+C,GAIT,OAFA,IAAO3J,IAAI,2DACXtG,EAAQ,MAIZ6M,EAAMG,cAAclG,UAAUoG,GAC9BlN,EAAQkN,IAGhB,MAAOlC,GACH6B,EAAMH,iBAAiB1B,EAAW,CAC9BpN,KAAM,CACFoS,YAAY,GAEhBG,kBAAmBnF,IAEvB/K,EAAO,2DAtCPA,EAAO,6DAyCV2B,KAAK,MAAM,WACZ3B,EAAO,2DArDJ,IAAYA,OAAO,0CA4DlCkM,EAAW7N,UAAU4R,uBAAyB,SAAUN,EAAY5P,EAASC,GACzE,IAAI4M,EAAQ1H,KACZyK,EACKhO,MAAK,SAAUwO,GACO,OAAnBA,GAKJvD,EAAMG,cAAclG,UAAUsJ,GAC9BpQ,EAAQoQ,IALJnQ,EAAO,yDAOV2B,KAAK,MAAM,SAAU/B,GACtBI,EAAO,4BAA8BJ,OAGtCsM,EAxWoB,I,oBClCiC5O,EAAOD,QAG/D,WAAe,aAIvB,IAAIiB,EAAiBF,OAAOE,eACxBuG,EAAiBzG,OAAOyG,eACxBuL,EAAWhS,OAAOgS,SAClBC,EAAajS,OAAOqK,KACpB6H,EAASlS,OAAOkS,OAChBC,EAAOnS,OAAOmS,KAEdC,EAA0B,oBAAZC,SAA2BA,QACzC3R,EAAQ0R,EAAK1R,MACb4R,EAAYF,EAAKE,UAEhB5R,IACHA,EAAQ,SAAe6R,EAAKC,EAAWtK,GACrC,OAAOqK,EAAI7R,MAAM8R,EAAWtK,KAI3BgK,IACHA,EAAS,SAAgBO,GACvB,OAAOA,IAINN,IACHA,EAAO,SAAcM,GACnB,OAAOA,IAINH,IACHA,EAAY,SAAmBI,EAAMxK,GACnC,OAAO,IAAKyK,SAAS1S,UAAU6F,KAAKpF,MAAMgS,EAAM,CAAC,MAAMhL,OAjC3D,SAA8BkL,GAAO,GAAIjM,MAAMyF,QAAQwG,GAAM,CAAE,IAAK,IAAI/S,EAAI,EAAGgT,EAAOlM,MAAMiM,EAAI7S,QAASF,EAAI+S,EAAI7S,OAAQF,IAAOgT,EAAKhT,GAAK+S,EAAI/S,GAAM,OAAOgT,EAAe,OAAOlM,MAAMmM,KAAKF,GAiC1HG,CAAqB7K,QAIvF,IAAI8K,EAAeC,EAAQtM,MAAM1G,UAAUiT,SACvCC,EAAeF,EAAQtM,MAAM1G,UAAUmT,SACvCC,EAAYJ,EAAQtM,MAAM1G,UAAUmI,MACpCkL,EAAWL,EAAQtM,MAAM1G,UAAUsT,KACnCC,EAAYP,EAAQtM,MAAM1G,UAAUI,MACpCoT,EAAaR,EAAQtM,MAAM1G,UAAUqG,OAErCoN,EAAoBT,EAAQU,OAAO1T,UAAU2T,aAC7CC,EAAcZ,EAAQU,OAAO1T,UAAU6T,OACvCC,EAAgBd,EAAQU,OAAO1T,UAAU+T,SACzCC,EAAgBhB,EAAQU,OAAO1T,UAAUmT,SACzCc,EAAajB,EAAQU,OAAO1T,UAAUkU,MAEtCC,EAAanB,EAAQoB,OAAOpU,UAAUqU,MACtCC,EAAeC,EAAYH,QAE3BI,EAAkBD,EAAYE,WAElC,SAASzB,EAAQ0B,GACf,OAAO,SAAUC,GACf,IAAK,IAAIC,EAAO3N,UAAUnH,OAAQmI,EAAOvB,MAAMkO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAC9F5M,EAAK4M,EAAO,GAAK5N,UAAU4N,GAG7B,OAAOpU,EAAMiU,EAAMC,EAAS1M,IAIhC,SAASsM,EAAYG,GACnB,OAAO,WACL,IAAK,IAAII,EAAQ7N,UAAUnH,OAAQmI,EAAOvB,MAAMoO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF9M,EAAK8M,GAAS9N,UAAU8N,GAG1B,OAAO1C,EAAUqC,EAAMzM,IAK3B,SAAS+M,EAASC,EAAKC,GACjB1O,GAIFA,EAAeyO,EAAK,MAItB,IADA,IAAI3T,EAAI4T,EAAMpV,OACPwB,KAAK,CACV,IAAI6T,EAAUD,EAAM5T,GACpB,GAAuB,iBAAZ6T,EAAsB,CAC/B,IAAIC,EAAY3B,EAAkB0B,GAC9BC,IAAcD,IAEXpD,EAASmD,KACZA,EAAM5T,GAAK8T,GAGbD,EAAUC,GAIdH,EAAIE,IAAW,EAGjB,OAAOF,EAIT,SAASI,EAAMtP,GACb,IAAIuP,EAAY,GAEZtP,OAAW,EACf,IAAKA,KAAYD,EACXtF,EAAMR,EAAgB8F,EAAQ,CAACC,MACjCsP,EAAUtP,GAAYD,EAAOC,IAIjC,OAAOsP,EAGT,IAAIC,EAAOtD,EAAO,CAAC,IAAK,OAAQ,UAAW,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,MAAO,MAAO,MAAO,QAAS,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,SAAU,OAAQ,OAAQ,MAAO,WAAY,UAAW,OAAQ,WAAY,KAAM,YAAa,MAAO,UAAW,MAAO,MAAO,MAAO,KAAM,KAAM,UAAW,KAAM,WAAY,aAAc,SAAU,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,MAAO,QAAS,MAAO,MAAO,QAAS,SAAU,KAAM,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,QAAS,MAAO,OAAQ,KAAM,WAAY,SAAU,SAAU,IAAK,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,UAAW,SAAU,SAAU,QAAS,SAAU,SAAU,OAAQ,SAAU,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,WAAY,QAAS,KAAM,QAAS,OAAQ,KAAM,QAAS,KAAM,IAAK,KAAM,MAAO,QAAS,QAGv9BuD,EAAMvD,EAAO,CAAC,MAAO,IAAK,WAAY,cAAe,eAAgB,eAAgB,gBAAiB,mBAAoB,QAAS,SAAU,SAAU,WAAY,OAAQ,OAAQ,UAAW,SAAU,OAAQ,IAAK,QAAS,WAAY,QAAS,QAAS,OAAQ,iBAAkB,SAAU,OAAQ,WAAY,QAAS,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,QAAS,SAAU,SAAU,OAAQ,WAAY,QAAS,OAAQ,QAAS,QAAS,OAAQ,UAErewD,EAAaxD,EAAO,CAAC,UAAW,gBAAiB,sBAAuB,cAAe,mBAAoB,oBAAqB,oBAAqB,iBAAkB,UAAW,UAAW,UAAW,UAAW,UAAW,iBAAkB,UAAW,cAAe,eAAgB,WAAY,eAAgB,qBAAsB,cAAe,SAAU,iBAErWyD,EAASzD,EAAO,CAAC,OAAQ,WAAY,SAAU,UAAW,QAAS,SAAU,KAAM,aAAc,gBAAiB,KAAM,KAAM,QAAS,UAAW,WAAY,QAAS,OAAQ,KAAM,SAAU,QAAS,SAAU,OAAQ,OAAQ,UAAW,SAAU,MAAO,QAAS,MAAO,SAAU,eAExR0D,EAAO1D,EAAO,CAAC,UAEf2D,EAAS3D,EAAO,CAAC,SAAU,SAAU,QAAS,MAAO,eAAgB,aAAc,UAAW,SAAU,cAAe,cAAe,UAAW,OAAQ,QAAS,QAAS,QAAS,OAAQ,UAAW,WAAY,SAAU,cAAe,WAAY,UAAW,MAAO,WAAY,WAAY,UAAW,OAAQ,MAAO,UAAW,SAAU,SAAU,OAAQ,OAAQ,WAAY,KAAM,YAAa,QAAS,QAAS,OAAQ,OAAQ,OAAQ,MAAO,MAAO,YAAa,QAAS,SAAU,MAAO,YAAa,WAAY,OAAQ,UAAW,aAAc,SAAU,OAAQ,UAAW,UAAW,cAAe,SAAU,UAAW,UAAW,aAAc,WAAY,MAAO,WAAY,MAAO,WAAY,OAAQ,OAAQ,UAAW,aAAc,QAAS,WAAY,QAAS,OAAQ,QAAS,OAAQ,UAAW,QAAS,MAAO,SAAU,OAAQ,QAAS,UAAW,WAAY,QAAS,OAAQ,SAAU,SAAU,QAAS,QAAS,UAE95B4D,EAAQ5D,EAAO,CAAC,gBAAiB,aAAc,WAAY,qBAAsB,SAAU,gBAAiB,gBAAiB,UAAW,gBAAiB,iBAAkB,QAAS,OAAQ,KAAM,QAAS,OAAQ,YAAa,YAAa,QAAS,sBAAuB,8BAA+B,gBAAiB,kBAAmB,KAAM,KAAM,IAAK,KAAM,KAAM,kBAAmB,YAAa,UAAW,UAAW,MAAO,WAAY,YAAa,MAAO,OAAQ,eAAgB,YAAa,SAAU,cAAe,cAAe,gBAAiB,cAAe,YAAa,mBAAoB,eAAgB,aAAc,eAAgB,cAAe,KAAM,KAAM,KAAM,KAAM,aAAc,WAAY,gBAAiB,oBAAqB,SAAU,OAAQ,KAAM,kBAAmB,KAAM,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,UAAW,YAAa,aAAc,WAAY,OAAQ,eAAgB,iBAAkB,eAAgB,mBAAoB,iBAAkB,QAAS,aAAc,aAAc,eAAgB,eAAgB,cAAe,cAAe,mBAAoB,YAAa,MAAO,OAAQ,QAAS,SAAU,OAAQ,MAAO,OAAQ,aAAc,SAAU,WAAY,UAAW,QAAS,SAAU,cAAe,SAAU,WAAY,cAAe,OAAQ,aAAc,sBAAuB,mBAAoB,eAAgB,SAAU,gBAAiB,sBAAuB,iBAAkB,IAAK,KAAM,KAAM,SAAU,OAAQ,OAAQ,cAAe,YAAa,UAAW,SAAU,SAAU,QAAS,OAAQ,kBAAmB,mBAAoB,mBAAoB,eAAgB,eAAgB,cAAe,aAAc,eAAgB,mBAAoB,oBAAqB,iBAAkB,kBAAmB,oBAAqB,iBAAkB,SAAU,eAAgB,QAAS,eAAgB,WAAY,UAAW,UAAW,YAAa,cAAe,kBAAmB,iBAAkB,aAAc,OAAQ,KAAM,KAAM,UAAW,SAAU,UAAW,aAAc,UAAW,aAAc,gBAAiB,gBAAiB,QAAS,eAAgB,OAAQ,eAAgB,mBAAoB,mBAAoB,IAAK,KAAM,KAAM,QAAS,IAAK,KAAM,KAAM,IAAK,eAE1rE6D,EAAW7D,EAAO,CAAC,SAAU,cAAe,QAAS,WAAY,QAAS,eAAgB,cAAe,aAAc,aAAc,QAAS,MAAO,UAAW,eAAgB,WAAY,QAAS,QAAS,SAAU,OAAQ,KAAM,UAAW,SAAU,gBAAiB,SAAU,SAAU,iBAAkB,YAAa,WAAY,cAAe,UAAW,UAAW,gBAAiB,WAAY,WAAY,OAAQ,WAAY,WAAY,aAAc,UAAW,SAAU,SAAU,cAAe,gBAAiB,uBAAwB,YAAa,YAAa,aAAc,WAAY,iBAAkB,iBAAkB,YAAa,UAAW,QAAS,UAEvpB8D,EAAM9D,EAAO,CAAC,aAAc,SAAU,cAAe,YAAa,gBAElE+D,EAAgB9D,EAAK,6BACrB+D,EAAW/D,EAAK,yBAChBgE,EAAYhE,EAAK,8BACjBiE,EAAYjE,EAAK,kBACjBkE,EAAiBlE,EAAK,yFAEtBmE,EAAoBnE,EAAK,yBACzBoE,EAAkBpE,EAAK,+DAGvBqE,EAA4B,mBAAXnR,QAAoD,iBAApBA,OAAO+B,SAAwB,SAAUqP,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,mBAAXpR,QAAyBoR,EAAI1P,cAAgB1B,QAAUoR,IAAQpR,OAAOpF,UAAY,gBAAkBwW,GAEtQ,SAASC,EAAmB9D,GAAO,GAAIjM,MAAMyF,QAAQwG,GAAM,CAAE,IAAK,IAAI/S,EAAI,EAAGgT,EAAOlM,MAAMiM,EAAI7S,QAASF,EAAI+S,EAAI7S,OAAQF,IAAOgT,EAAKhT,GAAK+S,EAAI/S,GAAM,OAAOgT,EAAe,OAAOlM,MAAMmM,KAAKF,GAE1L,IAAI+D,EAAY,WACd,MAAyB,oBAAXtX,OAAyB,KAAOA,QAW5CuX,EAA4B,SAAmCC,EAAc5U,GAC/E,GAAoF,iBAAvD,IAAjB4U,EAA+B,YAAcL,EAAQK,KAAoE,mBAA9BA,EAAaC,aAClH,OAAO,KAMT,IAAIC,EAAS,KAET9U,EAAS+U,eAAiB/U,EAAS+U,cAAcC,aADrC,2BAEdF,EAAS9U,EAAS+U,cAAc3U,aAFlB,0BAKhB,IAAI6U,EAAa,aAAeH,EAAS,IAAMA,EAAS,IAExD,IACE,OAAOF,EAAaC,aAAaI,EAAY,CAC3CC,WAAY,SAAoBC,GAC9B,OAAOA,KAGX,MAAOnT,GAKP,OADAkC,QAAQkC,KAAK,uBAAyB6O,EAAa,0BAC5C,OA+hCX,OA3hCA,SAASG,IACP,IAAIhY,EAAS6H,UAAUnH,OAAS,QAAsByE,IAAjB0C,UAAU,GAAmBA,UAAU,GAAKyP,IAE7EW,EAAY,SAAmBvY,GACjC,OAAOsY,EAAgBtY,IAezB,GARAuY,EAAUC,QAAU,QAMpBD,EAAUE,QAAU,IAEfnY,IAAWA,EAAO4C,UAAyC,IAA7B5C,EAAO4C,SAASwV,SAKjD,OAFAH,EAAUI,aAAc,EAEjBJ,EAGT,IAAIK,EAAmBtY,EAAO4C,SAC1B2V,GAAe,EACfC,GAAc,EAEd5V,EAAW5C,EAAO4C,SAClB6V,EAAmBzY,EAAOyY,iBAC1BC,EAAsB1Y,EAAO0Y,oBAC7BC,EAAO3Y,EAAO2Y,KACdC,EAAa5Y,EAAO4Y,WACpBC,EAAuB7Y,EAAO8Y,aAC9BA,OAAwC3T,IAAzB0T,EAAqC7Y,EAAO8Y,cAAgB9Y,EAAO+Y,gBAAkBF,EACpGG,EAAOhZ,EAAOgZ,KACdC,EAAUjZ,EAAOiZ,QACjBC,EAAYlZ,EAAOkZ,UACnB1B,GAAexX,EAAOwX,aAS1B,GAAmC,mBAAxBkB,EAAoC,CAC7C,IAAIS,GAAWvW,EAASQ,cAAc,YAClC+V,GAASC,SAAWD,GAASC,QAAQC,gBACvCzW,EAAWuW,GAASC,QAAQC,eAIhC,IAAIC,GAAqB/B,EAA0BC,GAAcc,GAC7DiB,GAAYD,GAAqBA,GAAmBxB,WAAW,IAAM,GAErE0B,GAAY5W,EACZ6W,GAAiBD,GAAUC,eAC3BC,GAAqBF,GAAUE,mBAC/B7W,GAAuB2W,GAAU3W,qBACjC8W,GAAyBH,GAAUG,uBACnCC,GAAatB,EAAiBsB,WAG9BC,GAAQ,GAKZ5B,EAAUI,YAAcoB,SAA+D,IAAtCA,GAAeK,oBAAgE,IAA1BlX,EAASmX,aAE/G,IAAIC,GAAmBpD,EACnBqD,GAAcpD,EACdqD,GAAepD,EACfqD,GAAepD,EACfqD,GAAuBnD,EACvBoD,GAAqBnD,EACrBoD,GAAoBtD,EASpBuD,GAAe,KACfC,GAAuB5E,EAAS,GAAI,GAAGvN,OAAOgP,EAAmBlB,GAAOkB,EAAmBjB,GAAMiB,EAAmBhB,GAAagB,EAAmBf,GAASe,EAAmBd,KAGhLkE,GAAe,KACfC,GAAuB9E,EAAS,GAAI,GAAGvN,OAAOgP,EAAmBb,GAASa,EAAmBZ,GAAQY,EAAmBX,GAAWW,EAAmBV,KAGtJgE,GAAc,KAGdC,GAAc,KAGdC,IAAkB,EAGlBC,IAAkB,EAGlBC,IAA0B,EAG1BC,IAAkB,EAKlBC,IAAqB,EAGrBC,IAAiB,EAGjBC,IAAa,EAIbC,IAAa,EAMbC,IAAa,EAIbC,IAAsB,EAMtBC,IAAoB,EAIpBC,IAAsB,EAGtBC,IAAe,EAGfC,IAAe,EAIfC,IAAW,EAGXC,GAAe,GAGfC,GAAkBjG,EAAS,GAAI,CAAC,iBAAkB,QAAS,WAAY,OAAQ,gBAAiB,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,QAAS,UAAW,WAAY,YAAa,SAAU,QAAS,MAAO,WAAY,QAAS,QAAS,QAAS,QAGhQkG,GAAgBlG,EAAS,GAAI,CAAC,QAAS,QAAS,MAAO,SAAU,UAGjEmG,GAAsB,KACtBC,GAA8BpG,EAAS,GAAI,CAAC,MAAO,QAAS,MAAO,KAAM,QAAS,OAAQ,UAAW,cAAe,UAAW,QAAS,QAAS,QAAS,UAG1JqG,GAAS,KAKTC,GAActZ,EAASQ,cAAc,QAQrC+Y,GAAe,SAAsBC,GACnCH,IAAUA,KAAWG,IAKpBA,GAAqE,iBAA9C,IAARA,EAAsB,YAAcjF,EAAQiF,MAC9DA,EAAM,IAIR7B,GAAe,iBAAkB6B,EAAMxG,EAAS,GAAIwG,EAAI7B,cAAgBC,GACxEC,GAAe,iBAAkB2B,EAAMxG,EAAS,GAAIwG,EAAI3B,cAAgBC,GACxEqB,GAAsB,sBAAuBK,EAAMxG,EAASK,EAAM+F,IAA8BI,EAAIC,mBAAqBL,GACzHrB,GAAc,gBAAiByB,EAAMxG,EAAS,GAAIwG,EAAIzB,aAAe,GACrEC,GAAc,gBAAiBwB,EAAMxG,EAAS,GAAIwG,EAAIxB,aAAe,GACrEgB,GAAe,iBAAkBQ,GAAMA,EAAIR,aAC3Cf,IAA0C,IAAxBuB,EAAIvB,gBACtBC,IAA0C,IAAxBsB,EAAItB,gBACtBC,GAA0BqB,EAAIrB,0BAA2B,EACzDC,GAAkBoB,EAAIpB,kBAAmB,EACzCC,GAAqBmB,EAAInB,qBAAsB,EAC/CC,GAAiBkB,EAAIlB,iBAAkB,EACvCG,GAAae,EAAIf,aAAc,EAC/BC,GAAsBc,EAAId,sBAAuB,EACjDC,GAAoBa,EAAIb,oBAAqB,EAC7CC,GAAsBY,EAAIZ,sBAAuB,EACjDJ,GAAagB,EAAIhB,aAAc,EAC/BK,IAAoC,IAArBW,EAAIX,aACnBC,IAAoC,IAArBU,EAAIV,aACnBC,GAAWS,EAAIT,WAAY,EAC3BrB,GAAoB8B,EAAIE,oBAAsBhC,GAC1CW,KACFH,IAAkB,GAGhBQ,KACFD,IAAa,GAIXO,KACFrB,GAAe3E,EAAS,GAAI,GAAGvN,OAAOgP,EAAmBd,KACzDkE,GAAe,IACW,IAAtBmB,GAAazF,OACfP,EAAS2E,GAAcpE,GACvBP,EAAS6E,GAAcjE,KAGA,IAArBoF,GAAaxF,MACfR,EAAS2E,GAAcnE,GACvBR,EAAS6E,GAAchE,GACvBb,EAAS6E,GAAc9D,KAGO,IAA5BiF,GAAavF,aACfT,EAAS2E,GAAclE,GACvBT,EAAS6E,GAAchE,GACvBb,EAAS6E,GAAc9D,KAGG,IAAxBiF,GAAatF,SACfV,EAAS2E,GAAcjE,GACvBV,EAAS6E,GAAc/D,GACvBd,EAAS6E,GAAc9D,KAKvByF,EAAIG,WACFhC,KAAiBC,KACnBD,GAAetE,EAAMsE,KAGvB3E,EAAS2E,GAAc6B,EAAIG,WAGzBH,EAAII,WACF/B,KAAiBC,KACnBD,GAAexE,EAAMwE,KAGvB7E,EAAS6E,GAAc2B,EAAII,WAGzBJ,EAAIC,mBACNzG,EAASmG,GAAqBK,EAAIC,mBAIhCX,KACFnB,GAAa,UAAW,GAItBW,IACFtF,EAAS2E,GAAc,CAAC,OAAQ,OAAQ,SAItCA,GAAakC,QACf7G,EAAS2E,GAAc,CAAC,iBACjBI,GAAY+B,OAKjB7J,GACFA,EAAOuJ,GAGTH,GAASG,IAQPO,GAAe,SAAsBC,GACvCzI,EAAU8D,EAAUE,QAAS,CAAEpC,QAAS6G,IACxC,IACEA,EAAK7Y,WAAWC,YAAY4Y,GAC5B,MAAOhY,GACPgY,EAAKC,UAAYtD,KAUjBuD,GAAmB,SAA0B5X,EAAM0X,GACrD,IACEzI,EAAU8D,EAAUE,QAAS,CAC3B4E,UAAWH,EAAKI,iBAAiB9X,GACjCuO,KAAMmJ,IAER,MAAOhY,GACPuP,EAAU8D,EAAUE,QAAS,CAC3B4E,UAAW,KACXtJ,KAAMmJ,IAIVA,EAAKK,gBAAgB/X,IASnBgY,GAAgB,SAAuBC,GAEzC,IAAIC,OAAM,EACNC,OAAoB,EAExB,GAAIjC,GACF+B,EAAQ,oBAAsBA,MACzB,CAEL,IAAIG,EAAU9I,EAAY2I,EAAO,UACjCE,EAAoBC,GAAWA,EAAQ,GAGzC,IAAIC,EAAejE,GAAqBA,GAAmBxB,WAAWqF,GAASA,EAE/E,GAAI5E,EACF,IACE6E,GAAM,IAAIlE,GAAYsE,gBAAgBD,EAAc,aACpD,MAAO3Y,IAUX,GANI4T,GACF5C,EAAS+E,GAAa,CAAC,WAKpByC,IAAQA,EAAIK,gBAAiB,CAEhC,IACIC,GAFJN,EAAM3D,GAAeK,mBAAmB,KAExB4D,KAEhBA,EAAK3Z,WAAWC,YAAY0Z,EAAK3Z,WAAW4Z,mBAC5CD,EAAKb,UAAYU,EAQnB,OALIJ,GAASE,GACXD,EAAIM,KAAKE,aAAahb,EAASib,eAAeR,GAAoBD,EAAIM,KAAKI,WAAW,IAAM,MAIvFjb,GAAqB/B,KAAKsc,EAAKlC,GAAiB,OAAS,QAAQ,IAYtEjD,EAAUI,cACZ,WACE,IACY6E,GAAc,+DAChBa,cAAc,aACpBxF,GAAe,GAEjB,MAAO3T,KANX,GASA,WACE,IACE,IAAIwY,EAAMF,GAAc,wCACpBnI,EAAW,WAAYqI,EAAIW,cAAc,SAASC,aACpDxF,GAAc,GAEhB,MAAO5T,KANX,IAgBF,IAAIqZ,GAAkB,SAAyBve,GAC7C,OAAOga,GAAmB5Y,KAAKpB,EAAK2Z,eAAiB3Z,EAAMA,EAAMkZ,EAAWsF,aAAetF,EAAWuF,aAAevF,EAAWwF,WAAW,WACzI,OAAOxF,EAAWyF,iBACjB,IASDC,GAAe,SAAsBC,GACvC,QAAIA,aAAevF,GAAQuF,aAAetF,GAId,iBAAjBsF,EAAIC,UAAoD,iBAApBD,EAAIE,aAAuD,mBAApBF,EAAIva,aAAgCua,EAAIG,sBAAsB5F,GAAgD,mBAAxByF,EAAItB,iBAA8D,mBAArBsB,EAAI7Z,cAA2D,iBAArB6Z,EAAII,eAarQC,GAAU,SAAiBxH,GAC7B,MAAuE,iBAA/C,IAATuB,EAAuB,YAAcxB,EAAQwB,IAAsBvB,aAAeuB,EAAOvB,GAAqE,iBAA9C,IAARA,EAAsB,YAAcD,EAAQC,KAA8C,iBAAjBA,EAAIgB,UAAiD,iBAAjBhB,EAAIoH,UAWtOK,GAAe,SAAsBC,EAAYC,EAAa7e,GAC3D2Z,GAAMiF,IAIXnL,EAAakG,GAAMiF,IAAa,SAAUE,GACxCA,EAAKle,KAAKmX,EAAW8G,EAAa7e,EAAM+b,QAexCgD,GAAoB,SAA2BF,GACjD,IAAI3F,OAAU,EAMd,GAHAyF,GAAa,yBAA0BE,EAAa,MAGhDT,GAAaS,GAEf,OADApC,GAAaoC,IACN,EAIT,IAAIG,EAAU7K,EAAkB0K,EAAYP,UAS5C,GANAK,GAAa,sBAAuBE,EAAa,CAC/CG,QAASA,EACTC,YAAa5E,MAIE,QAAZ2E,GAAiC,SAAZA,IAAwE,IAAjDH,EAAYK,iBAAiB,SAAS1e,OAErF,OADAic,GAAaoC,IACN,EAIT,IAAKxE,GAAa2E,IAAYvE,GAAYuE,GAAU,CAElD,GAAIxD,KAAiBG,GAAgBqD,IAAsD,mBAAnCH,EAAYM,mBAClE,IACE,IAAIC,EAAeP,EAAYf,UAC/Be,EAAYM,mBAAmB,WAAY/F,GAAqBA,GAAmBxB,WAAWwH,GAAgBA,GAC9G,MAAO1a,IAIX,OADA+X,GAAaoC,IACN,EAIT,MAAgB,aAAZG,GAA0BnK,EAAW,eAAgBgK,EAAYf,YACnErB,GAAaoC,IACN,GAGO,YAAZG,GAAyBnK,EAAW,cAAegK,EAAYf,YACjErB,GAAaoC,IACN,KAIL/D,IAAoB+D,EAAYpB,mBAAuBoB,EAAY3F,SAAY2F,EAAY3F,QAAQuE,oBAAsB5I,EAAW,KAAMgK,EAAYN,eACxJtK,EAAU8D,EAAUE,QAAS,CAAEpC,QAASgJ,EAAYQ,cAChDR,EAAYf,UACde,EAAYf,UAAYtJ,EAAcqK,EAAYf,UAAW,KAAM,QAEnEe,EAAYf,UAAYtJ,EAAcqK,EAAYN,YAAa,KAAM,SAKrExD,IAA+C,IAAzB8D,EAAY3G,WAEpCgB,EAAU2F,EAAYN,YACtBrF,EAAU1E,EAAc0E,EAASY,GAAkB,KACnDZ,EAAU1E,EAAc0E,EAASa,GAAa,KAC1C8E,EAAYN,cAAgBrF,IAC9BjF,EAAU8D,EAAUE,QAAS,CAAEpC,QAASgJ,EAAYQ,cACpDR,EAAYN,YAAcrF,IAK9ByF,GAAa,wBAAyBE,EAAa,OAE5C,IAYLS,GAAoB,SAA2BC,EAAOC,EAAQxZ,GAEhE,GAAIuV,KAA4B,OAAXiE,GAA8B,SAAXA,KAAuBxZ,KAAStD,GAAYsD,KAASgW,IAC3F,OAAO,EAOT,GAAIpB,IAAmB/F,EAAWmF,GAAcwF,SAEzC,GAAI7E,IAAmB9F,EAAWoF,GAAcuF,QAGhD,KAAKjF,GAAaiF,IAAW9E,GAAY8E,GAC9C,OAAO,EAGF,GAAI3D,GAAoB2D,SAIxB,GAAI3K,EAAWuF,GAAmB5F,EAAcxO,EAAOmU,GAAoB,WAI3E,GAAgB,QAAXqF,GAA+B,eAAXA,GAAsC,SAAXA,GAAgC,WAAVD,GAAwD,IAAlC7K,EAAc1O,EAAO,WAAkB4V,GAAc2D,GAKrJ,GAAI1E,KAA4BhG,EAAWqF,GAAsB1F,EAAcxO,EAAOmU,GAAoB,WAI1G,GAAKnU,EAIV,OAAO,EAGT,OAAO,GAcLyZ,GAAsB,SAA6BZ,GACrD,IAAIa,OAAO,EACP1Z,OAAQ,EACRwZ,OAAS,EACTG,OAAS,EACT3d,OAAI,EAER2c,GAAa,2BAA4BE,EAAa,MAEtD,IAAIL,EAAaK,EAAYL,WAI7B,GAAKA,EAAL,CAIA,IAAIoB,EAAY,CACdC,SAAU,GACVC,UAAW,GACXC,UAAU,EACVC,kBAAmBzF,IAKrB,IAHAvY,EAAIwc,EAAWhe,OAGRwB,KAAK,CAEV,IAAIie,EADJP,EAAOlB,EAAWxc,GAEdgD,EAAOib,EAAMjb,KACbyZ,EAAewB,EAAMxB,aAazB,GAXAzY,EAAQ2O,EAAW+K,EAAK1Z,OACxBwZ,EAASrL,EAAkBnP,GAG3B4a,EAAUC,SAAWL,EACrBI,EAAUE,UAAY9Z,EACtB4Z,EAAUG,UAAW,EACrBH,EAAUM,mBAAgBjb,EAC1B0Z,GAAa,wBAAyBE,EAAae,GACnD5Z,EAAQ4Z,EAAUE,WAEdF,EAAUM,cAAd,CAQA,GAAe,SAAXV,GAA8C,QAAzBX,EAAYP,UAAsBE,EAAWlO,GACpEqP,EAASnB,EAAWlO,GACpBkO,EAAatK,EAAWsK,EAAY,IACpC5B,GAAiB,KAAMiC,GACvBjC,GAAiB5X,EAAM6Z,GACnBjL,EAAa4K,EAAYmB,GAAU3d,GACrC6c,EAAYra,aAAa,KAAMmb,EAAO3Z,WAEnC,IAGkB,UAAzB6Y,EAAYP,UAAmC,SAAXkB,GAA+B,SAAVxZ,GAAoB4Z,EAAUG,WAAaxF,GAAaiF,KAAY9E,GAAY8E,IACvI,SAKa,OAATxa,GACF6Z,EAAYra,aAAaQ,EAAM,IAGjC4X,GAAiB5X,EAAM6Z,GAIzB,GAAKe,EAAUG,SAKf,GAAIjF,IAAmBjG,EAAW,OAAQ7O,GACxC4W,GAAiB5X,EAAM6Z,QAKzB,GAAIhK,EAAW,YAAagK,EAAYJ,eAAiB5J,EAAWG,EAAa,MAAQlB,EAAUpB,EAAWiJ,IAAkB,KAAO,IAAK,KAAM3V,GAChJ4W,GAAiB5X,EAAM6Z,OADzB,CAMI9D,KACF/U,EAAQwO,EAAcxO,EAAO8T,GAAkB,KAC/C9T,EAAQwO,EAAcxO,EAAO+T,GAAa,MAI5C,IAAIwF,EAAQV,EAAYP,SAASjK,cACjC,GAAKiL,GAAkBC,EAAOC,EAAQxZ,GAKtC,IACMyY,EACFI,EAAYsB,eAAe1B,EAAczZ,EAAMgB,GAG/C6Y,EAAYra,aAAaQ,EAAMgB,GAGjC+N,EAASgE,EAAUE,SACnB,MAAOvT,OAIXia,GAAa,0BAA2BE,EAAa,QAQnDuB,GAAqB,SAASA,EAAmBC,GACnD,IAAIC,OAAa,EACbC,EAAiBxC,GAAgBsC,GAKrC,IAFA1B,GAAa,0BAA2B0B,EAAU,MAE3CC,EAAaC,EAAeC,YAEjC7B,GAAa,yBAA0B2B,EAAY,MAG/CvB,GAAkBuB,KAKlBA,EAAWpH,mBAAmBX,GAChC6H,EAAmBE,EAAWpH,SAIhCuG,GAAoBa,IAItB3B,GAAa,yBAA0B0B,EAAU,OAsQnD,OA3PAtI,EAAU0I,SAAW,SAAUxD,EAAOf,GACpC,IAAIsB,OAAO,EACPkD,OAAe,EACf7B,OAAc,EACd8B,OAAU,EACVC,OAAa,EASjB,GALK3D,IACHA,EAAQ,eAIW,iBAAVA,IAAuByB,GAAQzB,GAAQ,CAEhD,GAA8B,mBAAnBA,EAAM7R,SACf,MAAM8J,EAAgB,8BAGtB,GAAqB,iBADrB+H,EAAQA,EAAM7R,YAEZ,MAAM8J,EAAgB,mCAM5B,IAAK6C,EAAUI,YAAa,CAC1B,GAAqC,WAAjClB,EAAQnX,EAAO+gB,eAA6D,mBAAxB/gB,EAAO+gB,aAA6B,CAC1F,GAAqB,iBAAV5D,EACT,OAAOnd,EAAO+gB,aAAa5D,GAG7B,GAAIyB,GAAQzB,GACV,OAAOnd,EAAO+gB,aAAa5D,EAAMN,WAIrC,OAAOM,EAgBT,GAZKhC,IACHgB,GAAaC,GAIfnE,EAAUE,QAAU,GAGC,iBAAVgF,IACTxB,IAAW,GAGTA,SAEG,GAAIwB,aAAiBxE,EAKI,KAD9BiI,GADAlD,EAAOR,GAAc,gBACD7D,cAAcO,WAAWuD,GAAO,IACnC/E,UAA4C,SAA1BwI,EAAapC,SAE9Cd,EAAOkD,EAC4B,SAA1BA,EAAapC,SACtBd,EAAOkD,EAGPlD,EAAKzZ,YAAY2c,OAEd,CAEL,IAAKvF,KAAeJ,KAAuBC,IAAkBM,KAA+C,IAAxB2B,EAAMpJ,QAAQ,KAChG,OAAOuF,GAAqBA,GAAmBxB,WAAWqF,GAASA,EAOrE,KAHAO,EAAOR,GAAcC,IAInB,OAAO9B,GAAa,KAAO9B,GAK3BmE,GAAQtC,IACVuB,GAAae,EAAKsD,YAOpB,IAHA,IAAIC,EAAehD,GAAgBtC,GAAWwB,EAAQO,GAG/CqB,EAAckC,EAAaP,YAEH,IAAzB3B,EAAY3G,UAAkB2G,IAAgB8B,GAK9C5B,GAAkBF,KAKlBA,EAAY3F,mBAAmBX,GACjC6H,GAAmBvB,EAAY3F,SAIjCuG,GAAoBZ,GAEpB8B,EAAU9B,GAMZ,GAHA8B,EAAU,KAGNlF,GACF,OAAOwB,EAIT,GAAI9B,GAAY,CACd,GAAIC,GAGF,IAFAwF,EAAanH,GAAuB7Y,KAAK4c,EAAKrE,eAEvCqE,EAAKsD,YAEVF,EAAW7c,YAAYyZ,EAAKsD,iBAG9BF,EAAapD,EAYf,OATInC,KAMFuF,EAAalH,GAAW9Y,KAAKwX,EAAkBwI,GAAY,IAGtDA,EAGT,IAAII,EAAiBhG,GAAiBwC,EAAKb,UAAYa,EAAKM,UAQ5D,OALI/C,KACFiG,EAAiBxM,EAAcwM,EAAgBlH,GAAkB,KACjEkH,EAAiBxM,EAAcwM,EAAgBjH,GAAa,MAGvDX,IAAsBkC,GAAsBlC,GAAmBxB,WAAWoJ,GAAkBA,GASrGjJ,EAAUkJ,UAAY,SAAU/E,GAC9BD,GAAaC,GACbjB,IAAa,GAQflD,EAAUmJ,YAAc,WACtBnF,GAAS,KACTd,IAAa,GAaflD,EAAUoJ,iBAAmB,SAAUte,EAAK6c,EAAM1Z,GAE3C+V,IACHE,GAAa,IAGf,IAAIsD,EAAQpL,EAAkBtR,GAC1B2c,EAASrL,EAAkBuL,GAC/B,OAAOJ,GAAkBC,EAAOC,EAAQxZ,IAU1C+R,EAAUqJ,QAAU,SAAUxC,EAAYyC,GACZ,mBAAjBA,IAIX1H,GAAMiF,GAAcjF,GAAMiF,IAAe,GACzC3K,EAAU0F,GAAMiF,GAAayC,KAU/BtJ,EAAUuJ,WAAa,SAAU1C,GAC3BjF,GAAMiF,IACR7K,EAAS4F,GAAMiF,KAUnB7G,EAAUwJ,YAAc,SAAU3C,GAC5BjF,GAAMiF,KACRjF,GAAMiF,GAAc,KASxB7G,EAAUyJ,eAAiB,WACzB7H,GAAQ,IAGH5B,EAGID,GAjuCoErY,I,mBCDjFE,EAAOD,QAAU,EAAQ,K,iCCAzB,gFAyBI+hB,EAAqB,WASrB,SAASA,EAAIC,EAAQ1S,EAAO2S,QACV,IAAV3S,IAAoBA,EAAQ,IAAI,UACnB,IAAb2S,IAAuBA,EAzBV,GA0BjBpa,KAAKoa,SAAWA,EAEhBpa,KAAKqa,OAAS,GACdra,KAAKqa,OAAO9gB,KAAK,CAAE4gB,OAAQA,EAAQ1S,MAAOA,IAyS9C,OAjSAyS,EAAI/gB,UAAUmhB,cAAgB,SAAUC,GAGpC,IAFA,IAAIpR,EACA/H,EAAO,GACFC,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCD,EAAKC,EAAK,GAAKjB,UAAUiB,GAE7B,IAAImZ,EAAMxa,KAAKya,cACXD,GAAOA,EAAIL,QAAUK,EAAIL,OAAOI,KAC/BpR,EAAKqR,EAAIL,QAAQI,GAAQ3gB,MAAMuP,EAAI,IAAiB/H,EAAM,CAACoZ,EAAI/S,UAMxEyS,EAAI/gB,UAAUuhB,YAAc,SAAUjK,GAClC,OAAOzQ,KAAKoa,SAAW3J,GAK3ByJ,EAAI/gB,UAAUiN,WAAa,SAAU+T,GACvBna,KAAKya,cACXN,OAASA,GAKjBD,EAAI/gB,UAAUwhB,UAAY,WAEtB,IAAIhX,EAAQ3D,KAAK4a,WACbC,EAAclX,EAAM1K,OAAS,EAAI0K,EAAMA,EAAM1K,OAAS,GAAGwO,WAAQ/J,EACjE+J,EAAQ,IAAM+G,MAAMqM,GAKxB,OAJA7a,KAAK4a,WAAWrhB,KAAK,CACjB4gB,OAAQna,KAAK8a,YACbrT,MAAOA,IAEJA,GAKXyS,EAAI/gB,UAAU4hB,SAAW,WACrB,YAAiCrd,IAA1BsC,KAAK4a,WAAWnO,OAK3ByN,EAAI/gB,UAAU6hB,UAAY,SAAUC,GAChC,IAAIxT,EAAQzH,KAAK2a,YACjB,IACIM,EAASxT,GAEb,QACIzH,KAAK+a,aAMbb,EAAI/gB,UAAU2hB,UAAY,WACtB,OAAO9a,KAAKya,cAAcN,QAG9BD,EAAI/gB,UAAU+hB,SAAW,WACrB,OAAOlb,KAAKya,cAAchT,OAG9ByS,EAAI/gB,UAAUyhB,SAAW,WACrB,OAAO5a,KAAKqa,QAGhBH,EAAI/gB,UAAUshB,YAAc,WACxB,OAAOza,KAAKqa,OAAOra,KAAKqa,OAAOphB,OAAS,IAK5CihB,EAAI/gB,UAAUoO,iBAAmB,SAAU1B,EAAW2B,GAClD,IAAIG,EAAW3H,KAAKmb,aAAe,cAC/BC,EAAY5T,EAKhB,IAAKA,EAAM,CACP,IAAI6T,OAAqB,EACzB,IACI,MAAM,IAAIjf,MAAM,6BAEpB,MAAOyJ,GACHwV,EAAqBxV,EAEzBuV,EAAY,CACRpQ,kBAAmBnF,EACnBwV,mBAAoBA,GAI5B,OADArb,KAAKsa,cAAc,mBAAoBzU,EAAW,IAAiB,GAAIuV,EAAW,CAAExT,SAAUD,KACvFA,GAKXuS,EAAI/gB,UAAU6O,eAAiB,SAAUxK,EAASyK,EAAOT,GACrD,IAAIG,EAAW3H,KAAKmb,aAAe,cAC/BC,EAAY5T,EAKhB,IAAKA,EAAM,CACP,IAAI6T,OAAqB,EACzB,IACI,MAAM,IAAIjf,MAAMoB,GAEpB,MAAOqI,GACHwV,EAAqBxV,EAEzBuV,EAAY,CACRpQ,kBAAmBxN,EACnB6d,mBAAoBA,GAI5B,OADArb,KAAKsa,cAAc,iBAAkB9c,EAASyK,EAAO,IAAiB,GAAImT,EAAW,CAAExT,SAAUD,KAC1FA,GAKXuS,EAAI/gB,UAAU+O,aAAe,SAAUnM,EAAOyL,GAC1C,IAAIG,EAAW3H,KAAKmb,aAAe,cAEnC,OADAnb,KAAKsa,cAAc,eAAgBve,EAAO,IAAiB,GAAIyL,EAAM,CAAEI,SAAUD,KAC1EA,GAKXuS,EAAI/gB,UAAUmiB,YAAc,WACxB,OAAOtb,KAAKmb,cAKhBjB,EAAI/gB,UAAUoiB,cAAgB,SAAUC,EAAYhU,GAChD,IAAIgT,EAAMxa,KAAKya,cACf,GAAKD,EAAI/S,OAAU+S,EAAIL,OAAvB,CAGA,IAAIhR,EAAMqR,EAAIL,OAAO/R,YAAcoS,EAAIL,OAAO/R,cAAiB,GAAImB,EAAKJ,EAAGsS,iBAAkBA,OAA0B,IAAPlS,EAAgB,KAAOA,EAAIE,EAAKN,EAAGuS,eAAgBA,OAAwB,IAAPjS,EApLlK,IAoLwMA,EAC1N,KAAIiS,GAAkB,GAAtB,CAGA,IAAIC,EAAY,cACZC,EAAmB,IAAiB,CAAED,UAAWA,GAAaH,GAC9DK,EAAkBJ,EAChB,aAAe,WAAc,OAAOA,EAAiBG,EAAkBpU,MACvEoU,EACkB,OAApBC,GAGJrB,EAAI/S,MAAM8T,cAAcM,EAAiBlR,KAAKmR,IAAIJ,EA3LpC,SAgMlBxB,EAAI/gB,UAAU4iB,QAAU,SAAU5R,GAC9B,IAAIqQ,EAAMxa,KAAKya,cACVD,EAAI/S,OAGT+S,EAAI/S,MAAMsU,QAAQ5R,IAKtB+P,EAAI/gB,UAAU6iB,QAAU,SAAUC,GAC9B,IAAIzB,EAAMxa,KAAKya,cACVD,EAAI/S,OAGT+S,EAAI/S,MAAMuU,QAAQC,IAKtB/B,EAAI/gB,UAAU+iB,UAAY,SAAUC,GAChC,IAAI3B,EAAMxa,KAAKya,cACVD,EAAI/S,OAGT+S,EAAI/S,MAAMyU,UAAUC,IAKxBjC,EAAI/gB,UAAUijB,OAAS,SAAUrd,EAAKN,GAClC,IAAI+b,EAAMxa,KAAKya,cACVD,EAAI/S,OAGT+S,EAAI/S,MAAM2U,OAAOrd,EAAKN,IAK1Byb,EAAI/gB,UAAUkjB,SAAW,SAAUtd,EAAKsL,GACpC,IAAImQ,EAAMxa,KAAKya,cACVD,EAAI/S,OAGT+S,EAAI/S,MAAM4U,SAAStd,EAAKsL,IAK5B6P,EAAI/gB,UAAUmjB,WAAa,SAAU7e,EAAM8e,GACvC,IAAI/B,EAAMxa,KAAKya,cACVD,EAAI/S,OAGT+S,EAAI/S,MAAM6U,WAAW7e,EAAM8e,IAK/BrC,EAAI/gB,UAAUqjB,eAAiB,SAAUvB,GACrC,IAAIT,EAAMxa,KAAKya,cACXD,EAAI/S,OAAS+S,EAAIL,QACjBc,EAAST,EAAI/S,QAMrByS,EAAI/gB,UAAUsjB,IAAM,SAAUxB,GAC1B,IAAIyB,EAASC,EAAS3c,MACtB,IACIib,EAASjb,MAEb,QACI2c,EAASD,KAMjBxC,EAAI/gB,UAAU0P,eAAiB,SAAUC,GACrC,IAAIqR,EAASna,KAAK8a,YAClB,IAAKX,EACD,OAAO,KAEX,IACI,OAAOA,EAAOtR,eAAeC,GAEjC,MAAOhF,GAEH,OADA,IAAOvC,KAAK,+BAAiCuH,EAAYC,GAAK,yBACvD,OAMfmR,EAAI/gB,UAAUyjB,UAAY,SAAUC,EAAmBC,GAEnD,YADqB,IAAjBA,IAA2BA,GAAe,GACvC9c,KAAK+c,qBAAqB,YAAaF,EAAmBC,IAKrE5C,EAAI/gB,UAAU6jB,aAAe,WACzB,OAAOhd,KAAK+c,qBAAqB,iBAMrC7C,EAAI/gB,UAAU4jB,qBAAuB,SAAUxC,GAE3C,IADA,IAAInZ,EAAO,GACFC,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCD,EAAKC,EAAK,GAAKjB,UAAUiB,GAE7B,IAAI4b,EAAUC,IACVC,EAASF,EAAQzb,WAErB,GAAI2b,GAAUA,EAAOC,YAAmD,mBAA9BD,EAAOC,WAAW7C,GACxD,OAAO4C,EAAOC,WAAW7C,GAAQ3gB,MAAMoG,KAAMoB,GAEjD,IAAOG,KAAK,oBAAsBgZ,EAAS,uCAExCL,EAxTa,GA4TjB,SAASgD,IACZ,IAAID,EAAU,cAKd,OAJAA,EAAQzb,WAAayb,EAAQzb,YAAc,CACvC4b,WAAY,GACZC,SAAK3f,GAEFuf,EAOJ,SAASN,EAASU,GACrB,IAAIC,EAAWJ,IACXR,EAASa,EAAkBD,GAE/B,OADAE,EAAgBF,EAAUD,GACnBX,EASJ,SAASe,IAEZ,IAAIH,EAAWJ,IAMf,OAJKQ,EAAgBJ,KAAaC,EAAkBD,GAAU5C,YAxWzC,IAyWjB8C,EAAgBF,EAAU,IAAIpD,GAG9B,cAUR,SAAgCoD,GAC5B,IAII,IACIK,EADS,YAAevlB,EAAQ,UACVwlB,OAE1B,IAAKD,EACD,OAAOJ,EAAkBD,GAG7B,IAAKI,EAAgBC,IAAiBJ,EAAkBI,GAAcjD,YAlYrD,GAkY+E,CAC5F,IAAImD,EAAsBN,EAAkBD,GAAU7C,cACtD+C,EAAgBG,EAAc,IAAIzD,EAAI2D,EAAoB1D,OAAQ,IAAM3L,MAAMqP,EAAoBpW,SAGtG,OAAO8V,EAAkBI,GAE7B,MAAOta,GAEH,OAAOka,EAAkBD,IA9BlBQ,CAAuBR,GAG3BC,EAAkBD,GAkC7B,SAASI,EAAgBT,GACrB,SAAIA,GAAWA,EAAQzb,YAAcyb,EAAQzb,WAAW6b,KAWrD,SAASE,EAAkBN,GAC9B,OAAIA,GAAWA,EAAQzb,YAAcyb,EAAQzb,WAAW6b,IAC7CJ,EAAQzb,WAAW6b,KAE9BJ,EAAQzb,WAAayb,EAAQzb,YAAc,GAC3Cyb,EAAQzb,WAAW6b,IAAM,IAAInD,EACtB+C,EAAQzb,WAAW6b,KAOvB,SAASG,EAAgBP,EAASI,GACrC,QAAKJ,IAGLA,EAAQzb,WAAayb,EAAQzb,YAAc,GAC3Cyb,EAAQzb,WAAW6b,IAAMA,GAClB,M,qDCnbJ,SAASU,EAAiBC,GAC/B,IAAKA,EAASC,GACZ,MAAMD,EAER,OAAOA,EAGF,SAASE,EAAkBC,GAChC,IAAK,IAAIplB,EAAI,EAAGA,EAAIolB,EAAUllB,SAAUF,EACtC,IAAKolB,EAAUplB,GAAGklB,GAChB,MAAME,EAAUplB,GAGpB,OAAOolB,EAGF,SAASC,EAAYC,GAC1B,MAAUC,WAAaD,EAGlB,SAASE,EAASnc,EAAKoc,EAAcvI,GAE1C,YAFuD,IAA3BuI,MAAU,SAAiB,IAAbvI,MAAO,MACjDuI,EAAQ,eAAiBC,QAAQpgB,IAAI,aAC9BqgB,MAAMtc,EAAK,CAChBuc,YAAa,UACbH,QAASA,EACTjE,OAAQ,OACRtE,KAAMA,IAIH,SAAS2I,EAAaxc,EAAKyc,GAIhC,OADS,IAAItR,OADC,oCAAoCsR,EAApC,uFAEJrR,KAAKpL,GAGV,SAAS0c,IACdC,QAAQC,aAAa,GAAI7jB,SAAS8jB,MAAO1mB,OAAO2mB,SAASC,SAAW5mB,OAAO2mB,SAASE,QAG/E,SAASC,EAAWC,EAAWC,GACpC,IAAIC,EAAYjnB,OAAOknB,eACvBD,EAAUE,kBACV,IAAIC,EAAQxkB,SAASykB,cACrBD,EAAME,SAASP,EAAW,GACD,UAArBC,EAAQxI,SACV4I,EAAMG,OAAOP,EAASA,EAAQlJ,WAAWpd,QAEzC0mB,EAAMG,OAAOP,EAASA,EAAQvI,YAAY/d,QAE5CumB,EAAUO,SAASJ,GAGd,SAASK,EAAUpkB,EAAM4B,EAASyiB,QAAkB,IAAlBA,OAAW,GAClD,IAAIC,EAAc,GACdC,EAAe,GAQnB,OAPIF,IACFC,EAAW,iJAIXC,EAAe,qBAEjB,2BAAkCvkB,EAAlC,IAA0CukB,EAA1C,kBAAwE3iB,EAAU0iB,EAAlF,SAzEF,iR,gCCAA,iHAUaE,EAAgB,IAChBC,EAAgB,IAGhBC,EAAgBlC,YAAY,wB,iCCdzC,wVAiPImC,EAjPJ,iCAWIC,GAAkB,EAClBC,EAAuBC,aAAaC,QAAQ,yBAuChD,SAASC,IACPC,EAAE,QAAQC,IAAI,iBAAkBD,EAAE,UAAUE,cAAgB,MAsFvD,SAASC,EAASC,GAEvBJ,EAAE1lB,UAAUuN,OAAM,WAEhBmY,EAAE,QAAQI,EAAT,SAAsBC,SAAS,UAChCL,EAAE,QAAQI,EAAT,SAAsBC,SAAS,UAGhCL,EAAEtoB,QAAQ4oB,GAAG,UAAU,WAErB,IAAIC,EAAmBP,EAAE,QAAQQ,SAAS,oBAC1CX,aAAaY,QAAQ,wBAAyBhd,KAAKC,UAAU6c,IAEhD,WAATH,GACFM,eAAeD,QAAQ,mBAAoB/oB,OAAO2mB,gBAOnD,SAASsC,IACdX,EAAE1lB,UAAUuN,OAAM,WAChBmY,EAAE,sBAAsBY,aAAa,CAACC,wBAAyB,kBAC/DhD,MAAMiD,KAAKC,iBACRnlB,MAAK,SAAAuhB,GAAQ,OAAIA,EAAS6D,UAC1BplB,MAAK,SAAAhE,GACAA,EAAKmpB,gBACPf,EAAE,uBAAuBnS,KAAKjW,EAAKmpB,cAAcjQ,QAAQmQ,kBACzDjB,EAAE,wBAAwBnS,KAAKjW,EAAKmpB,cAAcG,SAASD,kBAC3DjB,EAAE,sBAAsBnS,KAAKjW,EAAKmpB,cAAcI,OAAOF,kBACvDjB,EAAE,0BAA0BnS,KAAKjW,EAAKmpB,cAAcK,UAAUH,kBAC9DjB,EAAE,sBAAsBnS,KAAKjW,EAAKmpB,cAAcM,OAAOJ,kBACvDjB,EAAE,uBAAuBnS,KAAKjW,EAAKmpB,cAAcvY,QAAQyY,mBAEvDrpB,EAAK0pB,wBACPC,IAAIC,OAAOC,wBAAwB,8BAA+B7pB,EAAK0pB,sBAAsBxQ,SAC7FyQ,IAAIC,OAAOC,wBAAwB,+BAAgC7pB,EAAK0pB,sBAAsBJ,UAC9FK,IAAIC,OAAOC,wBAAwB,6BAA8B7pB,EAAK0pB,sBAAsBH,eAIpGhB,EAAS,QAGJ,SAASuB,EAAiBtD,EAAOzhB,GACtCqjB,EAAE,uCAAuC/R,KAAKmQ,GAC9C4B,EAAE,2CAA2C/R,KAAKtR,GAClDqjB,EAAE,0BAA0B2B,MAAM,QAG7B,SAASC,EAAiBxD,EAAOzhB,EAASyd,GAC/C4F,EAAE,uCAAuC/R,KAAKmQ,GAC9C4B,EAAE,2CAA2C/R,KAAKtR,GAClDqjB,EAAE,wDAAwD7hB,KAAK,SAAS,WACtEic,IACA4F,EAAE,0BAA0B2B,MAAM,QAClC3B,EAAE,wDAAwD6B,OAAO,YAEnE7B,EAAE,0BAA0B2B,MAAM,QAG7B,SAASG,EAAc1D,EAAOvQ,GACnCmS,EAAE,oCAAoC/R,KAAKmQ,GAC3C4B,EAAE,mCAAmCnS,KAAKA,GAC1CmS,EAAE,uBAAuB2B,MAAM,QAG1B,SAASI,EAAgCC,GAC9CA,EAAa1B,GAAG,WAAW,WACzBN,EAAE,6BAA6BC,IAAI,SAAU,WAC7CD,EAAE,6BAA6BM,GAAG,SAAS,SAAAplB,GAGzC,IAFA,IAAM+mB,EAAWD,EAAa5B,KAAK8B,OAC/BpR,EAAU,gCACL5Y,EAAI,EAAGA,GAAK+pB,EAASE,QAASjqB,EAAG,CACxC,IAAIkqB,EAAW,GACXlqB,IAAM+pB,EAAS7B,KAAO,IACxBgC,EAAW,YAEbtR,GAAW,kBAAkB5Y,EAAtB,KAA4BkqB,EAA5B,IAAwClqB,EAAxC,YAET4Y,GAAW,qBAAqBmR,EAASE,MAAlC,UACPnC,EAAE9kB,EAAME,QAAQinB,QAAQ,CACtB,MAAS,eACT,QAAWvR,EACX,MAAQ,EACR,UAAa,MACb,WAAcyQ,IAAIC,OAAOc,YAE3BtC,EAAE9kB,EAAME,QAAQinB,QAAQ,QACxBrC,EAAE,iBAAiBM,GAAG,UAAU,WAC9BN,EAAE,6BAA6BqC,QAAQ,QACvC,IAAME,EAAaC,SAASxC,EAAE7gB,MAAMsjB,OAAS,EAC7CT,EAAa5B,KAAKmC,GAAYG,KAAK,iBAKzCV,EAAa1B,GAAG,aAAa,WAC3BN,EAAE,6BAA6BqC,QAAQ,WAMpC,SAASM,EAAkBC,GAChClD,EAAiBkD,EAGZ,SAASC,EAAiBC,GAC/B,OAAOpD,EAAeoD,QA3OKjmB,IAAzB+iB,IACFD,EAAkBlc,KAAKqB,MAAM8a,IAG/BI,EAAE1lB,UAAUgmB,GAAG,oBAAoB,WAOjC,GALIN,EAAEtoB,QAAQqrB,QAAUvD,MACtBG,GAAkB,GAIhBA,EAAiB,CAGnB,IAAIqD,EAAoBhD,EAAE,uCAAuCC,IAAI,cACjEgD,EAAwBjD,EAAE,+EAA+EC,IAAI,cACjHD,EAAE,uCAAuCC,IAAI,aAAc,QAC3DD,EAAE,+EAA+EC,IAAI,aAAc,QACnGD,EAAE,QAAQK,SAAS,oBACnBL,EAAE,uBAAuBC,IAAI,aAAc,WAE3CnjB,YAAW,WACTkjB,EAAE,uCAAuCC,IAAI,aAAc+C,GAC3DhD,EAAE,+EAA+EC,IAAI,aAAcgD,UAKzGjD,EAAE1lB,UAAUgmB,GAAG,0BAA0B,SAAAplB,GACnC8kB,EAAE,QAAQ+C,SAAWvD,KACvBQ,EAAE,uBAAuBC,IAAI,aAAc,cAI/CD,EAAE1lB,UAAUgmB,GAAG,sBAAsB,SAAAplB,GACnC8kB,EAAE,uBAAuBC,IAAI,aAAc,aAO7CD,EAAE1lB,UAAUuN,OAAM,WAGhBmY,EAAE,oBAAoBkD,OAAM,SAAAhoB,GAC1B,IAAIioB,EAAiBzC,eAAeZ,QAAQ,oBACxCqD,IACFjoB,EAAMkoB,iBACN1rB,OAAO2mB,SAAW8E,MAMtBpD,IACAC,EAAEtoB,QAAQ2rB,QAAO,WACftD,IACIC,EAAE,QAAQQ,SAAS,qBAAuBR,EAAE,QAAQ+C,SAAWvD,KACjEQ,EAAE,uBAAuBC,IAAI,aAAc,cAI/CqD,MAIAtD,EAAE,8BAA8BuD,OAAOvD,EAAE,WAEzC,IAAIwD,EAAe,KAEnB,SAASC,EAA4B5pB,GACnC,IACA,EADWS,SAASopB,kBAAkB7pB,EAAE8pB,QAAS9pB,EAAE+pB,SACnD,wDAAsB,yFAAbC,EAAa,EACpB,GAAqB,SAAjBA,EAAI3N,UAAwC,QAAjB2N,EAAI3N,SACjC,OAAO2N,EAGX,OAAO,KAQT,SAASC,EAAW5oB,EAAOsoB,GACzB,GAAIA,EAAc,CAChB,IAAIO,EAAiB/D,EAAEwD,GAAcQ,KAAK,iBACtCD,EAAe3rB,OACjBomB,YAAWuF,EAAe,GAAIA,EAAeA,EAAe3rB,OAAS,IAErEomB,YAAWgF,EAAa9K,WAAY8K,EAAaS,WAEnD/oB,EAAMkoB,kBAZVpD,EAAE1lB,UAAU4oB,OAAM,SAAArpB,GAChB2pB,EAAeC,EAA4B5pB,MAiB7CmmB,EAAE1lB,UAAU4pB,UAAS,SAAArqB,IACdA,EAAEsqB,SAAWtqB,EAAEuqB,UAClBN,EAAWjqB,EAAG4pB,EAA4B5pB,OAI9CmmB,EAAE1lB,UAAU+pB,SAAQ,SAAAxqB,IACbA,EAAEsqB,SAAWtqB,EAAEuqB,UAAsB,MAAVvqB,EAAEqE,KAChC4lB,EAAWjqB,EAAG2pB,MAKlB,IAAIc,EAAkB,EACtBA,GAAmBtE,EAAE,gBAAgBuE,UAAY,EACjDD,GAAmBtE,EAAE,WAAWuE,UAAY,EAC5CvE,EAAEtoB,QAAQ8sB,QAAO,WACXxE,EAAEtoB,QAAQ+sB,YAAcH,EAC1BtE,EAAE,gBAAgBC,IAAI,UAAW,SAEjCD,EAAE,gBAAgBC,IAAI,UAAW,cAsHvC,IAAIyE,EAA2B,GAExB,SAASC,EAA4BC,GAC1CF,EAA2BE,EAGtB,SAASC,IACd,OAAOH,I,gHCzPF,SAAeI,IAAtB,+B,oCAAO,WAA6BC,GAA7B,QAUIC,EAOAC,EAKAC,EAUAC,EAhCJ,SAAAC,EAAA,6DAgCID,EAhCJ,WAoCH,IAHA,IAAIE,EAAQ,GACRC,EAAc,IAAI5Y,OAAO,WACzB6Y,EAAOD,EAAYE,KAAK9tB,OAAO2mB,SAASoH,MACrCF,GACLF,EAAM3sB,KAAK8pB,SAAS+C,EAAK,KACzBA,EAAOD,EAAYE,KAAK9tB,OAAO2mB,SAASoH,MAG1C,GADAR,IACqB,IAAjBI,EAAMjtB,OACRstB,EAAuBlD,SAAS6C,EAAM,IACtCH,EAAaF,EAAcK,EAAM,UAC5B,GAAIA,EAAM,GAAKA,EAAMA,EAAMjtB,OAAS,GAAI,CAC7CstB,EAAuBlD,SAAS6C,EAAM,IACtCH,EAAaF,EAAcK,EAAM,KACjC,IAAK,IAAIntB,EAAImtB,EAAM,GAAK,EAAGntB,GAAKmtB,EAAMA,EAAMjtB,OAAS,KAAMF,EACzD8sB,EAAc9sB,KA1BXgtB,EAtBJ,SAsBiBS,GAChB3F,EAAE2F,GAAYC,QAAQ,gBAAgBxtB,OAAS,GACjD4nB,EAAE,cAAc6F,QAAQ,CACtBpB,UAAWzE,EAAE2F,GAAYG,SAASnM,IAAM,IACvC,MATEsL,EAjBJ,WAkBHS,EAAuB,KACvB1F,EAAE,mCAAmCC,IAAI,mBAAoB,YATtD+E,EAVJ,SAUkB9sB,GACrB,IAAI6tB,EAAS/F,EAAE,mCAAmC9nB,EAApC,MAEd,OADA6tB,EAAO9F,IAAI,mBAAoB+F,GACxBD,QAbJ,IAA6BhB,OAAkB,GAA/C,SAEC,oDAFD,OAKDW,EAAuB,KAEvBM,EAAqB,qBA8CzBhG,EAAE1lB,UAAUuN,OAAM,WAEhBmY,EAAE,QAAQiG,MAAK,SAAC/tB,EAAGguB,GACjBC,KAAKC,eAAeF,GAChBnB,GACFoB,KAAKE,iBAAiBH,EAAO,CAACI,YAAY,OAIzCvB,IAOL/E,EAAE,QAAQkD,OAAM,SAAA/Z,GACd,GAAIA,EAAI/N,OAAOmrB,UAAUC,SAAS,aAAc,CAC9C,IAAIjB,EAAO/C,SAASxC,EAAE7W,EAAI/N,QAAQxD,KAAK,gBACvC,GAAIuR,EAAIsd,UAAYf,GAAwBH,EAAOG,EAAsB,CACvE,IAAIgB,EAAYhB,EAChBT,IACA,IAAK,IAAI/sB,EAAIwuB,EAAWxuB,GAAKqtB,IAAQrtB,EACnC8sB,EAAc9sB,GAEhBwtB,EAAuBgB,EACvBhvB,OAAO2mB,SAASoH,KAAhB,KAA4BiB,EAA5B,KAA0CnB,OAE1CN,IACAD,EAAcO,GACd7tB,OAAO2mB,SAASoH,KAAhB,KAA4BF,EAC5BL,EAAa/b,EAAI/N,aAEV4kB,EAAE7W,EAAI/N,QAAQwqB,QAAQ,YAAYxtB,SAC3C6sB,IACAhH,kBAKJ+B,EAAEtoB,QAAQ4oB,GAAG,cAAc,kBAAM6E,OAGjCroB,YAAW,WACTqoB,WAjGC,6C,uPCEA,SAAewB,EAAtB,oC,oCAAO,WAA8BC,EAAQC,GAAtC,MAOIC,EAPJ,SAAA1B,EAAA,6DAOI0B,EAPJ,WAQH,MAAO,CAAC,CACN/rB,KAAM,SACNgsB,OAAQ,SAAS9Y,EAAM+Y,EAAW3lB,GAuBhC,OAAO4lB,EAASC,OAAOC,uBAAuBlZ,GAlB5B,SAACmZ,EAAYjb,EAAOkb,EAAMC,GAC1Cnb,EAAQob,iBAAOpb,GACf,IAAIqb,GAAQH,EAAKlb,MAAM,oBAAsB,IAAI,GAEjD,GAAIkb,EAAKI,SALK,WAKgB,CAC5B,IAAIC,EAAYL,EAAK5b,QANT,qBAMwCrT,OACpDivB,EAAOA,EAAK1oB,MAAM,EAAG+oB,GAAa,QAAUL,EAAK1oB,MAAM+oB,QAEvDL,EAAOA,EAAK1oB,MAAM,GAAI,GAAK,iBAG7B,OAAI6oB,GAAQrB,KAAKwB,YAAYH,GACpBH,EAAOlB,KAAKyB,UAAUJ,EAAMrb,GAAOvO,MAAQ0pB,EAE3CD,EAAOlb,EAAQmb,IAlBf,sBACC,gBACA,SAbb,SAEgB,+BAFhB,cAEDL,EAFC,gBAGC,oDAHD,OAsCLjH,EAAE1lB,UAAUuN,OAAM,WAChB,IAAImf,EAAY,IAAIC,EAASY,UAAU,CACrCC,QAAQ,EACRvL,WAAY,CAACuK,KAEfjJ,MAAMgJ,GACHjrB,KAAKshB,KACLthB,MAAK,SAAAuhB,GAAQ,OAAIA,EAASlP,UAC1BrS,MAAK,SAAAhE,GACJooB,EAAE4G,GAAQvG,SAAS,gBACnBL,EAAE4G,GAAQ/Y,KAAK0T,IAAIC,OAAOc,UAAU0E,EAAUe,SAASnwB,QAL3D,OAOS,WACLooB,EAAE4G,GAAQ3Y,KAAK,wCAnDhB,4C,sBAyDA,SAAe+Z,EAAtB,oC,oCAAO,WAA6BpB,EAAQqB,GAArC,qBAAA7C,EAAA,sEAEW,8BAFX,OAED8C,EAFC,OAIDC,EAAS,IAAID,EAAIE,OACjBC,EAAcF,EAAOrjB,MAAMmjB,EAAY,CAACK,KAAK,IAC7CC,EAAkBF,EAAYG,QAAQN,EAAIO,cAAe,IAC7DzI,EAAE4G,GAAQvG,SAAS,WACnBL,EAAE4G,GAAQ/Y,KAAK0T,IAAIC,OAAOc,UAAUiG,EAAgBvlB,aAGpDgd,EAAE,eAAe0I,QAAQC,SACzB3I,EAAE,mBAAmB2I,SAZhB,6C,sBAgBA,SAASC,EAAUhC,EAAQiC,GAEhC7I,EAAE1lB,UAAUuN,OAAM,WAChBgW,MAAMgL,GACHjtB,KAAKshB,KACLthB,MAAK,SAAAuhB,GAAQ,OAAIA,EAASlP,UAC1BrS,MAAK,SAAAhE,GACJowB,EAAcpB,EAAQhvB,MAJ1B,OAMS,WACLooB,EAAE4G,GAAQ3Y,KAAK,wCAMhB,SAAS6a,EAAUlC,EAAQmC,GAEhC/I,EAAE1lB,UAAUuN,OAAM,WAChBgW,MAAMkL,GACHntB,KAAKshB,KACLthB,MAAK,SAAAuhB,GAAQ,OAAIA,EAASlP,UAC1BrS,MAAK,SAAAhE,IAE2B,IAA3BA,EAAK6T,QADK,qBAEZuc,EAAcpB,EAAQhvB,EAAKyU,QAFf,oBAEgC,MAE5C2T,EAAE4G,GAAQvG,SAAS,kBACnBL,EAAE4G,GACC/Y,KAAK,IACL0V,OAAOvD,EAAE,eAAe/R,KAAKrW,QAXtC,OAcS,WACLooB,EAAE4G,GAAQ3Y,KAAK,0C,gHC3GhB,SAAe+a,EAAtB,kC,oCAAO,WAAyBC,GAAzB,kBAWIC,EAmCAC,EASAC,EASAC,EAhEJ,WAAAjE,EAAA,6DAgEIiE,EAhEJ,WAiECC,GAAWC,EAAOC,WAGtBF,IACAH,EAAgBG,KAdTF,EAvDJ,WAwDCE,GAAW,IAGfA,IACAH,EAAgBG,KAdTH,EA9CJ,SA8CoBM,GACnBC,EACFC,EAAiBF,EAEjBP,EAAWO,IAvCNP,EAXJ,SAWeO,GAClBC,GAAgB,EAEhBH,EAAOK,QAAQH,GAAK7tB,MAAK,SAAAwkB,GACvB,IAAIyJ,EAAW7J,EAAE,gBAAgB+C,QAC7B+G,EAAQhgB,KAAKmR,IAAI8O,EAAcF,EAAWzJ,EAAK4J,YAAY,GAAGjH,OAE9DkH,EAAW7J,EAAK4J,YAAYF,GAChCI,EAAOnH,MAAQkH,EAASlH,MACxBmH,EAAO3F,OAAS0F,EAAS1F,OAGzB,IAAI4F,EAAgB,CAClBC,cAAeC,EACfJ,SAAUA,GAEK7J,EAAKkK,OAAOH,GAGlBruB,QAAQF,MAAK,WACtB8tB,GAAgB,EACO,OAAnBC,IAEFT,EAAWS,GACXA,EAAiB,YAMvB3J,EAAE,iBAAiB/R,KAAKwb,IAvCtBF,EAAS,KACTD,EAAU,EACVI,GAAgB,EAChBC,EAAiB,KACjBI,EAAe,IACfG,EAASlK,EAAE,eAAe,GAC1BqK,EAAMH,EAAOK,WAAW,MARvB,UAwEa,kCAxEb,SAwEDC,EAxEC,QA0ECC,oBAAoBC,UAAYnN,YAAY,wBAElDyC,EAAE1lB,UAAUuN,OAAM,WAChBmY,EAAE,aAAakD,MAAMkG,GACrBpJ,EAAE,aAAakD,MAAMmG,GACHmB,EAAMG,YAAY1B,GACxBntB,QAAQF,MAAK,SAAAgvB,GACvBrB,EAASqB,EACT5K,EAAE,mBAAmB/R,KAAKsb,EAAOC,UAEjCN,EAAWI,MACV,SAAStoB,GAEVxC,QAAQlC,MAAM0E,MAIhBgf,EAAEtoB,QAAQ4oB,GAAG,UAAU,WACrB6I,EAAgBG,SA5Ff,6C,4JCADuB,G,OAAS,IAAIC,KAGnB,SAASC,EAAW9c,GAGlB,OADAA,GADAA,EAAOA,EAAK5B,QAAQ,KAAM,SACdA,QAAQ,KAAM,QAI5B,SAAS2e,EAAa/c,GAGpB,OADAA,GADAA,EAAOA,EAAK5B,QAAQ,QAAS,MACjBA,QAAQ,QAAS,KAI/B,SAAS4e,EAAYhd,GAQnB,IANA,IAKIid,EAKAC,EAKAC,EAfAC,EAAY,8CACZC,EAAa,+BACbC,EAAmB,gDAEnBC,EAAgB,GAEmB,QAA/BN,EAAKG,EAAU7F,KAAKvX,KAC1Bud,EAAc9yB,KAAKwyB,EAAG,IAIxB,KAAwC,QAAhCC,EAAKG,EAAW9F,KAAKvX,KAC3Bud,EAAc9yB,KAAKyyB,EAAG,IAIxB,KAA8C,QAAtCC,EAAKG,EAAiB/F,KAAKvX,KACjCud,EAAc9yB,KAAK0yB,EAAG,IAGxB,cAAqBI,EAArB,eAAoC,CAMlC,IANG,IAAIC,EAAQ,KAKXC,EAAcD,EAASpf,QAAQ,OAAQ,YAC3C,MAA6B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAvD,eAA6D,CAAxD,IAAIsf,EAAgB,KACvBD,EAAcA,EAAYrf,QAAQ,IAAIK,OAAJ,OAAkBif,EAAoB,KAA1D,OAC2BA,GAYvCF,KAFJC,GANAA,EAAcX,EAAWW,IAMCrf,QAAQ,KAAM,uBAGtC4B,EAAOA,EAAK5B,QAAQof,EAAUC,IAIlC,OAAOzd,EAGF,SAAe2d,EAAtB,oC,oCAAO,WAA8BC,EAAWjF,GAAzC,MAMID,EAoBA7B,EAYAgH,EAQAC,EA9CJ,SAAA3G,EAAA,6DA8CI2G,EA9CJ,WAiDHr0B,OAAOs0B,QAAU,CACfC,IAAK,CACHC,gBAAiB,CACfC,WAAY,MACZC,aAAa,IAGjBC,QAAS,CACPf,WAAY,CAAE,CAAC,IAAK,KAAM,CAAC,MAAO,QAClCgB,YAAa,CAAE,CAAC,KAAM,MAAO,CAAC,MAAO,QACrCC,gBAAgB,EAChBC,qBAAqB,GAEvBC,aAAc,SACd,WAAY,CACVC,OAAQ,CAAC,mBAAoB,CAAC,OAAU,IACxCC,WAAY,CAAEC,WAAW,KAQ7B,IAAI7vB,EAAOzC,SAASC,qBAAqB,QAAQ,GAC7CyB,EAAS1B,SAASQ,cAAc,UACpCkB,EAAOjB,KAAO,kBACdiB,EAAOX,IAAM,sFACb0B,EAAKpB,YAAYK,IAvCV8vB,EAtCJ,SAsCe7d,GAClB,OAAO4c,EAAOgC,aAAa5e,IAbpB6W,EA1BJ,SA0BkB7W,EAAM6e,EAAQC,EAASvF,GAK5C,OAHiD,IAA7CvZ,EAAKxC,QAAQ,6BACfwC,EAAO+c,EAAa/c,IAElBuZ,GAAQrB,KAAKwB,YAAYH,GACpBrB,KAAKyB,UAAUJ,EAAMvZ,GAAMrQ,MAE3BqQ,GA5BF0Y,EANJ,SAMmB1Y,GACtB,IAAI+Y,EAAY,IAAIC,EAASY,UAAU,CACrCC,QAAQ,EACRkF,oBAAoB,EACpBC,aAAa,EACbC,2BAA2B,IAI7Bjf,EAAOgd,EAAYhd,GAGnB,IAAIkf,EAAWnG,EAAUe,SAAS9Z,GAKlC,OAFAkf,EAAWA,EAAS9gB,QAAQ,oBAAqB,MArB9C,SAEgB,+BAFhB,cAED4a,EAFC,gBAIC,oDAJD,OA0CLmG,GAAGC,SAAW1G,EACdyG,GAAGE,YAAcxI,EACjBsI,GAAGG,KAAOzB,EAoCVjO,MAAMgO,GACHjwB,MAAK,SAAAuhB,GAAQ,OAAIA,EAAS6D,UAC1BplB,MAAK,SAAA4xB,GAEJ,IAAIC,EAAWL,GAAGtoB,MAAM0oB,GAEpBL,EAAW5L,IAAIC,OAAOc,UAAUmL,EAASnD,UAE7CtK,EAAE4G,GAAQrD,OAAO4J,GAEjBnN,EAAE,iBAAiB0N,SAASzN,IAAI,aAAc,QAE9C8L,OA5FC,6C,sBAhEPlB,EAAO8C,iBAAkB,G,iCCZzB,wDAuCO,SAASrL,EAAUzU,GACxB,OAAO8B,IAAU0I,SAASxK,GA5B5B8B,IAAUqJ,QAAQ,yBAAyB,SAAS1E,EAAM1c,GACxD,GAAsB,QAAlB0c,EAAK4B,UAAwC,QAAlBte,EAAK6f,SAAoB,CAGtD,GAAI7f,EAAK8f,UAAUkW,WAAW,eAC1Bh2B,EAAK8f,UAAUkW,WAAW,UAC1Bh2B,EAAK8f,UAAUkW,WAAW,UAC5B,OAIF,IAAIC,EAAoBtM,IAAIC,OAAOqD,8BAInC,IAAKgJ,EAAkBt1B,eAAe,aACpC,OAKF,IAAIgJ,EAAMuf,KAAKgN,sCAAsCD,EAAkBzM,UAClBxpB,EAAK8f,WAC1D9f,EAAK8f,UAAYnW,O,gHC1Bd,SAAekgB,EAAtB,oC,oCAAO,WAAuCsM,EAAWC,GAAlD,oCA6HIC,EA7HJ,SAAA7I,EAAA,6DA6HI6I,EA7HJ,SA6HkBpK,GACrB,IAAMqK,EAAKC,EAAOC,OAAOC,EAAGC,MAAMzK,GAAK,IACjC3rB,EAAIq2B,EAAWP,EAAaE,EAAI,GACtC,KAAIh2B,GAAK81B,EAAY51B,QAArB,CACA,IAAMo2B,EAAKR,EAAY91B,EAAI,GACrBu2B,EAAKT,EAAY91B,GACjBiF,EAAI+wB,EAAKM,EAAG,GAAKC,EAAG,GAAKP,EAAKO,EAAKD,EACzCE,EAAMpX,KAAK,YAAX,aAAqC6W,EAAOhxB,EAAE,IAA9C,KAAsDwxB,EAAOxxB,EAAE,IAA/D,KACA,IAAMyxB,EAAiBC,EAAc1xB,EAAE,IAAtB,IAA6B2xB,EAAe3xB,EAAE,IAC/D4xB,EAAQlhB,KAAK+gB,GACLI,MAAM,OAAQX,EAAGnzB,MAAM+zB,MAAQ,GAAK,MACpCD,MAAM,MAAOX,EAAGnzB,MAAMg0B,MAAQ,QAxInC,SAEY,8BAFZ,QAECb,EAFD,QAKFc,OAAOpB,GAAWoB,OAAO,OAAOxG,SACnC0F,EAAGc,OAAUpB,EAAb,YAAkCpF,SAG9B5F,EAAQ,IACRwB,EAAS,IACP6K,EAAS,CAACzV,IAAK,GAAI2N,MAAO,GAAI+H,OAAQ,GAAIhI,KAAM,IAGhDvZ,EAAMugB,EAAGc,OAAOpB,GACPzW,KAAK,QADR,mBAE2BxN,KAAKwlB,KAAc,IAAT/K,EAAexB,GAFpD,KAGGQ,OAAO,OACPjM,KAAK,UAJR,OAI0ByL,EAJ1B,IAImCwB,GAGzCwK,EAAUV,EAAGc,OAAO,QACP5L,OAAO,OACPjM,KAAK,QAAS,cACdA,KAAK,KAASyW,EAHjB,YAIGiB,MAAM,UAAW,GAGpCjM,EAAQA,EAAQqM,EAAO/H,KAAO+H,EAAO9H,MACrC/C,EAASA,EAAS6K,EAAOzV,IAAMyV,EAAOC,OAGtCrB,EAAY9oB,MAAK,SAASkgB,EAAGvmB,GAC3B,OAAOumB,EAAE,GAAKvmB,EAAE,IAAO,EAAIumB,EAAE,GAAKvmB,EAAE,GAAKumB,EAAE,GAAKvmB,EAAE,MAG9C0wB,EAAavB,EAAY,GACzBwB,EAAYxB,EAAYA,EAAY51B,OAAS,GAG7Cq3B,EAAI3hB,EAAIyV,OAAO,KACPjM,KAAK,YADT,aACmC8X,EAAO/H,KAD1C,KACmD+H,EAAOzV,IAD1D,KAIJwU,EAASE,EAAGqB,YACAC,WAAW,CAAC,EAAG5M,IACf/E,OAAO,CAACuR,EAAW,GAAIC,EAAU,KACjCI,OAGZjB,EAASN,EAAGwB,cACA/Q,MAAM,CAACyF,EAAQ,IACfvG,OAAO,CAACuR,EAAW,GAAIC,EAAU,KACjCI,OAGZrK,EAAO8I,EAAG9I,OACAza,GAAE,SAAA3N,GAAC,OAAIgxB,EAAOhxB,EAAE,OAChB2yB,GAAE,SAAA3yB,GAAC,OAAIwxB,EAAOxxB,EAAE,OAG1B0xB,EAAgBR,EAAG0B,WAAW,YAC9BjB,EAAiBT,EAAG2B,OAAO,OAC3BzB,EAAaF,EAAG4B,UAAS,SAAA9yB,GAAC,OAAIA,EAAE,MAAIkqB,KAG1CoI,EAAElM,OAAO,KACPjM,KAAK,QAAS,QACdA,KAAK,YAFP,gBAEoCiN,EAFpC,KAGE/rB,KACC61B,EAAG6B,WAAW/B,GACXgC,MAAM,IACNC,WAAWvB,IAEfwB,UAAU,QACVrB,MAAM,cAAe,OACrB1X,KAAK,KAAM,SACXA,KAAK,KAAM,SACXA,KAAK,YAAa,eAGpBmY,EAAElM,OAAO,KACPjM,KAAK,QAAS,QACdA,KAAK,YAFP,aAEiCyL,EAFjC,QAGEvqB,KACC61B,EAAGiC,UAAU3B,GACVwB,MAAM,IACNC,WAAWtB,IAIjBW,EAAElM,OAAO,QACPgN,MAAMvC,GACN1W,KAAK,QAAS,4BACdA,KAAK,IAAKiO,IAGNmJ,EAAQe,EAAElM,OAAO,KACPjM,KAAK,QAAS,6BACd0X,MAAM,UAAW,SAE3BzL,OAAO,UACPjM,KAAK,IAAK,GAEhBmY,EAAElM,OAAO,QACPjM,KAAK,QAAS,+BACdA,KAAK,QAASyL,GACdzL,KAAK,SAAUiN,GACfjE,GAAG,aAAa,WACfoO,EAAMM,MAAM,UAAW,MACvBf,EAAc9uB,MACd4vB,EAAQyB,aACAC,SAAS,KACTzB,MAAM,UAAW,MAE1B1O,GAAG,YAAY,WACdoO,EAAMM,MAAM,UAAW,QACvBD,EAAQyB,aACAC,SAAS,KACTzB,MAAM,UAAW,MAE1B1O,GAAG,aAAa,WACf2N,EAAc9uB,SA1HZ,6C,yDCFA,SAASuxB,EAAmBC,EAAYC,GAC7C,IAAIC,EACAC,EACe,WAAfH,GACFE,EAAgB/P,KAAKiQ,UAAUJ,EAAYC,GAC3CE,EAAehQ,KAAKkQ,cAAcJ,KAElCC,EAAgB/P,KAAKmQ,cAAcL,GACnCE,EAAehQ,KAAKoQ,cAAcN,IAEpC,IAAIO,EAAez5B,OAAO2mB,SAAS+S,SAAtB,KAAmC15B,OAAO2mB,SAASgT,SAC5D35B,OAAO2mB,SAASiT,OAClBH,GAAa,IAAIz5B,OAAO2mB,SAASiT,MAEnC,IAAMC,EAAwB,GAAGJ,EAAYN,EACvCW,EAAuB,GAAGL,EAAYL,EACtCjjB,EAAO,gBACF2jB,EADD,uCAEsBD,EAFtB,6FAMkCC,EANlC,2BAOOD,EAPP,kHAY4BA,EAZ5B,MAYuDC,EAZvD,8GAgBgCD,EAhBhC,kBAiBGC,EAjBH,mBAmBVjQ,IAAIC,OAAOM,cAAc,sCAAuCjU,GA1ClE,mC,iCCAA,yFAWO,SAAS4jB,EAAWC,QACP70B,IAAd60B,GACFC,IAAY,CAAEnwB,IAAKkwB,IAKhB,SAASE,EAAuBC,GACrCF,IAAwBE,K,gCCnB1B,sCAEIC,EAFJ,QAGA,SAAWA,GAEPA,EAAgB,QAAI,UAEpBA,EAAiB,SAAI,WAErBA,EAAiB,SAAI,WANzB,CAOGA,IAAWA,EAAS,KAKvB,IAAIC,EAA6B,WAC7B,SAASA,EAAYC,GACjB,IAAInrB,EAAQ1H,KACZA,KAAK8yB,OAASH,EAAOI,QACrB/yB,KAAKgzB,UAAY,GAEjBhzB,KAAKizB,SAAW,SAAUx0B,GACtBiJ,EAAMwrB,WAAWP,EAAOQ,SAAU10B,IAGtCuB,KAAKozB,QAAU,SAAUvxB,GACrB6F,EAAMwrB,WAAWP,EAAOU,SAAUxxB,IAGtC7B,KAAKkzB,WAAa,SAAUI,EAAO70B,GAC3BiJ,EAAMorB,SAAWH,EAAOI,UAGxB,YAAWt0B,GACXA,EAAMhC,KAAKiL,EAAMurB,SAAUvrB,EAAM0rB,UAGrC1rB,EAAMorB,OAASQ,EACf5rB,EAAM6rB,OAAS90B,EACfiJ,EAAM8rB,sBAIVxzB,KAAKyzB,eAAiB,SAAUC,GAC5BhsB,EAAMsrB,UAAYtrB,EAAMsrB,UAAUpyB,OAAO8yB,GACzChsB,EAAM8rB,oBAGVxzB,KAAKwzB,iBAAmB,WAChB9rB,EAAMorB,SAAWH,EAAOI,UAGxBrrB,EAAMorB,SAAWH,EAAOU,SACxB3rB,EAAMsrB,UAAU5mB,SAAQ,SAAUsnB,GAC1BA,EAAQC,YACRD,EAAQC,WAAWjsB,EAAM6rB,WAKjC7rB,EAAMsrB,UAAU5mB,SAAQ,SAAUsnB,GAC1BA,EAAQE,aAERF,EAAQE,YAAYlsB,EAAM6rB,WAItC7rB,EAAMsrB,UAAY,KAEtB,IACIH,EAAS7yB,KAAKizB,SAAUjzB,KAAKozB,SAEjC,MAAO14B,GACHsF,KAAKozB,QAAQ14B,IAoHrB,OAhHAk4B,EAAYz5B,UAAU0K,SAAW,WAC7B,MAAO,wBAGX+uB,EAAY/3B,QAAU,SAAU4D,GAC5B,OAAO,IAAIm0B,GAAY,SAAU/3B,GAC7BA,EAAQ4D,OAIhBm0B,EAAY93B,OAAS,SAAU+G,GAC3B,OAAO,IAAI+wB,GAAY,SAAUhxB,EAAG9G,GAChCA,EAAO+G,OAIf+wB,EAAY/0B,IAAM,SAAUg2B,GACxB,OAAO,IAAIjB,GAAY,SAAU/3B,EAASC,GACtC,GAAK+E,MAAMyF,QAAQuuB,GAInB,GAA0B,IAAtBA,EAAW56B,OAAf,CAIA,IAAI66B,EAAUD,EAAW56B,OACrB86B,EAAqB,GACzBF,EAAWznB,SAAQ,SAAU4nB,EAAMC,GAC/BrB,EAAY/3B,QAAQm5B,GACfv3B,MAAK,SAAUgC,GAChBs1B,EAAmBE,GAASx1B,EAEZ,KADhBq1B,GAAW,IAIXj5B,EAAQk5B,MAEPt3B,KAAK,KAAM3B,WAfhBD,EAAQ,SAJRC,EAAO,IAAI8S,UAAU,gDAwBjCglB,EAAYz5B,UAAUsD,KAAO,SAAUm3B,EAAaD,GAChD,IAAIjsB,EAAQ1H,KACZ,OAAO,IAAI4yB,GAAY,SAAU/3B,EAASC,GACtC4M,EAAM+rB,eAAe,CACjBG,YAAa,SAAU95B,GACnB,GAAK85B,EAML,IAEI,YADA/4B,EAAQ+4B,EAAY95B,IAGxB,MAAOY,GAEH,YADAI,EAAOJ,QARPG,EAAQf,IAYhB65B,WAAY,SAAU9xB,GAClB,GAAK8xB,EAIL,IAEI,YADA94B,EAAQ84B,EAAW9xB,IAGvB,MAAOnH,GAEH,YADAI,EAAOJ,QARPI,EAAO+G,UAgB3B+wB,EAAYz5B,UAAU+6B,MAAQ,SAAUP,GACpC,OAAO3zB,KAAKvD,MAAK,SAAU6mB,GAAO,OAAOA,IAAQqQ,IAGrDf,EAAYz5B,UAAUg7B,QAAU,SAAUC,GACtC,IAAI1sB,EAAQ1H,KACZ,OAAO,IAAI4yB,GAAY,SAAU/3B,EAASC,GACtC,IAAIwoB,EACA+Q,EACJ,OAAO3sB,EAAMjL,MAAK,SAAUgC,GACxB41B,GAAa,EACb/Q,EAAM7kB,EACF21B,GACAA,OAEL,SAAUvyB,GACTwyB,GAAa,EACb/Q,EAAMzhB,EACFuyB,GACAA,OAEL33B,MAAK,WACA43B,EACAv5B,EAAOwoB,GAIXzoB,EAAQyoB,UAIbsP,EA9KqB,I,iCCfhC,sI,iCCAA,IAAI0B,EAAJ,kCAEA,IAAIC,EAAkC,WAClC,SAASA,IAILv0B,KAAKvC,KAAO82B,EAAiBxrB,GAqBjC,OAhBAwrB,EAAiBp7B,UAAUq7B,UAAY,WACnCF,EAA2BzoB,SAAS1S,UAAU0K,SAC9CgI,SAAS1S,UAAU0K,SAAW,WAE1B,IADA,IAAIzC,EAAO,GACFC,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCD,EAAKC,GAAMjB,UAAUiB,GAEzB,IAAIkb,EAAUvc,KAAKoD,qBAAuBpD,KAE1C,OAAOs0B,EAAyB16B,MAAM2iB,EAASnb,KAMvDmzB,EAAiBxrB,GAAK,mBACfwrB,EA1B0B,I,iCCFrC,oFAKIE,EAAwB,CAAC,oBAAqB,iDAE9CC,EAAgC,WAChC,SAASA,EAAepuB,QACH,IAAbA,IAAuBA,EAAW,IACtCtG,KAAKsG,SAAWA,EAIhBtG,KAAKvC,KAAOi3B,EAAe3rB,GA6I/B,OAxIA2rB,EAAev7B,UAAUq7B,UAAY,WACjC,aAAwB,SAAUz4B,GAC9B,IAAIshB,EAAM,cACV,IAAKA,EACD,OAAOthB,EAEX,IAAI44B,EAAOtX,EAAIxU,eAAe6rB,GAC9B,GAAIC,EAAM,CACN,IAAIxa,EAASkD,EAAIvC,YACb8Z,EAAgBza,EAASA,EAAO/R,aAAe,GAC/ClG,EAAUyyB,EAAKE,cAAcD,GACjC,GAAID,EAAKG,iBAAiB/4B,EAAOmG,GAC7B,OAAO,KAGf,OAAOnG,MAIf24B,EAAev7B,UAAU27B,iBAAmB,SAAU/4B,EAAOmG,GACzD,OAAIlC,KAAK+0B,eAAeh5B,EAAOmG,IAC3B,IAAOX,KAAK,6DAA+D,YAAoBxF,KACxF,GAEPiE,KAAKg1B,gBAAgBj5B,EAAOmG,IAC5B,IAAOX,KAAK,wEAA0E,YAAoBxF,KACnG,GAEPiE,KAAKi1B,kBAAkBl5B,EAAOmG,IAC9B,IAAOX,KAAK,yEAA2E,YAAoBxF,GAAS,WAAaiE,KAAKk1B,mBAAmBn5B,KAClJ,IAENiE,KAAKm1B,kBAAkBp5B,EAAOmG,KAC/B,IAAOX,KAAK,6EAA+E,YAAoBxF,GAAS,WAAaiE,KAAKk1B,mBAAmBn5B,KACtJ,IAKf24B,EAAev7B,UAAU47B,eAAiB,SAAUh5B,EAAOmG,GAEvD,QADgB,IAAZA,IAAsBA,EAAU,KAC/BA,EAAQkzB,eACT,OAAO,EAEX,IACI,OAASr5B,GACLA,EAAM8J,WACN9J,EAAM8J,UAAU+D,QAChB7N,EAAM8J,UAAU+D,OAAO,IACY,gBAAnC7N,EAAM8J,UAAU+D,OAAO,GAAGhO,OAC1B,EAER,MAAOkI,GACH,OAAO,IAIf4wB,EAAev7B,UAAU67B,gBAAkB,SAAUj5B,EAAOmG,GAExD,YADgB,IAAZA,IAAsBA,EAAU,OAC/BA,EAAQmzB,eAAiBnzB,EAAQmzB,aAAap8B,SAG5C+G,KAAKs1B,0BAA0Bv5B,GAAOw5B,MAAK,SAAU/3B,GAExD,OAAO0E,EAAQmzB,aAAaE,MAAK,SAAUC,GAAW,OAAO,YAAkBh4B,EAASg4B,UAIhGd,EAAev7B,UAAU87B,kBAAoB,SAAUl5B,EAAOmG,GAG1D,QAFgB,IAAZA,IAAsBA,EAAU,KAE/BA,EAAQuzB,gBAAkBvzB,EAAQuzB,cAAcx8B,OACjD,OAAO,EAEX,IAAImJ,EAAMpC,KAAKk1B,mBAAmBn5B,GAClC,QAAQqG,GAAcF,EAAQuzB,cAAcF,MAAK,SAAUC,GAAW,OAAO,YAAkBpzB,EAAKozB,OAGxGd,EAAev7B,UAAUg8B,kBAAoB,SAAUp5B,EAAOmG,GAG1D,QAFgB,IAAZA,IAAsBA,EAAU,KAE/BA,EAAQwzB,gBAAkBxzB,EAAQwzB,cAAcz8B,OACjD,OAAO,EAEX,IAAImJ,EAAMpC,KAAKk1B,mBAAmBn5B,GAClC,OAAQqG,GAAaF,EAAQwzB,cAAcH,MAAK,SAAUC,GAAW,OAAO,YAAkBpzB,EAAKozB,OAGvGd,EAAev7B,UAAU07B,cAAgB,SAAUD,GAE/C,YADsB,IAAlBA,IAA4BA,EAAgB,IACzC,CACHa,cAAe,IAAkBz1B,KAAKsG,SAASmvB,eAAiB,GAAMb,EAAca,eAAiB,IACrGJ,aAAc,IAAkBr1B,KAAKsG,SAAS+uB,cAAgB,GAAMT,EAAcS,cAAgB,GAAKZ,GACvGW,oBAAwD,IAAjCp1B,KAAKsG,SAAS8uB,gBAAiCp1B,KAAKsG,SAAS8uB,eACpFM,cAAe,IAAkB11B,KAAKsG,SAASovB,eAAiB,GAAMd,EAAcc,eAAiB,MAI7GhB,EAAev7B,UAAUm8B,0BAA4B,SAAUv5B,GAC3D,GAAIA,EAAMyB,QACN,MAAO,CAACzB,EAAMyB,SAElB,GAAIzB,EAAM8J,UACN,IACI,IAAIsD,EAAMpN,EAAM8J,UAAU+D,QAAU7N,EAAM8J,UAAU+D,OAAO,IAAO,GAAIL,EAAKJ,EAAGvN,KAAMA,OAAc,IAAP2N,EAAgB,GAAKA,EAAIE,EAAKN,EAAG1K,MAAOA,OAAe,IAAPgL,EAAgB,GAAKA,EAChK,MAAO,CAAC,GAAKhL,EAAO7C,EAAO,KAAO6C,GAEtC,MAAOk3B,GAEH,OADA,IAAOx4B,MAAM,oCAAsC,YAAoBpB,IAChE,GAGf,MAAO,IAGX24B,EAAev7B,UAAU+7B,mBAAqB,SAAUn5B,GACpD,IACI,GAAIA,EAAM65B,WAAY,CAClB,IAAIC,EAAW95B,EAAM65B,WAAWE,OAChC,OAAQD,GAAYA,EAASA,EAAS58B,OAAS,GAAG88B,UAAa,KAEnE,GAAIh6B,EAAM8J,UAAW,CACjB,IAAImwB,EAAWj6B,EAAM8J,UAAU+D,QAAU7N,EAAM8J,UAAU+D,OAAO,GAAGgsB,YAAc75B,EAAM8J,UAAU+D,OAAO,GAAGgsB,WAAWE,OACtH,OAAQE,GAAYA,EAASA,EAAS/8B,OAAS,GAAG88B,UAAa,KAEnE,OAAO,KAEX,MAAOJ,GAEH,OADA,IAAOx4B,MAAM,gCAAkC,YAAoBpB,IAC5D,OAMf24B,EAAe3rB,GAAK,iBACb2rB,EApJwB,I,iCCJnC,IAAIuB,EAAM,6BACNC,EAAY,mDACZC,EAA2B,oBAAVC,MAAwB,CAACvG,MAAO,CAAC,kBAAmB,IAAM,IAAIuG,MAC/EC,EAAoB,eAAgBF,EAAQtG,MAC5CyG,EAAyB,oBAAqBH,EAAQtG,MACtD0G,EAAc,oBAAqBJ,EAAQtG,MAC3C2G,EAAmD,iBAAvBL,EAAQM,WACpCC,EAAqBP,EAAQ56B,aAC7Bo7B,EAAqBR,EAAQl5B,aAC7B25B,GAAkB,EAoCtB,SAASC,EAAeC,EAAKlT,EAAOwB,GAEnC,IAAI2R,EAnCI,wEAmC4BnT,GAAS,GAnCwC,cAmCrCwB,GAAU,GAnC8C,iBAsCpGsR,EAAmBr9B,KAAKy9B,EAAK,SAAWC,GAC3CJ,EAAmBt9B,KAAKy9B,EAAK,MAAOC,GAItC,SAASC,EAAaF,EAAK7b,GAGtB6b,EAAIG,aACPhc,EAAS6b,GAETn5B,WAAWq5B,EAAc,IAAKF,EAAK7b,GAIrC,SAASic,EAAOC,GACf,IAAItH,EA/BL,SAAkBsH,GAIjB,IAHA,IACIC,EADAvH,EAAQwH,iBAAiBF,GAAIG,WAE7BC,EAAQ,GACgC,QAApCH,EAASlB,EAAU7P,KAAKwJ,KAC/B0H,EAAMH,EAAO,IAAMA,EAAO,GAE3B,OAAOG,EAwBKC,CAASL,GACjBM,EAAMN,EAAGlB,GAIb,GAHApG,EAAM,cAAgBA,EAAM,eAAiB,QAGxC4H,EAAIX,IAAK,CAEb,GAA4B,SAAxBjH,EAAM,cACT,OAID,IACE4H,EAAIC,UACLrB,IACCxG,EAAM,mBAEP,OAKF,IAAK4H,EAAIX,IAAK,CACbW,EAAIX,IAAM,IAAIV,MAAMe,EAAGvT,MAAOuT,EAAG/R,QACjCqS,EAAIX,IAAIa,OAASjB,EAAmBr9B,KAAK89B,EAAI,oBAAsBA,EAAGQ,OACtEF,EAAIX,IAAI56B,IAAMw6B,EAAmBr9B,KAAK89B,EAAI,iBAAmBA,EAAGj7B,IAIhEy6B,EAAmBt9B,KAAK89B,EAAI,eAAgBA,EAAGj7B,KAC3Ci7B,EAAGQ,QACNhB,EAAmBt9B,KAAK89B,EAAI,kBAAmBA,EAAGQ,QAGnDd,EAAeM,EAAIA,EAAGF,cAAgBE,EAAGvT,MAAOuT,EAAGS,eAAiBT,EAAG/R,QAGnE+R,EAAGQ,SACNR,EAAGQ,OAAS,IAEb,KAiCF,SAAuBR,GACtB,IAAIU,EAAc,CACjBx5B,IAAK,SAAay5B,GACjB,OAAOX,EAAGlB,GAAKa,IAAIgB,GAAc,QAElC1pB,IAAK,SAAa3P,EAAOq5B,GAIxB,OAHAX,EAAGlB,GAAKa,IAAIgB,GAAc,OAASr5B,EACnCk4B,EAAmBt9B,KAAK89B,EAAK,YAAcW,EAAOr5B,GAClDy4B,EAAOC,GACA14B,IAGTvF,OAAOiF,eAAeg5B,EAAI,MAAOU,GACjC3+B,OAAOiF,eAAeg5B,EAAI,aAAc,CACvC94B,IAAK,WAAc,OAAOw5B,EAAYx5B,IAAI,iBAE3CnF,OAAOiF,eAAeg5B,EAAI,SAAU,CACnC94B,IAAK,WAAc,OAAOw5B,EAAYx5B,IAAI,WAC1C+P,IAAK,SAAU2pB,GAAM,OAAOF,EAAYzpB,IAAI2pB,EAAI,aAlD/CC,CAAcb,GACb,MAAOh7B,GACJ5D,OAAO8G,SACVA,QAAQkC,KAAK,oCA/FjB,SAA4B41B,GAC3B,GAAIA,EAAGQ,SAAWnB,GAAsBj+B,OAAO0/B,YAAa,CAC3D,IAAIC,EAAK3/B,OAAO0/B,YAAYr2B,EAEvBu1B,EAAGe,EAAGr5B,KAAQs4B,EAAGe,EAAGr5B,IAAIs5B,QAE5BD,EAAGE,QAAQjB,EAAI,CAACkB,UAAU,IAGtBlB,EAAGe,EAAGr5B,IAAIy5B,SAEdnB,EAAGe,EAAGr5B,IAAI05B,WAAY,EACtBL,EAAGE,QAAQjB,EAAI,CAACkB,UAAU,KAI3BlB,EAAGV,WAAaU,EAAGe,EAAGr5B,IAAIy5B,QAAUnB,EAAGj7B,KAoFxCs8B,CAAmBf,EAAIX,KAEvBK,EAAGtH,MAAM4I,gBAAkB,SAAahB,EAAIX,IAAIL,YAAcgB,EAAIX,IAAI56B,KAAKgR,QAAQ,KAAM,OAAU,KACnGiqB,EAAGtH,MAAM6I,mBAAqB7I,EAAM,oBAAsB,SAC1DsH,EAAGtH,MAAM8I,iBAAmB,YAC5BxB,EAAGtH,MAAM+I,iBAAmB,cAExB,aAAaprB,KAAKqiB,EAAM,eAC3BmH,EAAaS,EAAIX,KAAK,WACjBW,EAAIX,IAAIG,aAAeE,EAAGvT,OAAS6T,EAAIX,IAAIc,cAAgBT,EAAG/R,OACjE+R,EAAGtH,MAAMgJ,eAAiB,UAE1B1B,EAAGtH,MAAMgJ,eAAiB,UAI5B1B,EAAGtH,MAAMgJ,eAAiBhJ,EAAM,cAAc3iB,QAAQ,OAAQ,QAAQA,QAAQ,OAAQ,aAGvF8pB,EAAaS,EAAIX,KAAK,SAAUA,GAC/BD,EAAeM,EAAIL,EAAIG,aAAcH,EAAIc,kBAyC3C,SAASkB,EAAIC,EAAMC,GAClB,IAAIC,GAAiBrC,IAAoBmC,EAIzC,GAHAC,EAAOA,GAAQ,GACfD,EAAOA,GAAQ,MAEVzC,IAA2B0C,EAAKtB,WAAcnB,EAClD,OAAO,EAIK,QAATwC,EACHA,EAAO59B,SAASC,qBAAqB,OACX,iBAAT29B,EACjBA,EAAO59B,SAASwc,iBAAiBohB,GACrB,WAAYA,IACxBA,EAAO,CAACA,IAIT,IAAK,IAAIhgC,EAAI,EAAGA,EAAIggC,EAAK9/B,OAAQF,IAChCggC,EAAKhgC,GAAGk9B,GAAO8C,EAAKhgC,GAAGk9B,IAAQ,CAC9ByB,SAAUsB,EAAKtB,UAEhBR,EAAO6B,EAAKhgC,IAGTkgC,IACH99B,SAAS8a,KAAKijB,iBAAiB,QAAQ,SAAUx+B,GACvB,QAArBA,EAAEuB,OAAOwb,SACZqhB,EAAIp+B,EAAEuB,OAAQ,CACby7B,SAAUsB,EAAKtB,cAGf,GACHd,GAAkB,EAClBmC,EAAO,OAIJC,EAAKG,SACR5gC,OAAO2gC,iBAAiB,SAAUJ,EAAI95B,KAAK,KAAM+5B,EAAM,CACtDrB,SAAUsB,EAAKtB,YAKlBoB,EAAIzC,kBAAoBA,EACxByC,EAAIxC,uBAAyBA,EA9D7B,WACC,SAAS8C,EAAiBjC,EAAI15B,GAC7B,OAAO05B,EAAGlB,IAAQkB,EAAGlB,GAAKa,MAAiB,QAATr5B,GAA2B,WAATA,GAAqB05B,EAAGlB,GAAKa,IAAMK,EAEnFb,IACJ+C,iBAAiBlgC,UAAUoC,aAAe,SAAUkC,GACnD,OAAOi5B,EAAmBr9B,KAAK+/B,EAAiBp5B,KAAMvC,GAAOA,IAG9D47B,iBAAiBlgC,UAAU8D,aAAe,SAAUQ,EAAMgB,GACzD,OAAOk4B,EAAmBt9B,KAAK+/B,EAAiBp5B,KAAMvC,GAAOA,EAAMoP,OAAOpO,MAsD7E66B,GAEAlhC,EAAOD,QAAU2gC,G,iCCpOG,EAAQ,KACV,EAAQ,KAD1B,IAEIS,EAAK,EAAQ,KASjBnhC,EAAOD,QAAU,CAUbiwB,OAAQ,SAAgB1iB,GACpB,OAAO6zB,EAAGnR,OAAO1iB,IAarB8zB,OAAQ,SAAgB9zB,GACpB,OAAO6zB,EAAGC,OAAO9zB,M,oBCtCzB,UAQQ,EAAO,CAAC,QAAmB,0BAAP,EAUpB,SAAUvN,GAClB,aACA,IAIIshC,EAJAC,EAAwB15B,MAAQA,KAAK05B,sBAAyB,SAAUC,EAAQC,GAEhF,OADI1gC,OAAOiF,eAAkBjF,OAAOiF,eAAew7B,EAAQ,MAAO,CAAEl7B,MAAOm7B,IAAiBD,EAAOC,IAAMA,EAClGD,IAGX,SAAWF,GACPA,EAAWA,EAAgB,IAAI,GAAK,MACpCA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAuB,WAAI,GAAK,aAC3CA,EAAWA,EAAgB,IAAI,GAAK,MACpCA,EAAWA,EAAoB,QAAI,GAAK,UACxCA,EAAWA,EAAgB,IAAI,GAAK,MACpCA,EAAWA,EAAmB,OAAI,GAAK,SAP3C,CAQGA,IAAeA,EAAa,KAC/B,IAAI9N,EAAU,WACV,SAASA,IACL3rB,KAAK65B,QAAU,QACf75B,KAAK85B,iBACL95B,KAAK+5B,cAAe,EACpB/5B,KAAKg6B,kBAAmB,EACxBh6B,KAAKi6B,MAAO,EACZj6B,KAAKk6B,GAAKl6B,KAAKm6B,GAAK,KACpBn6B,KAAKmC,QAAU,GACfnC,KAAKo6B,eAAiB,CAAE,KAAQ,EAAG,MAAS,GAgWhD,OA9VAlhC,OAAOiF,eAAewtB,EAAOxyB,UAAW,cAAe,CACnDkF,IAAK,WACD,OAAO2B,KAAK+5B,cAEhB3rB,IAAK,SAAUisB,GACXr6B,KAAK+5B,aAAeM,GAExBj8B,YAAY,EACZk8B,cAAc,IAElBphC,OAAOiF,eAAewtB,EAAOxyB,UAAW,kBAAmB,CACvDkF,IAAK,WACD,OAAO2B,KAAKg6B,kBAEhB5rB,IAAK,SAAUisB,GACXr6B,KAAKg6B,iBAAmBK,GAE5Bj8B,YAAY,EACZk8B,cAAc,IAElBphC,OAAOiF,eAAewtB,EAAOxyB,UAAW,gBAAiB,CACrDkF,IAAK,WACD,OAAO2B,KAAKo6B,gBAEhBhsB,IAAK,SAAUisB,GACXr6B,KAAKo6B,eAAiBC,GAE1Bj8B,YAAY,EACZk8B,cAAc,IAElB3O,EAAOxyB,UAAU2gC,eAAiB,WAC9B,IAAIpyB,EAAQ1H,KACZA,KAAKu6B,YACD,CACI,CACI,CAAEC,IAAK,CAAC,EAAG,EAAG,GAAIC,WAAY,cAC9B,CAAED,IAAK,CAAC,IAAK,EAAG,GAAIC,WAAY,YAChC,CAAED,IAAK,CAAC,EAAG,IAAK,GAAIC,WAAY,cAChC,CAAED,IAAK,CAAC,IAAK,IAAK,GAAIC,WAAY,eAClC,CAAED,IAAK,CAAC,EAAG,EAAG,KAAMC,WAAY,aAChC,CAAED,IAAK,CAAC,IAAK,EAAG,KAAMC,WAAY,gBAClC,CAAED,IAAK,CAAC,EAAG,IAAK,KAAMC,WAAY,aAClC,CAAED,IAAK,CAAC,IAAK,IAAK,KAAMC,WAAY,eAExC,CACI,CAAED,IAAK,CAAC,GAAI,GAAI,IAAKC,WAAY,qBACjC,CAAED,IAAK,CAAC,IAAK,GAAI,IAAKC,WAAY,mBAClC,CAAED,IAAK,CAAC,EAAG,IAAK,GAAIC,WAAY,qBAChC,CAAED,IAAK,CAAC,IAAK,IAAK,IAAKC,WAAY,sBACnC,CAAED,IAAK,CAAC,GAAI,GAAI,KAAMC,WAAY,oBAClC,CAAED,IAAK,CAAC,IAAK,GAAI,KAAMC,WAAY,uBACnC,CAAED,IAAK,CAAC,GAAI,IAAK,KAAMC,WAAY,oBACnC,CAAED,IAAK,CAAC,IAAK,IAAK,KAAMC,WAAY,uBAGhDz6B,KAAK06B,YAAc,GACnB16B,KAAKu6B,YAAYnuB,SAAQ,SAAUuuB,GAC/BA,EAAQvuB,SAAQ,SAAUwuB,GACtBlzB,EAAMgzB,YAAYnhC,KAAKqhC,SAI/B,IADA,IAAIC,EAAS,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,KAC3Bv8B,EAAI,EAAGA,EAAI,IAAKA,EACrB,IAAK,IAAIgyB,EAAI,EAAGA,EAAI,IAAKA,EACrB,IAAK,IAAI5wB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACxB,IAAIo7B,EAAM,CAAEN,IAAK,CAACK,EAAOv8B,GAAIu8B,EAAOvK,GAAIuK,EAAOn7B,IAAK+6B,WAAY,aAChEz6B,KAAK06B,YAAYnhC,KAAKuhC,GAKlC,IADA,IAAIC,EAAa,EACRhiC,EAAI,EAAGA,EAAI,KAAMA,EAAGgiC,GAAc,GAAI,CAC3C,IAAIC,EAAM,CAAER,IAAK,CAACO,EAAYA,EAAYA,GAAaN,WAAY,aACnEz6B,KAAK06B,YAAYnhC,KAAKyhC,KAG9BrP,EAAOxyB,UAAU8hC,oBAAsB,SAAUC,GAC7C,OAAOA,EAAIhuB,QAAQ,WAAW,SAAUiuB,GACpC,MAAY,MAARA,EACO,QACC,MAARA,EACO,OACC,MAARA,EACO,YADX,MAIRxP,EAAOxyB,UAAUiiC,cAAgB,SAAUF,GACvC,IAAIC,EAAMn7B,KAAKmC,QAAU+4B,EACzBl7B,KAAKmC,QAAUg5B,GAEnBxP,EAAOxyB,UAAUkiC,gBAAkB,WAC/B,IAAIC,EAAM,CACNC,KAAM9B,EAAW+B,IACjB1sB,KAAM,GACN1M,IAAK,IAELq5B,EAAMz7B,KAAKmC,QAAQlJ,OACvB,GAAW,GAAPwiC,EACA,OAAOH,EACX,IAAII,EAAM17B,KAAKmC,QAAQmK,QAAQ,KAC/B,IAAY,GAARovB,EAIA,OAHAJ,EAAIC,KAAO9B,EAAWloB,KACtB+pB,EAAIxsB,KAAO9O,KAAKmC,QAChBnC,KAAKmC,QAAU,GACRm5B,EAEX,GAAII,EAAM,EAIN,OAHAJ,EAAIC,KAAO9B,EAAWloB,KACtB+pB,EAAIxsB,KAAO9O,KAAKmC,QAAQ3C,MAAM,EAAGk8B,GACjC17B,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAMk8B,GAC3BJ,EAEX,GAAW,GAAPI,EAAU,CACV,GAAW,GAAPD,EAEA,OADAH,EAAIC,KAAO9B,EAAWkC,WACfL,EAEX,IAAIM,EAAY57B,KAAKmC,QAAQ05B,OAAO,GACpC,GAAkB,KAAbD,GAAmC,KAAbA,EAIvB,OAHAN,EAAIC,KAAO9B,EAAWqC,IACtBR,EAAIxsB,KAAO9O,KAAKmC,QAAQ3C,MAAM,EAAG,GACjCQ,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM,GAC3B87B,EAEX,GAAiB,KAAbM,EAAkB,CAKlB,GAJK57B,KAAK+7B,aACN/7B,KAAK+7B,WAAaC,EAAItC,EAAqB,CAAC,+gCAA+hC,CAAC,ukCAGlkC,QADV1sB,EAAQhN,KAAKmC,QAAQ6K,MAAMhN,KAAK+7B,aAGhC,OADAT,EAAIC,KAAO9B,EAAWkC,WACfL,EAEX,GAAItuB,EAAM,GAIN,OAHAsuB,EAAIC,KAAO9B,EAAWqC,IACtBR,EAAIxsB,KAAO9O,KAAKmC,QAAQ3C,MAAM,EAAG,GACjCQ,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM,GAC3B87B,EAEM,IAAZtuB,EAAM,IAA0B,KAAZA,EAAM,GAC3BsuB,EAAIC,KAAO9B,EAAWwC,QAEtBX,EAAIC,KAAO9B,EAAWyC,IAC1BZ,EAAIxsB,KAAO9B,EAAM,GACjB,IAAImvB,EAAOnvB,EAAM,GAAG/T,OAEpB,OADA+G,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM28B,GAC3Bb,EAEX,GAAiB,KAAbM,EAAkB,CAClB,GAAIH,EAAM,EAEN,OADAH,EAAIC,KAAO9B,EAAWkC,WACfL,EAEX,GAA+B,KAA1Bt7B,KAAKmC,QAAQ05B,OAAO,IACS,KAA1B77B,KAAKmC,QAAQ05B,OAAO,GAIxB,OAHAP,EAAIC,KAAO9B,EAAWqC,IACtBR,EAAIxsB,KAAO9O,KAAKmC,QAAQ3C,MAAM,EAAG,GACjCQ,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM,GAC3B87B,EAENt7B,KAAKo8B,UACNp8B,KAAKo8B,QAyMzB,SAAcC,GAEV,IADA,IAAIC,EAAQ,GACHj7B,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCi7B,EAAMj7B,EAAK,GAAKjB,UAAUiB,GAE9B,IAAIk7B,EAAYF,EAAQzC,IAAI,GACxB4C,EAAQ,iCACRC,EAAOF,EAAUrvB,QAAQsvB,EAAO,IACpC,OAAO,IAAIjvB,OAAOkvB,EAAM,KAjNOC,CAAKhD,EAAqB,CAAC,20BAA02B,CAAC,k3BAEz5B15B,KAAKo8B,QAAQO,UAAY,EAErB,IAAIC,EAAU58B,KAAKo8B,QAAQ/V,KAAKrmB,KAAKmC,SACrC,GAAgB,OAAZy6B,EAEA,OADAtB,EAAIC,KAAO9B,EAAWkC,WACfL,EAEX,GAAIsB,EAAQ,GAIR,OAHAtB,EAAIC,KAAO9B,EAAWqC,IACtBR,EAAIxsB,KAAO9O,KAAKmC,QAAQ3C,MAAM,EAAG,GACjCQ,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM,GAC3B87B,EAIX,IAeAtuB,EAfI6vB,EAAU78B,KAAKo8B,QAAQ/V,KAAKrmB,KAAKmC,SACrC,OAAgB,OAAZ06B,GACAvB,EAAIC,KAAO9B,EAAWkC,WACfL,GAEPuB,EAAQ,IACRvB,EAAIC,KAAO9B,EAAWqC,IACtBR,EAAIxsB,KAAO9O,KAAKmC,QAAQ3C,MAAM,EAAG,GACjCQ,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM,GAC3B87B,IAGVt7B,KAAK88B,aACN98B,KAAK88B,WAAad,EAAItC,EAAqB,CAAC,wlCAAunC,CAAC,mqCAG1pC,QADV1sB,EAAQhN,KAAKmC,QAAQ6K,MAAMhN,KAAK88B,cAEhCxB,EAAIC,KAAO9B,EAAWqC,IACtBR,EAAIxsB,KAAO9O,KAAKmC,QAAQ3C,MAAM,EAAG,GACjCQ,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM,GAC3B87B,IAEXA,EAAIC,KAAO9B,EAAWsD,OACtBzB,EAAIl5B,IAAM4K,EAAM,GAChBsuB,EAAIxsB,KAAO9B,EAAM,GACbmvB,EAAOnvB,EAAM,GAAG/T,OACpB+G,KAAKmC,QAAUnC,KAAKmC,QAAQ3C,MAAM28B,GAC3Bb,OAInB3P,EAAOxyB,UAAUu0B,aAAe,SAAUwN,GACtCl7B,KAAKo7B,cAAcF,GAEnB,IADA,IAAI8B,EAAS,KACA,CACT,IAAIC,EAASj9B,KAAKq7B,kBAClB,GAAK4B,EAAO1B,MAAQ9B,EAAW+B,KACvByB,EAAO1B,MAAQ9B,EAAWkC,WAC9B,MACCsB,EAAO1B,MAAQ9B,EAAWqC,KACvBmB,EAAO1B,MAAQ9B,EAAWwC,UAE9BgB,EAAO1B,MAAQ9B,EAAWloB,KAC1ByrB,EAAOzjC,KAAKyG,KAAKk9B,kBAAkBl9B,KAAKm9B,WAAWF,KAC9CA,EAAO1B,MAAQ9B,EAAWyC,IAC/Bl8B,KAAKo9B,aAAaH,GACbA,EAAO1B,MAAQ9B,EAAWsD,QAC/BC,EAAOzjC,KAAKyG,KAAKq9B,kBAAkBJ,KAE3C,OAAOD,EAAO17B,KAAK,KAEvBqqB,EAAOxyB,UAAUgkC,WAAa,SAAU7B,GACpC,MAAO,CAAErB,KAAMj6B,KAAKi6B,KAAMC,GAAIl6B,KAAKk6B,GAAIC,GAAIn6B,KAAKm6B,GAAIrrB,KAAMwsB,EAAIxsB,OAElE6c,EAAOxyB,UAAUikC,aAAe,SAAU9B,GAEtC,IADA,IAAIgC,EAAWhC,EAAIxsB,KAAK1K,MAAM,KACvBk5B,EAASrkC,OAAS,GAAG,CACxB,IAAIskC,EAAcD,EAAS5jC,QACvB4wB,EAAMjH,SAASka,EAAa,IAChC,GAAIC,MAAMlT,IAAgB,IAARA,EACdtqB,KAAKk6B,GAAKl6B,KAAKm6B,GAAK,KACpBn6B,KAAKi6B,MAAO,OAEX,GAAY,IAAR3P,EACLtqB,KAAKi6B,MAAO,OAEX,GAAY,KAAR3P,EACLtqB,KAAKi6B,MAAO,OAEX,GAAY,KAAR3P,EACLtqB,KAAKk6B,GAAK,UAET,GAAY,KAAR5P,EACLtqB,KAAKm6B,GAAK,UAET,GAAK7P,GAAO,IAAQA,EAAM,GAC3BtqB,KAAKk6B,GAAKl6B,KAAKu6B,YAAY,GAAIjQ,EAAM,SAEpC,GAAKA,GAAO,IAAQA,EAAM,GAC3BtqB,KAAKm6B,GAAKn6B,KAAKu6B,YAAY,GAAIjQ,EAAM,SAEpC,GAAKA,GAAO,IAAQA,EAAM,GAC3BtqB,KAAKk6B,GAAKl6B,KAAKu6B,YAAY,GAAIjQ,EAAM,SAEpC,GAAKA,GAAO,KAASA,EAAM,IAC5BtqB,KAAKm6B,GAAKn6B,KAAKu6B,YAAY,GAAIjQ,EAAM,UAEpC,IAAY,KAARA,GAAsB,KAARA,IACfgT,EAASrkC,OAAS,EAAG,CACrB,IAAIwkC,EAAyB,KAARnT,EACjBoT,EAAWJ,EAAS5jC,QACxB,GAAiB,MAAbgkC,GAAoBJ,EAASrkC,OAAS,EAAG,CACzC,IAAI0kC,EAAgBta,SAASia,EAAS5jC,QAAS,IAC3CikC,GAAiB,GAAKA,GAAiB,MACnCF,EACAz9B,KAAKk6B,GAAKl6B,KAAK06B,YAAYiD,GAE3B39B,KAAKm6B,GAAKn6B,KAAK06B,YAAYiD,IAGvC,GAAiB,MAAbD,GAAoBJ,EAASrkC,OAAS,EAAG,CACzC,IAAIqF,EAAI+kB,SAASia,EAAS5jC,QAAS,IAC/B42B,EAAIjN,SAASia,EAAS5jC,QAAS,IAC/BgG,EAAI2jB,SAASia,EAAS5jC,QAAS,IACnC,GAAK4E,GAAK,GAAKA,GAAK,KAASgyB,GAAK,GAAKA,GAAK,KAAS5wB,GAAK,GAAKA,GAAK,IAAM,CACtE,IAAI3B,EAAI,CAAEy8B,IAAK,CAACl8B,EAAGgyB,EAAG5wB,GAAI+6B,WAAY,aAClCgD,EACAz9B,KAAKk6B,GAAKn8B,EAEViC,KAAKm6B,GAAKp8B,OAOtC4tB,EAAOxyB,UAAU+jC,kBAAoB,SAAUpkB,GAC3C,IAAIoiB,EAAMpiB,EAAShK,KACnB,GAAmB,IAAfosB,EAAIjiC,OACJ,OAAOiiC,EAGX,GAFIl7B,KAAKg6B,mBACLkB,EAAMl7B,KAAKi7B,oBAAoBC,KAC9BpiB,EAASmhB,MAAwB,OAAhBnhB,EAASohB,IAA+B,OAAhBphB,EAASqhB,GACnD,OAAOe,EACX,IAAI3N,EAAS,GACTqQ,EAAU,GACV1D,EAAKphB,EAASohB,GACdC,EAAKrhB,EAASqhB,GACdrhB,EAASmhB,MACT1M,EAAOh0B,KAAK,oBACXyG,KAAK+5B,cAOFG,IACsB,cAAlBA,EAAGO,WACHmD,EAAQrkC,KAAK2gC,EAAGO,WAAa,OAG7BlN,EAAOh0B,KAAK,aAAe2gC,EAAGM,IAAIl5B,KAAK,KAAO,MAGlD64B,IACsB,cAAlBA,EAAGM,WACHmD,EAAQrkC,KAAK4gC,EAAGM,WAAa,OAG7BlN,EAAOh0B,KAAK,wBAA0B4gC,EAAGK,IAAIl5B,KAAK,KAAO,QAnB7D44B,GACA3M,EAAOh0B,KAAK,aAAe2gC,EAAGM,IAAIl5B,KAAK,KAAO,KAC9C64B,GACA5M,EAAOh0B,KAAK,wBAA0B4gC,EAAGK,IAAM,MAoBvD,IAAIqD,EAAe,GACfC,EAAe,GAKnB,OAJIF,EAAQ3kC,SACR4kC,EAAe,WAAcD,EAAQt8B,KAAK,KAAO,KACjDisB,EAAOt0B,SACP6kC,EAAe,WAAcvQ,EAAOjsB,KAAK,KAAO,KAC7C,QAAUw8B,EAAeD,EAAe,IAAM3C,EAAM,WAG/DvP,EAAOxyB,UAAUkkC,kBAAoB,SAAU/B,GAC3C,IAAIyC,EAAQzC,EAAIl5B,IAAIgC,MAAM,KAC1B,OAAI25B,EAAM9kC,OAAS,EACR,GACN+G,KAAKo6B,eAAe2D,EAAM,IAElB,YAAe/9B,KAAKi7B,oBAAoBK,EAAIl5B,KAAO,KAAQpC,KAAKi7B,oBAAoBK,EAAIxsB,MAAQ,OADlG,IAIR6c,EAzWE,GA2Wb,SAASqQ,EAAIK,GAET,IADA,IAAIC,EAAQ,GACHj7B,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCi7B,EAAMj7B,EAAK,GAAKjB,UAAUiB,GAE9B,IAAIk7B,EAAYF,EAAQzC,IAAI,GACxB4C,EAAQ,iCACRC,EAAOF,EAAUrvB,QAAQsvB,EAAO,IACpC,OAAO,IAAIjvB,OAAOkvB,GAalBvjC,OAAOiF,eAAehG,EAAS,aAAc,CAAEsG,OAAO,IACtDtG,EAAQ6lC,QAAUrS,IA3Za,gC,iCCRnC,kCAIA,IAAIsS,EAAsB,WACtB,SAASA,IAELj+B,KAAKk+B,YAAiC,mBAAZC,QAC1Bn+B,KAAKo+B,OAASp+B,KAAKk+B,YAAc,IAAIC,QAAY,GAyCrD,OAnCAF,EAAK9kC,UAAUoM,QAAU,SAAUoK,GAC/B,GAAI3P,KAAKk+B,YACL,QAAIl+B,KAAKo+B,OAAOC,IAAI1uB,KAGpB3P,KAAKo+B,OAAOE,IAAI3uB,IACT,GAGX,IAAK,IAAI5W,EAAI,EAAGA,EAAIiH,KAAKo+B,OAAOnlC,OAAQF,IAAK,CAEzC,GADYiH,KAAKo+B,OAAOrlC,KACV4W,EACV,OAAO,EAIf,OADA3P,KAAKo+B,OAAO7kC,KAAKoW,IACV,GAMXsuB,EAAK9kC,UAAUsM,UAAY,SAAUkK,GACjC,GAAI3P,KAAKk+B,YACLl+B,KAAKo+B,OAAOG,OAAO5uB,QAGnB,IAAK,IAAI5W,EAAI,EAAGA,EAAIiH,KAAKo+B,OAAOnlC,OAAQF,IACpC,GAAIiH,KAAKo+B,OAAOrlC,KAAO4W,EAAK,CACxB3P,KAAKo+B,OAAOjkC,OAAOpB,EAAG,GACtB,QAKTklC,EA7Cc,I,iCCJzB,kCAAO,IAAIt+B,EAAiBzG,OAAOyG,iBAAmB,CAAEC,UAAW,cAAgBC,MAInF,SAAoB8P,EAAK6uB,GAGrB,OADA7uB,EAAI/P,UAAY4+B,EACT7uB,GAKX,SAAyBA,EAAK6uB,GAC1B,IAAK,IAAI1G,KAAQ0G,EACR7uB,EAAIvW,eAAe0+B,KAEpBnoB,EAAImoB,GAAQ0G,EAAM1G,IAG1B,OAAOnoB,K,iCCnBX,+FAWI8uB,EAA+B,SAAUC,GAOzC,SAASD,EAAcv8B,GAEnB,YADgB,IAAZA,IAAsBA,EAAU,IAC7Bw8B,EAAOrlC,KAAK2G,KAAM,IAAgBkC,IAAYlC,KAgDzD,OAxDA,IAAkBy+B,EAAeC,GAajCD,EAActlC,UAAU+P,cAAgB,SAAUnN,EAAO0L,EAAOD,GAQ5D,OAPAzL,EAAM4iC,SAAW5iC,EAAM4iC,UAAY,aACnC5iC,EAAM+N,IAAM,IAAiB,GAAI/N,EAAM+N,IAAK,CAAErM,KAAM,IAAUmhC,SAAU,IAAmB7iC,EAAM+N,KAAO/N,EAAM+N,IAAI80B,UAAa,GAAK,CAC5H,CACInhC,KAAM,sBACNgT,QAAS,OAEbA,QAAS,MACViuB,EAAOvlC,UAAU+P,cAAc7P,KAAK2G,KAAMjE,EAAO0L,EAAOD,IAOnEi3B,EAActlC,UAAU0lC,iBAAmB,SAAU38B,QACjC,IAAZA,IAAsBA,EAAU,IAEpC,IAAI/G,EAAW,cAAkBA,SACjC,GAAKA,EAGL,GAAK6E,KAAKsH,aAAV,CAIA,IAAIjF,EAAMH,EAAQG,KAAOrC,KAAKmI,SAC9B,GAAKjG,EAAQyF,QAIb,GAAKtF,EAAL,CAIA,IAAIxF,EAAS1B,EAASQ,cAAc,UACpCkB,EAAOiiC,OAAQ,EACfjiC,EAAOX,IAAM,IAAI,IAAImG,GAAK08B,wBAAwB78B,GAC9CA,EAAQ88B,SACRniC,EAAOhB,OAASqG,EAAQ88B,SAE3B7jC,EAASyC,MAAQzC,EAAS8a,MAAMzZ,YAAYK,QATzC,IAAOM,MAAM,sDAJb,IAAOA,MAAM,0DALb,IAAOA,MAAM,mEAoBdshC,EAzDuB,CA0DhC,M,iCCrEF,+GAUIQ,EAAgC,SAAUP,GAE1C,SAASO,IACL,OAAkB,OAAXP,GAAmBA,EAAO9kC,MAAMoG,KAAMI,YAAcJ,KAoD/D,OAtDA,IAAkBi/B,EAAgBP,GAOlCO,EAAe9lC,UAAUqN,gBAAkB,WACvC,IAAKxG,KAAKsG,SAASjE,IAEf,OAAOq8B,EAAOvlC,UAAUqN,gBAAgBnN,KAAK2G,MAEjD,IAAIk/B,EAAmB,IAAiB,GAAIl/B,KAAKsG,SAAS44B,iBAAkB,CAAE78B,IAAKrC,KAAKsG,SAASjE,MACjG,OAAIrC,KAAKsG,SAAS64B,UACP,IAAIn/B,KAAKsG,SAAS64B,UAAUD,GAEnC,cACO,IAAI,IAAeA,GAEvB,IAAI,IAAaA,IAK5BD,EAAe9lC,UAAUsN,mBAAqB,SAAUZ,EAAW2B,GAC/D,IAAI6T,EAAsB7T,GAAQA,EAAK6T,yBAAuB3d,EAC1D3B,EAAQ,YAAsB8J,EAAWwV,EAAoB,CAC7D+jB,iBAAkBp/B,KAAKsG,SAAS84B,mBAUpC,OARA,YAAsBrjC,EAAO,CACzBsjC,SAAS,EACTzjC,KAAM,YAEVG,EAAMkM,MAAQ,IAAS7L,MACnBoL,GAAQA,EAAKI,WACb7L,EAAM6L,SAAWJ,EAAKI,UAEnB,IAAY/M,QAAQkB,IAK/BkjC,EAAe9lC,UAAUyN,iBAAmB,SAAUpJ,EAASyK,EAAOT,QACpD,IAAVS,IAAoBA,EAAQ,IAASq3B,MACzC,IAAIjkB,EAAsB7T,GAAQA,EAAK6T,yBAAuB3d,EAC1D3B,EAAQ,YAAgByB,EAAS6d,EAAoB,CACrD+jB,iBAAkBp/B,KAAKsG,SAAS84B,mBAMpC,OAJArjC,EAAMkM,MAAQA,EACVT,GAAQA,EAAKI,WACb7L,EAAM6L,SAAWJ,EAAKI,UAEnB,IAAY/M,QAAQkB,IAExBkjC,EAvDwB,CAwDjC,M,iCClEF,qEAGWM,EAAwB,GAuD5B,SAASC,EAAkBt9B,GAC9B,IAAIsI,EAAe,GAKnB,OA3DG,SAAgCtI,GACnC,IAAIu9B,EAAuBv9B,EAAQu9B,qBAAuB,IAAiBv9B,EAAQu9B,sBAAyB,GACxGC,EAAmBx9B,EAAQsI,aAC3BA,EAAe,GACnB,GAAI3K,MAAMyF,QAAQo6B,GAAmB,CACjC,IAAIC,EAA0BD,EAAiBl8B,KAAI,SAAUzK,GAAK,OAAOA,EAAE0E,QACvEmiC,EAA4B,GAEhCH,EAAoBrzB,SAAQ,SAAUyzB,IACgC,IAA9DF,EAAwBrzB,QAAQuzB,EAAmBpiC,QACa,IAAhEmiC,EAA0BtzB,QAAQuzB,EAAmBpiC,QACrD+M,EAAajR,KAAKsmC,GAClBD,EAA0BrmC,KAAKsmC,EAAmBpiC,UAI1DiiC,EAAiBtzB,SAAQ,SAAU0zB,IACkC,IAA7DF,EAA0BtzB,QAAQwzB,EAAgBriC,QAClD+M,EAAajR,KAAKumC,GAClBF,EAA0BrmC,KAAKumC,EAAgBriC,cAItB,mBAArBiiC,GACZl1B,EAAek1B,EAAiBD,GAChCj1B,EAAe3K,MAAMyF,QAAQkF,GAAgBA,EAAe,CAACA,IAG7DA,EAAe,IAAiBi1B,GAGpC,IAAIM,EAAoBv1B,EAAahH,KAAI,SAAUzK,GAAK,OAAOA,EAAE0E,QAKjE,OAHoD,IAAhDsiC,EAAkBzzB,QADA,UAElB9B,EAAajR,KAAKK,MAAM4Q,EAAc,IAAiBA,EAAarQ,OAAO4lC,EAAkBzzB,QAF3E,SAEqG,KAEpH9B,EAmBPw1B,CAAuB99B,GAASkK,SAAQ,SAAUtD,GAC9C0B,EAAa1B,EAAYrL,MAAQqL,EAjBlC,SAA0BA,IAC4B,IAArDy2B,EAAsBjzB,QAAQxD,EAAYrL,QAG9CqL,EAAY0rB,UAAU,IAAyB,KAC/C+K,EAAsBhmC,KAAKuP,EAAYrL,MACvC,IAAO0D,IAAI,0BAA4B2H,EAAYrL,OAY/CwiC,CAAiBn3B,MAEd0B,I,iCChEX,qDAGI01B,EAAY,kEAIZC,EAAqB,WAErB,SAASA,EAAIn0B,GACW,iBAATA,EACPhM,KAAKogC,YAAYp0B,GAGjBhM,KAAKqgC,gBAAgBr0B,GAEzBhM,KAAKsgC,YA2DT,OAhDAH,EAAIhnC,UAAU0K,SAAW,SAAU08B,QACV,IAAjBA,IAA2BA,GAAe,GAE9C,IAAIp3B,EAAKnJ,KAAMwgC,EAAOr3B,EAAGq3B,KAAMC,EAAOt3B,EAAGs3B,KAAMC,EAAOv3B,EAAGu3B,KAAMvO,EAAOhpB,EAAGgpB,KAAMwO,EAAYx3B,EAAGw3B,UAC9F,OADoHx3B,EAAG8oB,SACpG,MADqH9oB,EAAGgB,MACxGo2B,GAAgBG,EAAO,IAAMA,EAAO,IAClE,IAAMF,GAAQrO,EAAO,IAAMA,EAAO,IAAM,KAAOsO,EAAOA,EAAO,IAAMA,GAAQE,GAGpFR,EAAIhnC,UAAUinC,YAAc,SAAUjF,GAClC,IAAInuB,EAAQkzB,EAAU7Z,KAAK8U,GAC3B,IAAKnuB,EACD,MAAM,IAAI,IAjCF,eAmCZ,IAAI7D,EAAK,IAAe6D,EAAMxN,MAAM,GAAI,GAAIyyB,EAAW9oB,EAAG,GAAIgB,EAAOhB,EAAG,GAAII,EAAKJ,EAAG,GAAIu3B,OAAc,IAAPn3B,EAAgB,GAAKA,EAAIi3B,EAAOr3B,EAAG,GAAIM,EAAKN,EAAG,GAAIgpB,OAAc,IAAP1oB,EAAgB,GAAKA,EAC1Kg3B,EAAO,GACPE,EAFyLx3B,EAAG,GAG5L/E,EAAQu8B,EAAUv8B,MAAM,KACxBA,EAAMnL,OAAS,IACfwnC,EAAOr8B,EAAM5E,MAAM,GAAI,GAAG8B,KAAK,KAC/Bq/B,EAAYv8B,EAAMqI,OAEtBzM,KAAKqgC,gBAAgB,CAAEG,KAAMA,EAAME,KAAMA,EAAMD,KAAMA,EAAME,UAAWA,EAAWxO,KAAMA,EAAMF,SAAUA,EAAU9nB,KAAMA,KAG3Hg2B,EAAIhnC,UAAUknC,gBAAkB,SAAUO,GACtC5gC,KAAKiyB,SAAW2O,EAAW3O,SAC3BjyB,KAAKmK,KAAOy2B,EAAWz2B,KACvBnK,KAAK0gC,KAAOE,EAAWF,MAAQ,GAC/B1gC,KAAKwgC,KAAOI,EAAWJ,KACvBxgC,KAAKmyB,KAAOyO,EAAWzO,MAAQ,GAC/BnyB,KAAKygC,KAAOG,EAAWH,MAAQ,GAC/BzgC,KAAK2gC,UAAYC,EAAWD,WAGhCR,EAAIhnC,UAAUmnC,UAAY,WACtB,IAAI54B,EAAQ1H,KAMZ,GALA,CAAC,WAAY,OAAQ,OAAQ,aAAaoM,SAAQ,SAAUy0B,GACxD,IAAKn5B,EAAMm5B,GACP,MAAM,IAAI,IA5DN,kBA+DU,SAAlB7gC,KAAKiyB,UAAyC,UAAlBjyB,KAAKiyB,SACjC,MAAM,IAAI,IAhEF,eAkEZ,GAAIjyB,KAAKmyB,MAAQqL,MAAMna,SAASrjB,KAAKmyB,KAAM,KACvC,MAAM,IAAI,IAnEF,gBAsETgO,EApEa,I,iBCPxB,SAASW,EAAmBC,EAAKlmC,EAASC,EAAQkmC,EAAOC,EAAQliC,EAAKs7B,GACpE,IACE,IAAItX,EAAOge,EAAIhiC,GAAKs7B,GAChB57B,EAAQskB,EAAKtkB,MACjB,MAAOtB,GAEP,YADArC,EAAOqC,GAIL4lB,EAAKviB,KACP3F,EAAQ4D,GAER7D,QAAQC,QAAQ4D,GAAOhC,KAAKukC,EAAOC,GAwBvC7oC,EAAOD,QApBP,SAA2B+oC,GACzB,OAAO,WACL,IAAIvM,EAAO30B,KACPoB,EAAOhB,UACX,OAAO,IAAIxF,SAAQ,SAAUC,EAASC,GACpC,IAAIimC,EAAMG,EAAGtnC,MAAM+6B,EAAMvzB,GAEzB,SAAS4/B,EAAMviC,GACbqiC,EAAmBC,EAAKlmC,EAASC,EAAQkmC,EAAOC,EAAQ,OAAQxiC,GAGlE,SAASwiC,EAAO9kC,GACd2kC,EAAmBC,EAAKlmC,EAASC,EAAQkmC,EAAOC,EAAQ,QAAS9kC,GAGnE6kC,OAAMtjC,S,gCC/BZ,uFAOA,SAASyjC,EAAU5mB,GAEf,IADA,IAAInZ,EAAO,GACFC,EAAK,EAAGA,EAAKjB,UAAUnH,OAAQoI,IACpCD,EAAKC,EAAK,GAAKjB,UAAUiB,GAE7B,IAAIgc,EAAM,cACV,GAAIA,GAAOA,EAAI9C,GAEX,OAAO8C,EAAI9C,GAAQ3gB,MAAMyjB,EAAK,IAAiBjc,IAEnD,MAAM,IAAIhF,MAAM,qBAAuBme,EAAS,wDAQ7C,SAAShT,EAAiB1B,GAC7B,IAAIwV,EACJ,IACI,MAAM,IAAIjf,MAAM,6BAEpB,MAAOyJ,GACHwV,EAAqBxV,EAEzB,OAAOs7B,EAAU,mBAAoBt7B,EAAW,CAC5CmF,kBAAmBnF,EACnBwV,mBAAoBA,IA6GrB,SAASL,EAAUC,GACtBkmB,EAAU,YAAalmB,K,gCCjJ3B,2fAOO,SAASmmB,EAAeC,EAAKrlC,GAEhC,OAAOqlC,EAAIC,QAAQtlC,GAOhB,SAASulC,IAEZ,MAAwF,qBAAjFroC,OAAOC,UAAU0K,SAASxK,UAAwB,IAAZmoC,EAA0BA,EAAU,GAErF,IAAIC,EAAuB,GAMpB,SAASC,IACZ,OAAQH,IACF1gC,EACkB,oBAAXtI,OACHA,OACgB,oBAATo8B,KACHA,KACA8M,EAOX,SAASE,IACZ,IAAI9gC,EAAS6gC,IACTE,EAAS/gC,EAAO+gC,QAAU/gC,EAAOghC,SACrC,QAAiB,IAAXD,GAAsBA,EAAOE,gBAAiB,CAEhD,IAAIh2B,EAAM,IAAIi2B,YAAY,GAC1BH,EAAOE,gBAAgBh2B,GAGvBA,EAAI,GAAe,KAATA,EAAI,GAAc,MAG5BA,EAAI,GAAe,MAATA,EAAI,GAAe,MAC7B,IAAIk2B,EAAM,SAAU1X,GAEhB,IADA,IAAI2X,EAAI3X,EAAIzmB,SAAS,IACdo+B,EAAEhpC,OAAS,GACdgpC,EAAI,IAAMA,EAEd,OAAOA,GAEX,OAAQD,EAAIl2B,EAAI,IAAMk2B,EAAIl2B,EAAI,IAAMk2B,EAAIl2B,EAAI,IAAMk2B,EAAIl2B,EAAI,IAAMk2B,EAAIl2B,EAAI,IAAMk2B,EAAIl2B,EAAI,IAAMk2B,EAAIl2B,EAAI,IAAMk2B,EAAIl2B,EAAI,IAGtH,MAAO,mCAAmCoB,QAAQ,SAAS,SAAUnP,GAEjE,IAAIO,EAAqB,GAAhBqM,KAAKC,SAAiB,EAG/B,OADc,MAAN7M,EAAYO,EAAS,EAAJA,EAAW,GAC3BuF,SAAS,OAUnB,SAASq+B,EAAS9/B,GACrB,IAAKA,EACD,MAAO,GAEX,IAAI4K,EAAQ5K,EAAI4K,MAAM,kEACtB,IAAKA,EACD,MAAO,GAGX,IAAIm1B,EAAQn1B,EAAM,IAAM,GACpB8L,EAAW9L,EAAM,IAAM,GAC3B,MAAO,CACHwzB,KAAMxzB,EAAM,GACZyzB,KAAMzzB,EAAM,GACZilB,SAAUjlB,EAAM,GAChBo1B,SAAUp1B,EAAM,GAAKm1B,EAAQrpB,GAO9B,SAASupB,EAAoBtmC,GAChC,GAAIA,EAAMyB,QACN,OAAOzB,EAAMyB,QAEjB,GAAIzB,EAAM8J,WAAa9J,EAAM8J,UAAU+D,QAAU7N,EAAM8J,UAAU+D,OAAO,GAAI,CACxE,IAAI/D,EAAY9J,EAAM8J,UAAU+D,OAAO,GACvC,OAAI/D,EAAUjK,MAAQiK,EAAUpH,MACrBoH,EAAUjK,KAAO,KAAOiK,EAAUpH,MAEtCoH,EAAUjK,MAAQiK,EAAUpH,OAAS1C,EAAM6L,UAAY,YAElE,OAAO7L,EAAM6L,UAAY,YAGtB,SAAS06B,EAAernB,GAC3B,IAAIpa,EAAS6gC,IAEb,KAAM,YAAa7gC,GACf,OAAOoa,IAEX,IAAIsnB,EAAkB1hC,EAAOxB,QACzBmjC,EAAgB,GALP,CAAC,QAAS,OAAQ,OAAQ,QAAS,MAAO,UAOhDp2B,SAAQ,SAAUnE,GACjBA,KAASpH,EAAOxB,SAAWkjC,EAAgBt6B,GAAO7E,sBAClDo/B,EAAcv6B,GAASs6B,EAAgBt6B,GACvCs6B,EAAgBt6B,GAASs6B,EAAgBt6B,GAAO7E,wBAIxD,IAAItJ,EAASmhB,IAKb,OAHA/hB,OAAOqK,KAAKi/B,GAAep2B,SAAQ,SAAUnE,GACzCs6B,EAAgBt6B,GAASu6B,EAAcv6B,MAEpCnO,EASJ,SAAS2oC,EAAsB1mC,EAAO0C,EAAO7C,GAChDG,EAAM8J,UAAY9J,EAAM8J,WAAa,GACrC9J,EAAM8J,UAAU+D,OAAS7N,EAAM8J,UAAU+D,QAAU,GACnD7N,EAAM8J,UAAU+D,OAAO,GAAK7N,EAAM8J,UAAU+D,OAAO,IAAM,GACzD7N,EAAM8J,UAAU+D,OAAO,GAAGnL,MAAQ1C,EAAM8J,UAAU+D,OAAO,GAAGnL,OAASA,GAAS,GAC9E1C,EAAM8J,UAAU+D,OAAO,GAAGhO,KAAOG,EAAM8J,UAAU+D,OAAO,GAAGhO,MAAQA,GAAQ,QAQxE,SAAS8mC,EAAsB3mC,EAAO4mC,QACvB,IAAdA,IAAwBA,EAAY,IAExC,IAGI5mC,EAAM8J,UAAU+D,OAAO,GAAG+4B,UAAY5mC,EAAM8J,UAAU+D,OAAO,GAAG+4B,WAAa,GAC7EzpC,OAAOqK,KAAKo/B,GAAWv2B,SAAQ,SAAUrN,GAErChD,EAAM8J,UAAU+D,OAAO,GAAG+4B,UAAU5jC,GAAO4jC,EAAU5jC,MAG7D,MAAO+E,KAOJ,SAAS8+B,IACZ,IACI,OAAOznC,SAAS+jB,SAASnkB,KAE7B,MAAO46B,GACH,MAAO,IASR,SAASkN,EAAiBC,GAK7B,IAUI,IATA,IAAIC,EAAcD,EAGdE,EAAM,GACN5d,EAAS,EACTqW,EAAM,EAENwH,EADY,MACUhqC,OACtBiqC,OAAU,EACPH,GAAe3d,IARI,KAcN,UALhB8d,EAAUC,EAAqBJ,KAKJ3d,EAAS,GAAKqW,EAAMuH,EAAI/pC,OAASgqC,EAAYC,EAAQjqC,QAb/D,KAgBjB+pC,EAAIzpC,KAAK2pC,GACTzH,GAAOyH,EAAQjqC,OACf8pC,EAAcA,EAAYzmC,WAE9B,OAAO0mC,EAAII,UAAU9hC,KAhBL,OAkBpB,MAAOwC,GACH,MAAO,aAQf,SAASq/B,EAAqBhM,GAC1B,IAEIkM,EACAzF,EACA7+B,EACAoZ,EACApf,EANA+pC,EAAO3L,EACP6L,EAAM,GAMV,IAAKF,IAASA,EAAKrrB,QACf,MAAO,GAOX,GALAurB,EAAIzpC,KAAKupC,EAAKrrB,QAAQ3K,eAClBg2B,EAAK/5B,IACLi6B,EAAIzpC,KAAK,IAAMupC,EAAK/5B,KAExBs6B,EAAYP,EAAKO,YACA,YAASA,GAEtB,IADAzF,EAAUyF,EAAUj/B,MAAM,OACrBrL,EAAI,EAAGA,EAAI6kC,EAAQ3kC,OAAQF,IAC5BiqC,EAAIzpC,KAAK,IAAMqkC,EAAQ7kC,IAG/B,IAAIuqC,EAAgB,CAAC,OAAQ,OAAQ,QAAS,OAC9C,IAAKvqC,EAAI,EAAGA,EAAIuqC,EAAcrqC,OAAQF,IAClCgG,EAAMukC,EAAcvqC,IACpBof,EAAO2qB,EAAKvnC,aAAawD,KAErBikC,EAAIzpC,KAAK,IAAMwF,EAAM,KAAQoZ,EAAO,MAG5C,OAAO6qB,EAAI1hC,KAAK,IAKb,SAASiiC,IACZ,OAAO,IAAIC,MAAOC,UAAY,IA2B3B,SAASC,EAAsBC,EAAKC,GACvC,IAAKA,EACD,OARgB,IAUpB,IAAIC,EAAcxgB,SAAS,GAAKugB,EAAQ,IACxC,IAAKpG,MAAMqG,GACP,OAAqB,IAAdA,EAEX,IAAIC,EAAaN,KAAK79B,MAAM,GAAKi+B,GACjC,OAAKpG,MAAMsG,GAfS,IAgBTA,EAAaH,EAQrB,SAASI,EAAgB7C,GAC5B,IACI,OAAKA,GAAoB,mBAAPA,GAGXA,EAAGzjC,MATQ,cAWtB,MAAO/C,GAGH,MAdkB,kB,yDClT1B,mJAQO,SAASspC,EAAS7I,EAAK8I,GAG1B,YAFY,IAARA,IAAkBA,EAAM,GAET,iBAAR9I,GAA4B,IAAR8I,EACpB9I,EAEJA,EAAIliC,QAAUgrC,EAAM9I,EAAMA,EAAI+I,OAAO,EAAGD,GAAO,MAUnD,SAASE,EAAS/d,EAAMge,GAC3B,IAAIC,EAAUje,EACVke,EAAKD,EAAQprC,OACjB,GAAIqrC,GAAM,IACN,OAAOD,EAEPD,EAAQE,IACRF,EAAQE,GAEZ,IAAIC,EAAQ55B,KAAKs5B,IAAIG,EAAQ,GAAI,GAC7BG,EAAQ,IACRA,EAAQ,GAEZ,IAAIC,EAAM75B,KAAKmR,IAAIyoB,EAAQ,IAAKD,GAchC,OAbIE,EAAMF,EAAK,IACXE,EAAMF,GAENE,IAAQF,IACRC,EAAQ55B,KAAKs5B,IAAIO,EAAM,IAAK,IAEhCH,EAAUA,EAAQ7kC,MAAM+kC,EAAOC,GAC3BD,EAAQ,IACRF,EAAU,WAAaA,GAEvBG,EAAMF,IACND,GAAW,WAERA,EAQJ,SAASI,EAAS/+B,EAAOg/B,GAC5B,IAAK7kC,MAAMyF,QAAQI,GACf,MAAO,GAIX,IAFA,IAAIi/B,EAAS,GAEJ5rC,EAAI,EAAGA,EAAI2M,EAAMzM,OAAQF,IAAK,CACnC,IAAI0F,EAAQiH,EAAM3M,GAClB,IACI4rC,EAAOprC,KAAKsT,OAAOpO,IAEvB,MAAO/D,GACHiqC,EAAOprC,KAAK,iCAGpB,OAAOorC,EAAOrjC,KAAKojC,GAOhB,SAASE,EAAkBnmC,EAAO+2B,GACrC,OAAI,YAASA,GACFA,EAAQhoB,KAAK/O,GAED,iBAAZ+2B,IAC4B,IAA5B/2B,EAAM6N,QAAQkpB,K,gCCtF7B,8FAGIqP,EAAgB,EAIb,SAASC,IACZ,OAAOD,EAAgB,EAKpB,SAASE,IAEZF,GAAiB,EACjBlnC,YAAW,WACPknC,GAAiB,KAWlB,SAASG,EAAK9D,EAAIh/B,EAAS+iC,GAG9B,QAFgB,IAAZ/iC,IAAsBA,EAAU,IAElB,mBAAPg/B,EACP,OAAOA,EAEX,IAEI,GAAIA,EAAGr2B,WACH,OAAOq2B,EAGX,GAAIA,EAAGgE,mBACH,OAAOhE,EAAGgE,mBAGlB,MAAOxqC,GAIH,OAAOwmC,EAEX,IAAIiE,EAAgB,WAChB,IAAI/jC,EAAOvB,MAAM1G,UAAUqG,MAAMnG,KAAK+G,WAEtC,IAEQ6kC,GAA4B,mBAAXA,GACjBA,EAAOrrC,MAAMoG,KAAMI,WAEvB,IAAIglC,EAAmBhkC,EAAKoC,KAAI,SAAU62B,GAAO,OAAO2K,EAAK3K,EAAKn4B,MAClE,OAAIg/B,EAAGmE,YAKInE,EAAGmE,YAAYzrC,MAAMoG,KAAMolC,GAM/BlE,EAAGtnC,MAAMoG,KAAMolC,GAG1B,MAAOE,GAcH,MAbAP,IACA,aAAU,SAAUt9B,GAChBA,EAAM89B,mBAAkB,SAAUxpC,GAC9B,IAAIkP,EAAiB,IAAiB,GAAIlP,GAM1C,OALImG,EAAQygC,YACR,YAAsB13B,OAAgBvN,OAAWA,GACjD,YAAsBuN,EAAgB/I,EAAQygC,YAElD13B,EAAeZ,MAAQ,IAAiB,GAAIY,EAAeZ,MAAO,CAAEjK,UAAWgB,IACxE6J,KAEX,YAAiBq6B,MAEfA,IAKd,IACI,IAAK,IAAInmC,KAAY+hC,EACbhoC,OAAOC,UAAUC,eAAeC,KAAK6nC,EAAI/hC,KACzCgmC,EAAchmC,GAAY+hC,EAAG/hC,IAIzC,MAAO2E,IACPo9B,EAAG/nC,UAAY+nC,EAAG/nC,WAAa,GAC/BgsC,EAAchsC,UAAY+nC,EAAG/nC,UAC7BD,OAAOiF,eAAe+iC,EAAI,qBAAsB,CAC5C9iC,YAAY,EACZK,MAAO0mC,IAIXjsC,OAAOiK,iBAAiBgiC,EAAe,CACnCt6B,WAAY,CACRzM,YAAY,EACZK,OAAO,GAEX2E,oBAAqB,CACjBhF,YAAY,EACZK,MAAOyiC,KAIf,IACqBhoC,OAAOssC,yBAAyBL,EAAe,QACjD7K,cACXphC,OAAOiF,eAAegnC,EAAe,OAAQ,CACzC9mC,IAAK,WACD,OAAO6iC,EAAGzjC,QAK1B,MAAOqG,IAGP,OAAOqhC,I,gCCpIX,gD,gCCAA,qGAMIM,EAAuB,WACvB,SAASA,IAELzlC,KAAK0lC,qBAAsB,EAE3B1lC,KAAK2lC,gBAAkB,GAEvB3lC,KAAK4lC,iBAAmB,GAExB5lC,KAAK6lC,aAAe,GAEpB7lC,KAAK8lC,MAAQ,GAEb9lC,KAAK+lC,MAAQ,GAEb/lC,KAAKgmC,OAAS,GAEdhmC,KAAKimC,SAAW,GAmQpB,OA7PAR,EAAMtsC,UAAU+sC,iBAAmB,SAAUjrB,GACzCjb,KAAK2lC,gBAAgBpsC,KAAK0hB,IAK9BwqB,EAAMtsC,UAAUosC,kBAAoB,SAAUtqB,GAE1C,OADAjb,KAAK4lC,iBAAiBrsC,KAAK0hB,GACpBjb,MAKXylC,EAAMtsC,UAAUgtC,sBAAwB,WACpC,IAAIz+B,EAAQ1H,KACPA,KAAK0lC,sBACN1lC,KAAK0lC,qBAAsB,EAC3B/nC,YAAW,WACP+J,EAAMi+B,gBAAgBv5B,SAAQ,SAAU6O,GACpCA,EAASvT,MAEbA,EAAMg+B,qBAAsB,OAOxCD,EAAMtsC,UAAUitC,uBAAyB,SAAUC,EAAYtqC,EAAOyL,EAAMysB,GACxE,IAAIvsB,EAAQ1H,KAEZ,YADc,IAAVi0B,IAAoBA,EAAQ,GACzB,IAAI,KAAY,SAAUp5B,EAASC,GACtC,IAAIwrC,EAAYD,EAAWpS,GAE3B,GAAc,OAAVl4B,GAAuC,mBAAduqC,EACzBzrC,EAAQkB,OAEP,CACD,IAAIjC,EAASwsC,EAAU,IAAiB,GAAIvqC,GAAQyL,GAChD,YAAW1N,GACXA,EACK2C,MAAK,SAAU8pC,GAAS,OAAO7+B,EAAM0+B,uBAAuBC,EAAYE,EAAO/+B,EAAMysB,EAAQ,GAAGx3B,KAAK5B,MACrG4B,KAAK,KAAM3B,GAGhB4M,EAAM0+B,uBAAuBC,EAAYvsC,EAAQ0N,EAAMysB,EAAQ,GAC1Dx3B,KAAK5B,GACL4B,KAAK,KAAM3B,QAQhC2qC,EAAMtsC,UAAU4iB,QAAU,SAAU5R,GAGhC,OAFAnK,KAAK8lC,MAAQ37B,GAAQ,GACrBnK,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAU6iB,QAAU,SAAUC,GAGhC,OAFAjc,KAAK+lC,MAAQ,IAAiB,GAAI/lC,KAAK+lC,MAAO9pB,GAC9Cjc,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUijB,OAAS,SAAUrd,EAAKN,GACpC,IAAI0K,EAGJ,OAFAnJ,KAAK+lC,MAAQ,IAAiB,GAAI/lC,KAAK+lC,QAAQ58B,EAAK,IAAOpK,GAAON,EAAO0K,IACzEnJ,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAU+iB,UAAY,SAAUC,GAGlC,OAFAnc,KAAKgmC,OAAS,IAAiB,GAAIhmC,KAAKgmC,OAAQ7pB,GAChDnc,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUkjB,SAAW,SAAUtd,EAAKsL,GACtC,IAAIlB,EAGJ,OAFAnJ,KAAKgmC,OAAS,IAAiB,GAAIhmC,KAAKgmC,SAAS78B,EAAK,IAAOpK,GAAOsL,EAAOlB,IAC3EnJ,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUqtC,eAAiB,SAAUC,GAGvC,OAFAzmC,KAAK0mC,aAAeD,EACpBzmC,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUwtC,SAAW,SAAU1+B,GAGjC,OAFAjI,KAAK8G,OAASmB,EACdjI,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUytC,eAAiB,SAAUC,GAMvC,OALA7mC,KAAK8mC,aAAeD,EAChB7mC,KAAK+mC,QACL/mC,KAAK+mC,MAAMF,YAAcA,GAE7B7mC,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUmjB,WAAa,SAAUvd,EAAKwd,GACxC,IAAIpT,EAGJ,OAFAnJ,KAAKimC,SAAW,IAAiB,GAAIjmC,KAAKimC,WAAW98B,EAAK,IAAOpK,GAAOwd,EAASpT,IACjFnJ,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAU6tC,QAAU,SAAUC,GAGhC,OAFAjnC,KAAK+mC,MAAQE,EACbjnC,KAAKmmC,wBACEnmC,MAMXylC,EAAMtsC,UAAU+tC,QAAU,WACtB,OAAOlnC,KAAK+mC,OAMhBtB,EAAMj3B,MAAQ,SAAU/G,GACpB,IAAI0/B,EAAW,IAAI1B,EAanB,OAZIh+B,IACA0/B,EAAStB,aAAe,IAAiBp+B,EAAMo+B,cAC/CsB,EAASpB,MAAQ,IAAiB,GAAIt+B,EAAMs+B,OAC5CoB,EAASnB,OAAS,IAAiB,GAAIv+B,EAAMu+B,QAC7CmB,EAASlB,SAAW,IAAiB,GAAIx+B,EAAMw+B,UAC/CkB,EAASrB,MAAQr+B,EAAMq+B,MACvBqB,EAASrgC,OAASW,EAAMX,OACxBqgC,EAASJ,MAAQt/B,EAAMs/B,MACvBI,EAASL,aAAer/B,EAAMq/B,aAC9BK,EAAST,aAAej/B,EAAMi/B,aAC9BS,EAASvB,iBAAmB,IAAiBn+B,EAAMm+B,mBAEhDuB,GAKX1B,EAAMtsC,UAAUiuC,MAAQ,WAWpB,OAVApnC,KAAK6lC,aAAe,GACpB7lC,KAAK+lC,MAAQ,GACb/lC,KAAKgmC,OAAS,GACdhmC,KAAK8lC,MAAQ,GACb9lC,KAAKimC,SAAW,GAChBjmC,KAAK8G,YAASpJ,EACdsC,KAAK8mC,kBAAeppC,EACpBsC,KAAK0mC,kBAAehpC,EACpBsC,KAAK+mC,WAAQrpC,EACbsC,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUoiB,cAAgB,SAAUC,EAAYE,GAClD,IAAIE,EAAmB,IAAiB,CAAED,UAAW,eAAqBH,GAM1E,OALAxb,KAAK6lC,kBACkBnoC,IAAnBge,GAAgCA,GAAkB,EAC5C,IAAiB1b,KAAK6lC,aAAc,CAACjqB,IAAmBpc,OAAOkc,GAC/D,IAAiB1b,KAAK6lC,aAAc,CAACjqB,IAC/C5b,KAAKmmC,wBACEnmC,MAKXylC,EAAMtsC,UAAUkuC,iBAAmB,WAG/B,OAFArnC,KAAK6lC,aAAe,GACpB7lC,KAAKmmC,wBACEnmC,MAMXylC,EAAMtsC,UAAUmuC,kBAAoB,SAAUvrC,GAE1CA,EAAM0qC,YAAc1qC,EAAM0qC,YACpB5mC,MAAMyF,QAAQvJ,EAAM0qC,aAChB1qC,EAAM0qC,YACN,CAAC1qC,EAAM0qC,aACX,GAEFzmC,KAAK0mC,eACL3qC,EAAM0qC,YAAc1qC,EAAM0qC,YAAY7lC,OAAOZ,KAAK0mC,eAGlD3qC,EAAM0qC,cAAgB1qC,EAAM0qC,YAAYxtC,eACjC8C,EAAM0qC,aAWrBhB,EAAMtsC,UAAU4Q,aAAe,SAAUhO,EAAOyL,GAsB5C,OArBIxH,KAAKgmC,QAAU9sC,OAAOqK,KAAKvD,KAAKgmC,QAAQ/sC,SACxC8C,EAAMsO,MAAQ,IAAiB,GAAIrK,KAAKgmC,OAAQjqC,EAAMsO,QAEtDrK,KAAK+lC,OAAS7sC,OAAOqK,KAAKvD,KAAK+lC,OAAO9sC,SACtC8C,EAAMkgB,KAAO,IAAiB,GAAIjc,KAAK+lC,MAAOhqC,EAAMkgB,OAEpDjc,KAAK8lC,OAAS5sC,OAAOqK,KAAKvD,KAAK8lC,OAAO7sC,SACtC8C,EAAMoO,KAAO,IAAiB,GAAInK,KAAK8lC,MAAO/pC,EAAMoO,OAEpDnK,KAAKimC,UAAY/sC,OAAOqK,KAAKvD,KAAKimC,UAAUhtC,SAC5C8C,EAAMqO,SAAW,IAAiB,GAAIpK,KAAKimC,SAAUlqC,EAAMqO,WAE3DpK,KAAK8G,SACL/K,EAAMkM,MAAQjI,KAAK8G,QAEnB9G,KAAK8mC,eACL/qC,EAAM8qC,YAAc7mC,KAAK8mC,cAE7B9mC,KAAKsnC,kBAAkBvrC,GACvBA,EAAMmO,YAAc,IAAkBnO,EAAMmO,aAAe,GAAKlK,KAAK6lC,cACrE9pC,EAAMmO,YAAcnO,EAAMmO,YAAYjR,OAAS,EAAI8C,EAAMmO,iBAAcxM,EAChEsC,KAAKomC,uBAAuB,IAAiBmB,IAA4BvnC,KAAK4lC,kBAAmB7pC,EAAOyL,IAE5Gi+B,EApRe,GA0R1B,SAAS8B,IACL,IAAI1mC,EAAS,cAGb,OAFAA,EAAOW,WAAaX,EAAOW,YAAc,GACzCX,EAAOW,WAAWgmC,sBAAwB3mC,EAAOW,WAAWgmC,uBAAyB,GAC9E3mC,EAAOW,WAAWgmC,sBAMtB,SAASC,EAAwBxsB,GACpCssB,IAA2BhuC,KAAK0hB,K,gCC3SpC,sDAGIysB,EAA6B,SAAUhJ,GAEvC,SAASgJ,EAAYlqC,GACjB,IAAImqC,EAAa3nC,KAAKC,YAClByH,EAAQg3B,EAAOrlC,KAAK2G,KAAMxC,IAAYwC,KAK1C,OAJA0H,EAAMlK,QAAUA,EAEhBkK,EAAMjK,KAAOkqC,EAAWxuC,UAAU8G,YAAYxC,KAC9C,YAAeiK,EAAOigC,EAAWxuC,WAC1BuO,EAEX,OAVA,IAAkBggC,EAAahJ,GAUxBgJ,EAXqB,CAY9BtrC,Q,uECfF,8uC,6ECEA,IAAIsT,EAA4B,mBAAXnR,QAAoD,iBAApBA,OAAO+B,SAAwB,SAAUqP,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,mBAAXpR,QAAyBoR,EAAI1P,cAAgB1B,QAAUoR,IAAQpR,OAAOpF,UAAY,gBAAkBwW,GAgCtQvX,EAAOD,QApBP,SAAuBwX,EAAKuxB,GACxB,IAAInoC,EAAI,EACJwK,EAAO,GAEX,GAAI1D,MAAMyF,QAAQqK,GACd,KAAO5W,EAAI4W,EAAI1W,SACgB,IAAvBioC,EAAGvxB,EAAI5W,GAAIA,EAAG4W,KADG5W,QAKtB,GAAkE,iBAA9C,IAAR4W,EAAsB,YAAcD,EAAQC,KAA8B,OAARA,EAEjF,IADApM,EAAOrK,OAAOqK,KAAKoM,GACZ5W,EAAIwK,EAAKtK,SAC2B,IAAnCioC,EAAGvxB,EAAIpM,EAAKxK,IAAKwK,EAAKxK,GAAI4W,KADR5W,M,iCCflC,SAAS6uC,EAAYliC,GACnB,OAAOA,EAAMwH,QAAQ,sCAAuC,QAW9D06B,EAAYpJ,MAAQ,WAElB,OADAjxB,OAAOs6B,OAASD,EACTA,GAGTxvC,EAAOD,QAAUyvC,G,qBC5BjB,qBACE,SAAS3vC,GAGV,IAAI6vC,EAA4C3vC,EAQ5C4vC,GAL0C3vC,GAC7CA,EAAOD,QAI0B,iBAAV0I,GAAsBA,GAC1CknC,EAAWlnC,SAAWknC,GAAcA,EAAWxvC,OAOnD,IAAIyvC,EAAqB,kCAIrBC,EAAsB,eAItBC,EAAoB,+DAEpBC,EAAsB,klGACtBC,EAAY,CAAC,IAAO,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,MAAM,IAAS,iBAAiB,IAAS,UAAU,IAAS,YAAY,IAAS,OAAO,IAAS,SAAS,KAAK,MAAM,KAAK,UAAU,IAAS,SAAS,IAAS,cAAc,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAO,OAAO,KAAe,aAAa,IAAS,QAAQ,EAAI,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAI,QAAQ,IAAI,OAAO,IAAS,QAAQ,IAAI,QAAQ,IAAS,SAAS,IAAI,OAAO,IAAO,QAAQ,IAAI,QAAQ,IAAO,SAAS,IAAI,SAAS,IAAS,OAAO,IAAS,OAAO,IAAO,SAASC,IAAK,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAI,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAO,OAAO,IAAO,OAAO,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,UAAY,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAI,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAI,MAAM,IAAO,OAAO,IAAS,QAAQ,IAAS,MAAM,IAAO,MAAM,IAAS,OAAO,IAAS,QAAQ,IAAO,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAO,MAAM,IAAO,OAAO,IAAO,MAAM,IAAS,SAAS,IAAS,KAAK,IAAS,KAAK,IAAS,MAAM,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,aAAa,IAAS,WAAW,IAAS,MAAM,IAAS,aAAa,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,MAAM,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,MAAM,IAAS,KAAK,IAAS,QAAQ,IAAS,KAAK,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,SAAS,IAAS,MAAM,IAAI,OAAO,IAAO,KAAK,IAAO,MAAM,IAAO,QAAQ,IAAI,KAAK,IAAS,MAAM,KAAU,OAAO,IAAI,SAAS,IAAS,KAAK,KAAU,MAAM,IAAS,QAAQ,IAAI,KAAK,IAAS,MAAM,KAAU,OAAO,IAAO,MAAM,IAAI,OAAO,IAAO,SAAS,IAAS,QAAQ,IAAS,KAAK,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,IAAS,WAAW,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,KAAe,OAAO,IAAS,KAAK,KAAe,MAAM,IAAS,MAAM,IAAS,KAAK,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,KAAK,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,YAAY,KAAe,OAAO,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,KAAe,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,KAAK,IAAS,MAAM,KAAe,OAAO,IAAS,KAAK,IAAS,MAAM,KAAe,OAAO,IAAS,KAAK,KAAe,MAAM,IAAS,KAAK,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,IAAS,KAAK,KAAe,OAAO,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,KAAe,MAAM,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,KAAK,IAAS,OAAO,IAAS,KAAK,IAAS,OAAO,IAAS,KAAK,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,KAAe,mBAAmB,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,KAAe,kBAAkB,IAAS,QAAQ,KAAe,oBAAoB,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,QAAQ,IAAS,SAAS,KAAe,UAAU,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,KAAK,KAAe,MAAM,IAAS,KAAK,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,UAAU,KAAe,WAAW,IAAS,UAAU,IAAS,UAAU,IAAS,QAAQ,KAAe,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,WAAW,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,WAAW,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,WAAW,IAAS,kBAAkB,IAAS,mBAAmB,IAAS,YAAY,IAAS,aAAa,IAAS,WAAW,IAAS,WAAW,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,OAAO,IAAS,uBAAuB,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,mBAAmB,IAAS,oBAAoB,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,oBAAoB,IAAS,WAAW,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,WAAW,IAAS,aAAa,IAAS,eAAe,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,UAAU,IAAS,OAAO,IAAS,OAAO,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,kBAAkB,IAAS,oBAAoB,IAAS,sBAAsB,IAAS,mBAAmB,IAAS,gBAAgB,IAAS,iBAAiB,IAAS,mBAAmB,IAAS,qBAAqB,IAAS,oBAAoB,IAAS,qBAAqB,IAAS,kBAAkB,IAAS,oBAAoB,IAAS,gBAAgB,IAAS,iBAAiB,IAAS,mBAAmB,IAAS,qBAAqB,IAAS,oBAAoB,IAAS,qBAAqB,IAAS,kBAAkB,IAAS,oBAAoB,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,eAAe,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,WAAW,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,WAAW,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,UAAU,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,WAAW,IAAS,kBAAkB,KAAe,qBAAqB,IAAS,mBAAmB,KAAe,sBAAsB,IAAS,SAAS,IAAS,WAAW,IAAS,UAAU,IAAS,SAAS,IAAS,WAAW,IAAS,WAAW,IAAS,OAAO,IAAS,cAAc,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,WAAW,IAAS,WAAW,IAAS,QAAQ,IAAS,WAAW,IAAS,WAAW,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,SAAS,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,WAAW,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,SAAS,IAAS,OAAO,IAAS,UAAU,IAAS,WAAW,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,WAAW,IAAS,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,MAAM,IAAS,KAAK,IAAS,SAAS,IAAS,OAAO,IAAS,UAAU,IAAS,WAAW,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,UAAU,KAAe,WAAW,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,QAAQ,IAAS,QAAQ,IAAS,UAAU,IAAS,UAAU,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,WAAW,IAAS,WAAW,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,KAAK,IAAS,KAAK,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,WAAW,KAAe,oBAAoB,IAAS,iBAAiB,KAAe,0BAA0B,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,KAAe,QAAQ,IAAS,QAAQ,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,KAAK,IAAS,KAAK,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,UAAU,IAAS,OAAO,KAAe,QAAQ,IAAS,OAAO,KAAe,QAAQ,IAAS,SAAS,IAAS,SAAS,KAAe,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,UAAU,IAAS,UAAU,IAAS,QAAQ,IAAS,UAAU,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,KAAe,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAO,SAAS,IAAO,OAAO,EAAI,SAAS,IAAO,QAAQ,IAAO,MAAM,IAAS,OAAO,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,MAAM,IAAO,MAAM,IAAS,KAAK,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAO,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,GAAK,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,IAAS,UAAU,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,OAAO,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,KAAK,IAAO,QAAQ,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,UAAU,IAAS,UAAU,IAAS,KAAK,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,UAAU,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,I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","file":"js/webapp.6583e14cb115c32af0b8.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"webapp\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"webapp\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t12: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t12: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"3\":\"d3\",\"4\":\"highlightjs\",\"5\":\"org\",\"7\":\"pdfjs\",\"10\":\"showdown\"}[chunkId]||chunkId) + \".\" + {\"3\":\"1a77dc57ed5902be8bf5\",\"4\":\"013f2b69313022f30437\",\"5\":\"5174f2b8350d07e203c7\",\"7\":\"e7e30b41a87080946820\",\"10\":\"91aacda56c49ac468692\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"4\":1,\"5\":1,\"10\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"3\":\"d3\",\"4\":\"highlightjs\",\"5\":\"org\",\"7\":\"pdfjs\",\"10\":\"showdown\"}[chunkId]||chunkId) + \".\" + {\"3\":\"1a77dc57ed5902be8bf5\",\"4\":\"013f2b69313022f30437\",\"5\":\"5174f2b8350d07e203c7\",\"7\":\"e7e30b41a87080946820\",\"10\":\"91aacda56c49ac468692\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([520,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { consoleSandbox, getGlobalObject } from './misc';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' ')); // tslint:disable-line:no-console\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' ')); // tslint:disable-line:no-console\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' ')); // tslint:disable-line:no-console\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map","import { API } from '@sentry/core';\nimport { PromiseBuffer, SentryError } from '@sentry/utils';\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n this.url = new API(this.options.dsn).getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","export var SDK_NAME = 'sentry.javascript.browser';\nexport var SDK_VERSION = '5.12.1';\n//# sourceMappingURL=version.js.map","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { isElement, isError, isEvent, isInstanceOf, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName, htmlTreeAsString } from './misc';\nimport { truncate } from './string';\n/**\n * Wrap a given object method with a higher-order function\n *\n * @param source An object that contains a method to be wrapped.\n * @param name A name of method to be wrapped.\n * @param replacement A function that should be used to wrap a given method.\n * @returns void\n */\nexport function fill(source, name, replacement) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacement(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n // tslint:disable-next-line:strict-type-predicates\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(\n // tslint:disable-next-line:no-unsafe-any\n function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all it's attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n source.type = event_1.type;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '<unknown>';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '<unknown>';\n }\n // tslint:disable-next-line:strict-type-predicates\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var i in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, i)) {\n source[i] = event_1;\n }\n }\n return source;\n }\n return value;\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // tslint:disable-next-line:no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/** Transforms any input value into a string form, either primitive value or a type of the input */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n // tslint:disable-next-line:no-tautology-expression\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n // If value implements `toJSON` method, call it and return early\n // tslint:disable:no-unsafe-any\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n // tslint:enable:no-unsafe-any\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\nexport function normalize(input, depth) {\n try {\n // tslint:disable-next-line:no-unsafe-any\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n // tslint:disable:strict-type-predicates\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n//# sourceMappingURL=object.js.map","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instanciate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n if (options.debug === true) {\n logger.enable();\n }\n getCurrentHub().bindClient(new clientClass(options));\n}\n//# sourceMappingURL=sdk.js.map","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map","import * as tslib_1 from \"tslib\";\nimport { Dsn, isPrimitive, isThenable, logger, normalize, SyncPromise, truncate, uuid4 } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient.prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeBackend, NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Is the client still processing a call? */\n this._processing = false;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._processing = true;\n this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._processEvent(event, hint, scope); })\n .then(function (finalEvent) {\n // We need to check for finalEvent in case beforeSend returned null\n eventId = finalEvent && finalEvent.event_id;\n _this._processing = false;\n })\n .then(null, function (reason) {\n logger.error(reason);\n _this._processing = false;\n });\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._processing = true;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(\"\" + message, level, hint)\n : this._getBackend().eventFromException(message, hint);\n promisedEvent\n .then(function (event) { return _this._processEvent(event, hint, scope); })\n .then(function (finalEvent) {\n // We need to check for finalEvent in case beforeSend returned null\n eventId = finalEvent && finalEvent.event_id;\n _this._processing = false;\n })\n .then(null, function (reason) {\n logger.error(reason);\n _this._processing = false;\n });\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._processing = true;\n this._processEvent(event, hint, scope)\n .then(function (finalEvent) {\n // We need to check for finalEvent in case beforeSend returned null\n eventId = finalEvent && finalEvent.event_id;\n _this._processing = false;\n })\n .then(null, function (reason) {\n logger.error(reason);\n _this._processing = false;\n });\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientProcessing(timeout).then(function (status) {\n clearInterval(status.interval);\n return _this._getBackend()\n .getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return status.ready && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegrations = function () {\n return this._integrations || {};\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Waits for the client to be done with processing. */\n BaseClient.prototype._isClientProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = 0;\n clearInterval(interval);\n interval = setInterval(function () {\n if (!_this._processing) {\n resolve({\n interval: interval,\n ready: true,\n });\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n resolve({\n interval: interval,\n ready: false,\n });\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional informartion about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions(), environment = _a.environment, release = _a.release, dist = _a.dist, _b = _a.maxValueLength, maxValueLength = _b === void 0 ? 250 : _b, _c = _a.normalizeDepth, normalizeDepth = _c === void 0 ? 3 : _c;\n var prepared = tslib_1.__assign({}, event);\n if (prepared.environment === undefined && environment !== undefined) {\n prepared.environment = environment;\n }\n if (prepared.release === undefined && release !== undefined) {\n prepared.release = release;\n }\n if (prepared.dist === undefined && dist !== undefined) {\n prepared.dist = dist;\n }\n if (prepared.message) {\n prepared.message = truncate(prepared.message, maxValueLength);\n }\n var exception = prepared.exception && prepared.exception.values && prepared.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = prepared.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n if (prepared.event_id === undefined) {\n prepared.event_id = hint && hint.event_id ? hint.event_id : uuid4();\n }\n this._addIntegrations(prepared.sdk);\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (scope) {\n // In case we have a hub we reassign it.\n result = scope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n // tslint:disable-next-line:strict-type-predicates\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n // tslint:disable:no-unsafe-any\n return tslib_1.__assign({}, event, (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (tslib_1.__assign({}, b, (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n }), (event.user && {\n user: normalize(event.user, depth),\n }), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n }), (event.extra && {\n extra: normalize(event.extra, depth),\n }));\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param sdkInfo The sdkInfo of the event that will be filled with all integrations.\n */\n BaseClient.prototype._addIntegrations = function (sdkInfo) {\n var integrationsArray = Object.keys(this._integrations);\n if (sdkInfo && integrationsArray.length > 0) {\n sdkInfo.integrations = integrationsArray;\n }\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional informartion about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n if (!this._isEnabled()) {\n return SyncPromise.reject('SDK not enabled, will not send event.');\n }\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n if (typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject('This event has been sampled, will not send event.');\n }\n return new SyncPromise(function (resolve, reject) {\n _this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n reject('An event processor returned null, will not send event.');\n return;\n }\n var finalEvent = prepared;\n try {\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || !beforeSend) {\n _this._getBackend().sendEvent(finalEvent);\n resolve(finalEvent);\n return;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n // tslint:disable-next-line:strict-type-predicates\n if (typeof beforeSendResult === 'undefined') {\n logger.error('`beforeSend` method has to return `null` or a valid event.');\n }\n else if (isThenable(beforeSendResult)) {\n _this._handleAsyncBeforeSend(beforeSendResult, resolve, reject);\n }\n else {\n finalEvent = beforeSendResult;\n if (finalEvent === null) {\n logger.log('`beforeSend` returned `null`, will not send event.');\n resolve(null);\n return;\n }\n // From here on we are really async\n _this._getBackend().sendEvent(finalEvent);\n resolve(finalEvent);\n }\n }\n catch (exception) {\n _this.captureException(exception, {\n data: {\n __sentry__: true,\n },\n originalException: exception,\n });\n reject('`beforeSend` threw an error, will not send event.');\n }\n })\n .then(null, function () {\n reject('`beforeSend` threw an error, will not send event.');\n });\n });\n };\n /**\n * Resolves before send Promise and calls resolve/reject on parent SyncPromise.\n */\n BaseClient.prototype._handleAsyncBeforeSend = function (beforeSend, resolve, reject) {\n var _this = this;\n beforeSend\n .then(function (processedEvent) {\n if (processedEvent === null) {\n reject('`beforeSend` returned `null`, will not send event.');\n return;\n }\n // From here on we are really async\n _this._getBackend().sendEvent(processedEvent);\n resolve(processedEvent);\n })\n .then(null, function (e) {\n reject(\"beforeSend rejected with \" + e);\n });\n };\n return BaseClient;\n}());\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.DOMPurify = factory());\n}(this, (function () { 'use strict';\n\nfunction _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar hasOwnProperty = Object.hasOwnProperty;\nvar setPrototypeOf = Object.setPrototypeOf;\nvar isFrozen = Object.isFrozen;\nvar objectKeys = Object.keys;\nvar freeze = Object.freeze;\nvar seal = Object.seal; // eslint-disable-line import/no-mutable-exports\n\nvar _ref = typeof Reflect !== 'undefined' && Reflect;\nvar apply = _ref.apply;\nvar construct = _ref.construct;\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray$1(args))))();\n };\n}\n\nvar arrayForEach = unapply(Array.prototype.forEach);\nvar arrayIndexOf = unapply(Array.prototype.indexOf);\nvar arrayJoin = unapply(Array.prototype.join);\nvar arrayPop = unapply(Array.prototype.pop);\nvar arrayPush = unapply(Array.prototype.push);\nvar arraySlice = unapply(Array.prototype.slice);\n\nvar stringToLowerCase = unapply(String.prototype.toLowerCase);\nvar stringMatch = unapply(String.prototype.match);\nvar stringReplace = unapply(String.prototype.replace);\nvar stringIndexOf = unapply(String.prototype.indexOf);\nvar stringTrim = unapply(String.prototype.trim);\n\nvar regExpTest = unapply(RegExp.prototype.test);\nvar regExpCreate = unconstruct(RegExp);\n\nvar typeErrorCreate = unconstruct(TypeError);\n\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n}\n\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n}\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n var newObject = {};\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n\nvar html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n// SVG\nvar svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern']);\n\nvar svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\nvar mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\nvar text = freeze(['#text']);\n\nvar html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocomplete', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'coords', 'crossorigin', 'datetime', 'default', 'dir', 'disabled', 'download', 'enctype', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'integrity', 'ismap', 'label', 'lang', 'list', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\nvar svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\nvar mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\nvar xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g // eslint-disable-line no-control-regex\n);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (error) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.0.8';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var useDOMParser = false;\n var removeTitle = false;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(svgFilters), _toConsumableArray(mathMl), _toConsumableArray(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(mathMl$1), _toConsumableArray(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for jQuery's $() factory? */\n var SAFE_FOR_JQUERY = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify. */\n var RETURN_DOM_IMPORT = false;\n\n /* Try to return a Trusted Type object instead of a string, retrun a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n node.parentNode.removeChild(node);\n } catch (error) {\n node.outerHTML = emptyHTML;\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (error) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\s]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /* Use DOMParser to workaround Firefox bug (see comment below) */\n if (useDOMParser) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (error) {}\n }\n\n /* Remove title to fix a mXSS bug in older MS Edge */\n if (removeTitle) {\n addToSet(FORBID_TAGS, ['title']);\n }\n\n /* Otherwise use createHTMLDocument, because DOMParser is unsafe in\n Safari (see comment below) */\n if (!doc || !doc.documentElement) {\n doc = implementation.createHTMLDocument('');\n var _doc = doc,\n body = _doc.body;\n\n body.parentNode.removeChild(body.parentNode.firstElementChild);\n body.outerHTML = dirtyPayload;\n }\n\n if (dirty && leadingWhitespace) {\n doc.body.insertBefore(document.createTextNode(leadingWhitespace), doc.body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n };\n\n // Firefox uses a different parser for innerHTML rather than\n // DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)\n // which means that you *must* use DOMParser, otherwise the output may\n // not be safe if used in a document.write context later.\n //\n // So we feature detect the Firefox bug and use the DOMParser if necessary.\n //\n // Chrome 77 and other versions ship an mXSS bug that caused a bypass to\n // happen. We now check for the mXSS trigger and react accordingly.\n if (DOMPurify.isSupported) {\n (function () {\n try {\n var doc = _initDocument('<svg><p><textarea><img src=\"</textarea><img src=x abc=1//\">');\n if (doc.querySelector('svg img')) {\n useDOMParser = true;\n }\n } catch (error) {}\n })();\n\n (function () {\n try {\n var doc = _initDocument('<x/><title></title><img>');\n if (regExpTest(/<\\/title/, doc.querySelector('title').innerHTML)) {\n removeTitle = true;\n }\n } catch (error) {}\n })();\n }\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n return NodeFilter.FILTER_ACCEPT;\n }, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(obj) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? obj instanceof Node : obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n // eslint-disable-next-line complexity\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = stringToLowerCase(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Take care of an mXSS pattern using p, br inside svg, math */\n if ((tagName === 'svg' || tagName === 'math') && currentNode.querySelectorAll('p, br').length !== 0) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for black-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n try {\n var htmlToInsert = currentNode.innerHTML;\n currentNode.insertAdjacentHTML('AfterEnd', trustedTypesPolicy ? trustedTypesPolicy.createHTML(htmlToInsert) : htmlToInsert);\n } catch (error) {}\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove in case a noscript/noembed XSS is suspected */\n if (tagName === 'noscript' && regExpTest(/<\\/noscript/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if (tagName === 'noembed' && regExpTest(/<\\/noembed/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Convert markup to cover jQuery behavior */\n if (SAFE_FOR_JQUERY && !currentNode.firstElementChild && (!currentNode.content || !currentNode.content.firstElementChild) && regExpTest(/</g, currentNode.textContent)) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n if (currentNode.innerHTML) {\n currentNode.innerHTML = stringReplace(currentNode.innerHTML, /</g, '<');\n } else {\n currentNode.innerHTML = stringReplace(currentNode.textContent, /</g, '<');\n }\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$$1, lcName)) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Check for binary attributes */\n // eslint-disable-next-line no-negated-condition\n } else if (!value) {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n } else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n // eslint-disable-next-line complexity\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var idAttr = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = stringToLowerCase(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n // Safari (iOS + Mac), last tested v8.0.5, crashes if you try to\n // remove a \"name\" attribute from an <img> tag that has an \"id\"\n // attribute at the time.\n if (lcName === 'name' && currentNode.nodeName === 'IMG' && attributes.id) {\n idAttr = attributes.id;\n attributes = arraySlice(attributes, []);\n _removeAttribute('id', currentNode);\n _removeAttribute(name, currentNode);\n if (arrayIndexOf(attributes, idAttr) > l) {\n currentNode.setAttribute('id', idAttr.value);\n }\n } else if (\n // This works around a bug in Safari, where input[type=file]\n // cannot be dynamically set after type has been removed\n currentNode.nodeName === 'INPUT' && lcName === 'type' && value === 'file' && hookEvent.keepAttr && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {\n continue;\n } else {\n // This avoids a crash in Safari v9.0 with double-ids.\n // The trick is to first set the id to be empty and then to\n // remove the attribute\n if (name === 'id') {\n currentNode.setAttribute(name, '');\n }\n\n _removeAttribute(name, currentNode);\n }\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (SAFE_FOR_JQUERY && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Take care of an mXSS pattern using namespace switches */\n if (regExpTest(/svg|math/i, currentNode.namespaceURI) && regExpTest(regExpCreate('</(' + arrayJoin(objectKeys(FORBID_CONTENTS), '|') + ')', 'i'), value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (error) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n if (!dirty) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* No special handling necessary for in-place sanitization */\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!-->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && RETURN_TRUSTED_TYPE && dirty.indexOf('<') === -1) {\n return trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /* AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs. */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = stringToLowerCase(tag);\n var lcName = stringToLowerCase(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nreturn purify;\n\n})));\n//# sourceMappingURL=purify.js.map\n","module.exports = require(\"regenerator-runtime\");\n","import * as tslib_1 from \"tslib\";\nimport { consoleSandbox, dynamicRequire, getGlobalObject, isNodeEnv, logger, timestampWithMs, uuid4, } from '@sentry/utils';\nimport { Scope } from './scope';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be incresed when the global interface\n * changes a and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 3;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [];\n this._stack.push({ client: client, scope: scope });\n }\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var top = this.getStackTop();\n if (top && top.client && top.client[method]) {\n (_a = top.client)[method].apply(_a, tslib_1.__spread(args, [top.scope]));\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var stack = this.getStack();\n var parentScope = stack.length > 0 ? stack[stack.length - 1].scope : undefined;\n var scope = Scope.clone(parentScope);\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n return this.getStack().pop() !== undefined;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, tslib_1.__assign({}, finalHint, { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, tslib_1.__assign({}, finalHint, { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, tslib_1.__assign({}, hint, { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var top = this.getStackTop();\n if (!top.scope || !top.client) {\n return;\n }\n var _a = (top.client.getOptions && top.client.getOptions()) || {}, _b = _a.beforeBreadcrumb, beforeBreadcrumb = _b === void 0 ? null : _b, _c = _a.maxBreadcrumbs, maxBreadcrumbs = _c === void 0 ? DEFAULT_BREADCRUMBS : _c;\n if (maxBreadcrumbs <= 0) {\n return;\n }\n var timestamp = timestampWithMs();\n var mergedBreadcrumb = tslib_1.__assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null) {\n return;\n }\n top.scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setContext = function (name, context) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var top = this.getStackTop();\n if (top.scope && top.client) {\n callback(top.scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client) {\n return null;\n }\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (spanOrSpanContext, forceNoChild) {\n if (forceNoChild === void 0) { forceNoChild = false; }\n return this._callExtensionMethod('startSpan', spanOrSpanContext, forceNoChild);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n // tslint:disable-next-line: strict-type-predicates\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/** Returns the global shim registry. */\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Try to read the hub from an active domain, fallback to the registry if one doesnt exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by webpack.\n // We do not want this to happen, we need to try to `require` the domain node module and fail if we are in browser\n // for example so we do not have to shim it and use `getCurrentHub` universally.\n var domain = dynamicRequire(module, 'domain');\n var activeDomain = domain.active;\n // If there no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or its an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return true;\n }\n return false;\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return carrier.__SENTRY__.hub;\n }\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier) {\n return false;\n }\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, domain) {\n let endOfPattern = '\\\\/[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git(?:\\\\/?|\\\\#[\\\\w\\\\.\\\\-_]+)?)?$';\n let pattern = `(?:git|https?|git@)(?:\\\\:\\\\/\\\\/)?${domain}[/|:][A-Za-z0-9-]+?` + endOfPattern;\n let re = new RegExp(pattern);\n return re.test(url);\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n let selection = window.getSelection();\n selection.removeAllRanges();\n let range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport objectFitImages from 'object-fit-images';\nimport {selectText} from 'utils/functions';\nimport {BREAKPOINT_MD} from 'utils/constants';\n\nlet collapseSidebar = false;\nlet previousSidebarState = localStorage.getItem('swh-sidebar-collapsed');\nif (previousSidebarState !== undefined) {\n collapseSidebar = JSON.parse(previousSidebarState);\n}\n\n$(document).on('DOMContentLoaded', () => {\n // set state to collapsed on smaller devices\n if ($(window).width() < BREAKPOINT_MD) {\n collapseSidebar = true;\n }\n\n // restore previous sidebar state (collapsed/expanded)\n if (collapseSidebar) {\n // hack to avoid animated transition for collapsing sidebar\n // when loading a page\n let sidebarTransition = $('.main-sidebar, .main-sidebar:before').css('transition');\n let sidebarEltsTransition = $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition');\n $('.main-sidebar, .main-sidebar:before').css('transition', 'none');\n $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition', 'none');\n $('body').addClass('sidebar-collapse');\n $('.swh-words-logo-swh').css('visibility', 'visible');\n // restore transitions for user navigation\n setTimeout(() => {\n $('.main-sidebar, .main-sidebar:before').css('transition', sidebarTransition);\n $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition', sidebarEltsTransition);\n });\n }\n});\n\n$(document).on('collapsed.lte.pushmenu', event => {\n if ($('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n});\n\n$(document).on('shown.lte.pushmenu', event => {\n $('.swh-words-logo-swh').css('visibility', 'hidden');\n});\n\nfunction ensureNoFooterOverflow() {\n $('body').css('padding-bottom', $('footer').outerHeight() + 'px');\n}\n\n$(document).ready(() => {\n // redirect to last browse page if any when clicking on the 'Browse' entry\n // in the sidebar\n $(`.swh-browse-link`).click(event => {\n let lastBrowsePage = sessionStorage.getItem('last-browse-page');\n if (lastBrowsePage) {\n event.preventDefault();\n window.location = lastBrowsePage;\n }\n });\n\n // ensure footer do not overflow main content for mobile devices\n // or after resizing the browser window\n ensureNoFooterOverflow();\n $(window).resize(function() {\n ensureNoFooterOverflow();\n if ($('body').hasClass('sidebar-collapse') && $('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n });\n // activate css polyfill 'object-fit: contain' in old browsers\n objectFitImages();\n\n // reparent the modals to the top navigation div in order to be able\n // to display them\n $('.swh-browse-top-navigation').append($('.modal'));\n\n let selectedCode = null;\n\n function getCodeOrPreEltUnderPointer(e) {\n let elts = document.elementsFromPoint(e.clientX, e.clientY);\n for (let elt of elts) {\n if (elt.nodeName === 'CODE' || elt.nodeName === 'PRE') {\n return elt;\n }\n }\n return null;\n }\n\n // click handler to set focus on code block for copy\n $(document).click(e => {\n selectedCode = getCodeOrPreEltUnderPointer(e);\n });\n\n function selectCode(event, selectedCode) {\n if (selectedCode) {\n let hljsLnCodeElts = $(selectedCode).find('.hljs-ln-code');\n if (hljsLnCodeElts.length) {\n selectText(hljsLnCodeElts[0], hljsLnCodeElts[hljsLnCodeElts.length - 1]);\n } else {\n selectText(selectedCode.firstChild, selectedCode.lastChild);\n }\n event.preventDefault();\n }\n }\n\n // select the whole text of focused code block when user\n // double clicks or hits Ctrl+A\n $(document).dblclick(e => {\n if ((e.ctrlKey || e.metaKey)) {\n selectCode(e, getCodeOrPreEltUnderPointer(e));\n }\n });\n\n $(document).keydown(e => {\n if ((e.ctrlKey || e.metaKey) && e.key === 'a') {\n selectCode(e, selectedCode);\n }\n });\n\n // show/hide back-to-top button\n let scrollThreshold = 0;\n scrollThreshold += $('.swh-top-bar').height() || 0;\n scrollThreshold += $('.navbar').height() || 0;\n $(window).scroll(() => {\n if ($(window).scrollTop() > scrollThreshold) {\n $('#back-to-top').css('display', 'block');\n } else {\n $('#back-to-top').css('display', 'none');\n }\n });\n});\n\nexport function initPage(page) {\n\n $(document).ready(() => {\n // set relevant sidebar link to page active\n $(`.swh-${page}-item`).addClass('active');\n $(`.swh-${page}-link`).addClass('active');\n\n // triggered when unloading the current page\n $(window).on('unload', () => {\n // backup sidebar state (collapsed/expanded)\n let sidebarCollapsed = $('body').hasClass('sidebar-collapse');\n localStorage.setItem('swh-sidebar-collapsed', JSON.stringify(sidebarCollapsed));\n // backup current browse page\n if (page === 'browse') {\n sessionStorage.setItem('last-browse-page', window.location);\n }\n });\n\n });\n}\n\nexport function initHomePage() {\n $(document).ready(() => {\n $('.swh-coverage-list').iFrameResize({heightCalculationMethod: 'taggedElement'});\n fetch(Urls.stat_counters())\n .then(response => response.json())\n .then(data => {\n if (data.stat_counters) {\n $('#swh-contents-count').html(data.stat_counters.content.toLocaleString());\n $('#swh-revisions-count').html(data.stat_counters.revision.toLocaleString());\n $('#swh-origins-count').html(data.stat_counters.origin.toLocaleString());\n $('#swh-directories-count').html(data.stat_counters.directory.toLocaleString());\n $('#swh-persons-count').html(data.stat_counters.person.toLocaleString());\n $('#swh-releases-count').html(data.stat_counters.release.toLocaleString());\n }\n if (data.stat_counters_history) {\n swh.webapp.drawHistoryCounterGraph('#swh-contents-count-history', data.stat_counters_history.content);\n swh.webapp.drawHistoryCounterGraph('#swh-revisions-count-history', data.stat_counters_history.revision);\n swh.webapp.drawHistoryCounterGraph('#swh-origins-count-history', data.stat_counters_history.origin);\n }\n });\n });\n initPage('home');\n}\n\nexport function showModalMessage(title, message) {\n $('#swh-web-modal-message .modal-title').text(title);\n $('#swh-web-modal-message .modal-content p').text(message);\n $('#swh-web-modal-message').modal('show');\n}\n\nexport function showModalConfirm(title, message, callback) {\n $('#swh-web-modal-confirm .modal-title').text(title);\n $('#swh-web-modal-confirm .modal-content p').text(message);\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').bind('click', () => {\n callback();\n $('#swh-web-modal-confirm').modal('hide');\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').unbind('click');\n });\n $('#swh-web-modal-confirm').modal('show');\n}\n\nexport function showModalHtml(title, html) {\n $('#swh-web-modal-html .modal-title').text(title);\n $('#swh-web-modal-html .modal-body').html(html);\n $('#swh-web-modal-html').modal('show');\n}\n\nexport function addJumpToPagePopoverToDataTable(dataTableElt) {\n dataTableElt.on('draw.dt', function() {\n $('.paginate_button.disabled').css('cursor', 'pointer');\n $('.paginate_button.disabled').on('click', event => {\n const pageInfo = dataTableElt.page.info();\n let content = '<select class=\"jump-to-page\">';\n for (let i = 1; i <= pageInfo.pages; ++i) {\n let selected = '';\n if (i === pageInfo.page + 1) {\n selected = 'selected';\n }\n content += `<option value=\"${i}\" ${selected}>${i}</option>`;\n }\n content += `</select><span> / ${pageInfo.pages}</span>`;\n $(event.target).popover({\n 'title': 'Jump to page',\n 'content': content,\n 'html': true,\n 'placement': 'top',\n 'sanitizeFn': swh.webapp.filterXSS\n });\n $(event.target).popover('show');\n $('.jump-to-page').on('change', function() {\n $('.paginate_button.disabled').popover('hide');\n const pageNumber = parseInt($(this).val()) - 1;\n dataTableElt.page(pageNumber).draw('page');\n });\n });\n });\n\n dataTableElt.on('preXhr.dt', () => {\n $('.paginate_button.disabled').popover('hide');\n });\n}\n\nlet swhObjectIcons;\n\nexport function setSwhObjectIcons(icons) {\n swhObjectIcons = icons;\n}\n\nexport function getSwhObjectIcon(swhObjectType) {\n return swhObjectIcons[swhObjectType];\n}\n\nlet browsedSwhObjectMetadata = {};\n\nexport function setBrowsedSwhObjectMetadata(metadata) {\n browsedSwhObjectMetadata = metadata;\n}\n\nexport function getBrowsedSwhObjectMetadata() {\n return browsedSwhObjectMetadata;\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {removeUrlFragment} from 'utils/functions';\n\nexport async function highlightCode(showLineNumbers = true) {\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // keep track of the first highlighted line\n let firstHighlightedLine = null;\n // highlighting color\n let lineHighlightColor = 'rgb(193, 255, 193)';\n\n // function to highlight a line\n function highlightLine(i) {\n let lineTd = $(`.hljs-ln-line[data-line-number=\"${i}\"]`);\n lineTd.css('background-color', lineHighlightColor);\n return lineTd;\n }\n\n // function to reset highlighting\n function resetHighlightedLines() {\n firstHighlightedLine = null;\n $('.hljs-ln-line[data-line-number]').css('background-color', 'inherit');\n }\n\n function scrollToLine(lineDomElt) {\n if ($(lineDomElt).closest('.swh-content').length > 0) {\n $('html, body').animate({\n scrollTop: $(lineDomElt).offset().top - 70\n }, 500);\n }\n }\n\n // function to highlight lines based on a url fragment\n // in the form '#Lx' or '#Lx-Ly'\n function parseUrlFragmentForLinesToHighlight() {\n let lines = [];\n let linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n resetHighlightedLines();\n if (lines.length === 1) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n } else if (lines[0] < lines[lines.length - 1]) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n for (let i = lines[0] + 1; i <= lines[lines.length - 1]; ++i) {\n highlightLine(i);\n }\n }\n }\n\n $(document).ready(() => {\n // highlight code and add line numbers\n $('code').each((i, block) => {\n hljs.highlightBlock(block);\n if (showLineNumbers) {\n hljs.lineNumbersBlock(block, {singleLine: true});\n }\n });\n\n if (!showLineNumbers) {\n return;\n }\n\n // click handler to dynamically highlight line(s)\n // when the user clicks on a line number (lines range\n // can also be highlighted while holding the shift key)\n $('body').click(evt => {\n if (evt.target.classList.contains('hljs-ln-n')) {\n let line = parseInt($(evt.target).data('line-number'));\n if (evt.shiftKey && firstHighlightedLine && line > firstHighlightedLine) {\n let firstLine = firstHighlightedLine;\n resetHighlightedLines();\n for (let i = firstLine; i <= line; ++i) {\n highlightLine(i);\n }\n firstHighlightedLine = firstLine;\n window.location.hash = `#L${firstLine}-L${line}`;\n } else {\n resetHighlightedLines();\n highlightLine(line);\n window.location.hash = `#L${line}`;\n scrollToLine(evt.target);\n }\n } else if ($(evt.target).closest('.hljs-ln').length) {\n resetHighlightedLines();\n removeUrlFragment();\n }\n });\n\n // update lines highlighting when the url fragment changes\n $(window).on('hashchange', () => parseUrlFragmentForLinesToHighlight());\n\n // schedule lines highlighting if any as hljs.lineNumbersBlock() is async\n setTimeout(() => {\n parseUrlFragmentForLinesToHighlight();\n });\n\n });\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError} from 'utils/functions';\n\nimport {decode} from 'html-encoder-decoder';\n\nexport async function renderMarkdown(domElt, markdownDocUrl) {\n\n let showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // Adapted from https://github.com/Bloggify/showdown-highlight\n // Copyright (c) 2016-19 Bloggify <support@bloggify.org> (https://bloggify.org)\n function showdownHighlight() {\n return [{\n type: 'output',\n filter: function(text, converter, options) {\n let left = '<pre><code\\\\b[^>]*>';\n let right = '</code></pre>';\n let flags = 'g';\n let classAttr = 'class=\"';\n let replacement = (wholeMatch, match, left, right) => {\n match = decode(match);\n let lang = (left.match(/class=\"([^ \"]+)/) || [])[1];\n\n if (left.includes(classAttr)) {\n let attrIndex = left.indexOf(classAttr) + classAttr.length;\n left = left.slice(0, attrIndex) + 'hljs ' + left.slice(attrIndex);\n } else {\n left = left.slice(0, -1) + ' class=\"hljs\">';\n }\n\n if (lang && hljs.getLanguage(lang)) {\n return left + hljs.highlight(lang, match).value + right;\n } else {\n return left + match + right;\n }\n };\n\n return showdown.helper.replaceRecursiveRegExp(text, replacement, left, right, flags);\n }\n }];\n }\n\n $(document).ready(() => {\n let converter = new showdown.Converter({\n tables: true,\n extensions: [showdownHighlight]\n });\n fetch(markdownDocUrl)\n .then(handleFetchError)\n .then(response => response.text())\n .then(data => {\n $(domElt).addClass('swh-showdown');\n $(domElt).html(swh.webapp.filterXSS(converter.makeHtml(data)));\n })\n .catch(() => {\n $(domElt).text('Readme bytes are not available');\n });\n });\n\n}\n\nexport async function renderOrgData(domElt, orgDocData) {\n\n let org = await import(/* webpackChunkName: \"org\" */ 'utils/org');\n\n let parser = new org.Parser();\n let orgDocument = parser.parse(orgDocData, {toc: false});\n let orgHTMLDocument = orgDocument.convert(org.ConverterHTML, {});\n $(domElt).addClass('swh-org');\n $(domElt).html(swh.webapp.filterXSS(orgHTMLDocument.toString()));\n // remove toc and section numbers to get consistent\n // with other readme renderings\n $('.swh-org ul').first().remove();\n $('.section-number').remove();\n\n}\n\nexport function renderOrg(domElt, orgDocUrl) {\n\n $(document).ready(() => {\n fetch(orgDocUrl)\n .then(handleFetchError)\n .then(response => response.text())\n .then(data => {\n renderOrgData(domElt, data);\n })\n .catch(() => {\n $(domElt).text('Readme bytes are not available');\n });\n });\n\n}\n\nexport function renderTxt(domElt, txtDocUrl) {\n\n $(document).ready(() => {\n fetch(txtDocUrl)\n .then(handleFetchError)\n .then(response => response.text())\n .then(data => {\n let orgMode = '-*- mode: org -*-';\n if (data.indexOf(orgMode) !== -1) {\n renderOrgData(domElt, data.replace(orgMode, ''));\n } else {\n $(domElt).addClass('swh-readme-txt');\n $(domElt)\n .html('')\n .append($('<pre></pre>').text(data));\n }\n })\n .catch(() => {\n $(domElt).text('Readme bytes are not available');\n });\n });\n\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// adapted from pdf.js examples located at http://mozilla.github.io/pdf.js/examples/\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function renderPdf(pdfUrl) {\n\n let pdfDoc = null;\n let pageNum = 1;\n let pageRendering = false;\n let pageNumPending = null;\n let defaultScale = 1.5;\n let canvas = $('#pdf-canvas')[0];\n let ctx = canvas.getContext('2d');\n\n // Get page info from document, resize canvas accordingly, and render page.\n function renderPage(num) {\n pageRendering = true;\n // Using promise to fetch the page\n pdfDoc.getPage(num).then(page => {\n let divWidth = $('.swh-content').width();\n let scale = Math.min(defaultScale, divWidth / page.getViewport(1).width);\n\n let viewport = page.getViewport(scale);\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n // Render PDF page into canvas context\n let renderContext = {\n canvasContext: ctx,\n viewport: viewport\n };\n let renderTask = page.render(renderContext);\n\n // Wait for rendering to finish\n renderTask.promise.then(() => {\n pageRendering = false;\n if (pageNumPending !== null) {\n // New page rendering is pending\n renderPage(pageNumPending);\n pageNumPending = null;\n }\n });\n });\n\n // Update page counters\n $('#pdf-page-num').text(num);\n }\n\n // If another page rendering in progress, waits until the rendering is\n // finished. Otherwise, executes rendering immediately.\n function queueRenderPage(num) {\n if (pageRendering) {\n pageNumPending = num;\n } else {\n renderPage(num);\n }\n }\n\n // Displays previous page.\n function onPrevPage() {\n if (pageNum <= 1) {\n return;\n }\n pageNum--;\n queueRenderPage(pageNum);\n }\n\n // Displays next page.\n function onNextPage() {\n if (pageNum >= pdfDoc.numPages) {\n return;\n }\n pageNum++;\n queueRenderPage(pageNum);\n }\n\n let pdfjs = await import(/* webpackChunkName: \"pdfjs\" */ 'pdfjs-dist');\n\n pdfjs.GlobalWorkerOptions.workerSrc = staticAsset('js/pdf.worker.min.js');\n\n $(document).ready(() => {\n $('#pdf-prev').click(onPrevPage);\n $('#pdf-next').click(onNextPage);\n let loadingTask = pdfjs.getDocument(pdfUrl);\n loadingTask.promise.then(pdf => {\n pdfDoc = pdf;\n $('#pdf-page-count').text(pdfDoc.numPages);\n // Initial/first page rendering\n renderPage(pageNum);\n }, function(reason) {\n // PDF loading error\n console.error(reason);\n });\n\n // Render PDF on resize\n $(window).on('resize', function() {\n queueRenderPage(pageNum);\n });\n });\n\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport 'script-loader!notebookjs';\nimport AnsiUp from 'ansi_up';\nimport './notebook.css';\n\nconst ansiup = new AnsiUp();\nansiup.escape_for_html = false;\n\nfunction escapeHTML(text) {\n text = text.replace(/</g, '<');\n text = text.replace(/>/g, '>');\n return text;\n}\n\nfunction unescapeHTML(text) {\n text = text.replace(/</g, '<');\n text = text.replace(/>/g, '>');\n return text;\n}\n\nfunction escapeLaTeX(text) {\n\n let blockMath = /\\$\\$(.+?)\\$\\$|\\\\\\\\\\[(.+?)\\\\\\\\\\]/msg;\n let inlineMath = /\\$(.+?)\\$|\\\\\\\\\\((.+?)\\\\\\\\\\)/g;\n let latexEnvironment = /\\\\begin\\{([a-z]*\\*?)\\}(.+?)\\\\end\\{\\1\\}/msg;\n\n let mathTextFound = [];\n let bm;\n while ((bm = blockMath.exec(text)) !== null) {\n mathTextFound.push(bm[1]);\n }\n\n let im;\n while ((im = inlineMath.exec(text)) !== null) {\n mathTextFound.push(im[1]);\n }\n\n let le;\n while ((le = latexEnvironment.exec(text)) !== null) {\n mathTextFound.push(le[1]);\n }\n\n for (let mathText of mathTextFound) {\n // showdown will remove line breaks in LaTex array and\n // some escaping sequences when converting md to html.\n // So we use the following escaping hacks to keep them in the html\n // output and avoid MathJax typesetting errors.\n let escapedText = mathText.replace('\\\\\\\\', '\\\\\\\\\\\\\\\\');\n for (let specialLaTexChar of ['{', '}', '#', '%', '&', '_']) {\n escapedText = escapedText.replace(new RegExp(`\\\\\\\\${specialLaTexChar}`, 'g'),\n `\\\\\\\\${specialLaTexChar}`);\n }\n\n // some html escaping is also needed\n escapedText = escapeHTML(escapedText);\n\n // hack to prevent showdown to replace _ characters\n // by html em tags as it will break some math typesetting\n // (setting the literalMidWordUnderscores option is not\n // enough as iy only works for _ characters contained in words)\n escapedText = escapedText.replace(/_/g, '{@}underscore{@}');\n\n if (mathText !== escapedText) {\n text = text.replace(mathText, escapedText);\n }\n }\n\n return text;\n}\n\nexport async function renderNotebook(nbJsonUrl, domElt) {\n\n let showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n function renderMarkdown(text) {\n let converter = new showdown.Converter({\n tables: true,\n simplifiedAutoLink: true,\n rawHeaderId: true,\n literalMidWordUnderscores: true\n });\n\n // some LaTeX escaping is required to get correct math typesetting\n text = escapeLaTeX(text);\n\n // render markdown\n let rendered = converter.makeHtml(text);\n\n // restore underscores in rendered HTML (see escapeLaTeX function)\n rendered = rendered.replace(/{@}underscore{@}/g, '_');\n\n return rendered;\n }\n\n function highlightCode(text, preElt, codeElt, lang) {\n // no need to unescape text processed by ansiup\n if (text.indexOf('<span style=\"color:rgb(') === -1) {\n text = unescapeHTML(text);\n }\n if (lang && hljs.getLanguage(lang)) {\n return hljs.highlight(lang, text).value;\n } else {\n return text;\n }\n }\n\n function renderAnsi(text) {\n return ansiup.ansi_to_html(text);\n }\n\n nb.markdown = renderMarkdown;\n nb.highlighter = highlightCode;\n nb.ansi = renderAnsi;\n\n function initMathJax() {\n\n // same config as in nbviewer\n window.MathJax = {\n TeX: {\n equationNumbers: {\n autoNumber: 'AMS',\n useLabelIds: true\n }\n },\n tex2jax: {\n inlineMath: [ ['$', '$'], ['\\\\(', '\\\\)'] ],\n displayMath: [ ['$$', '$$'], ['\\\\[', '\\\\]'] ],\n processEscapes: true,\n processEnvironments: true\n },\n displayAlign: 'center',\n 'HTML-CSS': {\n styles: {'.MathJax_Display': {'margin': 0}},\n linebreaks: { automatic: true }\n }\n };\n\n // MathJax is not easily webpackable in its current version\n // (https://github.com/mathjax/MathJax/issues/1629)\n // and is quite a monster regarding the number of files to distribute.\n // So we will load it through a CDN for commodity of use here.\n let head = document.getElementsByTagName('head')[0];\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML';\n head.appendChild(script);\n }\n\n fetch(nbJsonUrl)\n .then(response => response.json())\n .then(nbJson => {\n // parse the notebook\n let notebook = nb.parse(nbJson);\n // render it to HTML and apply XSS filtering\n let rendered = swh.webapp.filterXSS(notebook.render());\n // insert rendered notebook in the DOM\n $(domElt).append(rendered);\n // set light red background color for stderr output cells\n $('pre.nb-stderr').parent().css('background', '#fdd');\n // load MathJax library for math typesetting\n initMathJax();\n });\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport DOMPurify from 'dompurify';\n\n// we register a hook when performing XSS filtering in order to\n// possibly replace a relative image url with the one for getting\n// the image bytes from the archive content\nDOMPurify.addHook('uponSanitizeAttribute', function(node, data) {\n if (node.nodeName === 'IMG' && data.attrName === 'src') {\n\n // image url does not need any processing here\n if (data.attrValue.startsWith('data:image') ||\n data.attrValue.startsWith('http:') ||\n data.attrValue.startsWith('https:')) {\n return;\n }\n\n // get currently browsed swh object metadata\n let swhObjectMetadata = swh.webapp.getBrowsedSwhObjectMetadata();\n\n // the swh object is provided without any useful context\n // to get the image checksums from the web api\n if (!swhObjectMetadata.hasOwnProperty('directory')) {\n return;\n }\n\n // used internal endpoint as image url to possibly get the image data\n // from the archive content\n let url = Urls.browse_directory_resolve_content_path(swhObjectMetadata.directory,\n data.attrValue);\n data.attrValue = url;\n }\n});\n\nexport function filterXSS(html) {\n return DOMPurify.sanitize(html);\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './history-counters.css';\n\nexport async function drawHistoryCounterGraph(container, historyData) {\n\n const d3 = await import(/* webpackChunkName: \"d3\" */ 'utils/d3');\n\n // remove previously created histogram and tooltip if any\n d3.select(container).select('svg').remove();\n d3.select(`${container}-tooltip`).remove();\n\n // histogram size and margins\n let width = 400;\n let height = 300;\n const margin = {top: 20, right: 50, bottom: 70, left: 30};\n\n // create responsive svg\n const svg = d3.select(container)\n .attr('style',\n `padding-bottom: ${Math.ceil(height * 100 / width)}%`)\n .append('svg')\n .attr('viewBox', `0 0 ${width} ${height}`);\n\n // create tooltip div\n const tooltip = d3.select('body')\n .append('div')\n .attr('class', 'd3-tooltip')\n .attr('id', `${container}-tooltip`)\n .style('opacity', 0);\n\n // update width and height without margins\n width = width - margin.left - margin.right;\n height = height - margin.top - margin.bottom;\n\n // Make sure data points are sorted, by x coordinate then y coordinate.\n historyData.sort(function(a, b) {\n return a[0] - b[0] !== 0 ? a[0] - b[0] : a[1] - b[1];\n });\n\n const firstPoint = historyData[0];\n const lastPoint = historyData[historyData.length - 1];\n\n // create main svg group element\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // create x scale\n const xScale = d3.scaleTime()\n .rangeRound([0, width])\n .domain([firstPoint[0], lastPoint[0]])\n .nice();\n\n // create y scale\n const yScale = d3.scaleLinear()\n .range([height, 0])\n .domain([firstPoint[1], lastPoint[1]])\n .nice();\n\n // create line generator\n const line = d3.line()\n .x(d => xScale(d[0]))\n .y(d => yScale(d[1]));\n\n // utility functions\n const dateFormatter = d3.timeFormat('%d %b %Y');\n const valueFormatter = d3.format('.3s');\n const bisectDate = d3.bisector(d => d[0]).left;\n\n // add x axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(0, ${height})`)\n .call(\n d3.axisBottom(xScale)\n .ticks(10)\n .tickFormat(dateFormatter)\n )\n .selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', 'rotate(-65)');\n\n // add y axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(${width}, 0)`)\n .call(\n d3.axisRight(yScale)\n .ticks(10)\n .tickFormat(valueFormatter)\n );\n\n // add data plot\n g.append('path')\n .datum(historyData)\n .attr('class', 'swh-history-counter-line')\n .attr('d', line);\n\n // add tooltip\n const focus = g.append('g')\n .attr('class', 'swh-history-counter-focus')\n .style('display', 'none');\n\n focus.append('circle')\n .attr('r', 8);\n\n g.append('rect')\n .attr('class', 'swh-history-counter-overlay')\n .attr('width', width)\n .attr('height', height)\n .on('mouseover', function() {\n focus.style('display', null);\n updateTooltip(this);\n tooltip.transition()\n .duration(200)\n .style('opacity', 1);\n })\n .on('mouseout', () => {\n focus.style('display', 'none');\n tooltip.transition()\n .duration(200)\n .style('opacity', 0);\n })\n .on('mousemove', function() {\n updateTooltip(this);\n });\n\n function updateTooltip(elt) {\n const x0 = xScale.invert(d3.mouse(elt)[0]);\n const i = bisectDate(historyData, x0, 1);\n if (i >= historyData.length) return;\n const d0 = historyData[i - 1];\n const d1 = historyData[i];\n const d = x0 - d0[0] > d1[0] - x0 ? d1 : d0;\n focus.attr('transform', `translate(${xScale(d[0])}, ${yScale(d[1])})`);\n const tooltipText = `${dateFormatter(d[0])} ${valueFormatter(d[1])}`;\n tooltip.html(tooltipText)\n .style('left', d3.event.pageX + 15 + 'px')\n .style('top', d3.event.pageY + 'px');\n }\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function showBadgeInfoModal(objectType, objectPid) {\n let badgeImageUrl;\n let badgeLinkUrl;\n if (objectType === 'origin') {\n badgeImageUrl = Urls.swh_badge(objectType, objectPid);\n badgeLinkUrl = Urls.browse_origin(objectPid);\n } else {\n badgeImageUrl = Urls.swh_badge_pid(objectPid);\n badgeLinkUrl = Urls.browse_swh_id(objectPid);\n }\n let urlPrefix = `${window.location.protocol}//${window.location.hostname}`;\n if (window.location.port) {\n urlPrefix += `:${window.location.port}`;\n }\n const absoluteBadgeImageUrl = `${urlPrefix}${badgeImageUrl}`;\n const absoluteBadgeLinkUrl = `${urlPrefix}${badgeLinkUrl}`;\n const html = `\n <a href=\"${absoluteBadgeLinkUrl}\">\n <img class=\"swh-badge\" src=\"${absoluteBadgeImageUrl}\">\n </a>\n <div>\n <label>HTML</label>\n <pre class=\"swh-badge-html\"><a href=\"${absoluteBadgeLinkUrl}\">\n <img src=\"${absoluteBadgeImageUrl}\">\n</a></pre>\n </div>\n <div>\n <label>Markdown</label>\n <pre class=\"swh-badge-md\">[![SWH](${absoluteBadgeImageUrl})](${absoluteBadgeLinkUrl})</pre>\n </div>\n <div>\n <label>reStructuredText</label>\n <pre class=\"swh-badge-rst\">.. image:: ${absoluteBadgeImageUrl}\n :target: ${absoluteBadgeLinkUrl}</pre>\n </div>`;\n swh.webapp.showModalHtml('Software Heritage badge integration', html);\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport * as Sentry from '@sentry/browser';\n\n// Called by a <script> object in the header, after the configuration is\n// loaded.\nexport function sentryInit(sentryDsn) {\n if (sentryDsn !== undefined) {\n Sentry.init({ dsn: sentryDsn });\n }\n}\n\n// May be used in other scripts to report exceptions.\nexport function sentryCaptureException(exc) {\n Sentry.captureException(exc);\n}\n","import { isThenable } from './is';\n/** SyncPromise internal states */\nvar States;\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n if (isThenable(value)) {\n value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n if (_this._state === States.REJECTED) {\n _this._handlers.forEach(function (handler) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n });\n }\n else {\n _this._handlers.forEach(function (handler) {\n if (handler.onfulfilled) {\n // tslint:disable-next-line:no-unsafe-any\n handler.onfulfilled(_this._value);\n }\n });\n }\n _this._handlers = [];\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n // tslint:disable-next-line:no-unsafe-any\n resolve(val);\n });\n });\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","export { FunctionToString } from './functiontostring';\nexport { InboundFilters } from './inboundfilters';\n//# sourceMappingURL=index.js.map","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n originalFunctionToString = Function.prototype.toString;\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n // tslint:disable-next-line:no-unsafe-any\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = self._mergeOptions(clientOptions);\n if (self._shouldDropEvent(event, options)) {\n return null;\n }\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isBlacklistedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `blacklistUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isWhitelistedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `whitelistUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (options === void 0) { options = {}; }\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (options === void 0) { options = {}; }\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isBlacklistedUrl = function (event, options) {\n if (options === void 0) { options = {}; }\n // TODO: Use Glob instead?\n if (!options.blacklistUrls || !options.blacklistUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.blacklistUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isWhitelistedUrl = function (event, options) {\n if (options === void 0) { options = {}; }\n // TODO: Use Glob instead?\n if (!options.whitelistUrls || !options.whitelistUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.whitelistUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n blacklistUrls: tslib_1.__spread((this._options.blacklistUrls || []), (clientOptions.blacklistUrls || [])),\n ignoreErrors: tslib_1.__spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n whitelistUrls: tslib_1.__spread((this._options.whitelistUrls || []), (clientOptions.whitelistUrls || [])),\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return (frames_1 && frames_1[frames_1.length - 1].filename) || null;\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return (frames_2 && frames_2[frames_2.length - 1].filename) || null;\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n//# sourceMappingURL=inboundfilters.js.map","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","\"use strict\";\n\nvar iterateObject = require(\"iterate-object\"),\n regexEscape = require(\"regex-escape\"),\n he = require(\"he\");\n\n//const DECODE_MAP = require(\"./character-map\")\n//const ENCODE_MAP = {};\n//\n//iterateObject(DECODE_MAP, (value, name) => {\n// ENCODE_MAP[value] = name;\n//});\n\nmodule.exports = {\n /**\n * decode\n * Decodes an encoded string.\n *\n * @name decode\n * @function\n * @param {String} input The encoded string.\n * @returns {String} The decoded string.\n */\n decode: function decode(input) {\n return he.decode(input);\n }\n\n /**\n * encode\n * Encodes a string.\n *\n * @name encode\n * @function\n * @param {String} input The string that must be encoded.\n * @returns {String} The encoded string.\n */\n ,\n encode: function encode(input) {\n return he.encode(input);\n }\n};","/* ansi_up.js\n * author : Dru Nelson\n * license : MIT\n * http://github.com/drudru/ansi_up\n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['exports'], factory);\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\n // CommonJS\n factory(exports);\n } else {\n // Browser globals\n var exp = {};\n factory(exp);\n root.AnsiUp = exp.default;\n }\n}(this, function (exports) {\n\"use strict\";\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar PacketKind;\n(function (PacketKind) {\n PacketKind[PacketKind[\"EOS\"] = 0] = \"EOS\";\n PacketKind[PacketKind[\"Text\"] = 1] = \"Text\";\n PacketKind[PacketKind[\"Incomplete\"] = 2] = \"Incomplete\";\n PacketKind[PacketKind[\"ESC\"] = 3] = \"ESC\";\n PacketKind[PacketKind[\"Unknown\"] = 4] = \"Unknown\";\n PacketKind[PacketKind[\"SGR\"] = 5] = \"SGR\";\n PacketKind[PacketKind[\"OSCURL\"] = 6] = \"OSCURL\";\n})(PacketKind || (PacketKind = {}));\nvar AnsiUp = (function () {\n function AnsiUp() {\n this.VERSION = \"4.0.4\";\n this.setup_palettes();\n this._use_classes = false;\n this._escape_for_html = true;\n this.bold = false;\n this.fg = this.bg = null;\n this._buffer = '';\n this._url_whitelist = { 'http': 1, 'https': 1 };\n }\n Object.defineProperty(AnsiUp.prototype, \"use_classes\", {\n get: function () {\n return this._use_classes;\n },\n set: function (arg) {\n this._use_classes = arg;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AnsiUp.prototype, \"escape_for_html\", {\n get: function () {\n return this._escape_for_html;\n },\n set: function (arg) {\n this._escape_for_html = arg;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AnsiUp.prototype, \"url_whitelist\", {\n get: function () {\n return this._url_whitelist;\n },\n set: function (arg) {\n this._url_whitelist = arg;\n },\n enumerable: true,\n configurable: true\n });\n AnsiUp.prototype.setup_palettes = function () {\n var _this = this;\n this.ansi_colors =\n [\n [\n { rgb: [0, 0, 0], class_name: \"ansi-black\" },\n { rgb: [187, 0, 0], class_name: \"ansi-red\" },\n { rgb: [0, 187, 0], class_name: \"ansi-green\" },\n { rgb: [187, 187, 0], class_name: \"ansi-yellow\" },\n { rgb: [0, 0, 187], class_name: \"ansi-blue\" },\n { rgb: [187, 0, 187], class_name: \"ansi-magenta\" },\n { rgb: [0, 187, 187], class_name: \"ansi-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-white\" }\n ],\n [\n { rgb: [85, 85, 85], class_name: \"ansi-bright-black\" },\n { rgb: [255, 85, 85], class_name: \"ansi-bright-red\" },\n { rgb: [0, 255, 0], class_name: \"ansi-bright-green\" },\n { rgb: [255, 255, 85], class_name: \"ansi-bright-yellow\" },\n { rgb: [85, 85, 255], class_name: \"ansi-bright-blue\" },\n { rgb: [255, 85, 255], class_name: \"ansi-bright-magenta\" },\n { rgb: [85, 255, 255], class_name: \"ansi-bright-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-bright-white\" }\n ]\n ];\n this.palette_256 = [];\n this.ansi_colors.forEach(function (palette) {\n palette.forEach(function (rec) {\n _this.palette_256.push(rec);\n });\n });\n var levels = [0, 95, 135, 175, 215, 255];\n for (var r = 0; r < 6; ++r) {\n for (var g = 0; g < 6; ++g) {\n for (var b = 0; b < 6; ++b) {\n var col = { rgb: [levels[r], levels[g], levels[b]], class_name: 'truecolor' };\n this.palette_256.push(col);\n }\n }\n }\n var grey_level = 8;\n for (var i = 0; i < 24; ++i, grey_level += 10) {\n var gry = { rgb: [grey_level, grey_level, grey_level], class_name: 'truecolor' };\n this.palette_256.push(gry);\n }\n };\n AnsiUp.prototype.escape_txt_for_html = function (txt) {\n return txt.replace(/[&<>]/gm, function (str) {\n if (str === \"&\")\n return \"&\";\n if (str === \"<\")\n return \"<\";\n if (str === \">\")\n return \">\";\n });\n };\n AnsiUp.prototype.append_buffer = function (txt) {\n var str = this._buffer + txt;\n this._buffer = str;\n };\n AnsiUp.prototype.get_next_packet = function () {\n var pkt = {\n kind: PacketKind.EOS,\n text: '',\n url: ''\n };\n var len = this._buffer.length;\n if (len == 0)\n return pkt;\n var pos = this._buffer.indexOf(\"\\x1B\");\n if (pos == -1) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer;\n this._buffer = '';\n return pkt;\n }\n if (pos > 0) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer.slice(0, pos);\n this._buffer = this._buffer.slice(pos);\n return pkt;\n }\n if (pos == 0) {\n if (len == 1) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n var next_char = this._buffer.charAt(1);\n if ((next_char != '[') && (next_char != ']')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (next_char == '[') {\n if (!this._csi_regex) {\n this._csi_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\u001B[ # CSI\\n ([<-?]?) # private-mode char\\n ([d;]*) # any digits or semicolons\\n ([ -/]? # an intermediate modifier\\n [@-~]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\u001B[ # CSI\\n [ -~]* # anything legal\\n ([\\0-\\u001F:]) # anything illegal\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\\\x1b\\\\[ # CSI\\n ([\\\\x3c-\\\\x3f]?) # private-mode char\\n ([\\\\d;]*) # any digits or semicolons\\n ([\\\\x20-\\\\x2f]? # an intermediate modifier\\n [\\\\x40-\\\\x7e]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\\\x1b\\\\[ # CSI\\n [\\\\x20-\\\\x7e]* # anything legal\\n ([\\\\x00-\\\\x1f:]) # anything illegal\\n )\\n \"]));\n }\n var match = this._buffer.match(this._csi_regex);\n if (match === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match[4]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if ((match[1] != '') || (match[3] != 'm'))\n pkt.kind = PacketKind.Unknown;\n else\n pkt.kind = PacketKind.SGR;\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n if (next_char == ']') {\n if (len < 4) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if ((this._buffer.charAt(2) != '8')\n || (this._buffer.charAt(3) != ';')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (!this._osc_st) {\n this._osc_st = rgxG(__makeTemplateObject([\"\\n (?: # legal sequence\\n (\\u001B\\\\) # ESC | # alternate\\n (\\u0007) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\0-\\u0006] # anything illegal\\n | # alternate\\n [\\b-\\u001A] # anything illegal\\n | # alternate\\n [\\u001C-\\u001F] # anything illegal\\n )\\n \"], [\"\\n (?: # legal sequence\\n (\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (\\\\x07) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\\\x00-\\\\x06] # anything illegal\\n | # alternate\\n [\\\\x08-\\\\x1a] # anything illegal\\n | # alternate\\n [\\\\x1c-\\\\x1f] # anything illegal\\n )\\n \"]));\n }\n this._osc_st.lastIndex = 0;\n {\n var match_1 = this._osc_st.exec(this._buffer);\n if (match_1 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_1[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n {\n var match_2 = this._osc_st.exec(this._buffer);\n if (match_2 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_2[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n if (!this._osc_regex) {\n this._osc_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n \\u001B]8; # OSC Hyperlink\\n [ -:<-~]* # params (excluding ;)\\n ; # end of params\\n ([!-~]{0,512}) # URL capture\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n ([!-~]+) # TEXT capture\\n \\u001B]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n \\\\x1b\\\\]8; # OSC Hyperlink\\n [\\\\x20-\\\\x3a\\\\x3c-\\\\x7e]* # params (excluding ;)\\n ; # end of params\\n ([\\\\x21-\\\\x7e]{0,512}) # URL capture\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n ([\\\\x21-\\\\x7e]+) # TEXT capture\\n \\\\x1b\\\\]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n \"]));\n }\n var match = this._buffer.match(this._osc_regex);\n if (match === null) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n pkt.kind = PacketKind.OSCURL;\n pkt.url = match[1];\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n }\n };\n AnsiUp.prototype.ansi_to_html = function (txt) {\n this.append_buffer(txt);\n var blocks = [];\n while (true) {\n var packet = this.get_next_packet();\n if ((packet.kind == PacketKind.EOS)\n || (packet.kind == PacketKind.Incomplete))\n break;\n if ((packet.kind == PacketKind.ESC)\n || (packet.kind == PacketKind.Unknown))\n continue;\n if (packet.kind == PacketKind.Text)\n blocks.push(this.transform_to_html(this.with_state(packet)));\n else if (packet.kind == PacketKind.SGR)\n this.process_ansi(packet);\n else if (packet.kind == PacketKind.OSCURL)\n blocks.push(this.process_hyperlink(packet));\n }\n return blocks.join(\"\");\n };\n AnsiUp.prototype.with_state = function (pkt) {\n return { bold: this.bold, fg: this.fg, bg: this.bg, text: pkt.text };\n };\n AnsiUp.prototype.process_ansi = function (pkt) {\n var sgr_cmds = pkt.text.split(';');\n while (sgr_cmds.length > 0) {\n var sgr_cmd_str = sgr_cmds.shift();\n var num = parseInt(sgr_cmd_str, 10);\n if (isNaN(num) || num === 0) {\n this.fg = this.bg = null;\n this.bold = false;\n }\n else if (num === 1) {\n this.bold = true;\n }\n else if (num === 22) {\n this.bold = false;\n }\n else if (num === 39) {\n this.fg = null;\n }\n else if (num === 49) {\n this.bg = null;\n }\n else if ((num >= 30) && (num < 38)) {\n this.fg = this.ansi_colors[0][(num - 30)];\n }\n else if ((num >= 40) && (num < 48)) {\n this.bg = this.ansi_colors[0][(num - 40)];\n }\n else if ((num >= 90) && (num < 98)) {\n this.fg = this.ansi_colors[1][(num - 90)];\n }\n else if ((num >= 100) && (num < 108)) {\n this.bg = this.ansi_colors[1][(num - 100)];\n }\n else if (num === 38 || num === 48) {\n if (sgr_cmds.length > 0) {\n var is_foreground = (num === 38);\n var mode_cmd = sgr_cmds.shift();\n if (mode_cmd === '5' && sgr_cmds.length > 0) {\n var palette_index = parseInt(sgr_cmds.shift(), 10);\n if (palette_index >= 0 && palette_index <= 255) {\n if (is_foreground)\n this.fg = this.palette_256[palette_index];\n else\n this.bg = this.palette_256[palette_index];\n }\n }\n if (mode_cmd === '2' && sgr_cmds.length > 2) {\n var r = parseInt(sgr_cmds.shift(), 10);\n var g = parseInt(sgr_cmds.shift(), 10);\n var b = parseInt(sgr_cmds.shift(), 10);\n if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {\n var c = { rgb: [r, g, b], class_name: 'truecolor' };\n if (is_foreground)\n this.fg = c;\n else\n this.bg = c;\n }\n }\n }\n }\n }\n };\n AnsiUp.prototype.transform_to_html = function (fragment) {\n var txt = fragment.text;\n if (txt.length === 0)\n return txt;\n if (this._escape_for_html)\n txt = this.escape_txt_for_html(txt);\n if (!fragment.bold && fragment.fg === null && fragment.bg === null)\n return txt;\n var styles = [];\n var classes = [];\n var fg = fragment.fg;\n var bg = fragment.bg;\n if (fragment.bold)\n styles.push('font-weight:bold');\n if (!this._use_classes) {\n if (fg)\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n if (bg)\n styles.push(\"background-color:rgb(\" + bg.rgb + \")\");\n }\n else {\n if (fg) {\n if (fg.class_name !== 'truecolor') {\n classes.push(fg.class_name + \"-fg\");\n }\n else {\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n }\n }\n if (bg) {\n if (bg.class_name !== 'truecolor') {\n classes.push(bg.class_name + \"-bg\");\n }\n else {\n styles.push(\"background-color:rgb(\" + bg.rgb.join(',') + \")\");\n }\n }\n }\n var class_string = '';\n var style_string = '';\n if (classes.length)\n class_string = \" class=\\\"\" + classes.join(' ') + \"\\\"\";\n if (styles.length)\n style_string = \" style=\\\"\" + styles.join(';') + \"\\\"\";\n return \"<span\" + style_string + class_string + \">\" + txt + \"</span>\";\n };\n ;\n AnsiUp.prototype.process_hyperlink = function (pkt) {\n var parts = pkt.url.split(':');\n if (parts.length < 1)\n return '';\n if (!this._url_whitelist[parts[0]])\n return '';\n var result = \"<a href=\\\"\" + this.escape_txt_for_html(pkt.url) + \"\\\">\" + this.escape_txt_for_html(pkt.text) + \"</a>\";\n return result;\n };\n return AnsiUp;\n}());\nfunction rgx(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2);\n}\nfunction rgxG(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2, 'g');\n}\n//# sourceMappingURL=ansi_up.js.map\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = AnsiUp;\n}));\n","// tslint:disable:no-unsafe-any\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo = /** @class */ (function () {\n function Memo() {\n // tslint:disable-next-line\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n }\n else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n };\n return Memo;\n}());\nexport { Memo };\n//# sourceMappingURL=memo.js.map","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties); // tslint:disable-line:no-unbound-method\n/**\n * setPrototypeOf polyfill using __proto__\n */\nfunction setProtoOf(obj, proto) {\n // @ts-ignore\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map","import * as tslib_1 from \"tslib\";\nimport { API, BaseClient } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { SDK_NAME, SDK_VERSION } from './version';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n tslib_1.__extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n return _super.call(this, BrowserBackend, options) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n event.sdk = tslib_1.__assign({}, event.sdk, { name: SDK_NAME, packages: tslib_1.__spread(((event.sdk && event.sdk.packages) || []), [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ]), version: SDK_VERSION });\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client is disabled');\n return;\n }\n var dsn = options.dsn || this.getDsn();\n if (!options.eventId) {\n logger.error('Missing `eventId` option in showReportDialog call');\n return;\n }\n if (!dsn) {\n logger.error('Missing `Dsn` option in showReportDialog call');\n return;\n }\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n (document.head || document.body).appendChild(script);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map","import * as tslib_1 from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, supportsFetch, SyncPromise } from '@sentry/utils';\nimport { eventFromString, eventFromUnknownInput } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n tslib_1.__extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = tslib_1.__assign({}, this._options.transportOptions, { dsn: this._options.dsn });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && tslib_1.__spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = [];\n if (Array.isArray(userIntegrations)) {\n var userIntegrationsNames_1 = userIntegrations.map(function (i) { return i.name; });\n var pickedIntegrationsNames_1 = [];\n // Leave only unique default integrations, that were not overridden with provided user integrations\n defaultIntegrations.forEach(function (defaultIntegration) {\n if (userIntegrationsNames_1.indexOf(defaultIntegration.name) === -1 &&\n pickedIntegrationsNames_1.indexOf(defaultIntegration.name) === -1) {\n integrations.push(defaultIntegration);\n pickedIntegrationsNames_1.push(defaultIntegration.name);\n }\n });\n // Don't add same user integration twice\n userIntegrations.forEach(function (userIntegration) {\n if (pickedIntegrationsNames_1.indexOf(userIntegration.name) === -1) {\n integrations.push(userIntegration);\n pickedIntegrationsNames_1.push(userIntegration.name);\n }\n });\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n else {\n integrations = tslib_1.__spread(defaultIntegrations);\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, tslib_1.__spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}\n//# sourceMappingURL=integration.js.map","import * as tslib_1 from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w\\.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private _representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n // tslint:disable-next-line:no-this-assignment\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, user = _a.user;\n return (protocol + \"://\" + user + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = tslib_1.__read(match.slice(1), 6), protocol = _a[0], user = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, user: user });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n this.protocol = components.protocol;\n this.user = components.user;\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'user', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE);\n }\n });\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n//# sourceMappingURL=dsn.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","import * as tslib_1 from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // tslint:disable-next-line:no-unsafe-any\n return hub[method].apply(hub, tslib_1.__spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\nexport function captureException(exception) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, level) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureMessage', message, level, {\n originalException: message,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normailzed.\n */\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normailzed.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n * @param key String key of tag\n * @param value String value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, tslib_1.__spread(['_invokeClient', method], args));\n}\n//# sourceMappingURL=index.js.map","import { isString } from './is';\nimport { snipLine } from './string';\n/**\n * Requires a module which is protected _against bundler minification.\n *\n * @param request The module path to resolve\n */\nexport function dynamicRequire(mod, request) {\n // tslint:disable-next-line: no-unsafe-any\n return mod.require(request);\n}\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n // tslint:disable:strict-type-predicates\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // tslint:disable-next-line:no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // tslint:disable-next-line:no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // tslint:disable-next-line:no-bitwise\n var r = (Math.random() * 16) | 0;\n // tslint:disable-next-line:no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '<unknown>';\n }\n return event.event_id || '<unknown>';\n}\n/** JSDoc */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) { mechanism = {}; }\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore\n // tslint:disable:no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n }\n catch (_oO) {\n // no-empty\n }\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n try {\n return document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '<unknown>';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n var attrWhitelist = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < attrWhitelist.length; i++) {\n key = attrWhitelist[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n/**\n * Returns a timestamp in seconds with milliseconds precision.\n */\nexport function timestampWithMs() {\n return new Date().getTime() / 1000;\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\n}\nvar defaultFunctionName = '<anonymous>';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n//# sourceMappingURL=misc.js.map","import { isRegExp } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n // tslint:disable-next-line:strict-type-predicates\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n colno = ll; // tslint:disable-line:no-parameter-reassignment\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n//# sourceMappingURL=string.js.map","import * as tslib_1 from \"tslib\";\nimport { captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n // tslint:disable-next-line:strict-type-predicates\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n // tslint:disable:no-unsafe-any\n try {\n // tslint:disable-next-line:strict-type-predicates\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n // tslint:enable:no-unsafe-any\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = tslib_1.__assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = tslib_1.__assign({}, processedEvent.extra, { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // tslint:disable-line:no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n }\n catch (_oO) {\n /*no-empty*/\n }\n return sentryWrapped;\n}\n//# sourceMappingURL=helpers.js.map","export { addBreadcrumb, captureException, captureEvent, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, withScope, } from '@sentry/minimal';\nexport { addGlobalEventProcessor, getCurrentHub, getHubFromCarrier, Hub, Scope } from '@sentry/hub';\nexport { API } from './api';\nexport { BaseClient } from './baseclient';\nexport { BaseBackend } from './basebackend';\nexport { initAndBind } from './sdk';\nexport { NoopTransport } from './transports/noop';\nimport * as Integrations from './integrations';\nexport { Integrations };\n//# sourceMappingURL=index.js.map","import * as tslib_1 from \"tslib\";\nimport { getGlobalObject, isThenable, SyncPromise, timestampWithMs } from '@sentry/utils';\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifiying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._context = {};\n }\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n setTimeout(function () {\n _this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n _this._notifyingListeners = false;\n });\n }\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n // tslint:disable-next-line:strict-type-predicates\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(tslib_1.__assign({}, event), hint);\n if (isThenable(result)) {\n result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = tslib_1.__assign({}, this._tags, tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = tslib_1.__assign({}, this._tags, (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = tslib_1.__assign({}, this._extra, extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = tslib_1.__assign({}, this._extra, (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransaction = function (transaction) {\n this._transaction = transaction;\n if (this._span) {\n this._span.transaction = transaction;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n this._context = tslib_1.__assign({}, this._context, (_a = {}, _a[key] = context, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Internal getter for Span, used in Hub.\n * @hidden\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = tslib_1.__spread(scope._breadcrumbs);\n newScope._tags = tslib_1.__assign({}, scope._tags);\n newScope._extra = tslib_1.__assign({}, scope._extra);\n newScope._context = tslib_1.__assign({}, scope._context);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._transaction = scope._transaction;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = tslib_1.__spread(scope._eventProcessors);\n }\n return newScope;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._context = {};\n this._level = undefined;\n this._transaction = undefined;\n this._fingerprint = undefined;\n this._span = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var mergedBreadcrumb = tslib_1.__assign({ timestamp: timestampWithMs() }, breadcrumb);\n this._breadcrumbs =\n maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n ? tslib_1.__spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxBreadcrumbs)\n : tslib_1.__spread(this._breadcrumbs, [mergedBreadcrumb]);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional informartion about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = tslib_1.__assign({}, this._extra, event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = tslib_1.__assign({}, this._tags, event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = tslib_1.__assign({}, this._user, event.user);\n }\n if (this._context && Object.keys(this._context).length) {\n event.contexts = tslib_1.__assign({}, this._context, event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transaction) {\n event.transaction = this._transaction;\n }\n this._applyFingerprint(event);\n event.breadcrumbs = tslib_1.__spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(tslib_1.__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","import * as tslib_1 from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n tslib_1.__extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n // tslint:disable:no-unsafe-any\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// webapp entrypoint bundle centralizing global custom stylesheets\n// and utility js modules used in all swh-web applications\n\n// explicitly import the vendors bundle\nimport '../vendors';\n\n// global swh-web custom stylesheets\nimport './webapp.css';\nimport './breadcrumbs.css';\n\nexport * from './webapp-utils';\n\n// utility js modules\nexport * from './code-highlighting';\nexport * from './readme-rendering';\nexport * from './pdf-rendering';\nexport * from './notebook-rendering';\nexport * from './xss-filtering';\nexport * from './history-counters';\nexport * from './badges';\nexport * from './sentry';\n","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * iterateObject\n * Iterates an object. Note the object field order may differ.\n *\n * @name iterateObject\n * @function\n * @param {Object} obj The input object.\n * @param {Function} fn A function that will be called with the current value, field name and provided object.\n * @return {Function} The `iterateObject` function.\n */\nfunction iterateObject(obj, fn) {\n var i = 0,\n keys = [];\n\n if (Array.isArray(obj)) {\n for (; i < obj.length; ++i) {\n if (fn(obj[i], i, obj) === false) {\n break;\n }\n }\n } else if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj !== null) {\n keys = Object.keys(obj);\n for (; i < keys.length; ++i) {\n if (fn(obj[keys[i]], keys[i], obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = iterateObject;","\"use strict\";\n\n/**\n * RegexEscape\n * Escapes a string for using it in a regular expression.\n *\n * @name RegexEscape\n * @function\n * @param {String} input The string that must be escaped.\n * @return {String} The escaped string.\n */\nfunction RegexEscape(input) {\n return input.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n\n/**\n * proto\n * Adds the `RegexEscape` function to `RegExp` class.\n *\n * @name proto\n * @function\n * @return {Function} The `RegexEscape` function.\n */\nRegexEscape.proto = function () {\n RegExp.escape = RegexEscape;\n return RegexEscape;\n};\n\nmodule.exports = RegexEscape;","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","require(\"!!/home/jenkins/workspace/DWAPPS/pypi-upload/node_modules/script-loader/addScript.js\")(require(\"!!/home/jenkins/workspace/DWAPPS/pypi-upload/node_modules/raw-loader/index.js!/home/jenkins/workspace/DWAPPS/pypi-upload/node_modules/notebookjs/notebook.js\"))","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","module.exports = \"// notebook.js 0.4.2\\n// http://github.com/jsvine/notebookjs\\n// notebook.js may be freely distributed under the MIT license.\\n(function () {\\n var root = this;\\n var VERSION = \\\"0.4.2\\\";\\n\\n // Get browser or JSDOM document\\n var doc = root.document;\\n if (!doc) {\\n var jsdom = require(\\\"jsdom\\\");\\n doc = new jsdom.JSDOM().window.document;\\n }\\n\\n // Helper functions\\n var ident = function (x) { return x; };\\n\\n var makeElement = function (tag, classNames) {\\n var el = doc.createElement(tag);\\n el.className = (classNames || []).map(function (cn) {\\n return nb.prefix + cn;\\n }).join(\\\" \\\");\\n return el;\\n }; \\n\\n var escapeHTML = function (raw) {\\n var replaced = raw\\n .replace(/</g, \\\"<\\\")\\n .replace(/>/g, \\\">\\\");\\n return replaced;\\n };\\n\\n var joinText = function (text) {\\n if (text.join) {\\n return text.map(joinText).join(\\\"\\\");\\n } else {\\n return text; \\n } \\n };\\n\\n // Get supporting libraries\\n var condRequire = function (module_name) {\\n return typeof require === \\\"function\\\" && require(module_name);\\n };\\n\\n var getMarkdown = function () {\\n return root.marked || condRequire(\\\"marked\\\"); \\n };\\n\\n var getAnsi = function () {\\n var lib = root.ansi_up || condRequire(\\\"ansi_up\\\");\\n return lib && lib.ansi_to_html;\\n };\\n\\n // Set up `nb` namespace\\n var nb = {\\n prefix: \\\"nb-\\\",\\n markdown: getMarkdown() || ident,\\n ansi: getAnsi() || ident,\\n highlighter: ident,\\n VERSION: VERSION\\n };\\n\\n // Inputs\\n nb.Input = function (raw, cell) {\\n this.raw = raw; \\n this.cell = cell;\\n };\\n\\n nb.Input.prototype.render = function () {\\n if (!this.raw.length) { return makeElement(\\\"div\\\"); }\\n var holder = makeElement(\\\"div\\\", [ \\\"input\\\" ]);\\n var cell = this.cell;\\n if (typeof cell.number === \\\"number\\\") {\\n holder.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var pre_el = makeElement(\\\"pre\\\");\\n var code_el = makeElement(\\\"code\\\");\\n var notebook = cell.worksheet.notebook;\\n var m = notebook.metadata;\\n var lang = this.cell.raw.language || m.language || (m.kernelspec && m.kernelspec.language) || (m.language_info && m.language_info.name);\\n code_el.setAttribute(\\\"data-language\\\", lang);\\n code_el.className = \\\"lang-\\\" + lang;\\n code_el.innerHTML = nb.highlighter(escapeHTML(joinText(this.raw)), pre_el, code_el, lang);\\n pre_el.appendChild(code_el);\\n holder.appendChild(pre_el);\\n this.el = holder;\\n return holder;\\n }; \\n\\n // Outputs and output-renderers\\n var imageCreator = function (format) {\\n return function (data) {\\n var el = makeElement(\\\"img\\\", [ \\\"image-output\\\" ]);\\n el.src = \\\"data:image/\\\" + format + \\\";base64,\\\" + joinText(data).replace(/\\\\n/g, \\\"\\\");\\n return el;\\n };\\n };\\n\\n nb.display = {};\\n nb.display.text = function (text) {\\n var el = makeElement(\\\"pre\\\", [ \\\"text-output\\\" ]);\\n el.innerHTML = escapeHTML(joinText(text));\\n return el;\\n };\\n nb.display[\\\"text/plain\\\"] = nb.display.text;\\n\\n nb.display.html = function (html) {\\n var el = makeElement(\\\"div\\\", [ \\\"html-output\\\" ]);\\n el.innerHTML = joinText(html);\\n return el;\\n };\\n nb.display[\\\"text/html\\\"] = nb.display.html;\\n\\n nb.display.marked = function(md) {\\n return nb.display.html(nb.markdown(joinText(md)));\\n };\\n nb.display[\\\"text/markdown\\\"] = nb.display.marked;\\n \\n nb.display.svg = function (svg) {\\n var el = makeElement(\\\"div\\\", [ \\\"svg-output\\\" ]);\\n el.innerHTML = joinText(svg);\\n return el;\\n };\\n nb.display[\\\"text/svg+xml\\\"] = nb.display.svg;\\n nb.display[\\\"image/svg+xml\\\"] = nb.display.svg;\\n\\n nb.display.latex = function (latex) {\\n var el = makeElement(\\\"div\\\", [ \\\"latex-output\\\" ]);\\n el.innerHTML = joinText(latex);\\n return el;\\n };\\n nb.display[\\\"text/latex\\\"] = nb.display.latex;\\n\\n nb.display.javascript = function (js) {\\n var el = makeElement(\\\"script\\\");\\n el.innerHTML = joinText(js);\\n return el;\\n };\\n nb.display[\\\"application/javascript\\\"] = nb.display.javascript;\\n\\n nb.display.png = imageCreator(\\\"png\\\");\\n nb.display[\\\"image/png\\\"] = nb.display.png;\\n nb.display.jpeg = imageCreator(\\\"jpeg\\\");\\n nb.display[\\\"image/jpeg\\\"] = nb.display.jpeg;\\n\\n nb.display_priority = [\\n \\\"png\\\", \\\"image/png\\\", \\\"jpeg\\\", \\\"image/jpeg\\\",\\n \\\"svg\\\", \\\"image/svg+xml\\\", \\\"text/svg+xml\\\", \\\"html\\\", \\\"text/html\\\",\\n \\\"text/markdown\\\", \\\"latex\\\", \\\"text/latex\\\",\\n \\\"javascript\\\", \\\"application/javascript\\\",\\n \\\"text\\\", \\\"text/plain\\\"\\n ];\\n\\n var render_display_data = function () {\\n var o = this;\\n var formats = nb.display_priority.filter(function (d) {\\n return o.raw.data ? o.raw.data[d] : o.raw[d];\\n });\\n var format = formats[0];\\n if (format) {\\n if (nb.display[format]) {\\n return nb.display[format](o.raw[format] || o.raw.data[format]);\\n }\\n }\\n return makeElement(\\\"div\\\", [ \\\"empty-output\\\" ]);\\n };\\n\\n var render_error = function () {\\n var el = makeElement(\\\"pre\\\", [ \\\"pyerr\\\" ]);\\n var raw = this.raw.traceback.join(\\\"\\\\n\\\");\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n };\\n\\n nb.Output = function (raw, cell) {\\n this.raw = raw; \\n this.cell = cell;\\n this.type = raw.output_type;\\n };\\n\\n nb.Output.prototype.renderers = {\\n \\\"display_data\\\": render_display_data,\\n \\\"execute_result\\\": render_display_data,\\n \\\"pyout\\\": render_display_data,\\n \\\"pyerr\\\": render_error,\\n \\\"error\\\": render_error,\\n \\\"stream\\\": function () {\\n var el = makeElement(\\\"pre\\\", [ (this.raw.stream || this.raw.name) ]);\\n var raw = joinText(this.raw.text);\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n }\\n };\\n\\n nb.Output.prototype.render = function () {\\n var outer = makeElement(\\\"div\\\", [ \\\"output\\\" ]);\\n if (typeof this.cell.number === \\\"number\\\") {\\n outer.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var inner = this.renderers[this.type].call(this); \\n outer.appendChild(inner);\\n this.el = outer;\\n return outer;\\n };\\n\\n // Post-processing\\n nb.coalesceStreams = function (outputs) {\\n if (!outputs.length) { return outputs; }\\n var last = outputs[0];\\n var new_outputs = [ last ];\\n outputs.slice(1).forEach(function (o) {\\n if (o.raw.output_type === \\\"stream\\\" &&\\n last.raw.output_type === \\\"stream\\\" &&\\n o.raw.stream === last.raw.stream) {\\n last.raw.text = last.raw.text.concat(o.raw.text);\\n } else {\\n new_outputs.push(o);\\n last = o;\\n }\\n });\\n return new_outputs;\\n };\\n\\n // Cells\\n nb.Cell = function (raw, worksheet) {\\n var cell = this;\\n cell.raw = raw;\\n cell.worksheet = worksheet;\\n cell.type = raw.cell_type;\\n if (cell.type === \\\"code\\\") {\\n cell.number = raw.prompt_number > -1 ? raw.prompt_number : raw.execution_count;\\n var source = raw.input || [ raw.source ];\\n cell.input = new nb.Input(source, cell);\\n var raw_outputs = (cell.raw.outputs || []).map(function (o) {\\n return new nb.Output(o, cell); \\n });\\n cell.outputs = nb.coalesceStreams(raw_outputs);\\n }\\n };\\n\\n nb.Cell.prototype.renderers = {\\n markdown: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"markdown-cell\\\" ]);\\n el.innerHTML = nb.markdown(joinText(this.raw.source));\\n\\n /* Requires to render KaTeX\\n 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.js',\\n 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.css',\\n 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/contrib/auto-render.min.js',\\n */\\n if (root.renderMathInElement != null) {\\n root.renderMathInElement(el, {delimiters: [\\n {left: \\\"$$\\\", right: \\\"$$\\\", display: true},\\n {left: \\\"\\\\\\\\[\\\", right: \\\"\\\\\\\\]\\\", display: true},\\n {left: \\\"\\\\\\\\(\\\", right: \\\"\\\\\\\\)\\\", display: false},\\n {left: \\\"$\\\", right: \\\"$\\\", display: false}\\n ]});\\n }\\n\\n return el;\\n },\\n heading: function () {\\n var el = makeElement(\\\"h\\\" + this.raw.level, [ \\\"cell\\\", \\\"heading-cell\\\" ]);\\n el.innerHTML = joinText(this.raw.source);\\n return el;\\n },\\n raw: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"raw-cell\\\" ]);\\n el.innerHTML = joinText(this.raw.source);\\n return el;\\n },\\n code: function () {\\n var cell_el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"code-cell\\\" ]);\\n cell_el.appendChild(this.input.render());\\n var output_els = this.outputs.forEach(function (o) {\\n cell_el.appendChild(o.render());\\n });\\n return cell_el;\\n }\\n };\\n\\n nb.Cell.prototype.render = function () {\\n var el = this.renderers[this.type].call(this); \\n this.el = el;\\n return el;\\n };\\n\\n // Worksheets\\n nb.Worksheet = function (raw, notebook) {\\n var worksheet = this;\\n this.raw = raw;\\n this.notebook = notebook;\\n this.cells = raw.cells.map(function (c) {\\n return new nb.Cell(c, worksheet);\\n });\\n this.render = function () {\\n var worksheet_el = makeElement(\\\"div\\\", [ \\\"worksheet\\\" ]);\\n worksheet.cells.forEach(function (c) {\\n worksheet_el.appendChild(c.render()); \\n });\\n this.el = worksheet_el;\\n return worksheet_el;\\n };\\n };\\n\\n // Notebooks\\n nb.Notebook = function (raw, config) {\\n var notebook = this;\\n this.raw = raw;\\n this.config = config;\\n var meta = this.metadata = raw.metadata || {};\\n this.title = meta.title || meta.name;\\n var _worksheets = raw.worksheets || [ { cells: raw.cells } ];\\n this.worksheets = _worksheets.map(function (ws) {\\n return new nb.Worksheet(ws, notebook);\\n });\\n this.sheet = this.worksheets[0];\\n };\\n\\n nb.Notebook.prototype.render = function () {\\n var notebook_el = makeElement(\\\"div\\\", [ \\\"notebook\\\" ]);\\n this.worksheets.forEach(function (w) {\\n notebook_el.appendChild(w.render()); \\n });\\n this.el = notebook_el;\\n return notebook_el;\\n };\\n \\n nb.parse = function (nbjson, config) {\\n return new nb.Notebook(nbjson, config);\\n };\\n\\n // Exports\\n if (typeof define === 'function' && define.amd) {\\n define(function() {\\n return nb;\\n });\\n }\\n if (typeof exports !== 'undefined') {\\n if (typeof module !== 'undefined' && module.exports) {\\n exports = module.exports = nb;\\n }\\n exports.nb = nb;\\n } else {\\n root.nb = nb;\\n }\\n \\n}).call(this);\\n\"","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n initAndBind(BrowserClient, options);\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n var client = getCurrentHub().getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nexport function wrap(fn) {\n return internalWrap(fn)(); // tslint:disable-line:no-unsafe-any\n}\n//# sourceMappingURL=sdk.js.map","import { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n function TryCatch() {\n /** JSDoc */\n this._ignoreOnError = 0;\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n }\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapRAF = function (original) {\n return function (callback) {\n return original(wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }));\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n var global = getGlobalObject();\n var proto = global[target] && global[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n // tslint:disable-next-line:no-unbound-method strict-type-predicates\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, eventName, wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (original) {\n return function (eventName, fn, options) {\n var callback = fn;\n try {\n callback = callback && (callback.__sentry_wrapped__ || callback);\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return original.call(this, eventName, callback, options);\n };\n });\n };\n /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var xhr = this; // tslint:disable-line:no-this-assignment\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in _this && typeof _this[prop] === 'function') {\n fill(_this, prop, function (original) {\n return wrap(original, {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n });\n });\n }\n });\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: 'onreadystatechange',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n return originalSend.apply(this, args);\n };\n };\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n this._ignoreOnError = this._ignoreOnError;\n var global = getGlobalObject();\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n if ('XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n ].forEach(this._wrapEventTarget.bind(this));\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map","import * as tslib_1 from \"tslib\";\nimport { API, getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, logger, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = tslib_1.__assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Creates breadcrumbs from console API calls\n */\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target)\n : htmlTreeAsString(handlerData.event);\n }\n catch (e) {\n target = '<unknown>';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: event,\n name: handlerData.name,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: handlerData.xhr.__sentry_xhr__,\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n });\n return;\n }\n // We only capture issued sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n addSentryBreadcrumb(handlerData.args[0]);\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n var client = getCurrentHub().getClient();\n var dsn = client && client.getDsn();\n if (dsn) {\n var filterUrl = new API(dsn).getStoreEndpoint();\n // if Sentry key appears in URL, don't capture it as a request\n // but rather as our own 'sentry' type breadcrumb\n if (filterUrl &&\n handlerData.fetchData.url.indexOf(filterUrl) !== -1 &&\n handlerData.fetchData.method === 'POST' &&\n handlerData.args[1] &&\n handlerData.args[1].body) {\n addSentryBreadcrumb(handlerData.args[1].body);\n return;\n }\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: tslib_1.__assign({}, handlerData.fetchData, { status_code: handlerData.response.status }),\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: tslib_1.__assign({}, handlerData.fetchData, { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n // tslint:disable-next-line:no-parameter-reassignment\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n // tslint:disable-next-line:no-parameter-reassignment\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n/**\n * Create a breadcrumb of `sentry` from the events themselves\n */\nfunction addSentryBreadcrumb(serializedData) {\n // There's always something that can go wrong with deserialization...\n try {\n var event_1 = JSON.parse(serializedData);\n getCurrentHub().addBreadcrumb({\n category: 'sentry',\n event_id: event_1.event_id,\n level: event_1.level || Severity.fromString('error'),\n message: getEventDescription(event_1),\n }, {\n event: event_1,\n });\n }\n catch (_oO) {\n logger.error('Error while adding sentry type breadcrumb');\n }\n}\n//# sourceMappingURL=breadcrumbs.js.map","import * as tslib_1 from \"tslib\";\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, getGlobalObject, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._global = getGlobalObject();\n /** JSDoc */\n this._oldOnErrorHandler = null;\n /** JSDoc */\n this._oldOnUnhandledRejectionHandler = null;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = tslib_1.__assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n if (this._onErrorHandlerInstalled) {\n return;\n }\n var self = this; // tslint:disable-line:no-this-assignment\n this._oldOnErrorHandler = this._global.onerror;\n this._global.onerror = function (msg, url, line, column, error) {\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n if (self._oldOnErrorHandler) {\n return self._oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? self._eventFromIncompleteOnError(msg, url, line, column)\n : self._enhanceEventWithInitialFrame(eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), url, line, column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n if (self._oldOnErrorHandler) {\n return self._oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n var self = this; // tslint:disable-line:no-this-assignment\n this._oldOnUnhandledRejectionHandler = this._global.onunhandledrejection;\n this._global.onunhandledrejection = function (e) {\n var error = e;\n try {\n error = e && 'reason' in e ? e.reason : e;\n }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n if (self._oldOnUnhandledRejectionHandler) {\n return self._oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? self._eventFromIncompleteRejection(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n if (self._oldOnUnhandledRejectionHandler) {\n return self._oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n if (isString(message)) {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * This function creates an Event from an TraceKitStackTrace that has part of it missing.\n */\n GlobalHandlers.prototype._eventFromIncompleteRejection = function (error) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n value: \"Non-Error promise rejection captured with value: \" + error,\n },\n ],\n },\n };\n };\n /** JSDoc */\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n return self._handler(event, hint);\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = tslib_1.__spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, tslib_1.__spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n//# sourceMappingURL=linkederrors.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n if (getCurrentHub().getIntegration(UserAgent)) {\n if (!global.navigator || !global.location) {\n return event;\n }\n // Request Interface: https://docs.sentry.io/development/sdk-dev/event-payloads/request/\n var request = event.request || {};\n request.url = request.url || global.location.href;\n request.headers = request.headers || {};\n request.headers['User-Agent'] = global.navigator.userAgent;\n return tslib_1.__assign({}, event, { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map","import * as tslib_1 from \"tslib\";\nimport { Status } from '@sentry/types';\nimport { getGlobalObject, logger, parseRetryAfterHeader, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\nvar global = getGlobalObject();\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n tslib_1.__extends(FetchTransport, _super);\n function FetchTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** Locks transport after receiving 429 response */\n _this._disabledUntil = new Date(Date.now());\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n var _this = this;\n if (new Date(Date.now()) < this._disabledUntil) {\n return Promise.reject({\n event: event,\n reason: \"Transport locked till \" + this._disabledUntil + \" due to too many requests.\",\n status: 429,\n });\n }\n var defaultOptions = {\n body: JSON.stringify(event),\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.headers !== undefined) {\n defaultOptions.headers = this.options.headers;\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n global\n .fetch(_this.url, defaultOptions)\n .then(function (response) {\n var status = Status.fromHttpCode(response.status);\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n if (status === Status.RateLimit) {\n var now = Date.now();\n _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, response.headers.get('Retry-After')));\n logger.warn(\"Too many requests, backing off till: \" + _this._disabledUntil);\n }\n reject(response);\n })\n .catch(reject);\n }));\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise to the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns The original promise.\n */\n PromiseBuffer.prototype.add = function (task) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n task\n .then(function () { return _this.remove(task); })\n .then(null, function () {\n return _this.remove(task).then(null, function () {\n // We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Status } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n tslib_1.__extends(XHRTransport, _super);\n function XHRTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** Locks transport after receiving 429 response */\n _this._disabledUntil = new Date(Date.now());\n return _this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n var _this = this;\n if (new Date(Date.now()) < this._disabledUntil) {\n return Promise.reject({\n event: event,\n reason: \"Transport locked till \" + this._disabledUntil + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState !== 4) {\n return;\n }\n var status = Status.fromHttpCode(request.status);\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n if (status === Status.RateLimit) {\n var now = Date.now();\n _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, request.getResponseHeader('Retry-After')));\n logger.warn(\"Too many requests, backing off till: \" + _this._disabledUntil);\n }\n reject(request);\n };\n request.open('POST', _this.url);\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(JSON.stringify(event));\n }));\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n // tslint:disable-next-line:strict-type-predicates\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n // tslint:disable-next-line:strict-type-predicates\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // tslint:disable:no-unsafe-any\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n // tslint:enable:no-unsafe-any\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n // tslint:disable-next-line:no-unsafe-any\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n // tslint:disable-next-line:no-unsafe-any\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","// tslint:disable:object-literal-sort-keys\nimport * as tslib_1 from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js))(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n/** JSDoc */\nexport function computeStackTrace(ex) {\n // tslint:disable:no-unsafe-any\n var stack = null;\n var popSize = ex && ex.framesToPop;\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction computeStackTraceFromStackProp(ex) {\n // tslint:disable:no-conditional-assignment\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n element = {\n // working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n url: parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n }\n else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n // tslint:disable:no-conditional-assignment\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return tslib_1.__assign({}, stacktrace, { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n//# sourceMappingURL=tracekit.js.map","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n // tslint:disable-next-line:strict-type-predicates\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .slice(0, STACKTRACE_LIMIT)\n .reverse();\n}\n//# sourceMappingURL=parsers.js.map","/** The status of an event. */\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// tslint:disable:completed-docs\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map","import { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/** JSDoc */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n exception = errorEvent.error; // tslint:disable-line:no-parameter-reassignment\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n// this._options.attachStacktrace\n/** JSDoc */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map","/** JSDoc */\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// tslint:disable:completed-docs\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n//# sourceMappingURL=severity.js.map","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","import { Dsn, timestampWithMs, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/** Helper class to provide urls to different Sentry endpoints. */\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn) {\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Returns a string with auth headers in the url to the store endpoint. */\n API.prototype.getStoreEndpoint = function () {\n return \"\" + this._getBaseUrl() + this.getStoreEndpointPath();\n };\n /** Returns the store endpoint with auth added in url encoded. */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n var dsn = this._dsnObject;\n var auth = {\n sentry_key: dsn.user,\n sentry_version: SENTRY_API_VERSION,\n };\n // Auth is intentionally sent as part of query string (NOT as custom HTTP header)\n // to avoid preflight CORS requests\n return this.getStoreEndpoint() + \"?\" + urlEncode(auth);\n };\n /** Returns the base path of the url including the port. */\n API.prototype._getBaseUrl = function () {\n var dsn = this._dsnObject;\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port;\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this._dsnObject;\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /** Returns an object that can be used in request headers. */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n var dsn = this._dsnObject;\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_timestamp=\" + timestampWithMs()); // TODO: This can be removed\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.user);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this._dsnObject;\n var endpoint = \"\" + this._getBaseUrl() + (dsn.path ? \"/\" + dsn.path : '') + \"/api/embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n return API;\n}());\nexport { API };\n//# sourceMappingURL=api.js.map","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n // tslint:disable:no-unused-expression\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // It really needs 1 argument, not 0.\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore\n // tslint:disable:no-unused-expression\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n // tslint:disable:no-unused-expression\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n // tslint:disable-next-line:no-unused-expression\n new Headers();\n // tslint:disable-next-line:no-unused-expression\n new Request('');\n // tslint:disable-next-line:no-unused-expression\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // tslint:disable-next-line:no-unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n if (doc) {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n try {\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // tslint:disable-next-line:no-unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n // tslint:disable-next-line: no-unsafe-any\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n // tslint:disable:no-unused-expression\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n var chrome = global.chrome;\n // tslint:disable-next-line:no-unsafe-any\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map","/* tslint:disable:only-arrow-functions no-unsafe-any */\nimport * as tslib_1 from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getFunctionName, getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler) {\n // tslint:disable-next-line:strict-type-predicates\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = tslib_1.__values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var commonHandlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', tslib_1.__assign({}, commonHandlerData));\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', tslib_1.__assign({}, commonHandlerData, { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', tslib_1.__assign({}, commonHandlerData, { endTimestamp: Date.now(), error: error }));\n throw error;\n });\n };\n });\n}\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args[1];\n this.__sentry_xhr__ = {\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n // if Sentry key appears in URL, don't capture it as a request\n if (isString(url) && this.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n return originalOpen.apply(this, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var xhr = this; // tslint:disable-line:no-this-assignment\n var commonHandlerData = {\n args: args,\n startTimestamp: Date.now(),\n xhr: xhr,\n };\n triggerHandlers('xhr', tslib_1.__assign({}, commonHandlerData));\n /**\n * @hidden\n */\n function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', tslib_1.__assign({}, commonHandlerData, { endTimestamp: Date.now() }));\n }\n }\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n // if onreadystatechange wasn't actually set by the page on this xhr, we\n // are free to set our own and capture the breadcrumb\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n return oldOnPopState.apply(this, args);\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\n // to the document. Do this before we instrument addEventListener.\n global.document.addEventListener('click', domEventHandler('click', triggerHandlers.bind(null, 'dom')), false);\n global.document.addEventListener('keypress', keypressEventHandler(triggerHandlers.bind(null, 'dom')), false);\n // After hooking into document bubbled up click and keypresses events, we also hook into user handled click & keypresses.\n ['EventTarget', 'Node'].forEach(function (target) {\n var proto = global[target] && global[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n if (fn && fn.handleEvent) {\n if (eventName === 'click') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n if (eventName === 'keypress') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n }\n else {\n if (eventName === 'click') {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'), true)(this);\n }\n if (eventName === 'keypress') {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(this);\n }\n }\n return original.call(this, eventName, fn, options);\n };\n });\n fill(proto, 'removeEventListener', function (original) {\n return function (eventName, fn, options) {\n var callback = fn;\n try {\n callback = callback && (callback.__sentry_wrapped__ || callback);\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return original.call(this, eventName, callback, options);\n };\n });\n });\n}\nvar debounceDuration = 1000;\nvar debounceTimer = 0;\nvar keypressTimeout;\nvar lastCapturedEvent;\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param name the event name (e.g. \"click\")\n * @param handler function that will be triggered\n * @param debounce decides whether it should wait till another event loop\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction domEventHandler(name, handler, debounce) {\n if (debounce === void 0) { debounce = false; }\n return function (event) {\n // reset keypress timeout; e.g. triggering a 'click' after\n // a 'keypress' will reset the keypress debounce so that a new\n // set of keypresses can be recorded\n keypressTimeout = undefined;\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors). Ignore if we've\n // already captured the event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n lastCapturedEvent = event;\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n if (debounce) {\n debounceTimer = setTimeout(function () {\n handler({ event: event, name: name });\n });\n }\n else {\n handler({ event: event, name: name });\n }\n };\n}\n/**\n * Wraps addEventListener to capture keypress UI events\n * @param handler function that will be triggered\n * @returns wrapped keypress events handler\n * @hidden\n */\nfunction keypressEventHandler(handler) {\n // TODO: if somehow user switches keypress target before\n // debounce timeout is triggered, we will only capture\n // a single breadcrumb from the FIRST target (acceptable?)\n return function (event) {\n var target;\n try {\n target = event.target;\n }\n catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n var tagName = target && target.tagName;\n // only consider keypress events on actual input elements\n // this will disregard keypresses targeting body (e.g. tabbing\n // through elements, hotkeys, etc)\n if (!tagName || (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)) {\n return;\n }\n // record first keypress in a series, but ignore subsequent\n // keypresses until debounce clears\n if (!keypressTimeout) {\n domEventHandler('input', handler)(event);\n }\n clearTimeout(keypressTimeout);\n keypressTimeout = setTimeout(function () {\n keypressTimeout = undefined;\n }, debounceDuration);\n };\n}\n//# sourceMappingURL=instrument.js.map"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://swh.webapp/webpack/universalModuleDefinition","webpack://swh.webapp/webpack/bootstrap","webpack://swh.webapp/./node_modules/tslib/tslib.es6.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/logger.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/transports/noop.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/base.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/version.js","webpack://swh.webapp/(webpack)/buildin/module.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/object.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/sdk.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/basebackend.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/baseclient.js","webpack://swh.webapp/./node_modules/dompurify/dist/purify.js","webpack://swh.webapp/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh.webapp/./node_modules/@sentry/hub/esm/hub.js","webpack://swh.webapp/./swh/web/assets/src/utils/functions.js","webpack://swh.webapp/./swh/web/assets/src/utils/constants.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/webapp-utils.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/code-highlighting.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/readme-rendering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/pdf-rendering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/notebook-rendering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/xss-filtering.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/history-counters.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/badges.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/sentry.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/index.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://swh.webapp/./node_modules/object-fit-images/dist/ofi.common-js.js","webpack://swh.webapp/./node_modules/html-encoder-decoder/lib/index.js","webpack://swh.webapp/./node_modules/ansi_up/ansi_up.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/memo.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/polyfill.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/client.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/backend.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/integration.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/dsn.js","webpack://swh.webapp/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://swh.webapp/./node_modules/@sentry/minimal/esm/index.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/misc.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/string.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/helpers.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/index.js","webpack://swh.webapp/./node_modules/@sentry/hub/esm/scope.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/error.js","webpack://swh.webapp/./swh/web/assets/src/bundles/webapp/index.js","webpack://swh.webapp/./node_modules/iterate-object/lib/index.js","webpack://swh.webapp/./node_modules/regex-escape/lib/index.js","webpack://swh.webapp/./node_modules/he/he.js","webpack://swh.webapp/./node_modules/notebookjs/notebook.js?4084","webpack://swh.webapp/./node_modules/script-loader/addScript.js","webpack://swh.webapp/./node_modules/notebookjs/notebook.js","webpack://swh.webapp/./node_modules/process/browser.js","webpack://swh.webapp/(webpack)/buildin/harmony-module.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/sdk.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/is.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/tracekit.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/parsers.js","webpack://swh.webapp/./node_modules/@sentry/types/esm/status.js","webpack://swh.webapp/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://swh.webapp/./node_modules/@sentry/types/esm/severity.js","webpack://swh.webapp/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://swh.webapp/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://swh.webapp/./node_modules/@sentry/core/esm/api.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/supports.js","webpack://swh.webapp/./node_modules/@sentry/utils/esm/instrument.js"],"names":["root","factory","exports","module","define","amd","window","webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","12","l","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","oldJsonpFunction","slice","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","this","constructor","__assign","assign","arguments","__values","iterator","next","done","__read","ar","__spread","concat","global","PREFIX","Logger","_enabled","disable","enable","log","args","_i","join","warn","__SENTRY__","logger","NoopTransport","sendEvent","_","reason","status","Skipped","close","BaseTransport","options","_buffer","url","dsn","getStoreEndpointWithUrlEncodedAuth","drain","SDK_NAME","SDK_VERSION","webpackPolyfill","deprecate","paths","children","fill","source","replacement","original","wrapped","defineProperties","__sentry_original__","_Oo","urlEncode","keys","map","encodeURIComponent","getWalkSource","stack","event_1","toString","_oO","currentTarget","CustomEvent","detail","jsonSize","encodeURI","split","utf8Length","JSON","stringify","normalizeToSize","depth","maxSize","serialized","normalize","normalizeValue","_events","walk","memo","Infinity","normalized","serializeValue","toJSON","acc","isArray","memoize","innerKey","unmemoize","input","parse","extractExceptionKeysForMessage","exception","maxLength","sort","includedKeys","initAndBind","clientClass","debug","bindClient","BaseBackend","_options","_transport","_setupTransport","eventFromException","_exception","_hint","eventFromMessage","_message","_level","getTransport","BaseClient","backendClass","_integrations","_processing","_backend","_dsn","_isEnabled","captureException","hint","scope","_this","eventId","event_id","_getBackend","_processEvent","finalEvent","captureMessage","level","captureEvent","getDsn","getOptions","flush","_isClientProcessing","clearInterval","interval","transportFlushed","ready","enabled","getIntegrations","getIntegration","integration","id","ticked","setInterval","_prepareEvent","_a","environment","release","dist","_b","maxValueLength","_c","normalizeDepth","prepared","values","_addIntegrations","sdk","applyToEvent","evt","_normalizeEvent","breadcrumbs","user","contexts","extra","sdkInfo","integrationsArray","integrations","beforeSend","sampleRate","Math","random","__sentry__","beforeSendResult","_handleAsyncBeforeSend","originalException","processedEvent","isFrozen","objectKeys","freeze","seal","_ref","Reflect","construct","fun","thisValue","x","Func","Function","arr","arr2","from","_toConsumableArray$1","arrayForEach","unapply","forEach","arrayIndexOf","indexOf","arrayJoin","arrayPop","pop","arrayPush","arraySlice","stringToLowerCase","String","toLowerCase","stringMatch","match","stringReplace","replace","stringIndexOf","stringTrim","trim","regExpTest","RegExp","test","regExpCreate","unconstruct","typeErrorCreate","TypeError","func","thisArg","_len","_key","_len2","_key2","addToSet","set","array","element","lcElement","clone","newObject","html","svg","svgFilters","mathMl","text","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","obj","_toConsumableArray","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","currentScript","hasAttribute","policyName","createHTML","html$$1","createDOMPurify","DOMPurify","version","removed","nodeType","isSupported","originalDocument","useDOMParser","removeTitle","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","template","content","ownerDocument","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","createDocumentFragment","importNode","hooks","createHTMLDocument","documentMode","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","_forceRemove","node","outerHTML","_removeAttribute","attribute","getAttributeNode","removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","body","firstElementChild","insertBefore","createTextNode","childNodes","querySelector","innerHTML","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","textContent","attributes","namespaceURI","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","tagName","allowedTags","querySelectorAll","insertAdjacentHTML","htmlToInsert","cloneNode","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","idAttr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toStaticHTML","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","Hub","client","_version","_stack","_invokeClient","method","top","getStackTop","isOlderThan","pushScope","getStack","parentScope","getClient","popScope","withScope","callback","getScope","_lastEventId","finalHint","syntheticException","lastEventId","addBreadcrumb","breadcrumb","beforeBreadcrumb","maxBreadcrumbs","timestamp","mergedBreadcrumb","finalBreadcrumb","min","setUser","setTags","tags","setExtras","extras","setTag","setExtra","setContext","context","configureScope","run","oldHub","makeMain","startSpan","spanOrSpanContext","forceNoChild","_callExtensionMethod","traceHeaders","carrier","getMainCarrier","sentry","extensions","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","activeDomain","active","registryHubTopStack","getHubFromActiveDomain","handleFetchError","response","ok","handleFetchErrors","responses","staticAsset","asset","__STATIC__","csrfPost","headers","Cookies","fetch","credentials","isGitRepoUrl","domain","removeUrlFragment","history","replaceState","title","location","pathname","search","selectText","startNode","endNode","selection","getSelection","removeAllRanges","range","createRange","setStart","setEnd","addRange","htmlAlert","closable","closeButton","extraClasses","BREAKPOINT_SM","BREAKPOINT_MD","swhSpinnerSrc","swhObjectIcons","collapseSidebar","previousSidebarState","localStorage","getItem","ensureNoFooterOverflow","$","css","outerHeight","initPage","page","addClass","on","sidebarCollapsed","hasClass","setItem","sessionStorage","initHomePage","iFrameResize","heightCalculationMethod","Urls","stat_counters","json","toLocaleString","revision","origin","directory","person","stat_counters_history","swh","webapp","drawHistoryCounterGraph","showModalMessage","modal","showModalConfirm","unbind","showModalHtml","addJumpToPagePopoverToDataTable","dataTableElt","pageInfo","info","pages","selected","popover","filterXSS","pageNumber","parseInt","val","draw","setSwhObjectIcons","icons","getSwhObjectIcon","swhObjectType","width","sidebarTransition","sidebarEltsTransition","click","lastBrowsePage","preventDefault","resize","objectFitImages","append","selectedCode","getCodeOrPreEltUnderPointer","elementsFromPoint","clientX","clientY","elt","selectCode","hljsLnCodeElts","find","lastChild","dblclick","ctrlKey","metaKey","keydown","scrollThreshold","height","scroll","scrollTop","browsedSwhObjectMetadata","setBrowsedSwhObjectMetadata","metadata","getBrowsedSwhObjectMetadata","highlightCode","showLineNumbers","highlightLine","resetHighlightedLines","scrollToLine","parseUrlFragmentForLinesToHighlight","a","lines","linesRegexp","line","exec","hash","firstHighlightedLine","lineDomElt","closest","animate","offset","lineTd","lineHighlightColor","each","block","hljs","highlightBlock","lineNumbersBlock","singleLine","classList","contains","shiftKey","firstLine","renderMarkdown","domElt","markdownDocUrl","showdownHighlight","filter","converter","showdown","helper","replaceRecursiveRegExp","wholeMatch","left","right","decode","lang","includes","attrIndex","getLanguage","highlight","Converter","tables","makeHtml","renderOrgData","orgDocData","org","parser","Parser","orgDocument","toc","orgHTMLDocument","convert","ConverterHTML","first","remove","renderOrg","orgDocUrl","renderTxt","txtDocUrl","renderPdf","pdfUrl","renderPage","queueRenderPage","onPrevPage","onNextPage","pageNum","pdfDoc","numPages","num","pageRendering","pageNumPending","getPage","divWidth","scale","defaultScale","getViewport","viewport","canvas","renderContext","canvasContext","ctx","render","getContext","pdfjs","GlobalWorkerOptions","workerSrc","getDocument","pdf","ansiup","AnsiUp","escapeHTML","unescapeHTML","escapeLaTeX","bm","im","le","blockMath","inlineMath","latexEnvironment","mathTextFound","mathText","escapedText","specialLaTexChar","renderNotebook","nbJsonUrl","renderAnsi","initMathJax","MathJax","TeX","equationNumbers","autoNumber","useLabelIds","tex2jax","displayMath","processEscapes","processEnvironments","displayAlign","styles","linebreaks","automatic","ansi_to_html","preElt","codeElt","simplifiedAutoLink","rawHeaderId","literalMidWordUnderscores","rendered","nb","markdown","highlighter","ansi","nbJson","notebook","parent","escape_for_html","startsWith","swhObjectMetadata","browse_directory_resolve_content_path","container","historyData","updateTooltip","x0","xScale","invert","d3","mouse","bisectDate","d0","d1","focus","yScale","tooltipText","dateFormatter","valueFormatter","tooltip","style","pageX","pageY","select","margin","bottom","ceil","firstPoint","lastPoint","g","scaleTime","rangeRound","nice","scaleLinear","y","timeFormat","format","bisector","axisBottom","ticks","tickFormat","selectAll","axisRight","datum","transition","duration","showBadgeInfoModal","objectType","objectPid","badgeImageUrl","badgeLinkUrl","swh_badge","browse_origin","swh_badge_pid","browse_swh_id","urlPrefix","protocol","hostname","port","absoluteBadgeImageUrl","absoluteBadgeLinkUrl","sentryInit","sentryDsn","Sentry","sentryCaptureException","exc","States","SyncPromise","executor","_state","PENDING","_handlers","_resolve","_setResult","RESOLVED","_reject","REJECTED","state","_value","_executeHandlers","_attachHandler","handler","onrejected","onfulfilled","collection","counter","resolvedCollection","item","index","catch","finally","onfinally","isRejected","originalFunctionToString","FunctionToString","setupOnce","DEFAULT_IGNORE_ERRORS","InboundFilters","self","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isBlacklistedUrl","_getEventFilterUrl","_isWhitelistedUrl","ignoreInternal","ignoreErrors","_getPossibleEventMessages","some","pattern","blacklistUrls","whitelistUrls","oO","stacktrace","frames_1","frames","filename","frames_2","OFI","propRegex","testImg","Image","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","img","placeholder","onImageReady","naturalWidth","fixOne","el","parsed","getComputedStyle","fontFamily","props","getStyle","ofi","skipTest","srcset","naturalHeight","descriptors","prop","ss","keepSrcUsable","picturefill","pf","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","imgs","opts","startAutoMode","addEventListener","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes","he","encode","PacketKind","__makeTemplateObject","cooked","raw","VERSION","setup_palettes","_use_classes","_escape_for_html","bold","fg","bg","_url_whitelist","arg","configurable","ansi_colors","rgb","class_name","palette_256","palette","rec","levels","col","grey_level","gry","escape_txt_for_html","txt","str","append_buffer","get_next_packet","pkt","kind","EOS","len","pos","Incomplete","next_char","charAt","ESC","_csi_regex","rgx","Unknown","SGR","rpos","_osc_st","tmplObj","subst","regexText","wsrgx","txt2","rgxG","lastIndex","match_1","match_2","_osc_regex","OSCURL","blocks","packet","transform_to_html","with_state","process_ansi","process_hyperlink","sgr_cmds","sgr_cmd_str","isNaN","is_foreground","mode_cmd","palette_index","classes","class_string","style_string","parts","default","Memo","_hasWeakSet","WeakSet","_inner","has","add","delete","proto","BrowserClient","_super","platform","packages","showReportDialog","async","getReportDialogEndpoint","onLoad","BrowserBackend","transportOptions","transport","attachStacktrace","handled","Info","installedIntegrations","setupIntegrations","defaultIntegrations","userIntegrations","userIntegrationsNames_1","pickedIntegrationsNames_1","defaultIntegration","userIntegration","integrationsNames","getIntegrationsToSetup","setupIntegration","DSN_REGEX","Dsn","_fromString","_fromComponents","_validate","withPassword","host","path","pass","projectId","components","component","asyncGeneratorStep","gen","_next","_throw","fn","callOnHub","dynamicRequire","mod","require","isNodeEnv","process","fallbackGlobalObject","getGlobalObject","uuid4","crypto","msCrypto","getRandomValues","Uint16Array","pad","v","parseUrl","query","relative","getEventDescription","consoleSandbox","originalConsole","wrappedLevels","addExceptionTypeValue","addExceptionMechanism","mechanism","getLocationHref","htmlTreeAsString","elem","currentElem","out","sepLength","nextStr","_htmlElementAsString","reverse","className","attrWhitelist","timestampWithMs","Date","getTime","parseRetryAfterHeader","now","header","headerDelay","headerDate","getFunctionName","truncate","max","substr","snipLine","colno","newLine","ll","start","end","safeJoin","delimiter","output","isMatchingPattern","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","handleEvent","ex","addEventProcessor","getOwnPropertyDescriptor","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_context","addScopeListener","_notifyScopeListeners","_notifyEventProcessors","processors","processor","final","setFingerprint","fingerprint","_fingerprint","setLevel","setTransaction","transaction","_transaction","_span","setSpan","span","getSpan","newScope","clear","clearBreadcrumbs","_applyFingerprint","getGlobalEventProcessors","globalEventProcessors","addGlobalEventProcessor","SentryError","_newTarget","RegexEscape","escape","freeExports","freeGlobal","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","'","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","fromCharCode","propertyName","merge","defaults","codePointToSymbol","codePoint","strict","parseError","hexEscape","toUpperCase","decEscape","string","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","symbol","charCodeAt","$0","high","low","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","isAttributeValue","execScript","attachEvent","eval","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","nextTick","browser","env","argv","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","originalModule","init","window_1","SENTRY_RELEASE","TryCatch","_ignoreOnError","_wrapTimeFunction","originalCallback","function","_wrapRAF","_wrapEventTarget","eventName","_wrapXHR","originalSend","xhr","xmlHttpRequestProps","onreadystatechange","wrapOptions","XMLHttpRequest","Breadcrumbs","dom","_consoleBreadcrumb","handlerData","category","fromString","_domBreadcrumb","_xhrBreadcrumb","endTimestamp","__sentry_own_request__","__sentry_xhr__","addSentryBreadcrumb","_fetchBreadcrumb","filterUrl","getStoreEndpoint","fetchData","status_code","_historyBreadcrumb","to","parsedLoc","parsedFrom","parsedTo","serializedData","GlobalHandlers","_global","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","onunhandledrejection","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","msg","column","currentHub","hasIntegration","isFailedOwnDelivery","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","rejection","_eventFromIncompleteRejection","groups","lineno","in_app","LinkedErrors","_limit","limit","_handler","linkedErrors","_walkErrorTree","UserAgent","navigator","userAgent","FetchTransport","_disabledUntil","defaultOptions","referrerPolicy","fromHttpCode","Success","RateLimit","PromiseBuffer","isReady","task","capturedSetTimeout","XHRTransport","readyState","getResponseHeader","open","setRequestHeader","send","isError","wat","isInstanceOf","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","Boolean","isSyntheticEvent","base","_e","chrome","gecko","winjs","geckoEval","chromeEval","computeStackTrace","popSize","framesToPop","opera10Regex","opera11Regex","extractMessage","computeStackTraceFromStacktraceProp","popFrames","submatch","isNative","columnNumber","computeStackTraceFromStackProp","failed","exceptionFromStacktrace","prepareFramesForEvent","eventFromPlainObject","__serialized__","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","frame","Status","Invalid","Failed","eventFromUnknownInput","domException","name_1","eventFromString","objectException","synthetic","Severity","Debug","Warning","Fatal","Critical","Log","hadRuntime","regeneratorRuntime","getOwnPropertyNames","oldRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","innerFn","outerFn","tryLocsList","iter","Context","reset","skipTempReset","prev","sent","_sent","delegate","tryEntries","resetTryEntry","stop","rootRecord","completion","rval","dispatchException","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","complete","afterLoc","finish","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","API","_dsnObject","_getBaseUrl","getStoreEndpointPath","auth","sentry_key","sentry_version","getRequestHeaders","clientName","clientVersion","dialogOptions","endpoint","encodedOptions","email","supportsFetch","Headers","Request","Response","isNativeFetch","supportsNativeFetch","sandbox","hidden","contentWindow","supportsReferrerPolicy","supportsHistory","isChromePackagedApp","app","hasHistoryApi","pushState","lastHref","handlers","instrumented","instrument","originalConsoleLevel","triggerHandlers","instrumentConsole","domEventHandler","keypressEventHandler","innerOriginal","instrumentDOM","xhrproto","originalOpen","commonHandlerData","startTimestamp","onreadystatechangeHandler","readyStateArgs","instrumentXHR","originalFetch","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","addInstrumentationHandler","e_1","e_1_1","fetchArgs","keypressTimeout","lastCapturedEvent","debounceTimer","debounce","isContentEditable"],"mappings":"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AAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,OAAO,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,KAAK,IAAO,QAAQ,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,UAAU,IAAS,UAAU,IAAS,KAAK,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,UAAU,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,I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","file":"js/webapp.0afe58b813354c5e6ded.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"webapp\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"webapp\"] = factory();\n})(window, function() {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t12: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t12: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"3\":\"d3\",\"4\":\"highlightjs\",\"5\":\"org\",\"7\":\"pdfjs\",\"10\":\"showdown\"}[chunkId]||chunkId) + \".\" + {\"3\":\"1a77dc57ed5902be8bf5\",\"4\":\"013f2b69313022f30437\",\"5\":\"5174f2b8350d07e203c7\",\"7\":\"e7e30b41a87080946820\",\"10\":\"91aacda56c49ac468692\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"4\":1,\"5\":1,\"10\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"3\":\"d3\",\"4\":\"highlightjs\",\"5\":\"org\",\"7\":\"pdfjs\",\"10\":\"showdown\"}[chunkId]||chunkId) + \".\" + {\"3\":\"1a77dc57ed5902be8bf5\",\"4\":\"013f2b69313022f30437\",\"5\":\"5174f2b8350d07e203c7\",\"7\":\"e7e30b41a87080946820\",\"10\":\"91aacda56c49ac468692\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([520,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { consoleSandbox, getGlobalObject } from './misc';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' ')); // tslint:disable-line:no-console\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' ')); // tslint:disable-line:no-console\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' ')); // tslint:disable-line:no-console\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map","import { API } from '@sentry/core';\nimport { PromiseBuffer, SentryError } from '@sentry/utils';\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n this.url = new API(this.options.dsn).getStoreEndpointWithUrlEncodedAuth();\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","export var SDK_NAME = 'sentry.javascript.browser';\nexport var SDK_VERSION = '5.12.1';\n//# sourceMappingURL=version.js.map","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { isElement, isError, isEvent, isInstanceOf, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName, htmlTreeAsString } from './misc';\nimport { truncate } from './string';\n/**\n * Wrap a given object method with a higher-order function\n *\n * @param source An object that contains a method to be wrapped.\n * @param name A name of method to be wrapped.\n * @param replacement A function that should be used to wrap a given method.\n * @returns void\n */\nexport function fill(source, name, replacement) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacement(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n // tslint:disable-next-line:strict-type-predicates\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(\n // tslint:disable-next-line:no-unsafe-any\n function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all it's attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n source.type = event_1.type;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '<unknown>';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '<unknown>';\n }\n // tslint:disable-next-line:strict-type-predicates\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var i in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, i)) {\n source[i] = event_1;\n }\n }\n return source;\n }\n return value;\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // tslint:disable-next-line:no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/** Transforms any input value into a string form, either primitive value or a type of the input */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n // tslint:disable-next-line:no-tautology-expression\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n // If value implements `toJSON` method, call it and return early\n // tslint:disable:no-unsafe-any\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n // tslint:enable:no-unsafe-any\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\nexport function normalize(input, depth) {\n try {\n // tslint:disable-next-line:no-unsafe-any\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n // tslint:disable:strict-type-predicates\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n//# sourceMappingURL=object.js.map","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instanciate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n if (options.debug === true) {\n logger.enable();\n }\n getCurrentHub().bindClient(new clientClass(options));\n}\n//# sourceMappingURL=sdk.js.map","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map","import * as tslib_1 from \"tslib\";\nimport { Dsn, isPrimitive, isThenable, logger, normalize, SyncPromise, truncate, uuid4 } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient.prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeBackend, NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Is the client still processing a call? */\n this._processing = false;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n if (this._isEnabled()) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._processing = true;\n this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._processEvent(event, hint, scope); })\n .then(function (finalEvent) {\n // We need to check for finalEvent in case beforeSend returned null\n eventId = finalEvent && finalEvent.event_id;\n _this._processing = false;\n })\n .then(null, function (reason) {\n logger.error(reason);\n _this._processing = false;\n });\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._processing = true;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(\"\" + message, level, hint)\n : this._getBackend().eventFromException(message, hint);\n promisedEvent\n .then(function (event) { return _this._processEvent(event, hint, scope); })\n .then(function (finalEvent) {\n // We need to check for finalEvent in case beforeSend returned null\n eventId = finalEvent && finalEvent.event_id;\n _this._processing = false;\n })\n .then(null, function (reason) {\n logger.error(reason);\n _this._processing = false;\n });\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n this._processing = true;\n this._processEvent(event, hint, scope)\n .then(function (finalEvent) {\n // We need to check for finalEvent in case beforeSend returned null\n eventId = finalEvent && finalEvent.event_id;\n _this._processing = false;\n })\n .then(null, function (reason) {\n logger.error(reason);\n _this._processing = false;\n });\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientProcessing(timeout).then(function (status) {\n clearInterval(status.interval);\n return _this._getBackend()\n .getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return status.ready && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegrations = function () {\n return this._integrations || {};\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Waits for the client to be done with processing. */\n BaseClient.prototype._isClientProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = 0;\n clearInterval(interval);\n interval = setInterval(function () {\n if (!_this._processing) {\n resolve({\n interval: interval,\n ready: true,\n });\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n resolve({\n interval: interval,\n ready: false,\n });\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional informartion about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions(), environment = _a.environment, release = _a.release, dist = _a.dist, _b = _a.maxValueLength, maxValueLength = _b === void 0 ? 250 : _b, _c = _a.normalizeDepth, normalizeDepth = _c === void 0 ? 3 : _c;\n var prepared = tslib_1.__assign({}, event);\n if (prepared.environment === undefined && environment !== undefined) {\n prepared.environment = environment;\n }\n if (prepared.release === undefined && release !== undefined) {\n prepared.release = release;\n }\n if (prepared.dist === undefined && dist !== undefined) {\n prepared.dist = dist;\n }\n if (prepared.message) {\n prepared.message = truncate(prepared.message, maxValueLength);\n }\n var exception = prepared.exception && prepared.exception.values && prepared.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = prepared.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n if (prepared.event_id === undefined) {\n prepared.event_id = hint && hint.event_id ? hint.event_id : uuid4();\n }\n this._addIntegrations(prepared.sdk);\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (scope) {\n // In case we have a hub we reassign it.\n result = scope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n // tslint:disable-next-line:strict-type-predicates\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n // tslint:disable:no-unsafe-any\n return tslib_1.__assign({}, event, (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (tslib_1.__assign({}, b, (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n }), (event.user && {\n user: normalize(event.user, depth),\n }), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n }), (event.extra && {\n extra: normalize(event.extra, depth),\n }));\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param sdkInfo The sdkInfo of the event that will be filled with all integrations.\n */\n BaseClient.prototype._addIntegrations = function (sdkInfo) {\n var integrationsArray = Object.keys(this._integrations);\n if (sdkInfo && integrationsArray.length > 0) {\n sdkInfo.integrations = integrationsArray;\n }\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional informartion about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n if (!this._isEnabled()) {\n return SyncPromise.reject('SDK not enabled, will not send event.');\n }\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n if (typeof sampleRate === 'number' && Math.random() > sampleRate) {\n return SyncPromise.reject('This event has been sampled, will not send event.');\n }\n return new SyncPromise(function (resolve, reject) {\n _this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n reject('An event processor returned null, will not send event.');\n return;\n }\n var finalEvent = prepared;\n try {\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || !beforeSend) {\n _this._getBackend().sendEvent(finalEvent);\n resolve(finalEvent);\n return;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n // tslint:disable-next-line:strict-type-predicates\n if (typeof beforeSendResult === 'undefined') {\n logger.error('`beforeSend` method has to return `null` or a valid event.');\n }\n else if (isThenable(beforeSendResult)) {\n _this._handleAsyncBeforeSend(beforeSendResult, resolve, reject);\n }\n else {\n finalEvent = beforeSendResult;\n if (finalEvent === null) {\n logger.log('`beforeSend` returned `null`, will not send event.');\n resolve(null);\n return;\n }\n // From here on we are really async\n _this._getBackend().sendEvent(finalEvent);\n resolve(finalEvent);\n }\n }\n catch (exception) {\n _this.captureException(exception, {\n data: {\n __sentry__: true,\n },\n originalException: exception,\n });\n reject('`beforeSend` threw an error, will not send event.');\n }\n })\n .then(null, function () {\n reject('`beforeSend` threw an error, will not send event.');\n });\n });\n };\n /**\n * Resolves before send Promise and calls resolve/reject on parent SyncPromise.\n */\n BaseClient.prototype._handleAsyncBeforeSend = function (beforeSend, resolve, reject) {\n var _this = this;\n beforeSend\n .then(function (processedEvent) {\n if (processedEvent === null) {\n reject('`beforeSend` returned `null`, will not send event.');\n return;\n }\n // From here on we are really async\n _this._getBackend().sendEvent(processedEvent);\n resolve(processedEvent);\n })\n .then(null, function (e) {\n reject(\"beforeSend rejected with \" + e);\n });\n };\n return BaseClient;\n}());\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.DOMPurify = factory());\n}(this, (function () { 'use strict';\n\nfunction _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar hasOwnProperty = Object.hasOwnProperty;\nvar setPrototypeOf = Object.setPrototypeOf;\nvar isFrozen = Object.isFrozen;\nvar objectKeys = Object.keys;\nvar freeze = Object.freeze;\nvar seal = Object.seal; // eslint-disable-line import/no-mutable-exports\n\nvar _ref = typeof Reflect !== 'undefined' && Reflect;\nvar apply = _ref.apply;\nvar construct = _ref.construct;\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray$1(args))))();\n };\n}\n\nvar arrayForEach = unapply(Array.prototype.forEach);\nvar arrayIndexOf = unapply(Array.prototype.indexOf);\nvar arrayJoin = unapply(Array.prototype.join);\nvar arrayPop = unapply(Array.prototype.pop);\nvar arrayPush = unapply(Array.prototype.push);\nvar arraySlice = unapply(Array.prototype.slice);\n\nvar stringToLowerCase = unapply(String.prototype.toLowerCase);\nvar stringMatch = unapply(String.prototype.match);\nvar stringReplace = unapply(String.prototype.replace);\nvar stringIndexOf = unapply(String.prototype.indexOf);\nvar stringTrim = unapply(String.prototype.trim);\n\nvar regExpTest = unapply(RegExp.prototype.test);\nvar regExpCreate = unconstruct(RegExp);\n\nvar typeErrorCreate = unconstruct(TypeError);\n\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n}\n\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n}\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n var newObject = {};\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n\nvar html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n// SVG\nvar svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern']);\n\nvar svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\nvar mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\nvar text = freeze(['#text']);\n\nvar html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocomplete', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'coords', 'crossorigin', 'datetime', 'default', 'dir', 'disabled', 'download', 'enctype', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'integrity', 'ismap', 'label', 'lang', 'list', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\nvar svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\nvar mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\nvar xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g // eslint-disable-line no-control-regex\n);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (error) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.0.8';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var useDOMParser = false;\n var removeTitle = false;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(svgFilters), _toConsumableArray(mathMl), _toConsumableArray(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(mathMl$1), _toConsumableArray(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for jQuery's $() factory? */\n var SAFE_FOR_JQUERY = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify. */\n var RETURN_DOM_IMPORT = false;\n\n /* Try to return a Trusted Type object instead of a string, retrun a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n node.parentNode.removeChild(node);\n } catch (error) {\n node.outerHTML = emptyHTML;\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (error) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\s]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /* Use DOMParser to workaround Firefox bug (see comment below) */\n if (useDOMParser) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (error) {}\n }\n\n /* Remove title to fix a mXSS bug in older MS Edge */\n if (removeTitle) {\n addToSet(FORBID_TAGS, ['title']);\n }\n\n /* Otherwise use createHTMLDocument, because DOMParser is unsafe in\n Safari (see comment below) */\n if (!doc || !doc.documentElement) {\n doc = implementation.createHTMLDocument('');\n var _doc = doc,\n body = _doc.body;\n\n body.parentNode.removeChild(body.parentNode.firstElementChild);\n body.outerHTML = dirtyPayload;\n }\n\n if (dirty && leadingWhitespace) {\n doc.body.insertBefore(document.createTextNode(leadingWhitespace), doc.body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n };\n\n // Firefox uses a different parser for innerHTML rather than\n // DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)\n // which means that you *must* use DOMParser, otherwise the output may\n // not be safe if used in a document.write context later.\n //\n // So we feature detect the Firefox bug and use the DOMParser if necessary.\n //\n // Chrome 77 and other versions ship an mXSS bug that caused a bypass to\n // happen. We now check for the mXSS trigger and react accordingly.\n if (DOMPurify.isSupported) {\n (function () {\n try {\n var doc = _initDocument('<svg><p><textarea><img src=\"</textarea><img src=x abc=1//\">');\n if (doc.querySelector('svg img')) {\n useDOMParser = true;\n }\n } catch (error) {}\n })();\n\n (function () {\n try {\n var doc = _initDocument('<x/><title></title><img>');\n if (regExpTest(/<\\/title/, doc.querySelector('title').innerHTML)) {\n removeTitle = true;\n }\n } catch (error) {}\n })();\n }\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n return NodeFilter.FILTER_ACCEPT;\n }, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(obj) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? obj instanceof Node : obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n // eslint-disable-next-line complexity\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = stringToLowerCase(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Take care of an mXSS pattern using p, br inside svg, math */\n if ((tagName === 'svg' || tagName === 'math') && currentNode.querySelectorAll('p, br').length !== 0) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for black-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n try {\n var htmlToInsert = currentNode.innerHTML;\n currentNode.insertAdjacentHTML('AfterEnd', trustedTypesPolicy ? trustedTypesPolicy.createHTML(htmlToInsert) : htmlToInsert);\n } catch (error) {}\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove in case a noscript/noembed XSS is suspected */\n if (tagName === 'noscript' && regExpTest(/<\\/noscript/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if (tagName === 'noembed' && regExpTest(/<\\/noembed/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Convert markup to cover jQuery behavior */\n if (SAFE_FOR_JQUERY && !currentNode.firstElementChild && (!currentNode.content || !currentNode.content.firstElementChild) && regExpTest(/</g, currentNode.textContent)) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n if (currentNode.innerHTML) {\n currentNode.innerHTML = stringReplace(currentNode.innerHTML, /</g, '<');\n } else {\n currentNode.innerHTML = stringReplace(currentNode.textContent, /</g, '<');\n }\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$$1, lcName)) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) {\n // This attribute is safe\n /* Check for binary attributes */\n // eslint-disable-next-line no-negated-condition\n } else if (!value) {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n } else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n // eslint-disable-next-line complexity\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var idAttr = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = stringToLowerCase(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n // Safari (iOS + Mac), last tested v8.0.5, crashes if you try to\n // remove a \"name\" attribute from an <img> tag that has an \"id\"\n // attribute at the time.\n if (lcName === 'name' && currentNode.nodeName === 'IMG' && attributes.id) {\n idAttr = attributes.id;\n attributes = arraySlice(attributes, []);\n _removeAttribute('id', currentNode);\n _removeAttribute(name, currentNode);\n if (arrayIndexOf(attributes, idAttr) > l) {\n currentNode.setAttribute('id', idAttr.value);\n }\n } else if (\n // This works around a bug in Safari, where input[type=file]\n // cannot be dynamically set after type has been removed\n currentNode.nodeName === 'INPUT' && lcName === 'type' && value === 'file' && hookEvent.keepAttr && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {\n continue;\n } else {\n // This avoids a crash in Safari v9.0 with double-ids.\n // The trick is to first set the id to be empty and then to\n // remove the attribute\n if (name === 'id') {\n currentNode.setAttribute(name, '');\n }\n\n _removeAttribute(name, currentNode);\n }\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (SAFE_FOR_JQUERY && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Take care of an mXSS pattern using namespace switches */\n if (regExpTest(/svg|math/i, currentNode.namespaceURI) && regExpTest(regExpCreate('</(' + arrayJoin(objectKeys(FORBID_CONTENTS), '|') + ')', 'i'), value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (error) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n if (!dirty) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* No special handling necessary for in-place sanitization */\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!-->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && RETURN_TRUSTED_TYPE && dirty.indexOf('<') === -1) {\n return trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /* AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs. */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = stringToLowerCase(tag);\n var lcName = stringToLowerCase(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nreturn purify;\n\n})));\n//# sourceMappingURL=purify.js.map\n","module.exports = require(\"regenerator-runtime\");\n","import * as tslib_1 from \"tslib\";\nimport { consoleSandbox, dynamicRequire, getGlobalObject, isNodeEnv, logger, timestampWithMs, uuid4, } from '@sentry/utils';\nimport { Scope } from './scope';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be incresed when the global interface\n * changes a and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 3;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [];\n this._stack.push({ client: client, scope: scope });\n }\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var top = this.getStackTop();\n if (top && top.client && top.client[method]) {\n (_a = top.client)[method].apply(_a, tslib_1.__spread(args, [top.scope]));\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var stack = this.getStack();\n var parentScope = stack.length > 0 ? stack[stack.length - 1].scope : undefined;\n var scope = Scope.clone(parentScope);\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n return this.getStack().pop() !== undefined;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, tslib_1.__assign({}, finalHint, { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimick the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, tslib_1.__assign({}, finalHint, { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = (this._lastEventId = uuid4());\n this._invokeClient('captureEvent', event, tslib_1.__assign({}, hint, { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var top = this.getStackTop();\n if (!top.scope || !top.client) {\n return;\n }\n var _a = (top.client.getOptions && top.client.getOptions()) || {}, _b = _a.beforeBreadcrumb, beforeBreadcrumb = _b === void 0 ? null : _b, _c = _a.maxBreadcrumbs, maxBreadcrumbs = _c === void 0 ? DEFAULT_BREADCRUMBS : _c;\n if (maxBreadcrumbs <= 0) {\n return;\n }\n var timestamp = timestampWithMs();\n var mergedBreadcrumb = tslib_1.__assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null) {\n return;\n }\n top.scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setContext = function (name, context) {\n var top = this.getStackTop();\n if (!top.scope) {\n return;\n }\n top.scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var top = this.getStackTop();\n if (top.scope && top.client) {\n callback(top.scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client) {\n return null;\n }\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (spanOrSpanContext, forceNoChild) {\n if (forceNoChild === void 0) { forceNoChild = false; }\n return this._callExtensionMethod('startSpan', spanOrSpanContext, forceNoChild);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n // tslint:disable-next-line: strict-type-predicates\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/** Returns the global shim registry. */\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Try to read the hub from an active domain, fallback to the registry if one doesnt exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by webpack.\n // We do not want this to happen, we need to try to `require` the domain node module and fail if we are in browser\n // for example so we do not have to shim it and use `getCurrentHub` universally.\n var domain = dynamicRequire(module, 'domain');\n var activeDomain = domain.active;\n // If there no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or its an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return true;\n }\n return false;\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n return carrier.__SENTRY__.hub;\n }\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier) {\n return false;\n }\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, domain) {\n let endOfPattern = '\\\\/[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git(?:\\\\/?|\\\\#[\\\\w\\\\.\\\\-_]+)?)?$';\n let pattern = `(?:git|https?|git@)(?:\\\\:\\\\/\\\\/)?${domain}[/|:][A-Za-z0-9-]+?` + endOfPattern;\n let re = new RegExp(pattern);\n return re.test(url);\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n let selection = window.getSelection();\n selection.removeAllRanges();\n let range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport objectFitImages from 'object-fit-images';\nimport {selectText} from 'utils/functions';\nimport {BREAKPOINT_MD} from 'utils/constants';\n\nlet collapseSidebar = false;\nlet previousSidebarState = localStorage.getItem('swh-sidebar-collapsed');\nif (previousSidebarState !== undefined) {\n collapseSidebar = JSON.parse(previousSidebarState);\n}\n\n$(document).on('DOMContentLoaded', () => {\n // set state to collapsed on smaller devices\n if ($(window).width() < BREAKPOINT_MD) {\n collapseSidebar = true;\n }\n\n // restore previous sidebar state (collapsed/expanded)\n if (collapseSidebar) {\n // hack to avoid animated transition for collapsing sidebar\n // when loading a page\n let sidebarTransition = $('.main-sidebar, .main-sidebar:before').css('transition');\n let sidebarEltsTransition = $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition');\n $('.main-sidebar, .main-sidebar:before').css('transition', 'none');\n $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition', 'none');\n $('body').addClass('sidebar-collapse');\n $('.swh-words-logo-swh').css('visibility', 'visible');\n // restore transitions for user navigation\n setTimeout(() => {\n $('.main-sidebar, .main-sidebar:before').css('transition', sidebarTransition);\n $('.sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info').css('transition', sidebarEltsTransition);\n });\n }\n});\n\n$(document).on('collapsed.lte.pushmenu', event => {\n if ($('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n});\n\n$(document).on('shown.lte.pushmenu', event => {\n $('.swh-words-logo-swh').css('visibility', 'hidden');\n});\n\nfunction ensureNoFooterOverflow() {\n $('body').css('padding-bottom', $('footer').outerHeight() + 'px');\n}\n\n$(document).ready(() => {\n // redirect to last browse page if any when clicking on the 'Browse' entry\n // in the sidebar\n $(`.swh-browse-link`).click(event => {\n let lastBrowsePage = sessionStorage.getItem('last-browse-page');\n if (lastBrowsePage) {\n event.preventDefault();\n window.location = lastBrowsePage;\n }\n });\n\n // ensure footer do not overflow main content for mobile devices\n // or after resizing the browser window\n ensureNoFooterOverflow();\n $(window).resize(function() {\n ensureNoFooterOverflow();\n if ($('body').hasClass('sidebar-collapse') && $('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n });\n // activate css polyfill 'object-fit: contain' in old browsers\n objectFitImages();\n\n // reparent the modals to the top navigation div in order to be able\n // to display them\n $('.swh-browse-top-navigation').append($('.modal'));\n\n let selectedCode = null;\n\n function getCodeOrPreEltUnderPointer(e) {\n let elts = document.elementsFromPoint(e.clientX, e.clientY);\n for (let elt of elts) {\n if (elt.nodeName === 'CODE' || elt.nodeName === 'PRE') {\n return elt;\n }\n }\n return null;\n }\n\n // click handler to set focus on code block for copy\n $(document).click(e => {\n selectedCode = getCodeOrPreEltUnderPointer(e);\n });\n\n function selectCode(event, selectedCode) {\n if (selectedCode) {\n let hljsLnCodeElts = $(selectedCode).find('.hljs-ln-code');\n if (hljsLnCodeElts.length) {\n selectText(hljsLnCodeElts[0], hljsLnCodeElts[hljsLnCodeElts.length - 1]);\n } else {\n selectText(selectedCode.firstChild, selectedCode.lastChild);\n }\n event.preventDefault();\n }\n }\n\n // select the whole text of focused code block when user\n // double clicks or hits Ctrl+A\n $(document).dblclick(e => {\n if ((e.ctrlKey || e.metaKey)) {\n selectCode(e, getCodeOrPreEltUnderPointer(e));\n }\n });\n\n $(document).keydown(e => {\n if ((e.ctrlKey || e.metaKey) && e.key === 'a') {\n selectCode(e, selectedCode);\n }\n });\n\n // show/hide back-to-top button\n let scrollThreshold = 0;\n scrollThreshold += $('.swh-top-bar').height() || 0;\n scrollThreshold += $('.navbar').height() || 0;\n $(window).scroll(() => {\n if ($(window).scrollTop() > scrollThreshold) {\n $('#back-to-top').css('display', 'block');\n } else {\n $('#back-to-top').css('display', 'none');\n }\n });\n});\n\nexport function initPage(page) {\n\n $(document).ready(() => {\n // set relevant sidebar link to page active\n $(`.swh-${page}-item`).addClass('active');\n $(`.swh-${page}-link`).addClass('active');\n\n // triggered when unloading the current page\n $(window).on('unload', () => {\n // backup sidebar state (collapsed/expanded)\n let sidebarCollapsed = $('body').hasClass('sidebar-collapse');\n localStorage.setItem('swh-sidebar-collapsed', JSON.stringify(sidebarCollapsed));\n // backup current browse page\n if (page === 'browse') {\n sessionStorage.setItem('last-browse-page', window.location);\n }\n });\n\n });\n}\n\nexport function initHomePage() {\n $(document).ready(() => {\n $('.swh-coverage-list').iFrameResize({heightCalculationMethod: 'taggedElement'});\n fetch(Urls.stat_counters())\n .then(response => response.json())\n .then(data => {\n if (data.stat_counters) {\n $('#swh-contents-count').html(data.stat_counters.content.toLocaleString());\n $('#swh-revisions-count').html(data.stat_counters.revision.toLocaleString());\n $('#swh-origins-count').html(data.stat_counters.origin.toLocaleString());\n $('#swh-directories-count').html(data.stat_counters.directory.toLocaleString());\n $('#swh-persons-count').html(data.stat_counters.person.toLocaleString());\n $('#swh-releases-count').html(data.stat_counters.release.toLocaleString());\n }\n if (data.stat_counters_history) {\n swh.webapp.drawHistoryCounterGraph('#swh-contents-count-history', data.stat_counters_history.content);\n swh.webapp.drawHistoryCounterGraph('#swh-revisions-count-history', data.stat_counters_history.revision);\n swh.webapp.drawHistoryCounterGraph('#swh-origins-count-history', data.stat_counters_history.origin);\n }\n });\n });\n initPage('home');\n}\n\nexport function showModalMessage(title, message) {\n $('#swh-web-modal-message .modal-title').text(title);\n $('#swh-web-modal-message .modal-content p').text(message);\n $('#swh-web-modal-message').modal('show');\n}\n\nexport function showModalConfirm(title, message, callback) {\n $('#swh-web-modal-confirm .modal-title').text(title);\n $('#swh-web-modal-confirm .modal-content p').text(message);\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').bind('click', () => {\n callback();\n $('#swh-web-modal-confirm').modal('hide');\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').unbind('click');\n });\n $('#swh-web-modal-confirm').modal('show');\n}\n\nexport function showModalHtml(title, html) {\n $('#swh-web-modal-html .modal-title').text(title);\n $('#swh-web-modal-html .modal-body').html(html);\n $('#swh-web-modal-html').modal('show');\n}\n\nexport function addJumpToPagePopoverToDataTable(dataTableElt) {\n dataTableElt.on('draw.dt', function() {\n $('.paginate_button.disabled').css('cursor', 'pointer');\n $('.paginate_button.disabled').on('click', event => {\n const pageInfo = dataTableElt.page.info();\n let content = '<select class=\"jump-to-page\">';\n for (let i = 1; i <= pageInfo.pages; ++i) {\n let selected = '';\n if (i === pageInfo.page + 1) {\n selected = 'selected';\n }\n content += `<option value=\"${i}\" ${selected}>${i}</option>`;\n }\n content += `</select><span> / ${pageInfo.pages}</span>`;\n $(event.target).popover({\n 'title': 'Jump to page',\n 'content': content,\n 'html': true,\n 'placement': 'top',\n 'sanitizeFn': swh.webapp.filterXSS\n });\n $(event.target).popover('show');\n $('.jump-to-page').on('change', function() {\n $('.paginate_button.disabled').popover('hide');\n const pageNumber = parseInt($(this).val()) - 1;\n dataTableElt.page(pageNumber).draw('page');\n });\n });\n });\n\n dataTableElt.on('preXhr.dt', () => {\n $('.paginate_button.disabled').popover('hide');\n });\n}\n\nlet swhObjectIcons;\n\nexport function setSwhObjectIcons(icons) {\n swhObjectIcons = icons;\n}\n\nexport function getSwhObjectIcon(swhObjectType) {\n return swhObjectIcons[swhObjectType];\n}\n\nlet browsedSwhObjectMetadata = {};\n\nexport function setBrowsedSwhObjectMetadata(metadata) {\n browsedSwhObjectMetadata = metadata;\n}\n\nexport function getBrowsedSwhObjectMetadata() {\n return browsedSwhObjectMetadata;\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {removeUrlFragment} from 'utils/functions';\n\nexport async function highlightCode(showLineNumbers = true) {\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // keep track of the first highlighted line\n let firstHighlightedLine = null;\n // highlighting color\n let lineHighlightColor = 'rgb(193, 255, 193)';\n\n // function to highlight a line\n function highlightLine(i) {\n let lineTd = $(`.hljs-ln-line[data-line-number=\"${i}\"]`);\n lineTd.css('background-color', lineHighlightColor);\n return lineTd;\n }\n\n // function to reset highlighting\n function resetHighlightedLines() {\n firstHighlightedLine = null;\n $('.hljs-ln-line[data-line-number]').css('background-color', 'inherit');\n }\n\n function scrollToLine(lineDomElt) {\n if ($(lineDomElt).closest('.swh-content').length > 0) {\n $('html, body').animate({\n scrollTop: $(lineDomElt).offset().top - 70\n }, 500);\n }\n }\n\n // function to highlight lines based on a url fragment\n // in the form '#Lx' or '#Lx-Ly'\n function parseUrlFragmentForLinesToHighlight() {\n let lines = [];\n let linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n resetHighlightedLines();\n if (lines.length === 1) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n } else if (lines[0] < lines[lines.length - 1]) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n for (let i = lines[0] + 1; i <= lines[lines.length - 1]; ++i) {\n highlightLine(i);\n }\n }\n }\n\n $(document).ready(() => {\n // highlight code and add line numbers\n $('code').each((i, block) => {\n hljs.highlightBlock(block);\n if (showLineNumbers) {\n hljs.lineNumbersBlock(block, {singleLine: true});\n }\n });\n\n if (!showLineNumbers) {\n return;\n }\n\n // click handler to dynamically highlight line(s)\n // when the user clicks on a line number (lines range\n // can also be highlighted while holding the shift key)\n $('body').click(evt => {\n if (evt.target.classList.contains('hljs-ln-n')) {\n let line = parseInt($(evt.target).data('line-number'));\n if (evt.shiftKey && firstHighlightedLine && line > firstHighlightedLine) {\n let firstLine = firstHighlightedLine;\n resetHighlightedLines();\n for (let i = firstLine; i <= line; ++i) {\n highlightLine(i);\n }\n firstHighlightedLine = firstLine;\n window.location.hash = `#L${firstLine}-L${line}`;\n } else {\n resetHighlightedLines();\n highlightLine(line);\n window.location.hash = `#L${line}`;\n scrollToLine(evt.target);\n }\n } else if ($(evt.target).closest('.hljs-ln').length) {\n resetHighlightedLines();\n removeUrlFragment();\n }\n });\n\n // update lines highlighting when the url fragment changes\n $(window).on('hashchange', () => parseUrlFragmentForLinesToHighlight());\n\n // schedule lines highlighting if any as hljs.lineNumbersBlock() is async\n setTimeout(() => {\n parseUrlFragmentForLinesToHighlight();\n });\n\n });\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError} from 'utils/functions';\n\nimport {decode} from 'html-encoder-decoder';\n\nexport async function renderMarkdown(domElt, markdownDocUrl) {\n\n let showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // Adapted from https://github.com/Bloggify/showdown-highlight\n // Copyright (c) 2016-19 Bloggify <support@bloggify.org> (https://bloggify.org)\n function showdownHighlight() {\n return [{\n type: 'output',\n filter: function(text, converter, options) {\n let left = '<pre><code\\\\b[^>]*>';\n let right = '</code></pre>';\n let flags = 'g';\n let classAttr = 'class=\"';\n let replacement = (wholeMatch, match, left, right) => {\n match = decode(match);\n let lang = (left.match(/class=\"([^ \"]+)/) || [])[1];\n\n if (left.includes(classAttr)) {\n let attrIndex = left.indexOf(classAttr) + classAttr.length;\n left = left.slice(0, attrIndex) + 'hljs ' + left.slice(attrIndex);\n } else {\n left = left.slice(0, -1) + ' class=\"hljs\">';\n }\n\n if (lang && hljs.getLanguage(lang)) {\n return left + hljs.highlight(lang, match).value + right;\n } else {\n return left + match + right;\n }\n };\n\n return showdown.helper.replaceRecursiveRegExp(text, replacement, left, right, flags);\n }\n }];\n }\n\n $(document).ready(() => {\n let converter = new showdown.Converter({\n tables: true,\n extensions: [showdownHighlight]\n });\n fetch(markdownDocUrl)\n .then(handleFetchError)\n .then(response => response.text())\n .then(data => {\n $(domElt).addClass('swh-showdown');\n $(domElt).html(swh.webapp.filterXSS(converter.makeHtml(data)));\n })\n .catch(() => {\n $(domElt).text('Readme bytes are not available');\n });\n });\n\n}\n\nexport async function renderOrgData(domElt, orgDocData) {\n\n let org = await import(/* webpackChunkName: \"org\" */ 'utils/org');\n\n let parser = new org.Parser();\n let orgDocument = parser.parse(orgDocData, {toc: false});\n let orgHTMLDocument = orgDocument.convert(org.ConverterHTML, {});\n $(domElt).addClass('swh-org');\n $(domElt).html(swh.webapp.filterXSS(orgHTMLDocument.toString()));\n // remove toc and section numbers to get consistent\n // with other readme renderings\n $('.swh-org ul').first().remove();\n $('.section-number').remove();\n\n}\n\nexport function renderOrg(domElt, orgDocUrl) {\n\n $(document).ready(() => {\n fetch(orgDocUrl)\n .then(handleFetchError)\n .then(response => response.text())\n .then(data => {\n renderOrgData(domElt, data);\n })\n .catch(() => {\n $(domElt).text('Readme bytes are not available');\n });\n });\n\n}\n\nexport function renderTxt(domElt, txtDocUrl) {\n\n $(document).ready(() => {\n fetch(txtDocUrl)\n .then(handleFetchError)\n .then(response => response.text())\n .then(data => {\n let orgMode = '-*- mode: org -*-';\n if (data.indexOf(orgMode) !== -1) {\n renderOrgData(domElt, data.replace(orgMode, ''));\n } else {\n $(domElt).addClass('swh-readme-txt');\n $(domElt)\n .html('')\n .append($('<pre></pre>').text(data));\n }\n })\n .catch(() => {\n $(domElt).text('Readme bytes are not available');\n });\n });\n\n}\n","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// adapted from pdf.js examples located at http://mozilla.github.io/pdf.js/examples/\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function renderPdf(pdfUrl) {\n\n let pdfDoc = null;\n let pageNum = 1;\n let pageRendering = false;\n let pageNumPending = null;\n let defaultScale = 1.5;\n let canvas = $('#pdf-canvas')[0];\n let ctx = canvas.getContext('2d');\n\n // Get page info from document, resize canvas accordingly, and render page.\n function renderPage(num) {\n pageRendering = true;\n // Using promise to fetch the page\n pdfDoc.getPage(num).then(page => {\n let divWidth = $('.swh-content').width();\n let scale = Math.min(defaultScale, divWidth / page.getViewport(1).width);\n\n let viewport = page.getViewport(scale);\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n // Render PDF page into canvas context\n let renderContext = {\n canvasContext: ctx,\n viewport: viewport\n };\n let renderTask = page.render(renderContext);\n\n // Wait for rendering to finish\n renderTask.promise.then(() => {\n pageRendering = false;\n if (pageNumPending !== null) {\n // New page rendering is pending\n renderPage(pageNumPending);\n pageNumPending = null;\n }\n });\n });\n\n // Update page counters\n $('#pdf-page-num').text(num);\n }\n\n // If another page rendering in progress, waits until the rendering is\n // finished. Otherwise, executes rendering immediately.\n function queueRenderPage(num) {\n if (pageRendering) {\n pageNumPending = num;\n } else {\n renderPage(num);\n }\n }\n\n // Displays previous page.\n function onPrevPage() {\n if (pageNum <= 1) {\n return;\n }\n pageNum--;\n queueRenderPage(pageNum);\n }\n\n // Displays next page.\n function onNextPage() {\n if (pageNum >= pdfDoc.numPages) {\n return;\n }\n pageNum++;\n queueRenderPage(pageNum);\n }\n\n let pdfjs = await import(/* webpackChunkName: \"pdfjs\" */ 'pdfjs-dist');\n\n pdfjs.GlobalWorkerOptions.workerSrc = staticAsset('js/pdf.worker.min.js');\n\n $(document).ready(() => {\n $('#pdf-prev').click(onPrevPage);\n $('#pdf-next').click(onNextPage);\n let loadingTask = pdfjs.getDocument(pdfUrl);\n loadingTask.promise.then(pdf => {\n pdfDoc = pdf;\n $('#pdf-page-count').text(pdfDoc.numPages);\n // Initial/first page rendering\n renderPage(pageNum);\n }, function(reason) {\n // PDF loading error\n console.error(reason);\n });\n\n // Render PDF on resize\n $(window).on('resize', function() {\n queueRenderPage(pageNum);\n });\n });\n\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport 'script-loader!notebookjs';\nimport AnsiUp from 'ansi_up';\nimport './notebook.css';\n\nconst ansiup = new AnsiUp();\nansiup.escape_for_html = false;\n\nfunction escapeHTML(text) {\n text = text.replace(/</g, '<');\n text = text.replace(/>/g, '>');\n return text;\n}\n\nfunction unescapeHTML(text) {\n text = text.replace(/</g, '<');\n text = text.replace(/>/g, '>');\n return text;\n}\n\nfunction escapeLaTeX(text) {\n\n let blockMath = /\\$\\$(.+?)\\$\\$|\\\\\\\\\\[(.+?)\\\\\\\\\\]/msg;\n let inlineMath = /\\$(.+?)\\$|\\\\\\\\\\((.+?)\\\\\\\\\\)/g;\n let latexEnvironment = /\\\\begin\\{([a-z]*\\*?)\\}(.+?)\\\\end\\{\\1\\}/msg;\n\n let mathTextFound = [];\n let bm;\n while ((bm = blockMath.exec(text)) !== null) {\n mathTextFound.push(bm[1]);\n }\n\n let im;\n while ((im = inlineMath.exec(text)) !== null) {\n mathTextFound.push(im[1]);\n }\n\n let le;\n while ((le = latexEnvironment.exec(text)) !== null) {\n mathTextFound.push(le[1]);\n }\n\n for (let mathText of mathTextFound) {\n // showdown will remove line breaks in LaTex array and\n // some escaping sequences when converting md to html.\n // So we use the following escaping hacks to keep them in the html\n // output and avoid MathJax typesetting errors.\n let escapedText = mathText.replace('\\\\\\\\', '\\\\\\\\\\\\\\\\');\n for (let specialLaTexChar of ['{', '}', '#', '%', '&', '_']) {\n escapedText = escapedText.replace(new RegExp(`\\\\\\\\${specialLaTexChar}`, 'g'),\n `\\\\\\\\${specialLaTexChar}`);\n }\n\n // some html escaping is also needed\n escapedText = escapeHTML(escapedText);\n\n // hack to prevent showdown to replace _ characters\n // by html em tags as it will break some math typesetting\n // (setting the literalMidWordUnderscores option is not\n // enough as iy only works for _ characters contained in words)\n escapedText = escapedText.replace(/_/g, '{@}underscore{@}');\n\n if (mathText !== escapedText) {\n text = text.replace(mathText, escapedText);\n }\n }\n\n return text;\n}\n\nexport async function renderNotebook(nbJsonUrl, domElt) {\n\n let showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n function renderMarkdown(text) {\n let converter = new showdown.Converter({\n tables: true,\n simplifiedAutoLink: true,\n rawHeaderId: true,\n literalMidWordUnderscores: true\n });\n\n // some LaTeX escaping is required to get correct math typesetting\n text = escapeLaTeX(text);\n\n // render markdown\n let rendered = converter.makeHtml(text);\n\n // restore underscores in rendered HTML (see escapeLaTeX function)\n rendered = rendered.replace(/{@}underscore{@}/g, '_');\n\n return rendered;\n }\n\n function highlightCode(text, preElt, codeElt, lang) {\n // no need to unescape text processed by ansiup\n if (text.indexOf('<span style=\"color:rgb(') === -1) {\n text = unescapeHTML(text);\n }\n if (lang && hljs.getLanguage(lang)) {\n return hljs.highlight(lang, text).value;\n } else {\n return text;\n }\n }\n\n function renderAnsi(text) {\n return ansiup.ansi_to_html(text);\n }\n\n nb.markdown = renderMarkdown;\n nb.highlighter = highlightCode;\n nb.ansi = renderAnsi;\n\n function initMathJax() {\n\n // same config as in nbviewer\n window.MathJax = {\n TeX: {\n equationNumbers: {\n autoNumber: 'AMS',\n useLabelIds: true\n }\n },\n tex2jax: {\n inlineMath: [ ['$', '$'], ['\\\\(', '\\\\)'] ],\n displayMath: [ ['$$', '$$'], ['\\\\[', '\\\\]'] ],\n processEscapes: true,\n processEnvironments: true\n },\n displayAlign: 'center',\n 'HTML-CSS': {\n styles: {'.MathJax_Display': {'margin': 0}},\n linebreaks: { automatic: true }\n }\n };\n\n // MathJax is not easily webpackable in its current version\n // (https://github.com/mathjax/MathJax/issues/1629)\n // and is quite a monster regarding the number of files to distribute.\n // So we will load it through a CDN for commodity of use here.\n let head = document.getElementsByTagName('head')[0];\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML';\n head.appendChild(script);\n }\n\n fetch(nbJsonUrl)\n .then(response => response.json())\n .then(nbJson => {\n // parse the notebook\n let notebook = nb.parse(nbJson);\n // render it to HTML and apply XSS filtering\n let rendered = swh.webapp.filterXSS(notebook.render());\n // insert rendered notebook in the DOM\n $(domElt).append(rendered);\n // set light red background color for stderr output cells\n $('pre.nb-stderr').parent().css('background', '#fdd');\n // load MathJax library for math typesetting\n initMathJax();\n });\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport DOMPurify from 'dompurify';\n\n// we register a hook when performing XSS filtering in order to\n// possibly replace a relative image url with the one for getting\n// the image bytes from the archive content\nDOMPurify.addHook('uponSanitizeAttribute', function(node, data) {\n if (node.nodeName === 'IMG' && data.attrName === 'src') {\n\n // image url does not need any processing here\n if (data.attrValue.startsWith('data:image') ||\n data.attrValue.startsWith('http:') ||\n data.attrValue.startsWith('https:')) {\n return;\n }\n\n // get currently browsed swh object metadata\n let swhObjectMetadata = swh.webapp.getBrowsedSwhObjectMetadata();\n\n // the swh object is provided without any useful context\n // to get the image checksums from the web api\n if (!swhObjectMetadata.hasOwnProperty('directory')) {\n return;\n }\n\n // used internal endpoint as image url to possibly get the image data\n // from the archive content\n let url = Urls.browse_directory_resolve_content_path(swhObjectMetadata.directory,\n data.attrValue);\n data.attrValue = url;\n }\n});\n\nexport function filterXSS(html) {\n return DOMPurify.sanitize(html);\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './history-counters.css';\n\nexport async function drawHistoryCounterGraph(container, historyData) {\n\n const d3 = await import(/* webpackChunkName: \"d3\" */ 'utils/d3');\n\n // remove previously created histogram and tooltip if any\n d3.select(container).select('svg').remove();\n d3.select(`${container}-tooltip`).remove();\n\n // histogram size and margins\n let width = 400;\n let height = 300;\n const margin = {top: 20, right: 50, bottom: 70, left: 30};\n\n // create responsive svg\n const svg = d3.select(container)\n .attr('style',\n `padding-bottom: ${Math.ceil(height * 100 / width)}%`)\n .append('svg')\n .attr('viewBox', `0 0 ${width} ${height}`);\n\n // create tooltip div\n const tooltip = d3.select('body')\n .append('div')\n .attr('class', 'd3-tooltip')\n .attr('id', `${container}-tooltip`)\n .style('opacity', 0);\n\n // update width and height without margins\n width = width - margin.left - margin.right;\n height = height - margin.top - margin.bottom;\n\n // Make sure data points are sorted, by x coordinate then y coordinate.\n historyData.sort(function(a, b) {\n return a[0] - b[0] !== 0 ? a[0] - b[0] : a[1] - b[1];\n });\n\n const firstPoint = historyData[0];\n const lastPoint = historyData[historyData.length - 1];\n\n // create main svg group element\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // create x scale\n const xScale = d3.scaleTime()\n .rangeRound([0, width])\n .domain([firstPoint[0], lastPoint[0]])\n .nice();\n\n // create y scale\n const yScale = d3.scaleLinear()\n .range([height, 0])\n .domain([firstPoint[1], lastPoint[1]])\n .nice();\n\n // create line generator\n const line = d3.line()\n .x(d => xScale(d[0]))\n .y(d => yScale(d[1]));\n\n // utility functions\n const dateFormatter = d3.timeFormat('%d %b %Y');\n const valueFormatter = d3.format('.3s');\n const bisectDate = d3.bisector(d => d[0]).left;\n\n // add x axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(0, ${height})`)\n .call(\n d3.axisBottom(xScale)\n .ticks(10)\n .tickFormat(dateFormatter)\n )\n .selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', 'rotate(-65)');\n\n // add y axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(${width}, 0)`)\n .call(\n d3.axisRight(yScale)\n .ticks(10)\n .tickFormat(valueFormatter)\n );\n\n // add data plot\n g.append('path')\n .datum(historyData)\n .attr('class', 'swh-history-counter-line')\n .attr('d', line);\n\n // add tooltip\n const focus = g.append('g')\n .attr('class', 'swh-history-counter-focus')\n .style('display', 'none');\n\n focus.append('circle')\n .attr('r', 8);\n\n g.append('rect')\n .attr('class', 'swh-history-counter-overlay')\n .attr('width', width)\n .attr('height', height)\n .on('mouseover', function() {\n focus.style('display', null);\n updateTooltip(this);\n tooltip.transition()\n .duration(200)\n .style('opacity', 1);\n })\n .on('mouseout', () => {\n focus.style('display', 'none');\n tooltip.transition()\n .duration(200)\n .style('opacity', 0);\n })\n .on('mousemove', function() {\n updateTooltip(this);\n });\n\n function updateTooltip(elt) {\n const x0 = xScale.invert(d3.mouse(elt)[0]);\n const i = bisectDate(historyData, x0, 1);\n if (i >= historyData.length) return;\n const d0 = historyData[i - 1];\n const d1 = historyData[i];\n const d = x0 - d0[0] > d1[0] - x0 ? d1 : d0;\n focus.attr('transform', `translate(${xScale(d[0])}, ${yScale(d[1])})`);\n const tooltipText = `${dateFormatter(d[0])} ${valueFormatter(d[1])}`;\n tooltip.html(tooltipText)\n .style('left', d3.event.pageX + 15 + 'px')\n .style('top', d3.event.pageY + 'px');\n }\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function showBadgeInfoModal(objectType, objectPid) {\n let badgeImageUrl;\n let badgeLinkUrl;\n if (objectType === 'origin') {\n badgeImageUrl = Urls.swh_badge(objectType, objectPid);\n badgeLinkUrl = Urls.browse_origin(objectPid);\n } else {\n badgeImageUrl = Urls.swh_badge_pid(objectPid);\n badgeLinkUrl = Urls.browse_swh_id(objectPid);\n }\n let urlPrefix = `${window.location.protocol}//${window.location.hostname}`;\n if (window.location.port) {\n urlPrefix += `:${window.location.port}`;\n }\n const absoluteBadgeImageUrl = `${urlPrefix}${badgeImageUrl}`;\n const absoluteBadgeLinkUrl = `${urlPrefix}${badgeLinkUrl}`;\n const html = `\n <a href=\"${absoluteBadgeLinkUrl}\">\n <img class=\"swh-badge\" src=\"${absoluteBadgeImageUrl}\">\n </a>\n <div>\n <label>HTML</label>\n <pre class=\"swh-badge-html\"><a href=\"${absoluteBadgeLinkUrl}\">\n <img src=\"${absoluteBadgeImageUrl}\">\n</a></pre>\n </div>\n <div>\n <label>Markdown</label>\n <pre class=\"swh-badge-md\">[![SWH](${absoluteBadgeImageUrl})](${absoluteBadgeLinkUrl})</pre>\n </div>\n <div>\n <label>reStructuredText</label>\n <pre class=\"swh-badge-rst\">.. image:: ${absoluteBadgeImageUrl}\n :target: ${absoluteBadgeLinkUrl}</pre>\n </div>`;\n swh.webapp.showModalHtml('Software Heritage badge integration', html);\n}\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport * as Sentry from '@sentry/browser';\n\n// Called by a <script> object in the header, after the configuration is\n// loaded.\nexport function sentryInit(sentryDsn) {\n if (sentryDsn !== undefined) {\n Sentry.init({ dsn: sentryDsn });\n }\n}\n\n// May be used in other scripts to report exceptions.\nexport function sentryCaptureException(exc) {\n Sentry.captureException(exc);\n}\n","import { isThenable } from './is';\n/** SyncPromise internal states */\nvar States;\n(function (States) {\n /** Pending */\n States[\"PENDING\"] = \"PENDING\";\n /** Resolved / OK */\n States[\"RESOLVED\"] = \"RESOLVED\";\n /** Rejected / Error */\n States[\"REJECTED\"] = \"REJECTED\";\n})(States || (States = {}));\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = States.PENDING;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(States.RESOLVED, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(States.REJECTED, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== States.PENDING) {\n return;\n }\n if (isThenable(value)) {\n value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === States.PENDING) {\n return;\n }\n if (_this._state === States.REJECTED) {\n _this._handlers.forEach(function (handler) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n });\n }\n else {\n _this._handlers.forEach(function (handler) {\n if (handler.onfulfilled) {\n // tslint:disable-next-line:no-unsafe-any\n handler.onfulfilled(_this._value);\n }\n });\n }\n _this._handlers = [];\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n // tslint:disable-next-line:no-unsafe-any\n resolve(val);\n });\n });\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","export { FunctionToString } from './functiontostring';\nexport { InboundFilters } from './inboundfilters';\n//# sourceMappingURL=index.js.map","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n originalFunctionToString = Function.prototype.toString;\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n // tslint:disable-next-line:no-unsafe-any\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = self._mergeOptions(clientOptions);\n if (self._shouldDropEvent(event, options)) {\n return null;\n }\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isBlacklistedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `blacklistUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isWhitelistedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `whitelistUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (options === void 0) { options = {}; }\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (options === void 0) { options = {}; }\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isBlacklistedUrl = function (event, options) {\n if (options === void 0) { options = {}; }\n // TODO: Use Glob instead?\n if (!options.blacklistUrls || !options.blacklistUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.blacklistUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isWhitelistedUrl = function (event, options) {\n if (options === void 0) { options = {}; }\n // TODO: Use Glob instead?\n if (!options.whitelistUrls || !options.whitelistUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.whitelistUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n blacklistUrls: tslib_1.__spread((this._options.blacklistUrls || []), (clientOptions.blacklistUrls || [])),\n ignoreErrors: tslib_1.__spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n whitelistUrls: tslib_1.__spread((this._options.whitelistUrls || []), (clientOptions.whitelistUrls || [])),\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return (frames_1 && frames_1[frames_1.length - 1].filename) || null;\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return (frames_2 && frames_2[frames_2.length - 1].filename) || null;\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n//# sourceMappingURL=inboundfilters.js.map","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","\"use strict\";\n\nvar iterateObject = require(\"iterate-object\"),\n regexEscape = require(\"regex-escape\"),\n he = require(\"he\");\n\n//const DECODE_MAP = require(\"./character-map\")\n//const ENCODE_MAP = {};\n//\n//iterateObject(DECODE_MAP, (value, name) => {\n// ENCODE_MAP[value] = name;\n//});\n\nmodule.exports = {\n /**\n * decode\n * Decodes an encoded string.\n *\n * @name decode\n * @function\n * @param {String} input The encoded string.\n * @returns {String} The decoded string.\n */\n decode: function decode(input) {\n return he.decode(input);\n }\n\n /**\n * encode\n * Encodes a string.\n *\n * @name encode\n * @function\n * @param {String} input The string that must be encoded.\n * @returns {String} The encoded string.\n */\n ,\n encode: function encode(input) {\n return he.encode(input);\n }\n};","/* ansi_up.js\n * author : Dru Nelson\n * license : MIT\n * http://github.com/drudru/ansi_up\n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['exports'], factory);\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\n // CommonJS\n factory(exports);\n } else {\n // Browser globals\n var exp = {};\n factory(exp);\n root.AnsiUp = exp.default;\n }\n}(this, function (exports) {\n\"use strict\";\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar PacketKind;\n(function (PacketKind) {\n PacketKind[PacketKind[\"EOS\"] = 0] = \"EOS\";\n PacketKind[PacketKind[\"Text\"] = 1] = \"Text\";\n PacketKind[PacketKind[\"Incomplete\"] = 2] = \"Incomplete\";\n PacketKind[PacketKind[\"ESC\"] = 3] = \"ESC\";\n PacketKind[PacketKind[\"Unknown\"] = 4] = \"Unknown\";\n PacketKind[PacketKind[\"SGR\"] = 5] = \"SGR\";\n PacketKind[PacketKind[\"OSCURL\"] = 6] = \"OSCURL\";\n})(PacketKind || (PacketKind = {}));\nvar AnsiUp = (function () {\n function AnsiUp() {\n this.VERSION = \"4.0.4\";\n this.setup_palettes();\n this._use_classes = false;\n this._escape_for_html = true;\n this.bold = false;\n this.fg = this.bg = null;\n this._buffer = '';\n this._url_whitelist = { 'http': 1, 'https': 1 };\n }\n Object.defineProperty(AnsiUp.prototype, \"use_classes\", {\n get: function () {\n return this._use_classes;\n },\n set: function (arg) {\n this._use_classes = arg;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AnsiUp.prototype, \"escape_for_html\", {\n get: function () {\n return this._escape_for_html;\n },\n set: function (arg) {\n this._escape_for_html = arg;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AnsiUp.prototype, \"url_whitelist\", {\n get: function () {\n return this._url_whitelist;\n },\n set: function (arg) {\n this._url_whitelist = arg;\n },\n enumerable: true,\n configurable: true\n });\n AnsiUp.prototype.setup_palettes = function () {\n var _this = this;\n this.ansi_colors =\n [\n [\n { rgb: [0, 0, 0], class_name: \"ansi-black\" },\n { rgb: [187, 0, 0], class_name: \"ansi-red\" },\n { rgb: [0, 187, 0], class_name: \"ansi-green\" },\n { rgb: [187, 187, 0], class_name: \"ansi-yellow\" },\n { rgb: [0, 0, 187], class_name: \"ansi-blue\" },\n { rgb: [187, 0, 187], class_name: \"ansi-magenta\" },\n { rgb: [0, 187, 187], class_name: \"ansi-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-white\" }\n ],\n [\n { rgb: [85, 85, 85], class_name: \"ansi-bright-black\" },\n { rgb: [255, 85, 85], class_name: \"ansi-bright-red\" },\n { rgb: [0, 255, 0], class_name: \"ansi-bright-green\" },\n { rgb: [255, 255, 85], class_name: \"ansi-bright-yellow\" },\n { rgb: [85, 85, 255], class_name: \"ansi-bright-blue\" },\n { rgb: [255, 85, 255], class_name: \"ansi-bright-magenta\" },\n { rgb: [85, 255, 255], class_name: \"ansi-bright-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-bright-white\" }\n ]\n ];\n this.palette_256 = [];\n this.ansi_colors.forEach(function (palette) {\n palette.forEach(function (rec) {\n _this.palette_256.push(rec);\n });\n });\n var levels = [0, 95, 135, 175, 215, 255];\n for (var r = 0; r < 6; ++r) {\n for (var g = 0; g < 6; ++g) {\n for (var b = 0; b < 6; ++b) {\n var col = { rgb: [levels[r], levels[g], levels[b]], class_name: 'truecolor' };\n this.palette_256.push(col);\n }\n }\n }\n var grey_level = 8;\n for (var i = 0; i < 24; ++i, grey_level += 10) {\n var gry = { rgb: [grey_level, grey_level, grey_level], class_name: 'truecolor' };\n this.palette_256.push(gry);\n }\n };\n AnsiUp.prototype.escape_txt_for_html = function (txt) {\n return txt.replace(/[&<>]/gm, function (str) {\n if (str === \"&\")\n return \"&\";\n if (str === \"<\")\n return \"<\";\n if (str === \">\")\n return \">\";\n });\n };\n AnsiUp.prototype.append_buffer = function (txt) {\n var str = this._buffer + txt;\n this._buffer = str;\n };\n AnsiUp.prototype.get_next_packet = function () {\n var pkt = {\n kind: PacketKind.EOS,\n text: '',\n url: ''\n };\n var len = this._buffer.length;\n if (len == 0)\n return pkt;\n var pos = this._buffer.indexOf(\"\\x1B\");\n if (pos == -1) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer;\n this._buffer = '';\n return pkt;\n }\n if (pos > 0) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer.slice(0, pos);\n this._buffer = this._buffer.slice(pos);\n return pkt;\n }\n if (pos == 0) {\n if (len == 1) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n var next_char = this._buffer.charAt(1);\n if ((next_char != '[') && (next_char != ']')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (next_char == '[') {\n if (!this._csi_regex) {\n this._csi_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\u001B[ # CSI\\n ([<-?]?) # private-mode char\\n ([d;]*) # any digits or semicolons\\n ([ -/]? # an intermediate modifier\\n [@-~]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\u001B[ # CSI\\n [ -~]* # anything legal\\n ([\\0-\\u001F:]) # anything illegal\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\\\x1b\\\\[ # CSI\\n ([\\\\x3c-\\\\x3f]?) # private-mode char\\n ([\\\\d;]*) # any digits or semicolons\\n ([\\\\x20-\\\\x2f]? # an intermediate modifier\\n [\\\\x40-\\\\x7e]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\\\x1b\\\\[ # CSI\\n [\\\\x20-\\\\x7e]* # anything legal\\n ([\\\\x00-\\\\x1f:]) # anything illegal\\n )\\n \"]));\n }\n var match = this._buffer.match(this._csi_regex);\n if (match === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match[4]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if ((match[1] != '') || (match[3] != 'm'))\n pkt.kind = PacketKind.Unknown;\n else\n pkt.kind = PacketKind.SGR;\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n if (next_char == ']') {\n if (len < 4) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if ((this._buffer.charAt(2) != '8')\n || (this._buffer.charAt(3) != ';')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (!this._osc_st) {\n this._osc_st = rgxG(__makeTemplateObject([\"\\n (?: # legal sequence\\n (\\u001B\\\\) # ESC | # alternate\\n (\\u0007) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\0-\\u0006] # anything illegal\\n | # alternate\\n [\\b-\\u001A] # anything illegal\\n | # alternate\\n [\\u001C-\\u001F] # anything illegal\\n )\\n \"], [\"\\n (?: # legal sequence\\n (\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (\\\\x07) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\\\x00-\\\\x06] # anything illegal\\n | # alternate\\n [\\\\x08-\\\\x1a] # anything illegal\\n | # alternate\\n [\\\\x1c-\\\\x1f] # anything illegal\\n )\\n \"]));\n }\n this._osc_st.lastIndex = 0;\n {\n var match_1 = this._osc_st.exec(this._buffer);\n if (match_1 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_1[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n {\n var match_2 = this._osc_st.exec(this._buffer);\n if (match_2 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_2[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n if (!this._osc_regex) {\n this._osc_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n \\u001B]8; # OSC Hyperlink\\n [ -:<-~]* # params (excluding ;)\\n ; # end of params\\n ([!-~]{0,512}) # URL capture\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n ([!-~]+) # TEXT capture\\n \\u001B]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n \\\\x1b\\\\]8; # OSC Hyperlink\\n [\\\\x20-\\\\x3a\\\\x3c-\\\\x7e]* # params (excluding ;)\\n ; # end of params\\n ([\\\\x21-\\\\x7e]{0,512}) # URL capture\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n ([\\\\x21-\\\\x7e]+) # TEXT capture\\n \\\\x1b\\\\]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n \"]));\n }\n var match = this._buffer.match(this._osc_regex);\n if (match === null) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n pkt.kind = PacketKind.OSCURL;\n pkt.url = match[1];\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n }\n };\n AnsiUp.prototype.ansi_to_html = function (txt) {\n this.append_buffer(txt);\n var blocks = [];\n while (true) {\n var packet = this.get_next_packet();\n if ((packet.kind == PacketKind.EOS)\n || (packet.kind == PacketKind.Incomplete))\n break;\n if ((packet.kind == PacketKind.ESC)\n || (packet.kind == PacketKind.Unknown))\n continue;\n if (packet.kind == PacketKind.Text)\n blocks.push(this.transform_to_html(this.with_state(packet)));\n else if (packet.kind == PacketKind.SGR)\n this.process_ansi(packet);\n else if (packet.kind == PacketKind.OSCURL)\n blocks.push(this.process_hyperlink(packet));\n }\n return blocks.join(\"\");\n };\n AnsiUp.prototype.with_state = function (pkt) {\n return { bold: this.bold, fg: this.fg, bg: this.bg, text: pkt.text };\n };\n AnsiUp.prototype.process_ansi = function (pkt) {\n var sgr_cmds = pkt.text.split(';');\n while (sgr_cmds.length > 0) {\n var sgr_cmd_str = sgr_cmds.shift();\n var num = parseInt(sgr_cmd_str, 10);\n if (isNaN(num) || num === 0) {\n this.fg = this.bg = null;\n this.bold = false;\n }\n else if (num === 1) {\n this.bold = true;\n }\n else if (num === 22) {\n this.bold = false;\n }\n else if (num === 39) {\n this.fg = null;\n }\n else if (num === 49) {\n this.bg = null;\n }\n else if ((num >= 30) && (num < 38)) {\n this.fg = this.ansi_colors[0][(num - 30)];\n }\n else if ((num >= 40) && (num < 48)) {\n this.bg = this.ansi_colors[0][(num - 40)];\n }\n else if ((num >= 90) && (num < 98)) {\n this.fg = this.ansi_colors[1][(num - 90)];\n }\n else if ((num >= 100) && (num < 108)) {\n this.bg = this.ansi_colors[1][(num - 100)];\n }\n else if (num === 38 || num === 48) {\n if (sgr_cmds.length > 0) {\n var is_foreground = (num === 38);\n var mode_cmd = sgr_cmds.shift();\n if (mode_cmd === '5' && sgr_cmds.length > 0) {\n var palette_index = parseInt(sgr_cmds.shift(), 10);\n if (palette_index >= 0 && palette_index <= 255) {\n if (is_foreground)\n this.fg = this.palette_256[palette_index];\n else\n this.bg = this.palette_256[palette_index];\n }\n }\n if (mode_cmd === '2' && sgr_cmds.length > 2) {\n var r = parseInt(sgr_cmds.shift(), 10);\n var g = parseInt(sgr_cmds.shift(), 10);\n var b = parseInt(sgr_cmds.shift(), 10);\n if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {\n var c = { rgb: [r, g, b], class_name: 'truecolor' };\n if (is_foreground)\n this.fg = c;\n else\n this.bg = c;\n }\n }\n }\n }\n }\n };\n AnsiUp.prototype.transform_to_html = function (fragment) {\n var txt = fragment.text;\n if (txt.length === 0)\n return txt;\n if (this._escape_for_html)\n txt = this.escape_txt_for_html(txt);\n if (!fragment.bold && fragment.fg === null && fragment.bg === null)\n return txt;\n var styles = [];\n var classes = [];\n var fg = fragment.fg;\n var bg = fragment.bg;\n if (fragment.bold)\n styles.push('font-weight:bold');\n if (!this._use_classes) {\n if (fg)\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n if (bg)\n styles.push(\"background-color:rgb(\" + bg.rgb + \")\");\n }\n else {\n if (fg) {\n if (fg.class_name !== 'truecolor') {\n classes.push(fg.class_name + \"-fg\");\n }\n else {\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n }\n }\n if (bg) {\n if (bg.class_name !== 'truecolor') {\n classes.push(bg.class_name + \"-bg\");\n }\n else {\n styles.push(\"background-color:rgb(\" + bg.rgb.join(',') + \")\");\n }\n }\n }\n var class_string = '';\n var style_string = '';\n if (classes.length)\n class_string = \" class=\\\"\" + classes.join(' ') + \"\\\"\";\n if (styles.length)\n style_string = \" style=\\\"\" + styles.join(';') + \"\\\"\";\n return \"<span\" + style_string + class_string + \">\" + txt + \"</span>\";\n };\n ;\n AnsiUp.prototype.process_hyperlink = function (pkt) {\n var parts = pkt.url.split(':');\n if (parts.length < 1)\n return '';\n if (!this._url_whitelist[parts[0]])\n return '';\n var result = \"<a href=\\\"\" + this.escape_txt_for_html(pkt.url) + \"\\\">\" + this.escape_txt_for_html(pkt.text) + \"</a>\";\n return result;\n };\n return AnsiUp;\n}());\nfunction rgx(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2);\n}\nfunction rgxG(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2, 'g');\n}\n//# sourceMappingURL=ansi_up.js.map\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = AnsiUp;\n}));\n","// tslint:disable:no-unsafe-any\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo = /** @class */ (function () {\n function Memo() {\n // tslint:disable-next-line\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n }\n else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n };\n return Memo;\n}());\nexport { Memo };\n//# sourceMappingURL=memo.js.map","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties); // tslint:disable-line:no-unbound-method\n/**\n * setPrototypeOf polyfill using __proto__\n */\nfunction setProtoOf(obj, proto) {\n // @ts-ignore\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n if (!obj.hasOwnProperty(prop)) {\n // @ts-ignore\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map","import * as tslib_1 from \"tslib\";\nimport { API, BaseClient } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { SDK_NAME, SDK_VERSION } from './version';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n tslib_1.__extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n return _super.call(this, BrowserBackend, options) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n event.sdk = tslib_1.__assign({}, event.sdk, { name: SDK_NAME, packages: tslib_1.__spread(((event.sdk && event.sdk.packages) || []), [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ]), version: SDK_VERSION });\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client is disabled');\n return;\n }\n var dsn = options.dsn || this.getDsn();\n if (!options.eventId) {\n logger.error('Missing `eventId` option in showReportDialog call');\n return;\n }\n if (!dsn) {\n logger.error('Missing `Dsn` option in showReportDialog call');\n return;\n }\n var script = document.createElement('script');\n script.async = true;\n script.src = new API(dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n (document.head || document.body).appendChild(script);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map","import * as tslib_1 from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, supportsFetch, SyncPromise } from '@sentry/utils';\nimport { eventFromString, eventFromUnknownInput } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n tslib_1.__extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = tslib_1.__assign({}, this._options.transportOptions, { dsn: this._options.dsn });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n addExceptionMechanism(event, {\n handled: true,\n type: 'generic',\n });\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: this._options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && tslib_1.__spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = [];\n if (Array.isArray(userIntegrations)) {\n var userIntegrationsNames_1 = userIntegrations.map(function (i) { return i.name; });\n var pickedIntegrationsNames_1 = [];\n // Leave only unique default integrations, that were not overridden with provided user integrations\n defaultIntegrations.forEach(function (defaultIntegration) {\n if (userIntegrationsNames_1.indexOf(defaultIntegration.name) === -1 &&\n pickedIntegrationsNames_1.indexOf(defaultIntegration.name) === -1) {\n integrations.push(defaultIntegration);\n pickedIntegrationsNames_1.push(defaultIntegration.name);\n }\n });\n // Don't add same user integration twice\n userIntegrations.forEach(function (userIntegration) {\n if (pickedIntegrationsNames_1.indexOf(userIntegration.name) === -1) {\n integrations.push(userIntegration);\n pickedIntegrationsNames_1.push(userIntegration.name);\n }\n });\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n else {\n integrations = tslib_1.__spread(defaultIntegrations);\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, tslib_1.__spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}\n//# sourceMappingURL=integration.js.map","import * as tslib_1 from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w\\.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private _representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n // tslint:disable-next-line:no-this-assignment\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, user = _a.user;\n return (protocol + \"://\" + user + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = tslib_1.__read(match.slice(1), 6), protocol = _a[0], user = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, user: user });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n this.protocol = components.protocol;\n this.user = components.user;\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'user', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE);\n }\n });\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n//# sourceMappingURL=dsn.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","import * as tslib_1 from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // tslint:disable-next-line:no-unsafe-any\n return hub[method].apply(hub, tslib_1.__spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\nexport function captureException(exception) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, level) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureMessage', message, level, {\n originalException: message,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normailzed.\n */\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normailzed.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n * @param key String key of tag\n * @param value String value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, tslib_1.__spread(['_invokeClient', method], args));\n}\n//# sourceMappingURL=index.js.map","import { isString } from './is';\nimport { snipLine } from './string';\n/**\n * Requires a module which is protected _against bundler minification.\n *\n * @param request The module path to resolve\n */\nexport function dynamicRequire(mod, request) {\n // tslint:disable-next-line: no-unsafe-any\n return mod.require(request);\n}\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n // tslint:disable:strict-type-predicates\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // tslint:disable-next-line:no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // tslint:disable-next-line:no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // tslint:disable-next-line:no-bitwise\n var r = (Math.random() * 16) | 0;\n // tslint:disable-next-line:no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '<unknown>';\n }\n return event.event_id || '<unknown>';\n}\n/** JSDoc */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism to a given event.\n * @param event The event to modify.\n * @param mechanism Mechanism of the mechanism.\n * @hidden\n */\nexport function addExceptionMechanism(event, mechanism) {\n if (mechanism === void 0) { mechanism = {}; }\n // TODO: Use real type with `keyof Mechanism` thingy and maybe make it better?\n try {\n // @ts-ignore\n // tslint:disable:no-non-null-assertion\n event.exception.values[0].mechanism = event.exception.values[0].mechanism || {};\n Object.keys(mechanism).forEach(function (key) {\n // @ts-ignore\n event.exception.values[0].mechanism[key] = mechanism[key];\n });\n }\n catch (_oO) {\n // no-empty\n }\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n try {\n return document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '<unknown>';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n var attrWhitelist = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < attrWhitelist.length; i++) {\n key = attrWhitelist[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n/**\n * Returns a timestamp in seconds with milliseconds precision.\n */\nexport function timestampWithMs() {\n return new Date().getTime() / 1000;\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\n}\nvar defaultFunctionName = '<anonymous>';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n//# sourceMappingURL=misc.js.map","import { isRegExp } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n // tslint:disable-next-line:strict-type-predicates\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n colno = ll; // tslint:disable-line:no-parameter-reassignment\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n//# sourceMappingURL=string.js.map","import * as tslib_1 from \"tslib\";\nimport { captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue } from '@sentry/utils';\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n // tslint:disable-next-line:strict-type-predicates\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n // tslint:disable:no-unsafe-any\n try {\n // tslint:disable-next-line:strict-type-predicates\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n // tslint:enable:no-unsafe-any\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = tslib_1.__assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = tslib_1.__assign({}, processedEvent.extra, { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // tslint:disable-line:no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n }\n catch (_oO) {\n /*no-empty*/\n }\n return sentryWrapped;\n}\n//# sourceMappingURL=helpers.js.map","export { addBreadcrumb, captureException, captureEvent, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, withScope, } from '@sentry/minimal';\nexport { addGlobalEventProcessor, getCurrentHub, getHubFromCarrier, Hub, Scope } from '@sentry/hub';\nexport { API } from './api';\nexport { BaseClient } from './baseclient';\nexport { BaseBackend } from './basebackend';\nexport { initAndBind } from './sdk';\nexport { NoopTransport } from './transports/noop';\nimport * as Integrations from './integrations';\nexport { Integrations };\n//# sourceMappingURL=index.js.map","import * as tslib_1 from \"tslib\";\nimport { getGlobalObject, isThenable, SyncPromise, timestampWithMs } from '@sentry/utils';\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifiying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._context = {};\n }\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n setTimeout(function () {\n _this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n _this._notifyingListeners = false;\n });\n }\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n // tslint:disable-next-line:strict-type-predicates\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(tslib_1.__assign({}, event), hint);\n if (isThenable(result)) {\n result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = tslib_1.__assign({}, this._tags, tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = tslib_1.__assign({}, this._tags, (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = tslib_1.__assign({}, this._extra, extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = tslib_1.__assign({}, this._extra, (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransaction = function (transaction) {\n this._transaction = transaction;\n if (this._span) {\n this._span.transaction = transaction;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n this._context = tslib_1.__assign({}, this._context, (_a = {}, _a[key] = context, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Internal getter for Span, used in Hub.\n * @hidden\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = tslib_1.__spread(scope._breadcrumbs);\n newScope._tags = tslib_1.__assign({}, scope._tags);\n newScope._extra = tslib_1.__assign({}, scope._extra);\n newScope._context = tslib_1.__assign({}, scope._context);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._transaction = scope._transaction;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = tslib_1.__spread(scope._eventProcessors);\n }\n return newScope;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._context = {};\n this._level = undefined;\n this._transaction = undefined;\n this._fingerprint = undefined;\n this._span = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var mergedBreadcrumb = tslib_1.__assign({ timestamp: timestampWithMs() }, breadcrumb);\n this._breadcrumbs =\n maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n ? tslib_1.__spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxBreadcrumbs)\n : tslib_1.__spread(this._breadcrumbs, [mergedBreadcrumb]);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional informartion about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = tslib_1.__assign({}, this._extra, event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = tslib_1.__assign({}, this._tags, event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = tslib_1.__assign({}, this._user, event.user);\n }\n if (this._context && Object.keys(this._context).length) {\n event.contexts = tslib_1.__assign({}, this._context, event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transaction) {\n event.transaction = this._transaction;\n }\n this._applyFingerprint(event);\n event.breadcrumbs = tslib_1.__spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(tslib_1.__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","import * as tslib_1 from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n tslib_1.__extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n // tslint:disable:no-unsafe-any\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map","/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// webapp entrypoint bundle centralizing global custom stylesheets\n// and utility js modules used in all swh-web applications\n\n// explicitly import the vendors bundle\nimport '../vendors';\n\n// global swh-web custom stylesheets\nimport './webapp.css';\nimport './breadcrumbs.css';\n\nexport * from './webapp-utils';\n\n// utility js modules\nexport * from './code-highlighting';\nexport * from './readme-rendering';\nexport * from './pdf-rendering';\nexport * from './notebook-rendering';\nexport * from './xss-filtering';\nexport * from './history-counters';\nexport * from './badges';\nexport * from './sentry';\n","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * iterateObject\n * Iterates an object. Note the object field order may differ.\n *\n * @name iterateObject\n * @function\n * @param {Object} obj The input object.\n * @param {Function} fn A function that will be called with the current value, field name and provided object.\n * @return {Function} The `iterateObject` function.\n */\nfunction iterateObject(obj, fn) {\n var i = 0,\n keys = [];\n\n if (Array.isArray(obj)) {\n for (; i < obj.length; ++i) {\n if (fn(obj[i], i, obj) === false) {\n break;\n }\n }\n } else if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj !== null) {\n keys = Object.keys(obj);\n for (; i < keys.length; ++i) {\n if (fn(obj[keys[i]], keys[i], obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = iterateObject;","\"use strict\";\n\n/**\n * RegexEscape\n * Escapes a string for using it in a regular expression.\n *\n * @name RegexEscape\n * @function\n * @param {String} input The string that must be escaped.\n * @return {String} The escaped string.\n */\nfunction RegexEscape(input) {\n return input.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n\n/**\n * proto\n * Adds the `RegexEscape` function to `RegExp` class.\n *\n * @name proto\n * @function\n * @return {Function} The `RegexEscape` function.\n */\nRegexEscape.proto = function () {\n RegExp.escape = RegexEscape;\n return RegexEscape;\n};\n\nmodule.exports = RegexEscape;","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","require(\"!!/home/jenkins/workspace/DWAPPS/pypi-upload/node_modules/script-loader/addScript.js\")(require(\"!!/home/jenkins/workspace/DWAPPS/pypi-upload/node_modules/raw-loader/index.js!/home/jenkins/workspace/DWAPPS/pypi-upload/node_modules/notebookjs/notebook.js\"))","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","module.exports = \"// notebook.js 0.4.2\\n// http://github.com/jsvine/notebookjs\\n// notebook.js may be freely distributed under the MIT license.\\n(function () {\\n var root = this;\\n var VERSION = \\\"0.4.2\\\";\\n\\n // Get browser or JSDOM document\\n var doc = root.document;\\n if (!doc) {\\n var jsdom = require(\\\"jsdom\\\");\\n doc = new jsdom.JSDOM().window.document;\\n }\\n\\n // Helper functions\\n var ident = function (x) { return x; };\\n\\n var makeElement = function (tag, classNames) {\\n var el = doc.createElement(tag);\\n el.className = (classNames || []).map(function (cn) {\\n return nb.prefix + cn;\\n }).join(\\\" \\\");\\n return el;\\n }; \\n\\n var escapeHTML = function (raw) {\\n var replaced = raw\\n .replace(/</g, \\\"<\\\")\\n .replace(/>/g, \\\">\\\");\\n return replaced;\\n };\\n\\n var joinText = function (text) {\\n if (text.join) {\\n return text.map(joinText).join(\\\"\\\");\\n } else {\\n return text; \\n } \\n };\\n\\n // Get supporting libraries\\n var condRequire = function (module_name) {\\n return typeof require === \\\"function\\\" && require(module_name);\\n };\\n\\n var getMarkdown = function () {\\n return root.marked || condRequire(\\\"marked\\\"); \\n };\\n\\n var getAnsi = function () {\\n var lib = root.ansi_up || condRequire(\\\"ansi_up\\\");\\n return lib && lib.ansi_to_html;\\n };\\n\\n // Set up `nb` namespace\\n var nb = {\\n prefix: \\\"nb-\\\",\\n markdown: getMarkdown() || ident,\\n ansi: getAnsi() || ident,\\n highlighter: ident,\\n VERSION: VERSION\\n };\\n\\n // Inputs\\n nb.Input = function (raw, cell) {\\n this.raw = raw; \\n this.cell = cell;\\n };\\n\\n nb.Input.prototype.render = function () {\\n if (!this.raw.length) { return makeElement(\\\"div\\\"); }\\n var holder = makeElement(\\\"div\\\", [ \\\"input\\\" ]);\\n var cell = this.cell;\\n if (typeof cell.number === \\\"number\\\") {\\n holder.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var pre_el = makeElement(\\\"pre\\\");\\n var code_el = makeElement(\\\"code\\\");\\n var notebook = cell.worksheet.notebook;\\n var m = notebook.metadata;\\n var lang = this.cell.raw.language || m.language || (m.kernelspec && m.kernelspec.language) || (m.language_info && m.language_info.name);\\n code_el.setAttribute(\\\"data-language\\\", lang);\\n code_el.className = \\\"lang-\\\" + lang;\\n code_el.innerHTML = nb.highlighter(escapeHTML(joinText(this.raw)), pre_el, code_el, lang);\\n pre_el.appendChild(code_el);\\n holder.appendChild(pre_el);\\n this.el = holder;\\n return holder;\\n }; \\n\\n // Outputs and output-renderers\\n var imageCreator = function (format) {\\n return function (data) {\\n var el = makeElement(\\\"img\\\", [ \\\"image-output\\\" ]);\\n el.src = \\\"data:image/\\\" + format + \\\";base64,\\\" + joinText(data).replace(/\\\\n/g, \\\"\\\");\\n return el;\\n };\\n };\\n\\n nb.display = {};\\n nb.display.text = function (text) {\\n var el = makeElement(\\\"pre\\\", [ \\\"text-output\\\" ]);\\n el.innerHTML = escapeHTML(joinText(text));\\n return el;\\n };\\n nb.display[\\\"text/plain\\\"] = nb.display.text;\\n\\n nb.display.html = function (html) {\\n var el = makeElement(\\\"div\\\", [ \\\"html-output\\\" ]);\\n el.innerHTML = joinText(html);\\n return el;\\n };\\n nb.display[\\\"text/html\\\"] = nb.display.html;\\n\\n nb.display.marked = function(md) {\\n return nb.display.html(nb.markdown(joinText(md)));\\n };\\n nb.display[\\\"text/markdown\\\"] = nb.display.marked;\\n \\n nb.display.svg = function (svg) {\\n var el = makeElement(\\\"div\\\", [ \\\"svg-output\\\" ]);\\n el.innerHTML = joinText(svg);\\n return el;\\n };\\n nb.display[\\\"text/svg+xml\\\"] = nb.display.svg;\\n nb.display[\\\"image/svg+xml\\\"] = nb.display.svg;\\n\\n nb.display.latex = function (latex) {\\n var el = makeElement(\\\"div\\\", [ \\\"latex-output\\\" ]);\\n el.innerHTML = joinText(latex);\\n return el;\\n };\\n nb.display[\\\"text/latex\\\"] = nb.display.latex;\\n\\n nb.display.javascript = function (js) {\\n var el = makeElement(\\\"script\\\");\\n el.innerHTML = joinText(js);\\n return el;\\n };\\n nb.display[\\\"application/javascript\\\"] = nb.display.javascript;\\n\\n nb.display.png = imageCreator(\\\"png\\\");\\n nb.display[\\\"image/png\\\"] = nb.display.png;\\n nb.display.jpeg = imageCreator(\\\"jpeg\\\");\\n nb.display[\\\"image/jpeg\\\"] = nb.display.jpeg;\\n\\n nb.display_priority = [\\n \\\"png\\\", \\\"image/png\\\", \\\"jpeg\\\", \\\"image/jpeg\\\",\\n \\\"svg\\\", \\\"image/svg+xml\\\", \\\"text/svg+xml\\\", \\\"html\\\", \\\"text/html\\\",\\n \\\"text/markdown\\\", \\\"latex\\\", \\\"text/latex\\\",\\n \\\"javascript\\\", \\\"application/javascript\\\",\\n \\\"text\\\", \\\"text/plain\\\"\\n ];\\n\\n var render_display_data = function () {\\n var o = this;\\n var formats = nb.display_priority.filter(function (d) {\\n return o.raw.data ? o.raw.data[d] : o.raw[d];\\n });\\n var format = formats[0];\\n if (format) {\\n if (nb.display[format]) {\\n return nb.display[format](o.raw[format] || o.raw.data[format]);\\n }\\n }\\n return makeElement(\\\"div\\\", [ \\\"empty-output\\\" ]);\\n };\\n\\n var render_error = function () {\\n var el = makeElement(\\\"pre\\\", [ \\\"pyerr\\\" ]);\\n var raw = this.raw.traceback.join(\\\"\\\\n\\\");\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n };\\n\\n nb.Output = function (raw, cell) {\\n this.raw = raw; \\n this.cell = cell;\\n this.type = raw.output_type;\\n };\\n\\n nb.Output.prototype.renderers = {\\n \\\"display_data\\\": render_display_data,\\n \\\"execute_result\\\": render_display_data,\\n \\\"pyout\\\": render_display_data,\\n \\\"pyerr\\\": render_error,\\n \\\"error\\\": render_error,\\n \\\"stream\\\": function () {\\n var el = makeElement(\\\"pre\\\", [ (this.raw.stream || this.raw.name) ]);\\n var raw = joinText(this.raw.text);\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n }\\n };\\n\\n nb.Output.prototype.render = function () {\\n var outer = makeElement(\\\"div\\\", [ \\\"output\\\" ]);\\n if (typeof this.cell.number === \\\"number\\\") {\\n outer.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var inner = this.renderers[this.type].call(this); \\n outer.appendChild(inner);\\n this.el = outer;\\n return outer;\\n };\\n\\n // Post-processing\\n nb.coalesceStreams = function (outputs) {\\n if (!outputs.length) { return outputs; }\\n var last = outputs[0];\\n var new_outputs = [ last ];\\n outputs.slice(1).forEach(function (o) {\\n if (o.raw.output_type === \\\"stream\\\" &&\\n last.raw.output_type === \\\"stream\\\" &&\\n o.raw.stream === last.raw.stream) {\\n last.raw.text = last.raw.text.concat(o.raw.text);\\n } else {\\n new_outputs.push(o);\\n last = o;\\n }\\n });\\n return new_outputs;\\n };\\n\\n // Cells\\n nb.Cell = function (raw, worksheet) {\\n var cell = this;\\n cell.raw = raw;\\n cell.worksheet = worksheet;\\n cell.type = raw.cell_type;\\n if (cell.type === \\\"code\\\") {\\n cell.number = raw.prompt_number > -1 ? raw.prompt_number : raw.execution_count;\\n var source = raw.input || [ raw.source ];\\n cell.input = new nb.Input(source, cell);\\n var raw_outputs = (cell.raw.outputs || []).map(function (o) {\\n return new nb.Output(o, cell); \\n });\\n cell.outputs = nb.coalesceStreams(raw_outputs);\\n }\\n };\\n\\n nb.Cell.prototype.renderers = {\\n markdown: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"markdown-cell\\\" ]);\\n el.innerHTML = nb.markdown(joinText(this.raw.source));\\n\\n /* Requires to render KaTeX\\n 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.js',\\n 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.css',\\n 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/contrib/auto-render.min.js',\\n */\\n if (root.renderMathInElement != null) {\\n root.renderMathInElement(el, {delimiters: [\\n {left: \\\"$$\\\", right: \\\"$$\\\", display: true},\\n {left: \\\"\\\\\\\\[\\\", right: \\\"\\\\\\\\]\\\", display: true},\\n {left: \\\"\\\\\\\\(\\\", right: \\\"\\\\\\\\)\\\", display: false},\\n {left: \\\"$\\\", right: \\\"$\\\", display: false}\\n ]});\\n }\\n\\n return el;\\n },\\n heading: function () {\\n var el = makeElement(\\\"h\\\" + this.raw.level, [ \\\"cell\\\", \\\"heading-cell\\\" ]);\\n el.innerHTML = joinText(this.raw.source);\\n return el;\\n },\\n raw: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"raw-cell\\\" ]);\\n el.innerHTML = joinText(this.raw.source);\\n return el;\\n },\\n code: function () {\\n var cell_el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"code-cell\\\" ]);\\n cell_el.appendChild(this.input.render());\\n var output_els = this.outputs.forEach(function (o) {\\n cell_el.appendChild(o.render());\\n });\\n return cell_el;\\n }\\n };\\n\\n nb.Cell.prototype.render = function () {\\n var el = this.renderers[this.type].call(this); \\n this.el = el;\\n return el;\\n };\\n\\n // Worksheets\\n nb.Worksheet = function (raw, notebook) {\\n var worksheet = this;\\n this.raw = raw;\\n this.notebook = notebook;\\n this.cells = raw.cells.map(function (c) {\\n return new nb.Cell(c, worksheet);\\n });\\n this.render = function () {\\n var worksheet_el = makeElement(\\\"div\\\", [ \\\"worksheet\\\" ]);\\n worksheet.cells.forEach(function (c) {\\n worksheet_el.appendChild(c.render()); \\n });\\n this.el = worksheet_el;\\n return worksheet_el;\\n };\\n };\\n\\n // Notebooks\\n nb.Notebook = function (raw, config) {\\n var notebook = this;\\n this.raw = raw;\\n this.config = config;\\n var meta = this.metadata = raw.metadata || {};\\n this.title = meta.title || meta.name;\\n var _worksheets = raw.worksheets || [ { cells: raw.cells } ];\\n this.worksheets = _worksheets.map(function (ws) {\\n return new nb.Worksheet(ws, notebook);\\n });\\n this.sheet = this.worksheets[0];\\n };\\n\\n nb.Notebook.prototype.render = function () {\\n var notebook_el = makeElement(\\\"div\\\", [ \\\"notebook\\\" ]);\\n this.worksheets.forEach(function (w) {\\n notebook_el.appendChild(w.render()); \\n });\\n this.el = notebook_el;\\n return notebook_el;\\n };\\n \\n nb.parse = function (nbjson, config) {\\n return new nb.Notebook(nbjson, config);\\n };\\n\\n // Exports\\n if (typeof define === 'function' && define.amd) {\\n define(function() {\\n return nb;\\n });\\n }\\n if (typeof exports !== 'undefined') {\\n if (typeof module !== 'undefined' && module.exports) {\\n exports = module.exports = nb;\\n }\\n exports.nb = nb;\\n } else {\\n root.nb = nb;\\n }\\n \\n}).call(this);\\n\"","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { getGlobalObject, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n initAndBind(BrowserClient, options);\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!options.eventId) {\n options.eventId = getCurrentHub().lastEventId();\n }\n var client = getCurrentHub().getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * A promise that resolves when all current events have been sent.\n * If you provide a timeout and the queue takes longer to drain the promise returns false.\n *\n * @param timeout Maximum time in ms the client should wait.\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n return SyncPromise.reject(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nexport function wrap(fn) {\n return internalWrap(fn)(); // tslint:disable-line:no-unsafe-any\n}\n//# sourceMappingURL=sdk.js.map","import { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n function TryCatch() {\n /** JSDoc */\n this._ignoreOnError = 0;\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n }\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapRAF = function (original) {\n return function (callback) {\n return original(wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }));\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n var global = getGlobalObject();\n var proto = global[target] && global[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n // tslint:disable-next-line:no-unbound-method strict-type-predicates\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, eventName, wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (original) {\n return function (eventName, fn, options) {\n var callback = fn;\n try {\n callback = callback && (callback.__sentry_wrapped__ || callback);\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return original.call(this, eventName, callback, options);\n };\n });\n };\n /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var xhr = this; // tslint:disable-line:no-this-assignment\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in _this && typeof _this[prop] === 'function') {\n fill(_this, prop, function (original) {\n return wrap(original, {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n });\n });\n }\n });\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: 'onreadystatechange',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n return originalSend.apply(this, args);\n };\n };\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n this._ignoreOnError = this._ignoreOnError;\n var global = getGlobalObject();\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n if ('XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n ].forEach(this._wrapEventTarget.bind(this));\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map","import * as tslib_1 from \"tslib\";\nimport { API, getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, logger, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = tslib_1.__assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Creates breadcrumbs from console API calls\n */\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target)\n : htmlTreeAsString(handlerData.event);\n }\n catch (e) {\n target = '<unknown>';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: event,\n name: handlerData.name,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: handlerData.xhr.__sentry_xhr__,\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n });\n return;\n }\n // We only capture issued sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n addSentryBreadcrumb(handlerData.args[0]);\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n var client = getCurrentHub().getClient();\n var dsn = client && client.getDsn();\n if (dsn) {\n var filterUrl = new API(dsn).getStoreEndpoint();\n // if Sentry key appears in URL, don't capture it as a request\n // but rather as our own 'sentry' type breadcrumb\n if (filterUrl &&\n handlerData.fetchData.url.indexOf(filterUrl) !== -1 &&\n handlerData.fetchData.method === 'POST' &&\n handlerData.args[1] &&\n handlerData.args[1].body) {\n addSentryBreadcrumb(handlerData.args[1].body);\n return;\n }\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: tslib_1.__assign({}, handlerData.fetchData, { status_code: handlerData.response.status }),\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: tslib_1.__assign({}, handlerData.fetchData, { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n // tslint:disable-next-line:no-parameter-reassignment\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n // tslint:disable-next-line:no-parameter-reassignment\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, tslib_1.__spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n/**\n * Create a breadcrumb of `sentry` from the events themselves\n */\nfunction addSentryBreadcrumb(serializedData) {\n // There's always something that can go wrong with deserialization...\n try {\n var event_1 = JSON.parse(serializedData);\n getCurrentHub().addBreadcrumb({\n category: 'sentry',\n event_id: event_1.event_id,\n level: event_1.level || Severity.fromString('error'),\n message: getEventDescription(event_1),\n }, {\n event: event_1,\n });\n }\n catch (_oO) {\n logger.error('Error while adding sentry type breadcrumb');\n }\n}\n//# sourceMappingURL=breadcrumbs.js.map","import * as tslib_1 from \"tslib\";\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, getGlobalObject, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._global = getGlobalObject();\n /** JSDoc */\n this._oldOnErrorHandler = null;\n /** JSDoc */\n this._oldOnUnhandledRejectionHandler = null;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = tslib_1.__assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n if (this._onErrorHandlerInstalled) {\n return;\n }\n var self = this; // tslint:disable-line:no-this-assignment\n this._oldOnErrorHandler = this._global.onerror;\n this._global.onerror = function (msg, url, line, column, error) {\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n if (self._oldOnErrorHandler) {\n return self._oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? self._eventFromIncompleteOnError(msg, url, line, column)\n : self._enhanceEventWithInitialFrame(eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), url, line, column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n if (self._oldOnErrorHandler) {\n return self._oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n var self = this; // tslint:disable-line:no-this-assignment\n this._oldOnUnhandledRejectionHandler = this._global.onunhandledrejection;\n this._global.onunhandledrejection = function (e) {\n var error = e;\n try {\n error = e && 'reason' in e ? e.reason : e;\n }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n if (self._oldOnUnhandledRejectionHandler) {\n return self._oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? self._eventFromIncompleteRejection(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n if (self._oldOnUnhandledRejectionHandler) {\n return self._oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n if (isString(message)) {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * This function creates an Event from an TraceKitStackTrace that has part of it missing.\n */\n GlobalHandlers.prototype._eventFromIncompleteRejection = function (error) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n value: \"Non-Error promise rejection captured with value: \" + error,\n },\n ],\n },\n };\n };\n /** JSDoc */\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n return self._handler(event, hint);\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = tslib_1.__spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, tslib_1.__spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n//# sourceMappingURL=linkederrors.js.map","import * as tslib_1 from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n if (getCurrentHub().getIntegration(UserAgent)) {\n if (!global.navigator || !global.location) {\n return event;\n }\n // Request Interface: https://docs.sentry.io/development/sdk-dev/event-payloads/request/\n var request = event.request || {};\n request.url = request.url || global.location.href;\n request.headers = request.headers || {};\n request.headers['User-Agent'] = global.navigator.userAgent;\n return tslib_1.__assign({}, event, { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map","import * as tslib_1 from \"tslib\";\nimport { Status } from '@sentry/types';\nimport { getGlobalObject, logger, parseRetryAfterHeader, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\nvar global = getGlobalObject();\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n tslib_1.__extends(FetchTransport, _super);\n function FetchTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** Locks transport after receiving 429 response */\n _this._disabledUntil = new Date(Date.now());\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n var _this = this;\n if (new Date(Date.now()) < this._disabledUntil) {\n return Promise.reject({\n event: event,\n reason: \"Transport locked till \" + this._disabledUntil + \" due to too many requests.\",\n status: 429,\n });\n }\n var defaultOptions = {\n body: JSON.stringify(event),\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.headers !== undefined) {\n defaultOptions.headers = this.options.headers;\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n global\n .fetch(_this.url, defaultOptions)\n .then(function (response) {\n var status = Status.fromHttpCode(response.status);\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n if (status === Status.RateLimit) {\n var now = Date.now();\n _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, response.headers.get('Retry-After')));\n logger.warn(\"Too many requests, backing off till: \" + _this._disabledUntil);\n }\n reject(response);\n })\n .catch(reject);\n }));\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise to the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns The original promise.\n */\n PromiseBuffer.prototype.add = function (task) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n task\n .then(function () { return _this.remove(task); })\n .then(null, function () {\n return _this.remove(task).then(null, function () {\n // We have to add this catch here otherwise we have an unhandledPromiseRejection\n // because it's a new Promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise to the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * This will drain the whole queue, returns true if queue is empty or drained.\n * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n *\n * @param timeout Number in ms to wait until it resolves with false.\n */\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Status } from '@sentry/types';\nimport { logger, parseRetryAfterHeader, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n tslib_1.__extends(XHRTransport, _super);\n function XHRTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** Locks transport after receiving 429 response */\n _this._disabledUntil = new Date(Date.now());\n return _this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n var _this = this;\n if (new Date(Date.now()) < this._disabledUntil) {\n return Promise.reject({\n event: event,\n reason: \"Transport locked till \" + this._disabledUntil + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer.add(new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState !== 4) {\n return;\n }\n var status = Status.fromHttpCode(request.status);\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n if (status === Status.RateLimit) {\n var now = Date.now();\n _this._disabledUntil = new Date(now + parseRetryAfterHeader(now, request.getResponseHeader('Retry-After')));\n logger.warn(\"Too many requests, backing off till: \" + _this._disabledUntil);\n }\n reject(request);\n };\n request.open('POST', _this.url);\n for (var header in _this.options.headers) {\n if (_this.options.headers.hasOwnProperty(header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(JSON.stringify(event));\n }));\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n // tslint:disable-next-line:strict-type-predicates\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n // tslint:disable-next-line:strict-type-predicates\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // tslint:disable:no-unsafe-any\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n // tslint:enable:no-unsafe-any\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n // tslint:disable-next-line:no-unsafe-any\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n // tslint:disable-next-line:no-unsafe-any\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","// tslint:disable:object-literal-sort-keys\nimport * as tslib_1 from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js))(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n/** JSDoc */\nexport function computeStackTrace(ex) {\n // tslint:disable:no-unsafe-any\n var stack = null;\n var popSize = ex && ex.framesToPop;\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction computeStackTraceFromStackProp(ex) {\n // tslint:disable:no-conditional-assignment\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n element = {\n // working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n url: parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n }\n else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n // tslint:disable:no-conditional-assignment\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return tslib_1.__assign({}, stacktrace, { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n//# sourceMappingURL=tracekit.js.map","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n // tslint:disable-next-line:strict-type-predicates\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .slice(0, STACKTRACE_LIMIT)\n .reverse();\n}\n//# sourceMappingURL=parsers.js.map","/** The status of an event. */\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// tslint:disable:completed-docs\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map","import { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/** JSDoc */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n exception = errorEvent.error; // tslint:disable-line:no-parameter-reassignment\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isDOMError(exception) || isDOMException(exception)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var domException = exception;\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n// this._options.attachStacktrace\n/** JSDoc */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map","/** JSDoc */\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// tslint:disable:completed-docs\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n//# sourceMappingURL=severity.js.map","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","import { Dsn, timestampWithMs, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/** Helper class to provide urls to different Sentry endpoints. */\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn) {\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Returns a string with auth headers in the url to the store endpoint. */\n API.prototype.getStoreEndpoint = function () {\n return \"\" + this._getBaseUrl() + this.getStoreEndpointPath();\n };\n /** Returns the store endpoint with auth added in url encoded. */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n var dsn = this._dsnObject;\n var auth = {\n sentry_key: dsn.user,\n sentry_version: SENTRY_API_VERSION,\n };\n // Auth is intentionally sent as part of query string (NOT as custom HTTP header)\n // to avoid preflight CORS requests\n return this.getStoreEndpoint() + \"?\" + urlEncode(auth);\n };\n /** Returns the base path of the url including the port. */\n API.prototype._getBaseUrl = function () {\n var dsn = this._dsnObject;\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port;\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this._dsnObject;\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /** Returns an object that can be used in request headers. */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n var dsn = this._dsnObject;\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_timestamp=\" + timestampWithMs()); // TODO: This can be removed\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.user);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this._dsnObject;\n var endpoint = \"\" + this._getBaseUrl() + (dsn.path ? \"/\" + dsn.path : '') + \"/api/embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n return API;\n}());\nexport { API };\n//# sourceMappingURL=api.js.map","import { logger } from './logger';\nimport { getGlobalObject } from './misc';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n // tslint:disable:no-unused-expression\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // It really needs 1 argument, not 0.\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore\n // tslint:disable:no-unused-expression\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n // tslint:disable:no-unused-expression\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n // tslint:disable-next-line:no-unused-expression\n new Headers();\n // tslint:disable-next-line:no-unused-expression\n new Request('');\n // tslint:disable-next-line:no-unused-expression\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // tslint:disable-next-line:no-unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n if (doc) {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n try {\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // tslint:disable-next-line:no-unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n // tslint:disable-next-line: no-unsafe-any\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n // tslint:disable:no-unused-expression\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n var chrome = global.chrome;\n // tslint:disable-next-line:no-unsafe-any\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map","/* tslint:disable:only-arrow-functions no-unsafe-any */\nimport * as tslib_1 from \"tslib\";\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { getFunctionName, getGlobalObject } from './misc';\nimport { fill } from './object';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler) {\n // tslint:disable-next-line:strict-type-predicates\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = tslib_1.__values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var commonHandlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', tslib_1.__assign({}, commonHandlerData));\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', tslib_1.__assign({}, commonHandlerData, { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', tslib_1.__assign({}, commonHandlerData, { endTimestamp: Date.now(), error: error }));\n throw error;\n });\n };\n });\n}\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args[1];\n this.__sentry_xhr__ = {\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n // if Sentry key appears in URL, don't capture it as a request\n if (isString(url) && this.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n this.__sentry_own_request__ = true;\n }\n return originalOpen.apply(this, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var xhr = this; // tslint:disable-line:no-this-assignment\n var commonHandlerData = {\n args: args,\n startTimestamp: Date.now(),\n xhr: xhr,\n };\n triggerHandlers('xhr', tslib_1.__assign({}, commonHandlerData));\n /**\n * @hidden\n */\n function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', tslib_1.__assign({}, commonHandlerData, { endTimestamp: Date.now() }));\n }\n }\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n // if onreadystatechange wasn't actually set by the page on this xhr, we\n // are free to set our own and capture the breadcrumb\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n return oldOnPopState.apply(this, args);\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\n // to the document. Do this before we instrument addEventListener.\n global.document.addEventListener('click', domEventHandler('click', triggerHandlers.bind(null, 'dom')), false);\n global.document.addEventListener('keypress', keypressEventHandler(triggerHandlers.bind(null, 'dom')), false);\n // After hooking into document bubbled up click and keypresses events, we also hook into user handled click & keypresses.\n ['EventTarget', 'Node'].forEach(function (target) {\n var proto = global[target] && global[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n if (fn && fn.handleEvent) {\n if (eventName === 'click') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n if (eventName === 'keypress') {\n fill(fn, 'handleEvent', function (innerOriginal) {\n return function (event) {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(event);\n return innerOriginal.call(this, event);\n };\n });\n }\n }\n else {\n if (eventName === 'click') {\n domEventHandler('click', triggerHandlers.bind(null, 'dom'), true)(this);\n }\n if (eventName === 'keypress') {\n keypressEventHandler(triggerHandlers.bind(null, 'dom'))(this);\n }\n }\n return original.call(this, eventName, fn, options);\n };\n });\n fill(proto, 'removeEventListener', function (original) {\n return function (eventName, fn, options) {\n var callback = fn;\n try {\n callback = callback && (callback.__sentry_wrapped__ || callback);\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return original.call(this, eventName, callback, options);\n };\n });\n });\n}\nvar debounceDuration = 1000;\nvar debounceTimer = 0;\nvar keypressTimeout;\nvar lastCapturedEvent;\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param name the event name (e.g. \"click\")\n * @param handler function that will be triggered\n * @param debounce decides whether it should wait till another event loop\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction domEventHandler(name, handler, debounce) {\n if (debounce === void 0) { debounce = false; }\n return function (event) {\n // reset keypress timeout; e.g. triggering a 'click' after\n // a 'keypress' will reset the keypress debounce so that a new\n // set of keypresses can be recorded\n keypressTimeout = undefined;\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors). Ignore if we've\n // already captured the event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n lastCapturedEvent = event;\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n if (debounce) {\n debounceTimer = setTimeout(function () {\n handler({ event: event, name: name });\n });\n }\n else {\n handler({ event: event, name: name });\n }\n };\n}\n/**\n * Wraps addEventListener to capture keypress UI events\n * @param handler function that will be triggered\n * @returns wrapped keypress events handler\n * @hidden\n */\nfunction keypressEventHandler(handler) {\n // TODO: if somehow user switches keypress target before\n // debounce timeout is triggered, we will only capture\n // a single breadcrumb from the FIRST target (acceptable?)\n return function (event) {\n var target;\n try {\n target = event.target;\n }\n catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n var tagName = target && target.tagName;\n // only consider keypress events on actual input elements\n // this will disregard keypresses targeting body (e.g. tabbing\n // through elements, hotkeys, etc)\n if (!tagName || (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)) {\n return;\n }\n // record first keypress in a series, but ignore subsequent\n // keypresses until debounce clears\n if (!keypressTimeout) {\n domEventHandler('input', handler)(event);\n }\n clearTimeout(keypressTimeout);\n keypressTimeout = setTimeout(function () {\n keypressTimeout = undefined;\n }, debounceDuration);\n };\n}\n//# sourceMappingURL=instrument.js.map"],"sourceRoot":""} \ No newline at end of file diff --git a/static/jssources/jslicenses.json b/static/jssources/jslicenses.json index 266f673e..841cdb65 100644 --- a/static/jssources/jslicenses.json +++ b/static/jssources/jslicenses.json @@ -1 +1 @@ -{"/static/js/vendors.107388fdefb1ab367e96.js":[{"id":"admin-lte/dist/js/adminlte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/admin-lte/LICENSE.txt"}],"src_url":"/static/jssources/admin-lte/dist/js/adminlte.js"},{"id":"bootstrap/js/dist/alert.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/alert.js"},{"id":"bootstrap/js/dist/button.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/button.js"},{"id":"bootstrap/js/dist/carousel.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/carousel.js"},{"id":"bootstrap/js/dist/collapse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/collapse.js"},{"id":"bootstrap/js/dist/dropdown.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/dropdown.js"},{"id":"bootstrap/js/dist/modal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/modal.js"},{"id":"bootstrap/js/dist/popover.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/popover.js"},{"id":"bootstrap/js/dist/scrollspy.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/scrollspy.js"},{"id":"bootstrap/js/dist/tab.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tab.js"},{"id":"bootstrap/js/dist/tooltip.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tooltip.js"},{"id":"bootstrap/js/dist/util.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/util.js"},{"id":"chosen-js/chosen.jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/chosen-js/LICENSE.md"}],"src_url":"/static/jssources/chosen-js/chosen.jquery.js"},{"id":"core-js/es/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/es/index.js"},{"id":"core-js/internals/a-function.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-function.js"},{"id":"core-js/internals/a-possible-prototype.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-possible-prototype.js"},{"id":"core-js/internals/add-to-unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/add-to-unscopables.js"},{"id":"core-js/internals/advance-string-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/advance-string-index.js"},{"id":"core-js/internals/an-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-instance.js"},{"id":"core-js/internals/an-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-object.js"},{"id":"core-js/internals/array-buffer-native.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-native.js"},{"id":"core-js/internals/array-buffer-view-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-view-core.js"},{"id":"core-js/internals/array-buffer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer.js"},{"id":"core-js/internals/array-copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-copy-within.js"},{"id":"core-js/internals/array-fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-fill.js"},{"id":"core-js/internals/array-for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-for-each.js"},{"id":"core-js/internals/array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-from.js"},{"id":"core-js/internals/array-includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-includes.js"},{"id":"core-js/internals/array-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-iteration.js"},{"id":"core-js/internals/array-last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-last-index-of.js"},{"id":"core-js/internals/array-method-has-species-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-has-species-support.js"},{"id":"core-js/internals/array-method-is-strict.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-is-strict.js"},{"id":"core-js/internals/array-method-uses-to-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-uses-to-length.js"},{"id":"core-js/internals/array-reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-reduce.js"},{"id":"core-js/internals/array-species-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-species-create.js"},{"id":"core-js/internals/call-with-safe-iteration-closing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/call-with-safe-iteration-closing.js"},{"id":"core-js/internals/check-correctness-of-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/check-correctness-of-iteration.js"},{"id":"core-js/internals/classof-raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof-raw.js"},{"id":"core-js/internals/classof.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof.js"},{"id":"core-js/internals/collection-strong.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-strong.js"},{"id":"core-js/internals/collection-weak.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-weak.js"},{"id":"core-js/internals/collection.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection.js"},{"id":"core-js/internals/copy-constructor-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/copy-constructor-properties.js"},{"id":"core-js/internals/correct-is-regexp-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-is-regexp-logic.js"},{"id":"core-js/internals/correct-prototype-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-prototype-getter.js"},{"id":"core-js/internals/create-html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-html.js"},{"id":"core-js/internals/create-iterator-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-iterator-constructor.js"},{"id":"core-js/internals/create-non-enumerable-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-non-enumerable-property.js"},{"id":"core-js/internals/create-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property-descriptor.js"},{"id":"core-js/internals/create-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property.js"},{"id":"core-js/internals/date-to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-iso-string.js"},{"id":"core-js/internals/date-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-primitive.js"},{"id":"core-js/internals/define-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-iterator.js"},{"id":"core-js/internals/define-well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-well-known-symbol.js"},{"id":"core-js/internals/descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/descriptors.js"},{"id":"core-js/internals/document-create-element.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/document-create-element.js"},{"id":"core-js/internals/dom-iterables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-iterables.js"},{"id":"core-js/internals/engine-is-ios.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ios.js"},{"id":"core-js/internals/engine-user-agent.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-user-agent.js"},{"id":"core-js/internals/engine-v8-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-v8-version.js"},{"id":"core-js/internals/enum-bug-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/enum-bug-keys.js"},{"id":"core-js/internals/export.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/export.js"},{"id":"core-js/internals/fails.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fails.js"},{"id":"core-js/internals/fix-regexp-well-known-symbol-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fix-regexp-well-known-symbol-logic.js"},{"id":"core-js/internals/flatten-into-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/flatten-into-array.js"},{"id":"core-js/internals/freezing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/freezing.js"},{"id":"core-js/internals/function-bind-context.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind-context.js"},{"id":"core-js/internals/function-bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind.js"},{"id":"core-js/internals/get-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-built-in.js"},{"id":"core-js/internals/get-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator-method.js"},{"id":"core-js/internals/get-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator.js"},{"id":"core-js/internals/global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/global.js"},{"id":"core-js/internals/has.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/has.js"},{"id":"core-js/internals/hidden-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/hidden-keys.js"},{"id":"core-js/internals/host-report-errors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/host-report-errors.js"},{"id":"core-js/internals/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/html.js"},{"id":"core-js/internals/ie8-dom-define.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ie8-dom-define.js"},{"id":"core-js/internals/ieee754.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ieee754.js"},{"id":"core-js/internals/indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/indexed-object.js"},{"id":"core-js/internals/inherit-if-required.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inherit-if-required.js"},{"id":"core-js/internals/inspect-source.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inspect-source.js"},{"id":"core-js/internals/internal-metadata.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-metadata.js"},{"id":"core-js/internals/internal-state.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-state.js"},{"id":"core-js/internals/is-array-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array-iterator-method.js"},{"id":"core-js/internals/is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array.js"},{"id":"core-js/internals/is-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-forced.js"},{"id":"core-js/internals/is-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-integer.js"},{"id":"core-js/internals/is-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-object.js"},{"id":"core-js/internals/is-pure.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-pure.js"},{"id":"core-js/internals/is-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-regexp.js"},{"id":"core-js/internals/iterate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterate.js"},{"id":"core-js/internals/iterators-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators-core.js"},{"id":"core-js/internals/iterators.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators.js"},{"id":"core-js/internals/math-expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-expm1.js"},{"id":"core-js/internals/math-fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-fround.js"},{"id":"core-js/internals/math-log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-log1p.js"},{"id":"core-js/internals/math-sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-sign.js"},{"id":"core-js/internals/microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/microtask.js"},{"id":"core-js/internals/native-promise-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-promise-constructor.js"},{"id":"core-js/internals/native-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-symbol.js"},{"id":"core-js/internals/native-url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-url.js"},{"id":"core-js/internals/native-weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-weak-map.js"},{"id":"core-js/internals/new-promise-capability.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/new-promise-capability.js"},{"id":"core-js/internals/not-a-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/not-a-regexp.js"},{"id":"core-js/internals/number-is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-is-finite.js"},{"id":"core-js/internals/number-parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-float.js"},{"id":"core-js/internals/number-parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-int.js"},{"id":"core-js/internals/object-assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-assign.js"},{"id":"core-js/internals/object-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-create.js"},{"id":"core-js/internals/object-define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-properties.js"},{"id":"core-js/internals/object-define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-property.js"},{"id":"core-js/internals/object-get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-descriptor.js"},{"id":"core-js/internals/object-get-own-property-names-external.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names-external.js"},{"id":"core-js/internals/object-get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names.js"},{"id":"core-js/internals/object-get-own-property-symbols.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-symbols.js"},{"id":"core-js/internals/object-get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-prototype-of.js"},{"id":"core-js/internals/object-keys-internal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys-internal.js"},{"id":"core-js/internals/object-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys.js"},{"id":"core-js/internals/object-property-is-enumerable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-property-is-enumerable.js"},{"id":"core-js/internals/object-prototype-accessors-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-prototype-accessors-forced.js"},{"id":"core-js/internals/object-set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-set-prototype-of.js"},{"id":"core-js/internals/object-to-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-array.js"},{"id":"core-js/internals/object-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-string.js"},{"id":"core-js/internals/own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/own-keys.js"},{"id":"core-js/internals/path.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/path.js"},{"id":"core-js/internals/perform.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/perform.js"},{"id":"core-js/internals/promise-resolve.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-resolve.js"},{"id":"core-js/internals/redefine-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/redefine-all.js"},{"id":"core-js/internals/redefine.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/redefine.js"},{"id":"core-js/internals/regexp-exec-abstract.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec-abstract.js"},{"id":"core-js/internals/regexp-exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec.js"},{"id":"core-js/internals/regexp-flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-flags.js"},{"id":"core-js/internals/regexp-sticky-helpers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-sticky-helpers.js"},{"id":"core-js/internals/require-object-coercible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/require-object-coercible.js"},{"id":"core-js/internals/same-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/same-value.js"},{"id":"core-js/internals/set-global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-global.js"},{"id":"core-js/internals/set-species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-species.js"},{"id":"core-js/internals/set-to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-to-string-tag.js"},{"id":"core-js/internals/shared-key.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-key.js"},{"id":"core-js/internals/shared-store.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-store.js"},{"id":"core-js/internals/shared.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared.js"},{"id":"core-js/internals/species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/species-constructor.js"},{"id":"core-js/internals/string-html-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-html-forced.js"},{"id":"core-js/internals/string-multibyte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-multibyte.js"},{"id":"core-js/internals/string-pad-webkit-bug.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad-webkit-bug.js"},{"id":"core-js/internals/string-pad.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad.js"},{"id":"core-js/internals/string-punycode-to-ascii.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-punycode-to-ascii.js"},{"id":"core-js/internals/string-repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-repeat.js"},{"id":"core-js/internals/string-trim-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-forced.js"},{"id":"core-js/internals/string-trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim.js"},{"id":"core-js/internals/task.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/task.js"},{"id":"core-js/internals/this-number-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/this-number-value.js"},{"id":"core-js/internals/to-absolute-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-absolute-index.js"},{"id":"core-js/internals/to-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-index.js"},{"id":"core-js/internals/to-indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-indexed-object.js"},{"id":"core-js/internals/to-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-integer.js"},{"id":"core-js/internals/to-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-length.js"},{"id":"core-js/internals/to-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-object.js"},{"id":"core-js/internals/to-offset.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-offset.js"},{"id":"core-js/internals/to-positive-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-positive-integer.js"},{"id":"core-js/internals/to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-primitive.js"},{"id":"core-js/internals/to-string-tag-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-string-tag-support.js"},{"id":"core-js/internals/typed-array-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructor.js"},{"id":"core-js/internals/typed-array-constructors-require-wrappers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructors-require-wrappers.js"},{"id":"core-js/internals/typed-array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-from.js"},{"id":"core-js/internals/uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/uid.js"},{"id":"core-js/internals/use-symbol-as-uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/use-symbol-as-uid.js"},{"id":"core-js/internals/well-known-symbol-wrapped.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol-wrapped.js"},{"id":"core-js/internals/well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol.js"},{"id":"core-js/internals/whitespaces.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/whitespaces.js"},{"id":"core-js/modules/es.array-buffer.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.constructor.js"},{"id":"core-js/modules/es.array-buffer.is-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.is-view.js"},{"id":"core-js/modules/es.array-buffer.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.slice.js"},{"id":"core-js/modules/es.array.concat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.concat.js"},{"id":"core-js/modules/es.array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.copy-within.js"},{"id":"core-js/modules/es.array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.every.js"},{"id":"core-js/modules/es.array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.fill.js"},{"id":"core-js/modules/es.array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.filter.js"},{"id":"core-js/modules/es.array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find-index.js"},{"id":"core-js/modules/es.array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find.js"},{"id":"core-js/modules/es.array.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat-map.js"},{"id":"core-js/modules/es.array.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat.js"},{"id":"core-js/modules/es.array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.for-each.js"},{"id":"core-js/modules/es.array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.from.js"},{"id":"core-js/modules/es.array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.includes.js"},{"id":"core-js/modules/es.array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.index-of.js"},{"id":"core-js/modules/es.array.is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.is-array.js"},{"id":"core-js/modules/es.array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.iterator.js"},{"id":"core-js/modules/es.array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.join.js"},{"id":"core-js/modules/es.array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.last-index-of.js"},{"id":"core-js/modules/es.array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.map.js"},{"id":"core-js/modules/es.array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.of.js"},{"id":"core-js/modules/es.array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce-right.js"},{"id":"core-js/modules/es.array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce.js"},{"id":"core-js/modules/es.array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reverse.js"},{"id":"core-js/modules/es.array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.slice.js"},{"id":"core-js/modules/es.array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.some.js"},{"id":"core-js/modules/es.array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.sort.js"},{"id":"core-js/modules/es.array.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.species.js"},{"id":"core-js/modules/es.array.splice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.splice.js"},{"id":"core-js/modules/es.array.unscopables.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat-map.js"},{"id":"core-js/modules/es.array.unscopables.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat.js"},{"id":"core-js/modules/es.data-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.data-view.js"},{"id":"core-js/modules/es.date.now.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.now.js"},{"id":"core-js/modules/es.date.to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-iso-string.js"},{"id":"core-js/modules/es.date.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-json.js"},{"id":"core-js/modules/es.date.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-primitive.js"},{"id":"core-js/modules/es.date.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-string.js"},{"id":"core-js/modules/es.function.bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.bind.js"},{"id":"core-js/modules/es.function.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.has-instance.js"},{"id":"core-js/modules/es.function.name.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.name.js"},{"id":"core-js/modules/es.global-this.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.global-this.js"},{"id":"core-js/modules/es.json.stringify.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.stringify.js"},{"id":"core-js/modules/es.json.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.to-string-tag.js"},{"id":"core-js/modules/es.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.map.js"},{"id":"core-js/modules/es.math.acosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.acosh.js"},{"id":"core-js/modules/es.math.asinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.asinh.js"},{"id":"core-js/modules/es.math.atanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.atanh.js"},{"id":"core-js/modules/es.math.cbrt.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cbrt.js"},{"id":"core-js/modules/es.math.clz32.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.clz32.js"},{"id":"core-js/modules/es.math.cosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cosh.js"},{"id":"core-js/modules/es.math.expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.expm1.js"},{"id":"core-js/modules/es.math.fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.fround.js"},{"id":"core-js/modules/es.math.hypot.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.hypot.js"},{"id":"core-js/modules/es.math.imul.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.imul.js"},{"id":"core-js/modules/es.math.log10.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log10.js"},{"id":"core-js/modules/es.math.log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log1p.js"},{"id":"core-js/modules/es.math.log2.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log2.js"},{"id":"core-js/modules/es.math.sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sign.js"},{"id":"core-js/modules/es.math.sinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sinh.js"},{"id":"core-js/modules/es.math.tanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.tanh.js"},{"id":"core-js/modules/es.math.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.to-string-tag.js"},{"id":"core-js/modules/es.math.trunc.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.trunc.js"},{"id":"core-js/modules/es.number.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.constructor.js"},{"id":"core-js/modules/es.number.epsilon.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.epsilon.js"},{"id":"core-js/modules/es.number.is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-finite.js"},{"id":"core-js/modules/es.number.is-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-integer.js"},{"id":"core-js/modules/es.number.is-nan.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-nan.js"},{"id":"core-js/modules/es.number.is-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-safe-integer.js"},{"id":"core-js/modules/es.number.max-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.max-safe-integer.js"},{"id":"core-js/modules/es.number.min-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.min-safe-integer.js"},{"id":"core-js/modules/es.number.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-float.js"},{"id":"core-js/modules/es.number.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-int.js"},{"id":"core-js/modules/es.number.to-fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-fixed.js"},{"id":"core-js/modules/es.number.to-precision.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-precision.js"},{"id":"core-js/modules/es.object.assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.assign.js"},{"id":"core-js/modules/es.object.create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.create.js"},{"id":"core-js/modules/es.object.define-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-getter.js"},{"id":"core-js/modules/es.object.define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-properties.js"},{"id":"core-js/modules/es.object.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-property.js"},{"id":"core-js/modules/es.object.define-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-setter.js"},{"id":"core-js/modules/es.object.entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.entries.js"},{"id":"core-js/modules/es.object.freeze.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.freeze.js"},{"id":"core-js/modules/es.object.from-entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.from-entries.js"},{"id":"core-js/modules/es.object.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptor.js"},{"id":"core-js/modules/es.object.get-own-property-descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptors.js"},{"id":"core-js/modules/es.object.get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-names.js"},{"id":"core-js/modules/es.object.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-prototype-of.js"},{"id":"core-js/modules/es.object.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-extensible.js"},{"id":"core-js/modules/es.object.is-frozen.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-frozen.js"},{"id":"core-js/modules/es.object.is-sealed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-sealed.js"},{"id":"core-js/modules/es.object.is.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is.js"},{"id":"core-js/modules/es.object.keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.keys.js"},{"id":"core-js/modules/es.object.lookup-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-getter.js"},{"id":"core-js/modules/es.object.lookup-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-setter.js"},{"id":"core-js/modules/es.object.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.prevent-extensions.js"},{"id":"core-js/modules/es.object.seal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.seal.js"},{"id":"core-js/modules/es.object.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.set-prototype-of.js"},{"id":"core-js/modules/es.object.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.to-string.js"},{"id":"core-js/modules/es.object.values.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.values.js"},{"id":"core-js/modules/es.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-float.js"},{"id":"core-js/modules/es.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-int.js"},{"id":"core-js/modules/es.promise.all-settled.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.all-settled.js"},{"id":"core-js/modules/es.promise.finally.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.finally.js"},{"id":"core-js/modules/es.promise.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.js"},{"id":"core-js/modules/es.reflect.apply.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.apply.js"},{"id":"core-js/modules/es.reflect.construct.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.construct.js"},{"id":"core-js/modules/es.reflect.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.define-property.js"},{"id":"core-js/modules/es.reflect.delete-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.delete-property.js"},{"id":"core-js/modules/es.reflect.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-own-property-descriptor.js"},{"id":"core-js/modules/es.reflect.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-prototype-of.js"},{"id":"core-js/modules/es.reflect.get.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get.js"},{"id":"core-js/modules/es.reflect.has.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.has.js"},{"id":"core-js/modules/es.reflect.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.is-extensible.js"},{"id":"core-js/modules/es.reflect.own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.own-keys.js"},{"id":"core-js/modules/es.reflect.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.prevent-extensions.js"},{"id":"core-js/modules/es.reflect.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set-prototype-of.js"},{"id":"core-js/modules/es.reflect.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set.js"},{"id":"core-js/modules/es.regexp.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.constructor.js"},{"id":"core-js/modules/es.regexp.exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.exec.js"},{"id":"core-js/modules/es.regexp.flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.flags.js"},{"id":"core-js/modules/es.regexp.sticky.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.sticky.js"},{"id":"core-js/modules/es.regexp.test.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.test.js"},{"id":"core-js/modules/es.regexp.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.to-string.js"},{"id":"core-js/modules/es.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.set.js"},{"id":"core-js/modules/es.string.anchor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.anchor.js"},{"id":"core-js/modules/es.string.big.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.big.js"},{"id":"core-js/modules/es.string.blink.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.blink.js"},{"id":"core-js/modules/es.string.bold.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.bold.js"},{"id":"core-js/modules/es.string.code-point-at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.code-point-at.js"},{"id":"core-js/modules/es.string.ends-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.ends-with.js"},{"id":"core-js/modules/es.string.fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fixed.js"},{"id":"core-js/modules/es.string.fontcolor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontcolor.js"},{"id":"core-js/modules/es.string.fontsize.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontsize.js"},{"id":"core-js/modules/es.string.from-code-point.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.from-code-point.js"},{"id":"core-js/modules/es.string.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.includes.js"},{"id":"core-js/modules/es.string.italics.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.italics.js"},{"id":"core-js/modules/es.string.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.iterator.js"},{"id":"core-js/modules/es.string.link.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.link.js"},{"id":"core-js/modules/es.string.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match-all.js"},{"id":"core-js/modules/es.string.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match.js"},{"id":"core-js/modules/es.string.pad-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-end.js"},{"id":"core-js/modules/es.string.pad-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-start.js"},{"id":"core-js/modules/es.string.raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.raw.js"},{"id":"core-js/modules/es.string.repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.repeat.js"},{"id":"core-js/modules/es.string.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.replace.js"},{"id":"core-js/modules/es.string.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.search.js"},{"id":"core-js/modules/es.string.small.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.small.js"},{"id":"core-js/modules/es.string.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.split.js"},{"id":"core-js/modules/es.string.starts-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.starts-with.js"},{"id":"core-js/modules/es.string.strike.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.strike.js"},{"id":"core-js/modules/es.string.sub.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sub.js"},{"id":"core-js/modules/es.string.sup.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sup.js"},{"id":"core-js/modules/es.string.trim-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-end.js"},{"id":"core-js/modules/es.string.trim-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-start.js"},{"id":"core-js/modules/es.string.trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim.js"},{"id":"core-js/modules/es.symbol.async-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.async-iterator.js"},{"id":"core-js/modules/es.symbol.description.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.description.js"},{"id":"core-js/modules/es.symbol.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.has-instance.js"},{"id":"core-js/modules/es.symbol.is-concat-spreadable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.is-concat-spreadable.js"},{"id":"core-js/modules/es.symbol.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.iterator.js"},{"id":"core-js/modules/es.symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.js"},{"id":"core-js/modules/es.symbol.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match-all.js"},{"id":"core-js/modules/es.symbol.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match.js"},{"id":"core-js/modules/es.symbol.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.replace.js"},{"id":"core-js/modules/es.symbol.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.search.js"},{"id":"core-js/modules/es.symbol.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.species.js"},{"id":"core-js/modules/es.symbol.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.split.js"},{"id":"core-js/modules/es.symbol.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-primitive.js"},{"id":"core-js/modules/es.symbol.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-string-tag.js"},{"id":"core-js/modules/es.symbol.unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.unscopables.js"},{"id":"core-js/modules/es.typed-array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.copy-within.js"},{"id":"core-js/modules/es.typed-array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.every.js"},{"id":"core-js/modules/es.typed-array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.fill.js"},{"id":"core-js/modules/es.typed-array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.filter.js"},{"id":"core-js/modules/es.typed-array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find-index.js"},{"id":"core-js/modules/es.typed-array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find.js"},{"id":"core-js/modules/es.typed-array.float32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float32-array.js"},{"id":"core-js/modules/es.typed-array.float64-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float64-array.js"},{"id":"core-js/modules/es.typed-array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.for-each.js"},{"id":"core-js/modules/es.typed-array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.from.js"},{"id":"core-js/modules/es.typed-array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.includes.js"},{"id":"core-js/modules/es.typed-array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.index-of.js"},{"id":"core-js/modules/es.typed-array.int16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int16-array.js"},{"id":"core-js/modules/es.typed-array.int32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int32-array.js"},{"id":"core-js/modules/es.typed-array.int8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int8-array.js"},{"id":"core-js/modules/es.typed-array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.iterator.js"},{"id":"core-js/modules/es.typed-array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.join.js"},{"id":"core-js/modules/es.typed-array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.last-index-of.js"},{"id":"core-js/modules/es.typed-array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.map.js"},{"id":"core-js/modules/es.typed-array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.of.js"},{"id":"core-js/modules/es.typed-array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce-right.js"},{"id":"core-js/modules/es.typed-array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce.js"},{"id":"core-js/modules/es.typed-array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reverse.js"},{"id":"core-js/modules/es.typed-array.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.set.js"},{"id":"core-js/modules/es.typed-array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.slice.js"},{"id":"core-js/modules/es.typed-array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.some.js"},{"id":"core-js/modules/es.typed-array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.sort.js"},{"id":"core-js/modules/es.typed-array.subarray.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.subarray.js"},{"id":"core-js/modules/es.typed-array.to-locale-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-locale-string.js"},{"id":"core-js/modules/es.typed-array.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-string.js"},{"id":"core-js/modules/es.typed-array.uint16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint16-array.js"},{"id":"core-js/modules/es.typed-array.uint32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint32-array.js"},{"id":"core-js/modules/es.typed-array.uint8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-array.js"},{"id":"core-js/modules/es.typed-array.uint8-clamped-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-clamped-array.js"},{"id":"core-js/modules/es.weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-map.js"},{"id":"core-js/modules/es.weak-set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-set.js"},{"id":"core-js/modules/web.dom-collections.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.for-each.js"},{"id":"core-js/modules/web.dom-collections.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.iterator.js"},{"id":"core-js/modules/web.immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.immediate.js"},{"id":"core-js/modules/web.queue-microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.queue-microtask.js"},{"id":"core-js/modules/web.timers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.timers.js"},{"id":"core-js/modules/web.url-search-params.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url-search-params.js"},{"id":"core-js/modules/web.url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.js"},{"id":"core-js/modules/web.url.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.to-json.js"},{"id":"core-js/stable/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/stable/index.js"},{"id":"core-js/web/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/web/index.js"},{"id":"datatables.net-bs4/js/dataTables.bootstrap4.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/datatables.net-bs4/js/dataTables.bootstrap4.js"},{"id":"datatables.net-responsive-bs4/js/responsive.bootstrap4.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/datatables.net-responsive-bs4/js/responsive.bootstrap4.js"},{"id":"datatables.net-responsive/js/dataTables.responsive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net-responsive/License.txt"}],"src_url":"/static/jssources/datatables.net-responsive/js/dataTables.responsive.js"},{"id":"datatables.net/js/jquery.dataTables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net/License.txt"}],"src_url":"/static/jssources/datatables.net/js/jquery.dataTables.js"},{"id":"iframe-resizer/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/index.js"},{"id":"iframe-resizer/js/iframeResizer.contentWindow.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.contentWindow.js"},{"id":"iframe-resizer/js/iframeResizer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.js"},{"id":"iframe-resizer/js/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/index.js"},{"id":"jquery/dist/jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/jquery/LICENSE.txt"}],"src_url":"/static/jssources/jquery/dist/jquery.js"},{"id":"js-cookie/src/js.cookie.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/src/js.cookie.js"},{"id":"popper.js/dist/esm/popper.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/popper.js/dist/esm/popper.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"swh/web/assets/src/bundles/vendors/elementsfrompoint-polyfill.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vendors/elementsfrompoint-polyfill.js"},{"id":"swh/web/assets/src/bundles/vendors/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vendors/index.js"},{"id":"whatwg-fetch/dist/fetch.umd.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/whatwg-fetch/LICENSE.txt"}],"src_url":"/static/jssources/whatwg-fetch/dist/fetch.umd.js"}],"/static/js/webapp.6583e14cb115c32af0b8.js":[{"id":"@babel/runtime/helpers/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/asyncToGenerator.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"@sentry/browser/esm/backend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/backend.js"},{"id":"@sentry/browser/esm/client.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/client.js"},{"id":"@sentry/browser/esm/eventbuilder.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/eventbuilder.js"},{"id":"@sentry/browser/esm/helpers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/helpers.js"},{"id":"@sentry/browser/esm/integrations/breadcrumbs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/breadcrumbs.js"},{"id":"@sentry/browser/esm/integrations/globalhandlers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/globalhandlers.js"},{"id":"@sentry/browser/esm/integrations/linkederrors.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/linkederrors.js"},{"id":"@sentry/browser/esm/integrations/trycatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/trycatch.js"},{"id":"@sentry/browser/esm/integrations/useragent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/useragent.js"},{"id":"@sentry/browser/esm/parsers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/parsers.js"},{"id":"@sentry/browser/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/sdk.js"},{"id":"@sentry/browser/esm/tracekit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/tracekit.js"},{"id":"@sentry/browser/esm/transports/base.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/base.js"},{"id":"@sentry/browser/esm/transports/fetch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/fetch.js"},{"id":"@sentry/browser/esm/transports/xhr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/xhr.js"},{"id":"@sentry/browser/esm/version.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/version.js"},{"id":"@sentry/core/esm/api.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/api.js"},{"id":"@sentry/core/esm/basebackend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/basebackend.js"},{"id":"@sentry/core/esm/baseclient.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/baseclient.js"},{"id":"@sentry/core/esm/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/index.js"},{"id":"@sentry/core/esm/integration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integration.js"},{"id":"@sentry/core/esm/integrations/functiontostring.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/functiontostring.js"},{"id":"@sentry/core/esm/integrations/inboundfilters.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/inboundfilters.js"},{"id":"@sentry/core/esm/integrations/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/index.js"},{"id":"@sentry/core/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/sdk.js"},{"id":"@sentry/core/esm/transports/noop.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/transports/noop.js"},{"id":"@sentry/hub/esm/hub.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/hub.js"},{"id":"@sentry/hub/esm/scope.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/scope.js"},{"id":"@sentry/minimal/esm/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/minimal/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/minimal/esm/index.js"},{"id":"@sentry/types/esm/severity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/types/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/types/esm/severity.js"},{"id":"@sentry/types/esm/status.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/types/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/types/esm/status.js"},{"id":"@sentry/utils/esm/dsn.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/dsn.js"},{"id":"@sentry/utils/esm/error.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/error.js"},{"id":"@sentry/utils/esm/instrument.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/instrument.js"},{"id":"@sentry/utils/esm/is.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/is.js"},{"id":"@sentry/utils/esm/logger.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/logger.js"},{"id":"@sentry/utils/esm/memo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/memo.js"},{"id":"@sentry/utils/esm/misc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/misc.js"},{"id":"@sentry/utils/esm/object.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/object.js"},{"id":"@sentry/utils/esm/polyfill.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/polyfill.js"},{"id":"@sentry/utils/esm/promisebuffer.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/promisebuffer.js"},{"id":"@sentry/utils/esm/string.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/string.js"},{"id":"@sentry/utils/esm/supports.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/supports.js"},{"id":"@sentry/utils/esm/syncpromise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/syncpromise.js"},{"id":"ansi_up/ansi_up.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/ansi_up/LICENSE.txt"}],"src_url":"/static/jssources/ansi_up/ansi_up.js"},{"id":"dompurify/dist/purify.js","licenses":[{"name":"Mozilla Public License 2.0","url":"http://www.mozilla.org/MPL/2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"},{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"}],"src_url":"/static/jssources/dompurify/dist/purify.js"},{"id":"he/he.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/he/LICENSE-MIT.txt.txt"}],"src_url":"/static/jssources/he/he.js"},{"id":"html-encoder-decoder/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/html-encoder-decoder/LICENSE.txt"}],"src_url":"/static/jssources/html-encoder-decoder/lib/index.js"},{"id":"iterate-object/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iterate-object/LICENSE.txt"}],"src_url":"/static/jssources/iterate-object/lib/index.js"},{"id":"notebookjs/notebook.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/notebookjs/LICENSE.txt"}],"src_url":"/static/jssources/notebookjs/notebook.js"},{"id":"object-fit-images/dist/ofi.common-js.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/object-fit-images/license.txt"}],"src_url":"/static/jssources/object-fit-images/dist/ofi.common-js.js"},{"id":"process/browser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/process/LICENSE.txt"}],"src_url":"/static/jssources/process/browser.js"},{"id":"regex-escape/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regex-escape/LICENSE.txt"}],"src_url":"/static/jssources/regex-escape/lib/index.js"},{"id":"script-loader/addScript.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/script-loader/LICENSE.txt"}],"src_url":"/static/jssources/script-loader/addScript.js"},{"id":"swh/web/assets/src/bundles/webapp/badges.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/badges.js"},{"id":"swh/web/assets/src/bundles/webapp/code-highlighting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/code-highlighting.js"},{"id":"swh/web/assets/src/bundles/webapp/history-counters.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/history-counters.js"},{"id":"swh/web/assets/src/bundles/webapp/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/index.js"},{"id":"swh/web/assets/src/bundles/webapp/notebook-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/notebook-rendering.js"},{"id":"swh/web/assets/src/bundles/webapp/pdf-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/pdf-rendering.js"},{"id":"swh/web/assets/src/bundles/webapp/readme-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/readme-rendering.js"},{"id":"swh/web/assets/src/bundles/webapp/sentry.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/sentry.js"},{"id":"swh/web/assets/src/bundles/webapp/webapp-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/webapp-utils.js"},{"id":"swh/web/assets/src/bundles/webapp/xss-filtering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/xss-filtering.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"},{"id":"tslib/tslib.es6.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/tslib/LICENSE.txt"}],"src_url":"/static/jssources/tslib/tslib.es6.js"}],"/static/js/admin.a0c3e72ca2ba4cd0be4d.js":[{"id":"swh/web/assets/src/bundles/admin/deposit.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/admin/deposit.js"},{"id":"swh/web/assets/src/bundles/admin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/admin/index.js"},{"id":"swh/web/assets/src/bundles/admin/origin-save.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/admin/origin-save.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"}],"/static/js/browse.a3b98efba34a099f7f2c.js":[{"id":"clipboard/dist/clipboard.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/clipboard/dist/clipboard.js"},{"id":"swh/web/assets/src/bundles/browse/browse-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/browse-utils.js"},{"id":"swh/web/assets/src/bundles/browse/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/index.js"},{"id":"swh/web/assets/src/bundles/browse/origin-search.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/origin-search.js"},{"id":"swh/web/assets/src/bundles/browse/snapshot-navigation.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/snapshot-navigation.js"},{"id":"swh/web/assets/src/bundles/browse/swh-ids-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/swh-ids-utils.js"},{"id":"swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js","licenses":[{"name":"GNU General Public License (GPL) version 3","url":"http://www.gnu.org/licenses/gpl-3.0.html","copy_url":"/static/jssources/swh/web/assets/src/thirdparty/jquery.tabSlideOut/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"}],"/static/js/revision.65bbd43a3b3458f9ebcc.js":[{"id":"@babel/runtime/helpers/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/asyncToGenerator.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"swh/web/assets/src/bundles/revision/diff-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/revision/diff-utils.js"},{"id":"swh/web/assets/src/bundles/revision/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/revision/index.js"},{"id":"swh/web/assets/src/bundles/revision/log-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/revision/log-utils.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"},{"id":"waypoints/lib/jquery.waypoints.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/waypoints/licenses.txt.txt"}],"src_url":"/static/jssources/waypoints/lib/jquery.waypoints.js"}],"/static/js/save.a9da031fcf6aac529058.js":[{"id":"swh/web/assets/src/bundles/save/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/save/index.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"},{"id":"validate.js/validate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/validate.js/LICENSE.txt"}],"src_url":"/static/jssources/validate.js/validate.js"}],"/static/js/vault.ca0a73c50330026034f5.js":[{"id":"swh/web/assets/src/bundles/vault/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vault/index.js"},{"id":"swh/web/assets/src/bundles/vault/vault-create-tasks.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vault/vault-create-tasks.js"},{"id":"swh/web/assets/src/bundles/vault/vault-ui.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vault/vault-ui.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"}],"/static/js/origin.ade863ca79c843d2b12c.js":[{"id":"@babel/runtime/helpers/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/asyncToGenerator.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"js-year-calendar/dist/js-year-calendar.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/js-year-calendar/LICENSE.txt"}],"src_url":"/static/jssources/js-year-calendar/dist/js-year-calendar.js"},{"id":"swh/web/assets/src/bundles/origin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/index.js"},{"id":"swh/web/assets/src/bundles/origin/visits-calendar.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/visits-calendar.js"},{"id":"swh/web/assets/src/bundles/origin/visits-histogram.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/visits-histogram.js"},{"id":"swh/web/assets/src/bundles/origin/visits-reporting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/visits-reporting.js"}],"/static/js/highlightjs.013f2b69313022f30437.js":[{"id":"highlight.js/lib/highlight.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/highlight.js"},{"id":"highlight.js/lib/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/index.js"},{"id":"highlight.js/lib/languages/1c.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/1c.js"},{"id":"highlight.js/lib/languages/abnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/abnf.js"},{"id":"highlight.js/lib/languages/accesslog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/accesslog.js"},{"id":"highlight.js/lib/languages/actionscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/actionscript.js"},{"id":"highlight.js/lib/languages/ada.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ada.js"},{"id":"highlight.js/lib/languages/angelscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/angelscript.js"},{"id":"highlight.js/lib/languages/apache.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/apache.js"},{"id":"highlight.js/lib/languages/applescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/applescript.js"},{"id":"highlight.js/lib/languages/arcade.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arcade.js"},{"id":"highlight.js/lib/languages/arduino.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arduino.js"},{"id":"highlight.js/lib/languages/armasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/armasm.js"},{"id":"highlight.js/lib/languages/asciidoc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/asciidoc.js"},{"id":"highlight.js/lib/languages/aspectj.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/aspectj.js"},{"id":"highlight.js/lib/languages/autohotkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autohotkey.js"},{"id":"highlight.js/lib/languages/autoit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autoit.js"},{"id":"highlight.js/lib/languages/avrasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/avrasm.js"},{"id":"highlight.js/lib/languages/awk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/awk.js"},{"id":"highlight.js/lib/languages/axapta.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/axapta.js"},{"id":"highlight.js/lib/languages/bash.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bash.js"},{"id":"highlight.js/lib/languages/basic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/basic.js"},{"id":"highlight.js/lib/languages/bnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bnf.js"},{"id":"highlight.js/lib/languages/brainfuck.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/brainfuck.js"},{"id":"highlight.js/lib/languages/cal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cal.js"},{"id":"highlight.js/lib/languages/capnproto.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/capnproto.js"},{"id":"highlight.js/lib/languages/ceylon.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ceylon.js"},{"id":"highlight.js/lib/languages/clean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clean.js"},{"id":"highlight.js/lib/languages/clojure-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure-repl.js"},{"id":"highlight.js/lib/languages/clojure.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure.js"},{"id":"highlight.js/lib/languages/cmake.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cmake.js"},{"id":"highlight.js/lib/languages/coffeescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coffeescript.js"},{"id":"highlight.js/lib/languages/coq.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coq.js"},{"id":"highlight.js/lib/languages/cos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cos.js"},{"id":"highlight.js/lib/languages/cpp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cpp.js"},{"id":"highlight.js/lib/languages/crmsh.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crmsh.js"},{"id":"highlight.js/lib/languages/crystal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crystal.js"},{"id":"highlight.js/lib/languages/cs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cs.js"},{"id":"highlight.js/lib/languages/csp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/csp.js"},{"id":"highlight.js/lib/languages/css.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/css.js"},{"id":"highlight.js/lib/languages/d.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/d.js"},{"id":"highlight.js/lib/languages/dart.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dart.js"},{"id":"highlight.js/lib/languages/delphi.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/delphi.js"},{"id":"highlight.js/lib/languages/diff.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/diff.js"},{"id":"highlight.js/lib/languages/django.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/django.js"},{"id":"highlight.js/lib/languages/dns.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dns.js"},{"id":"highlight.js/lib/languages/dockerfile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dockerfile.js"},{"id":"highlight.js/lib/languages/dos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dos.js"},{"id":"highlight.js/lib/languages/dsconfig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dsconfig.js"},{"id":"highlight.js/lib/languages/dts.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dts.js"},{"id":"highlight.js/lib/languages/dust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dust.js"},{"id":"highlight.js/lib/languages/ebnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ebnf.js"},{"id":"highlight.js/lib/languages/elixir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elixir.js"},{"id":"highlight.js/lib/languages/elm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elm.js"},{"id":"highlight.js/lib/languages/erb.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erb.js"},{"id":"highlight.js/lib/languages/erlang-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang-repl.js"},{"id":"highlight.js/lib/languages/erlang.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang.js"},{"id":"highlight.js/lib/languages/excel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/excel.js"},{"id":"highlight.js/lib/languages/fix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fix.js"},{"id":"highlight.js/lib/languages/flix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/flix.js"},{"id":"highlight.js/lib/languages/fortran.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fortran.js"},{"id":"highlight.js/lib/languages/fsharp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fsharp.js"},{"id":"highlight.js/lib/languages/gams.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gams.js"},{"id":"highlight.js/lib/languages/gauss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gauss.js"},{"id":"highlight.js/lib/languages/gcode.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gcode.js"},{"id":"highlight.js/lib/languages/gherkin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gherkin.js"},{"id":"highlight.js/lib/languages/glsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/glsl.js"},{"id":"highlight.js/lib/languages/gml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gml.js"},{"id":"highlight.js/lib/languages/go.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/go.js"},{"id":"highlight.js/lib/languages/golo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/golo.js"},{"id":"highlight.js/lib/languages/gradle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gradle.js"},{"id":"highlight.js/lib/languages/groovy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/groovy.js"},{"id":"highlight.js/lib/languages/haml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haml.js"},{"id":"highlight.js/lib/languages/handlebars.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/handlebars.js"},{"id":"highlight.js/lib/languages/haskell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haskell.js"},{"id":"highlight.js/lib/languages/haxe.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haxe.js"},{"id":"highlight.js/lib/languages/hsp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hsp.js"},{"id":"highlight.js/lib/languages/htmlbars.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/htmlbars.js"},{"id":"highlight.js/lib/languages/http.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/http.js"},{"id":"highlight.js/lib/languages/hy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hy.js"},{"id":"highlight.js/lib/languages/inform7.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/inform7.js"},{"id":"highlight.js/lib/languages/ini.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ini.js"},{"id":"highlight.js/lib/languages/irpf90.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/irpf90.js"},{"id":"highlight.js/lib/languages/isbl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/isbl.js"},{"id":"highlight.js/lib/languages/java.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/java.js"},{"id":"highlight.js/lib/languages/javascript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/javascript.js"},{"id":"highlight.js/lib/languages/jboss-cli.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/jboss-cli.js"},{"id":"highlight.js/lib/languages/json.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/json.js"},{"id":"highlight.js/lib/languages/julia-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia-repl.js"},{"id":"highlight.js/lib/languages/julia.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia.js"},{"id":"highlight.js/lib/languages/kotlin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/kotlin.js"},{"id":"highlight.js/lib/languages/lasso.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lasso.js"},{"id":"highlight.js/lib/languages/ldif.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ldif.js"},{"id":"highlight.js/lib/languages/leaf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/leaf.js"},{"id":"highlight.js/lib/languages/less.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/less.js"},{"id":"highlight.js/lib/languages/lisp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lisp.js"},{"id":"highlight.js/lib/languages/livecodeserver.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livecodeserver.js"},{"id":"highlight.js/lib/languages/livescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livescript.js"},{"id":"highlight.js/lib/languages/llvm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/llvm.js"},{"id":"highlight.js/lib/languages/lsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lsl.js"},{"id":"highlight.js/lib/languages/lua.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lua.js"},{"id":"highlight.js/lib/languages/makefile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/makefile.js"},{"id":"highlight.js/lib/languages/markdown.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/markdown.js"},{"id":"highlight.js/lib/languages/mathematica.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mathematica.js"},{"id":"highlight.js/lib/languages/matlab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/matlab.js"},{"id":"highlight.js/lib/languages/maxima.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/maxima.js"},{"id":"highlight.js/lib/languages/mel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mel.js"},{"id":"highlight.js/lib/languages/mercury.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mercury.js"},{"id":"highlight.js/lib/languages/mipsasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mipsasm.js"},{"id":"highlight.js/lib/languages/mizar.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mizar.js"},{"id":"highlight.js/lib/languages/mojolicious.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mojolicious.js"},{"id":"highlight.js/lib/languages/monkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/monkey.js"},{"id":"highlight.js/lib/languages/moonscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/moonscript.js"},{"id":"highlight.js/lib/languages/n1ql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/n1ql.js"},{"id":"highlight.js/lib/languages/nginx.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nginx.js"},{"id":"highlight.js/lib/languages/nimrod.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nimrod.js"},{"id":"highlight.js/lib/languages/nix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nix.js"},{"id":"highlight.js/lib/languages/nsis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nsis.js"},{"id":"highlight.js/lib/languages/objectivec.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/objectivec.js"},{"id":"highlight.js/lib/languages/ocaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ocaml.js"},{"id":"highlight.js/lib/languages/openscad.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/openscad.js"},{"id":"highlight.js/lib/languages/oxygene.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/oxygene.js"},{"id":"highlight.js/lib/languages/parser3.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/parser3.js"},{"id":"highlight.js/lib/languages/perl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/perl.js"},{"id":"highlight.js/lib/languages/pf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pf.js"},{"id":"highlight.js/lib/languages/pgsql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pgsql.js"},{"id":"highlight.js/lib/languages/php.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/php.js"},{"id":"highlight.js/lib/languages/plaintext.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/plaintext.js"},{"id":"highlight.js/lib/languages/pony.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pony.js"},{"id":"highlight.js/lib/languages/powershell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/powershell.js"},{"id":"highlight.js/lib/languages/processing.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/processing.js"},{"id":"highlight.js/lib/languages/profile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/profile.js"},{"id":"highlight.js/lib/languages/prolog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/prolog.js"},{"id":"highlight.js/lib/languages/properties.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/properties.js"},{"id":"highlight.js/lib/languages/protobuf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/protobuf.js"},{"id":"highlight.js/lib/languages/puppet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/puppet.js"},{"id":"highlight.js/lib/languages/purebasic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/purebasic.js"},{"id":"highlight.js/lib/languages/python.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/python.js"},{"id":"highlight.js/lib/languages/q.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/q.js"},{"id":"highlight.js/lib/languages/qml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/qml.js"},{"id":"highlight.js/lib/languages/r.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/r.js"},{"id":"highlight.js/lib/languages/reasonml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/reasonml.js"},{"id":"highlight.js/lib/languages/rib.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rib.js"},{"id":"highlight.js/lib/languages/roboconf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/roboconf.js"},{"id":"highlight.js/lib/languages/routeros.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/routeros.js"},{"id":"highlight.js/lib/languages/rsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rsl.js"},{"id":"highlight.js/lib/languages/ruby.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruby.js"},{"id":"highlight.js/lib/languages/ruleslanguage.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruleslanguage.js"},{"id":"highlight.js/lib/languages/rust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rust.js"},{"id":"highlight.js/lib/languages/sas.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sas.js"},{"id":"highlight.js/lib/languages/scala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scala.js"},{"id":"highlight.js/lib/languages/scheme.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scheme.js"},{"id":"highlight.js/lib/languages/scilab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scilab.js"},{"id":"highlight.js/lib/languages/scss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scss.js"},{"id":"highlight.js/lib/languages/shell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/shell.js"},{"id":"highlight.js/lib/languages/smali.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smali.js"},{"id":"highlight.js/lib/languages/smalltalk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smalltalk.js"},{"id":"highlight.js/lib/languages/sml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sml.js"},{"id":"highlight.js/lib/languages/sqf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sqf.js"},{"id":"highlight.js/lib/languages/sql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sql.js"},{"id":"highlight.js/lib/languages/stan.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stan.js"},{"id":"highlight.js/lib/languages/stata.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stata.js"},{"id":"highlight.js/lib/languages/step21.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/step21.js"},{"id":"highlight.js/lib/languages/stylus.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stylus.js"},{"id":"highlight.js/lib/languages/subunit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/subunit.js"},{"id":"highlight.js/lib/languages/swift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/swift.js"},{"id":"highlight.js/lib/languages/taggerscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/taggerscript.js"},{"id":"highlight.js/lib/languages/tap.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tap.js"},{"id":"highlight.js/lib/languages/tcl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tcl.js"},{"id":"highlight.js/lib/languages/tex.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tex.js"},{"id":"highlight.js/lib/languages/thrift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/thrift.js"},{"id":"highlight.js/lib/languages/tp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tp.js"},{"id":"highlight.js/lib/languages/twig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/twig.js"},{"id":"highlight.js/lib/languages/typescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/typescript.js"},{"id":"highlight.js/lib/languages/vala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vala.js"},{"id":"highlight.js/lib/languages/vbnet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbnet.js"},{"id":"highlight.js/lib/languages/vbscript-html.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript-html.js"},{"id":"highlight.js/lib/languages/vbscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript.js"},{"id":"highlight.js/lib/languages/verilog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/verilog.js"},{"id":"highlight.js/lib/languages/vhdl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vhdl.js"},{"id":"highlight.js/lib/languages/vim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vim.js"},{"id":"highlight.js/lib/languages/x86asm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/x86asm.js"},{"id":"highlight.js/lib/languages/xl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xl.js"},{"id":"highlight.js/lib/languages/xml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xml.js"},{"id":"highlight.js/lib/languages/xquery.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xquery.js"},{"id":"highlight.js/lib/languages/yaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/yaml.js"},{"id":"highlight.js/lib/languages/zephir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/zephir.js"},{"id":"highlightjs-line-numbers.js/src/highlightjs-line-numbers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-line-numbers.js/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-line-numbers.js/src/highlightjs-line-numbers.js"},{"id":"swh/web/assets/src/utils/highlightjs.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/highlightjs.js"}],"/static/js/d3.1a77dc57ed5902be8bf5.js":[{"id":"d3-array/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/array.js"},{"id":"d3-array/src/ascending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ascending.js"},{"id":"d3-array/src/bisect.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisect.js"},{"id":"d3-array/src/bisector.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisector.js"},{"id":"d3-array/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/constant.js"},{"id":"d3-array/src/cross.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/cross.js"},{"id":"d3-array/src/descending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/descending.js"},{"id":"d3-array/src/deviation.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/deviation.js"},{"id":"d3-array/src/extent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/extent.js"},{"id":"d3-array/src/histogram.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/histogram.js"},{"id":"d3-array/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/identity.js"},{"id":"d3-array/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/index.js"},{"id":"d3-array/src/max.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/max.js"},{"id":"d3-array/src/mean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/mean.js"},{"id":"d3-array/src/median.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/median.js"},{"id":"d3-array/src/merge.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/merge.js"},{"id":"d3-array/src/min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/min.js"},{"id":"d3-array/src/number.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/number.js"},{"id":"d3-array/src/pairs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/pairs.js"},{"id":"d3-array/src/permute.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/permute.js"},{"id":"d3-array/src/quantile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/quantile.js"},{"id":"d3-array/src/range.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/range.js"},{"id":"d3-array/src/scan.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/scan.js"},{"id":"d3-array/src/shuffle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/shuffle.js"},{"id":"d3-array/src/sum.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/sum.js"},{"id":"d3-array/src/threshold/freedmanDiaconis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/freedmanDiaconis.js"},{"id":"d3-array/src/threshold/scott.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/scott.js"},{"id":"d3-array/src/threshold/sturges.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/sturges.js"},{"id":"d3-array/src/ticks.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ticks.js"},{"id":"d3-array/src/transpose.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/transpose.js"},{"id":"d3-array/src/variance.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/variance.js"},{"id":"d3-array/src/zip.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/zip.js"},{"id":"d3-axis/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/array.js"},{"id":"d3-axis/src/axis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/axis.js"},{"id":"d3-axis/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/identity.js"},{"id":"d3-axis/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/index.js"},{"id":"d3-collection/src/entries.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/entries.js"},{"id":"d3-collection/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/index.js"},{"id":"d3-collection/src/keys.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/keys.js"},{"id":"d3-collection/src/map.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/map.js"},{"id":"d3-collection/src/nest.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/nest.js"},{"id":"d3-collection/src/set.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/set.js"},{"id":"d3-collection/src/values.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/values.js"},{"id":"d3-color/src/color.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/color.js"},{"id":"d3-color/src/cubehelix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/cubehelix.js"},{"id":"d3-color/src/define.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/define.js"},{"id":"d3-color/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/index.js"},{"id":"d3-color/src/lab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/lab.js"},{"id":"d3-color/src/math.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/math.js"},{"id":"d3-dispatch/src/dispatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-dispatch/LICENSE.txt"}],"src_url":"/static/jssources/d3-dispatch/src/dispatch.js"},{"id":"d3-dispatch/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-dispatch/LICENSE.txt"}],"src_url":"/static/jssources/d3-dispatch/src/index.js"},{"id":"d3-ease/src/back.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/back.js"},{"id":"d3-ease/src/bounce.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/bounce.js"},{"id":"d3-ease/src/circle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/circle.js"},{"id":"d3-ease/src/cubic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/cubic.js"},{"id":"d3-ease/src/elastic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/elastic.js"},{"id":"d3-ease/src/exp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/exp.js"},{"id":"d3-ease/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/index.js"},{"id":"d3-ease/src/linear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/linear.js"},{"id":"d3-ease/src/poly.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/poly.js"},{"id":"d3-ease/src/quad.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/quad.js"},{"id":"d3-ease/src/sin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/sin.js"},{"id":"d3-format/src/defaultLocale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/defaultLocale.js"},{"id":"d3-format/src/exponent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/exponent.js"},{"id":"d3-format/src/formatDecimal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatDecimal.js"},{"id":"d3-format/src/formatGroup.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatGroup.js"},{"id":"d3-format/src/formatNumerals.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatNumerals.js"},{"id":"d3-format/src/formatPrefixAuto.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatPrefixAuto.js"},{"id":"d3-format/src/formatRounded.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatRounded.js"},{"id":"d3-format/src/formatSpecifier.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatSpecifier.js"},{"id":"d3-format/src/formatTrim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTrim.js"},{"id":"d3-format/src/formatTypes.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTypes.js"},{"id":"d3-format/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/identity.js"},{"id":"d3-format/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/index.js"},{"id":"d3-format/src/locale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/locale.js"},{"id":"d3-format/src/precisionFixed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionFixed.js"},{"id":"d3-format/src/precisionPrefix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionPrefix.js"},{"id":"d3-format/src/precisionRound.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionRound.js"},{"id":"d3-interpolate/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/array.js"},{"id":"d3-interpolate/src/basis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basis.js"},{"id":"d3-interpolate/src/basisClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basisClosed.js"},{"id":"d3-interpolate/src/color.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/color.js"},{"id":"d3-interpolate/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/constant.js"},{"id":"d3-interpolate/src/cubehelix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/cubehelix.js"},{"id":"d3-interpolate/src/date.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/date.js"},{"id":"d3-interpolate/src/discrete.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/discrete.js"},{"id":"d3-interpolate/src/hcl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/hcl.js"},{"id":"d3-interpolate/src/hsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/hsl.js"},{"id":"d3-interpolate/src/hue.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/hue.js"},{"id":"d3-interpolate/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/index.js"},{"id":"d3-interpolate/src/lab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/lab.js"},{"id":"d3-interpolate/src/number.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/number.js"},{"id":"d3-interpolate/src/object.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/object.js"},{"id":"d3-interpolate/src/piecewise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/piecewise.js"},{"id":"d3-interpolate/src/quantize.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/quantize.js"},{"id":"d3-interpolate/src/rgb.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/rgb.js"},{"id":"d3-interpolate/src/round.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/round.js"},{"id":"d3-interpolate/src/string.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/string.js"},{"id":"d3-interpolate/src/transform/decompose.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/decompose.js"},{"id":"d3-interpolate/src/transform/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/index.js"},{"id":"d3-interpolate/src/transform/parse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/parse.js"},{"id":"d3-interpolate/src/value.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/value.js"},{"id":"d3-interpolate/src/zoom.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/zoom.js"},{"id":"d3-path/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-path/LICENSE.txt"}],"src_url":"/static/jssources/d3-path/src/index.js"},{"id":"d3-path/src/path.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-path/LICENSE.txt"}],"src_url":"/static/jssources/d3-path/src/path.js"},{"id":"d3-scale/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/array.js"},{"id":"d3-scale/src/band.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/band.js"},{"id":"d3-scale/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/constant.js"},{"id":"d3-scale/src/continuous.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/continuous.js"},{"id":"d3-scale/src/diverging.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/diverging.js"},{"id":"d3-scale/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/identity.js"},{"id":"d3-scale/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/index.js"},{"id":"d3-scale/src/init.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/init.js"},{"id":"d3-scale/src/linear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/linear.js"},{"id":"d3-scale/src/log.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/log.js"},{"id":"d3-scale/src/nice.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/nice.js"},{"id":"d3-scale/src/number.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/number.js"},{"id":"d3-scale/src/ordinal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/ordinal.js"},{"id":"d3-scale/src/pow.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/pow.js"},{"id":"d3-scale/src/quantile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantile.js"},{"id":"d3-scale/src/quantize.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantize.js"},{"id":"d3-scale/src/sequential.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequential.js"},{"id":"d3-scale/src/sequentialQuantile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequentialQuantile.js"},{"id":"d3-scale/src/symlog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/symlog.js"},{"id":"d3-scale/src/threshold.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/threshold.js"},{"id":"d3-scale/src/tickFormat.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/tickFormat.js"},{"id":"d3-scale/src/time.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/time.js"},{"id":"d3-scale/src/utcTime.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/utcTime.js"},{"id":"d3-selection/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/constant.js"},{"id":"d3-selection/src/create.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/create.js"},{"id":"d3-selection/src/creator.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/creator.js"},{"id":"d3-selection/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/index.js"},{"id":"d3-selection/src/local.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/local.js"},{"id":"d3-selection/src/matcher.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/matcher.js"},{"id":"d3-selection/src/mouse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/mouse.js"},{"id":"d3-selection/src/namespace.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespace.js"},{"id":"d3-selection/src/namespaces.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespaces.js"},{"id":"d3-selection/src/point.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/point.js"},{"id":"d3-selection/src/select.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/select.js"},{"id":"d3-selection/src/selectAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectAll.js"},{"id":"d3-selection/src/selection/append.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/append.js"},{"id":"d3-selection/src/selection/attr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/attr.js"},{"id":"d3-selection/src/selection/call.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/call.js"},{"id":"d3-selection/src/selection/classed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/classed.js"},{"id":"d3-selection/src/selection/clone.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/clone.js"},{"id":"d3-selection/src/selection/data.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/data.js"},{"id":"d3-selection/src/selection/datum.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/datum.js"},{"id":"d3-selection/src/selection/dispatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/dispatch.js"},{"id":"d3-selection/src/selection/each.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/each.js"},{"id":"d3-selection/src/selection/empty.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/empty.js"},{"id":"d3-selection/src/selection/enter.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/enter.js"},{"id":"d3-selection/src/selection/exit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/exit.js"},{"id":"d3-selection/src/selection/filter.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/filter.js"},{"id":"d3-selection/src/selection/html.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/html.js"},{"id":"d3-selection/src/selection/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/index.js"},{"id":"d3-selection/src/selection/insert.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/insert.js"},{"id":"d3-selection/src/selection/join.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/join.js"},{"id":"d3-selection/src/selection/lower.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/lower.js"},{"id":"d3-selection/src/selection/merge.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/merge.js"},{"id":"d3-selection/src/selection/node.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/node.js"},{"id":"d3-selection/src/selection/nodes.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/nodes.js"},{"id":"d3-selection/src/selection/on.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/on.js"},{"id":"d3-selection/src/selection/order.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/order.js"},{"id":"d3-selection/src/selection/property.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/property.js"},{"id":"d3-selection/src/selection/raise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/raise.js"},{"id":"d3-selection/src/selection/remove.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/remove.js"},{"id":"d3-selection/src/selection/select.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/select.js"},{"id":"d3-selection/src/selection/selectAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectAll.js"},{"id":"d3-selection/src/selection/size.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/size.js"},{"id":"d3-selection/src/selection/sort.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sort.js"},{"id":"d3-selection/src/selection/sparse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sparse.js"},{"id":"d3-selection/src/selection/style.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/style.js"},{"id":"d3-selection/src/selection/text.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/text.js"},{"id":"d3-selection/src/selector.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selector.js"},{"id":"d3-selection/src/selectorAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectorAll.js"},{"id":"d3-selection/src/sourceEvent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/sourceEvent.js"},{"id":"d3-selection/src/touch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/touch.js"},{"id":"d3-selection/src/touches.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/touches.js"},{"id":"d3-selection/src/window.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/window.js"},{"id":"d3-shape/src/arc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/arc.js"},{"id":"d3-shape/src/area.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/area.js"},{"id":"d3-shape/src/areaRadial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/areaRadial.js"},{"id":"d3-shape/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/array.js"},{"id":"d3-shape/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/constant.js"},{"id":"d3-shape/src/curve/basis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basis.js"},{"id":"d3-shape/src/curve/basisClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisClosed.js"},{"id":"d3-shape/src/curve/basisOpen.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisOpen.js"},{"id":"d3-shape/src/curve/bundle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/bundle.js"},{"id":"d3-shape/src/curve/cardinal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinal.js"},{"id":"d3-shape/src/curve/cardinalClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalClosed.js"},{"id":"d3-shape/src/curve/cardinalOpen.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalOpen.js"},{"id":"d3-shape/src/curve/catmullRom.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRom.js"},{"id":"d3-shape/src/curve/catmullRomClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomClosed.js"},{"id":"d3-shape/src/curve/catmullRomOpen.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomOpen.js"},{"id":"d3-shape/src/curve/linear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linear.js"},{"id":"d3-shape/src/curve/linearClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linearClosed.js"},{"id":"d3-shape/src/curve/monotone.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/monotone.js"},{"id":"d3-shape/src/curve/natural.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/natural.js"},{"id":"d3-shape/src/curve/radial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/radial.js"},{"id":"d3-shape/src/curve/step.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/step.js"},{"id":"d3-shape/src/descending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/descending.js"},{"id":"d3-shape/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/identity.js"},{"id":"d3-shape/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/index.js"},{"id":"d3-shape/src/line.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/line.js"},{"id":"d3-shape/src/lineRadial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/lineRadial.js"},{"id":"d3-shape/src/link/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/link/index.js"},{"id":"d3-shape/src/math.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/math.js"},{"id":"d3-shape/src/noop.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/noop.js"},{"id":"d3-shape/src/offset/diverging.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/diverging.js"},{"id":"d3-shape/src/offset/expand.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/expand.js"},{"id":"d3-shape/src/offset/none.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/none.js"},{"id":"d3-shape/src/offset/silhouette.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/silhouette.js"},{"id":"d3-shape/src/offset/wiggle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/wiggle.js"},{"id":"d3-shape/src/order/appearance.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/appearance.js"},{"id":"d3-shape/src/order/ascending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/ascending.js"},{"id":"d3-shape/src/order/descending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/descending.js"},{"id":"d3-shape/src/order/insideOut.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/insideOut.js"},{"id":"d3-shape/src/order/none.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/none.js"},{"id":"d3-shape/src/order/reverse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/reverse.js"},{"id":"d3-shape/src/pie.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pie.js"},{"id":"d3-shape/src/point.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/point.js"},{"id":"d3-shape/src/pointRadial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pointRadial.js"},{"id":"d3-shape/src/stack.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/stack.js"},{"id":"d3-shape/src/symbol.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol.js"},{"id":"d3-shape/src/symbol/circle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/circle.js"},{"id":"d3-shape/src/symbol/cross.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/cross.js"},{"id":"d3-shape/src/symbol/diamond.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/diamond.js"},{"id":"d3-shape/src/symbol/square.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/square.js"},{"id":"d3-shape/src/symbol/star.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/star.js"},{"id":"d3-shape/src/symbol/triangle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/triangle.js"},{"id":"d3-shape/src/symbol/wye.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/wye.js"},{"id":"d3-time-format/src/defaultLocale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/defaultLocale.js"},{"id":"d3-time-format/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/index.js"},{"id":"d3-time-format/src/isoFormat.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoFormat.js"},{"id":"d3-time-format/src/isoParse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoParse.js"},{"id":"d3-time-format/src/locale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/locale.js"},{"id":"d3-time/src/day.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/day.js"},{"id":"d3-time/src/duration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/duration.js"},{"id":"d3-time/src/hour.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/hour.js"},{"id":"d3-time/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/index.js"},{"id":"d3-time/src/interval.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/interval.js"},{"id":"d3-time/src/millisecond.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/millisecond.js"},{"id":"d3-time/src/minute.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/minute.js"},{"id":"d3-time/src/month.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/month.js"},{"id":"d3-time/src/second.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/second.js"},{"id":"d3-time/src/utcDay.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcDay.js"},{"id":"d3-time/src/utcHour.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcHour.js"},{"id":"d3-time/src/utcMinute.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMinute.js"},{"id":"d3-time/src/utcMonth.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMonth.js"},{"id":"d3-time/src/utcWeek.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcWeek.js"},{"id":"d3-time/src/utcYear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcYear.js"},{"id":"d3-time/src/week.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/week.js"},{"id":"d3-time/src/year.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/year.js"},{"id":"d3-timer/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/index.js"},{"id":"d3-timer/src/interval.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/interval.js"},{"id":"d3-timer/src/timeout.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timeout.js"},{"id":"d3-timer/src/timer.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timer.js"},{"id":"d3-transition/src/active.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/active.js"},{"id":"d3-transition/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/index.js"},{"id":"d3-transition/src/interrupt.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/interrupt.js"},{"id":"d3-transition/src/selection/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/index.js"},{"id":"d3-transition/src/selection/interrupt.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/interrupt.js"},{"id":"d3-transition/src/selection/transition.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/transition.js"},{"id":"d3-transition/src/transition/attr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attr.js"},{"id":"d3-transition/src/transition/attrTween.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attrTween.js"},{"id":"d3-transition/src/transition/delay.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/delay.js"},{"id":"d3-transition/src/transition/duration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/duration.js"},{"id":"d3-transition/src/transition/ease.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/ease.js"},{"id":"d3-transition/src/transition/end.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/end.js"},{"id":"d3-transition/src/transition/filter.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/filter.js"},{"id":"d3-transition/src/transition/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/index.js"},{"id":"d3-transition/src/transition/interpolate.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/interpolate.js"},{"id":"d3-transition/src/transition/merge.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/merge.js"},{"id":"d3-transition/src/transition/on.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/on.js"},{"id":"d3-transition/src/transition/remove.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/remove.js"},{"id":"d3-transition/src/transition/schedule.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/schedule.js"},{"id":"d3-transition/src/transition/select.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/select.js"},{"id":"d3-transition/src/transition/selectAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selectAll.js"},{"id":"d3-transition/src/transition/selection.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selection.js"},{"id":"d3-transition/src/transition/style.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/style.js"},{"id":"d3-transition/src/transition/styleTween.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/styleTween.js"},{"id":"d3-transition/src/transition/text.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/text.js"},{"id":"d3-transition/src/transition/transition.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/transition.js"},{"id":"d3-transition/src/transition/tween.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/tween.js"},{"id":"swh/web/assets/src/utils/d3-custom.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/d3-custom.js"},{"id":"swh/web/assets/src/utils/d3.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/d3.js"}],"/static/js/showdown.91aacda56c49ac468692.js":[{"id":"showdown/dist/showdown.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/showdown/license.txt"}],"src_url":"/static/jssources/showdown/dist/showdown.js"},{"id":"swh/web/assets/src/utils/showdown.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/showdown.js"}],"/static/js/org.5174f2b8350d07e203c7.js":[{"id":"org/lib/org.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org.js"},{"id":"org/lib/org/converter/converter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/converter.js"},{"id":"org/lib/org/converter/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/html.js"},{"id":"org/lib/org/lexer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/lexer.js"},{"id":"org/lib/org/node.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/node.js"},{"id":"org/lib/org/parser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/parser.js"},{"id":"org/lib/org/stream.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/stream.js"},{"id":"swh/web/assets/src/utils/org.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/org.js"}],"/static/js/pdfjs.e7e30b41a87080946820.js":[{"id":"pdfjs-dist/build/pdf.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.js"}],"/static/js/pdf.worker.min.js":[{"id":"pdfjs-dist/build/pdf.worker.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.worker.js"}],"/jsreverse/":[{"id":"jsreverse","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/jsreverse/"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js":[{"id":"MathJax.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/MathJax.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS_HTML.js":[{"id":"config/TeX-AMS_HTML.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/config/TeX-AMS_HTML.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/extensions/MathMenu.js":[{"id":"extensions/MathMenu.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/extensions/MathMenu.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/element/mml/optable/BasicLatin.js":[{"id":"jax/element/mml/optable/BasicLatin.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/element/mml/optable/BasicLatin.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/jax.js":[{"id":"jax/output/HTML-CSS/jax.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/jax.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/fontdata.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/fontdata.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/fontdata.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/autoload/mtable.js":[{"id":"jax/output/HTML-CSS/autoload/mtable.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/autoload/mtable.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/element/mml/optable/MathOperators.js":[{"id":"jax/element/mml/optable/MathOperators.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/element/mml/optable/MathOperators.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/autoload/multiline.js":[{"id":"jax/output/HTML-CSS/autoload/multiline.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/autoload/multiline.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/element/mml/optable/GeneralPunctuation.js":[{"id":"jax/element/mml/optable/GeneralPunctuation.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/element/mml/optable/GeneralPunctuation.js"}]} \ No newline at end of file +{"/static/js/vendors.107388fdefb1ab367e96.js":[{"id":"admin-lte/dist/js/adminlte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/admin-lte/LICENSE.txt"}],"src_url":"/static/jssources/admin-lte/dist/js/adminlte.js"},{"id":"bootstrap/js/dist/alert.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/alert.js"},{"id":"bootstrap/js/dist/button.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/button.js"},{"id":"bootstrap/js/dist/carousel.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/carousel.js"},{"id":"bootstrap/js/dist/collapse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/collapse.js"},{"id":"bootstrap/js/dist/dropdown.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/dropdown.js"},{"id":"bootstrap/js/dist/modal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/modal.js"},{"id":"bootstrap/js/dist/popover.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/popover.js"},{"id":"bootstrap/js/dist/scrollspy.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/scrollspy.js"},{"id":"bootstrap/js/dist/tab.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tab.js"},{"id":"bootstrap/js/dist/tooltip.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tooltip.js"},{"id":"bootstrap/js/dist/util.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/util.js"},{"id":"chosen-js/chosen.jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/chosen-js/LICENSE.md"}],"src_url":"/static/jssources/chosen-js/chosen.jquery.js"},{"id":"core-js/es/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/es/index.js"},{"id":"core-js/internals/a-function.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-function.js"},{"id":"core-js/internals/a-possible-prototype.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-possible-prototype.js"},{"id":"core-js/internals/add-to-unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/add-to-unscopables.js"},{"id":"core-js/internals/advance-string-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/advance-string-index.js"},{"id":"core-js/internals/an-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-instance.js"},{"id":"core-js/internals/an-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-object.js"},{"id":"core-js/internals/array-buffer-native.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-native.js"},{"id":"core-js/internals/array-buffer-view-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-view-core.js"},{"id":"core-js/internals/array-buffer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer.js"},{"id":"core-js/internals/array-copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-copy-within.js"},{"id":"core-js/internals/array-fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-fill.js"},{"id":"core-js/internals/array-for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-for-each.js"},{"id":"core-js/internals/array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-from.js"},{"id":"core-js/internals/array-includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-includes.js"},{"id":"core-js/internals/array-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-iteration.js"},{"id":"core-js/internals/array-last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-last-index-of.js"},{"id":"core-js/internals/array-method-has-species-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-has-species-support.js"},{"id":"core-js/internals/array-method-is-strict.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-is-strict.js"},{"id":"core-js/internals/array-method-uses-to-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-uses-to-length.js"},{"id":"core-js/internals/array-reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-reduce.js"},{"id":"core-js/internals/array-species-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-species-create.js"},{"id":"core-js/internals/call-with-safe-iteration-closing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/call-with-safe-iteration-closing.js"},{"id":"core-js/internals/check-correctness-of-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/check-correctness-of-iteration.js"},{"id":"core-js/internals/classof-raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof-raw.js"},{"id":"core-js/internals/classof.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof.js"},{"id":"core-js/internals/collection-strong.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-strong.js"},{"id":"core-js/internals/collection-weak.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-weak.js"},{"id":"core-js/internals/collection.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection.js"},{"id":"core-js/internals/copy-constructor-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/copy-constructor-properties.js"},{"id":"core-js/internals/correct-is-regexp-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-is-regexp-logic.js"},{"id":"core-js/internals/correct-prototype-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-prototype-getter.js"},{"id":"core-js/internals/create-html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-html.js"},{"id":"core-js/internals/create-iterator-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-iterator-constructor.js"},{"id":"core-js/internals/create-non-enumerable-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-non-enumerable-property.js"},{"id":"core-js/internals/create-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property-descriptor.js"},{"id":"core-js/internals/create-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property.js"},{"id":"core-js/internals/date-to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-iso-string.js"},{"id":"core-js/internals/date-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-primitive.js"},{"id":"core-js/internals/define-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-iterator.js"},{"id":"core-js/internals/define-well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-well-known-symbol.js"},{"id":"core-js/internals/descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/descriptors.js"},{"id":"core-js/internals/document-create-element.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/document-create-element.js"},{"id":"core-js/internals/dom-iterables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-iterables.js"},{"id":"core-js/internals/engine-is-ios.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ios.js"},{"id":"core-js/internals/engine-user-agent.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-user-agent.js"},{"id":"core-js/internals/engine-v8-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-v8-version.js"},{"id":"core-js/internals/enum-bug-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/enum-bug-keys.js"},{"id":"core-js/internals/export.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/export.js"},{"id":"core-js/internals/fails.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fails.js"},{"id":"core-js/internals/fix-regexp-well-known-symbol-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fix-regexp-well-known-symbol-logic.js"},{"id":"core-js/internals/flatten-into-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/flatten-into-array.js"},{"id":"core-js/internals/freezing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/freezing.js"},{"id":"core-js/internals/function-bind-context.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind-context.js"},{"id":"core-js/internals/function-bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind.js"},{"id":"core-js/internals/get-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-built-in.js"},{"id":"core-js/internals/get-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator-method.js"},{"id":"core-js/internals/get-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator.js"},{"id":"core-js/internals/global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/global.js"},{"id":"core-js/internals/has.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/has.js"},{"id":"core-js/internals/hidden-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/hidden-keys.js"},{"id":"core-js/internals/host-report-errors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/host-report-errors.js"},{"id":"core-js/internals/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/html.js"},{"id":"core-js/internals/ie8-dom-define.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ie8-dom-define.js"},{"id":"core-js/internals/ieee754.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ieee754.js"},{"id":"core-js/internals/indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/indexed-object.js"},{"id":"core-js/internals/inherit-if-required.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inherit-if-required.js"},{"id":"core-js/internals/inspect-source.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inspect-source.js"},{"id":"core-js/internals/internal-metadata.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-metadata.js"},{"id":"core-js/internals/internal-state.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-state.js"},{"id":"core-js/internals/is-array-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array-iterator-method.js"},{"id":"core-js/internals/is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array.js"},{"id":"core-js/internals/is-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-forced.js"},{"id":"core-js/internals/is-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-integer.js"},{"id":"core-js/internals/is-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-object.js"},{"id":"core-js/internals/is-pure.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-pure.js"},{"id":"core-js/internals/is-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-regexp.js"},{"id":"core-js/internals/iterate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterate.js"},{"id":"core-js/internals/iterators-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators-core.js"},{"id":"core-js/internals/iterators.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators.js"},{"id":"core-js/internals/math-expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-expm1.js"},{"id":"core-js/internals/math-fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-fround.js"},{"id":"core-js/internals/math-log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-log1p.js"},{"id":"core-js/internals/math-sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-sign.js"},{"id":"core-js/internals/microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/microtask.js"},{"id":"core-js/internals/native-promise-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-promise-constructor.js"},{"id":"core-js/internals/native-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-symbol.js"},{"id":"core-js/internals/native-url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-url.js"},{"id":"core-js/internals/native-weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-weak-map.js"},{"id":"core-js/internals/new-promise-capability.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/new-promise-capability.js"},{"id":"core-js/internals/not-a-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/not-a-regexp.js"},{"id":"core-js/internals/number-is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-is-finite.js"},{"id":"core-js/internals/number-parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-float.js"},{"id":"core-js/internals/number-parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-int.js"},{"id":"core-js/internals/object-assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-assign.js"},{"id":"core-js/internals/object-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-create.js"},{"id":"core-js/internals/object-define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-properties.js"},{"id":"core-js/internals/object-define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-property.js"},{"id":"core-js/internals/object-get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-descriptor.js"},{"id":"core-js/internals/object-get-own-property-names-external.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names-external.js"},{"id":"core-js/internals/object-get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names.js"},{"id":"core-js/internals/object-get-own-property-symbols.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-symbols.js"},{"id":"core-js/internals/object-get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-prototype-of.js"},{"id":"core-js/internals/object-keys-internal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys-internal.js"},{"id":"core-js/internals/object-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys.js"},{"id":"core-js/internals/object-property-is-enumerable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-property-is-enumerable.js"},{"id":"core-js/internals/object-prototype-accessors-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-prototype-accessors-forced.js"},{"id":"core-js/internals/object-set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-set-prototype-of.js"},{"id":"core-js/internals/object-to-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-array.js"},{"id":"core-js/internals/object-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-string.js"},{"id":"core-js/internals/own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/own-keys.js"},{"id":"core-js/internals/path.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/path.js"},{"id":"core-js/internals/perform.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/perform.js"},{"id":"core-js/internals/promise-resolve.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-resolve.js"},{"id":"core-js/internals/redefine-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/redefine-all.js"},{"id":"core-js/internals/redefine.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/redefine.js"},{"id":"core-js/internals/regexp-exec-abstract.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec-abstract.js"},{"id":"core-js/internals/regexp-exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec.js"},{"id":"core-js/internals/regexp-flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-flags.js"},{"id":"core-js/internals/regexp-sticky-helpers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-sticky-helpers.js"},{"id":"core-js/internals/require-object-coercible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/require-object-coercible.js"},{"id":"core-js/internals/same-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/same-value.js"},{"id":"core-js/internals/set-global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-global.js"},{"id":"core-js/internals/set-species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-species.js"},{"id":"core-js/internals/set-to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-to-string-tag.js"},{"id":"core-js/internals/shared-key.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-key.js"},{"id":"core-js/internals/shared-store.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-store.js"},{"id":"core-js/internals/shared.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared.js"},{"id":"core-js/internals/species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/species-constructor.js"},{"id":"core-js/internals/string-html-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-html-forced.js"},{"id":"core-js/internals/string-multibyte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-multibyte.js"},{"id":"core-js/internals/string-pad-webkit-bug.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad-webkit-bug.js"},{"id":"core-js/internals/string-pad.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad.js"},{"id":"core-js/internals/string-punycode-to-ascii.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-punycode-to-ascii.js"},{"id":"core-js/internals/string-repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-repeat.js"},{"id":"core-js/internals/string-trim-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-forced.js"},{"id":"core-js/internals/string-trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim.js"},{"id":"core-js/internals/task.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/task.js"},{"id":"core-js/internals/this-number-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/this-number-value.js"},{"id":"core-js/internals/to-absolute-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-absolute-index.js"},{"id":"core-js/internals/to-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-index.js"},{"id":"core-js/internals/to-indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-indexed-object.js"},{"id":"core-js/internals/to-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-integer.js"},{"id":"core-js/internals/to-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-length.js"},{"id":"core-js/internals/to-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-object.js"},{"id":"core-js/internals/to-offset.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-offset.js"},{"id":"core-js/internals/to-positive-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-positive-integer.js"},{"id":"core-js/internals/to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-primitive.js"},{"id":"core-js/internals/to-string-tag-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-string-tag-support.js"},{"id":"core-js/internals/typed-array-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructor.js"},{"id":"core-js/internals/typed-array-constructors-require-wrappers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructors-require-wrappers.js"},{"id":"core-js/internals/typed-array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-from.js"},{"id":"core-js/internals/uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/uid.js"},{"id":"core-js/internals/use-symbol-as-uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/use-symbol-as-uid.js"},{"id":"core-js/internals/well-known-symbol-wrapped.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol-wrapped.js"},{"id":"core-js/internals/well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol.js"},{"id":"core-js/internals/whitespaces.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/whitespaces.js"},{"id":"core-js/modules/es.array-buffer.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.constructor.js"},{"id":"core-js/modules/es.array-buffer.is-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.is-view.js"},{"id":"core-js/modules/es.array-buffer.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.slice.js"},{"id":"core-js/modules/es.array.concat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.concat.js"},{"id":"core-js/modules/es.array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.copy-within.js"},{"id":"core-js/modules/es.array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.every.js"},{"id":"core-js/modules/es.array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.fill.js"},{"id":"core-js/modules/es.array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.filter.js"},{"id":"core-js/modules/es.array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find-index.js"},{"id":"core-js/modules/es.array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find.js"},{"id":"core-js/modules/es.array.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat-map.js"},{"id":"core-js/modules/es.array.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat.js"},{"id":"core-js/modules/es.array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.for-each.js"},{"id":"core-js/modules/es.array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.from.js"},{"id":"core-js/modules/es.array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.includes.js"},{"id":"core-js/modules/es.array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.index-of.js"},{"id":"core-js/modules/es.array.is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.is-array.js"},{"id":"core-js/modules/es.array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.iterator.js"},{"id":"core-js/modules/es.array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.join.js"},{"id":"core-js/modules/es.array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.last-index-of.js"},{"id":"core-js/modules/es.array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.map.js"},{"id":"core-js/modules/es.array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.of.js"},{"id":"core-js/modules/es.array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce-right.js"},{"id":"core-js/modules/es.array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce.js"},{"id":"core-js/modules/es.array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reverse.js"},{"id":"core-js/modules/es.array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.slice.js"},{"id":"core-js/modules/es.array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.some.js"},{"id":"core-js/modules/es.array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.sort.js"},{"id":"core-js/modules/es.array.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.species.js"},{"id":"core-js/modules/es.array.splice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.splice.js"},{"id":"core-js/modules/es.array.unscopables.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat-map.js"},{"id":"core-js/modules/es.array.unscopables.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat.js"},{"id":"core-js/modules/es.data-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.data-view.js"},{"id":"core-js/modules/es.date.now.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.now.js"},{"id":"core-js/modules/es.date.to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-iso-string.js"},{"id":"core-js/modules/es.date.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-json.js"},{"id":"core-js/modules/es.date.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-primitive.js"},{"id":"core-js/modules/es.date.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-string.js"},{"id":"core-js/modules/es.function.bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.bind.js"},{"id":"core-js/modules/es.function.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.has-instance.js"},{"id":"core-js/modules/es.function.name.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.name.js"},{"id":"core-js/modules/es.global-this.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.global-this.js"},{"id":"core-js/modules/es.json.stringify.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.stringify.js"},{"id":"core-js/modules/es.json.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.to-string-tag.js"},{"id":"core-js/modules/es.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.map.js"},{"id":"core-js/modules/es.math.acosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.acosh.js"},{"id":"core-js/modules/es.math.asinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.asinh.js"},{"id":"core-js/modules/es.math.atanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.atanh.js"},{"id":"core-js/modules/es.math.cbrt.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cbrt.js"},{"id":"core-js/modules/es.math.clz32.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.clz32.js"},{"id":"core-js/modules/es.math.cosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cosh.js"},{"id":"core-js/modules/es.math.expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.expm1.js"},{"id":"core-js/modules/es.math.fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.fround.js"},{"id":"core-js/modules/es.math.hypot.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.hypot.js"},{"id":"core-js/modules/es.math.imul.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.imul.js"},{"id":"core-js/modules/es.math.log10.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log10.js"},{"id":"core-js/modules/es.math.log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log1p.js"},{"id":"core-js/modules/es.math.log2.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log2.js"},{"id":"core-js/modules/es.math.sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sign.js"},{"id":"core-js/modules/es.math.sinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sinh.js"},{"id":"core-js/modules/es.math.tanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.tanh.js"},{"id":"core-js/modules/es.math.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.to-string-tag.js"},{"id":"core-js/modules/es.math.trunc.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.trunc.js"},{"id":"core-js/modules/es.number.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.constructor.js"},{"id":"core-js/modules/es.number.epsilon.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.epsilon.js"},{"id":"core-js/modules/es.number.is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-finite.js"},{"id":"core-js/modules/es.number.is-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-integer.js"},{"id":"core-js/modules/es.number.is-nan.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-nan.js"},{"id":"core-js/modules/es.number.is-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-safe-integer.js"},{"id":"core-js/modules/es.number.max-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.max-safe-integer.js"},{"id":"core-js/modules/es.number.min-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.min-safe-integer.js"},{"id":"core-js/modules/es.number.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-float.js"},{"id":"core-js/modules/es.number.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-int.js"},{"id":"core-js/modules/es.number.to-fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-fixed.js"},{"id":"core-js/modules/es.number.to-precision.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-precision.js"},{"id":"core-js/modules/es.object.assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.assign.js"},{"id":"core-js/modules/es.object.create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.create.js"},{"id":"core-js/modules/es.object.define-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-getter.js"},{"id":"core-js/modules/es.object.define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-properties.js"},{"id":"core-js/modules/es.object.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-property.js"},{"id":"core-js/modules/es.object.define-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-setter.js"},{"id":"core-js/modules/es.object.entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.entries.js"},{"id":"core-js/modules/es.object.freeze.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.freeze.js"},{"id":"core-js/modules/es.object.from-entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.from-entries.js"},{"id":"core-js/modules/es.object.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptor.js"},{"id":"core-js/modules/es.object.get-own-property-descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptors.js"},{"id":"core-js/modules/es.object.get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-names.js"},{"id":"core-js/modules/es.object.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-prototype-of.js"},{"id":"core-js/modules/es.object.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-extensible.js"},{"id":"core-js/modules/es.object.is-frozen.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-frozen.js"},{"id":"core-js/modules/es.object.is-sealed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-sealed.js"},{"id":"core-js/modules/es.object.is.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is.js"},{"id":"core-js/modules/es.object.keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.keys.js"},{"id":"core-js/modules/es.object.lookup-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-getter.js"},{"id":"core-js/modules/es.object.lookup-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-setter.js"},{"id":"core-js/modules/es.object.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.prevent-extensions.js"},{"id":"core-js/modules/es.object.seal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.seal.js"},{"id":"core-js/modules/es.object.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.set-prototype-of.js"},{"id":"core-js/modules/es.object.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.to-string.js"},{"id":"core-js/modules/es.object.values.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.values.js"},{"id":"core-js/modules/es.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-float.js"},{"id":"core-js/modules/es.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-int.js"},{"id":"core-js/modules/es.promise.all-settled.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.all-settled.js"},{"id":"core-js/modules/es.promise.finally.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.finally.js"},{"id":"core-js/modules/es.promise.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.js"},{"id":"core-js/modules/es.reflect.apply.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.apply.js"},{"id":"core-js/modules/es.reflect.construct.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.construct.js"},{"id":"core-js/modules/es.reflect.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.define-property.js"},{"id":"core-js/modules/es.reflect.delete-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.delete-property.js"},{"id":"core-js/modules/es.reflect.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-own-property-descriptor.js"},{"id":"core-js/modules/es.reflect.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-prototype-of.js"},{"id":"core-js/modules/es.reflect.get.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get.js"},{"id":"core-js/modules/es.reflect.has.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.has.js"},{"id":"core-js/modules/es.reflect.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.is-extensible.js"},{"id":"core-js/modules/es.reflect.own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.own-keys.js"},{"id":"core-js/modules/es.reflect.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.prevent-extensions.js"},{"id":"core-js/modules/es.reflect.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set-prototype-of.js"},{"id":"core-js/modules/es.reflect.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set.js"},{"id":"core-js/modules/es.regexp.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.constructor.js"},{"id":"core-js/modules/es.regexp.exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.exec.js"},{"id":"core-js/modules/es.regexp.flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.flags.js"},{"id":"core-js/modules/es.regexp.sticky.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.sticky.js"},{"id":"core-js/modules/es.regexp.test.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.test.js"},{"id":"core-js/modules/es.regexp.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.to-string.js"},{"id":"core-js/modules/es.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.set.js"},{"id":"core-js/modules/es.string.anchor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.anchor.js"},{"id":"core-js/modules/es.string.big.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.big.js"},{"id":"core-js/modules/es.string.blink.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.blink.js"},{"id":"core-js/modules/es.string.bold.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.bold.js"},{"id":"core-js/modules/es.string.code-point-at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.code-point-at.js"},{"id":"core-js/modules/es.string.ends-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.ends-with.js"},{"id":"core-js/modules/es.string.fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fixed.js"},{"id":"core-js/modules/es.string.fontcolor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontcolor.js"},{"id":"core-js/modules/es.string.fontsize.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontsize.js"},{"id":"core-js/modules/es.string.from-code-point.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.from-code-point.js"},{"id":"core-js/modules/es.string.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.includes.js"},{"id":"core-js/modules/es.string.italics.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.italics.js"},{"id":"core-js/modules/es.string.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.iterator.js"},{"id":"core-js/modules/es.string.link.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.link.js"},{"id":"core-js/modules/es.string.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match-all.js"},{"id":"core-js/modules/es.string.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match.js"},{"id":"core-js/modules/es.string.pad-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-end.js"},{"id":"core-js/modules/es.string.pad-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-start.js"},{"id":"core-js/modules/es.string.raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.raw.js"},{"id":"core-js/modules/es.string.repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.repeat.js"},{"id":"core-js/modules/es.string.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.replace.js"},{"id":"core-js/modules/es.string.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.search.js"},{"id":"core-js/modules/es.string.small.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.small.js"},{"id":"core-js/modules/es.string.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.split.js"},{"id":"core-js/modules/es.string.starts-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.starts-with.js"},{"id":"core-js/modules/es.string.strike.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.strike.js"},{"id":"core-js/modules/es.string.sub.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sub.js"},{"id":"core-js/modules/es.string.sup.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sup.js"},{"id":"core-js/modules/es.string.trim-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-end.js"},{"id":"core-js/modules/es.string.trim-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-start.js"},{"id":"core-js/modules/es.string.trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim.js"},{"id":"core-js/modules/es.symbol.async-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.async-iterator.js"},{"id":"core-js/modules/es.symbol.description.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.description.js"},{"id":"core-js/modules/es.symbol.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.has-instance.js"},{"id":"core-js/modules/es.symbol.is-concat-spreadable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.is-concat-spreadable.js"},{"id":"core-js/modules/es.symbol.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.iterator.js"},{"id":"core-js/modules/es.symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.js"},{"id":"core-js/modules/es.symbol.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match-all.js"},{"id":"core-js/modules/es.symbol.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match.js"},{"id":"core-js/modules/es.symbol.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.replace.js"},{"id":"core-js/modules/es.symbol.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.search.js"},{"id":"core-js/modules/es.symbol.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.species.js"},{"id":"core-js/modules/es.symbol.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.split.js"},{"id":"core-js/modules/es.symbol.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-primitive.js"},{"id":"core-js/modules/es.symbol.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-string-tag.js"},{"id":"core-js/modules/es.symbol.unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.unscopables.js"},{"id":"core-js/modules/es.typed-array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.copy-within.js"},{"id":"core-js/modules/es.typed-array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.every.js"},{"id":"core-js/modules/es.typed-array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.fill.js"},{"id":"core-js/modules/es.typed-array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.filter.js"},{"id":"core-js/modules/es.typed-array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find-index.js"},{"id":"core-js/modules/es.typed-array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find.js"},{"id":"core-js/modules/es.typed-array.float32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float32-array.js"},{"id":"core-js/modules/es.typed-array.float64-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float64-array.js"},{"id":"core-js/modules/es.typed-array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.for-each.js"},{"id":"core-js/modules/es.typed-array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.from.js"},{"id":"core-js/modules/es.typed-array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.includes.js"},{"id":"core-js/modules/es.typed-array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.index-of.js"},{"id":"core-js/modules/es.typed-array.int16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int16-array.js"},{"id":"core-js/modules/es.typed-array.int32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int32-array.js"},{"id":"core-js/modules/es.typed-array.int8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int8-array.js"},{"id":"core-js/modules/es.typed-array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.iterator.js"},{"id":"core-js/modules/es.typed-array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.join.js"},{"id":"core-js/modules/es.typed-array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.last-index-of.js"},{"id":"core-js/modules/es.typed-array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.map.js"},{"id":"core-js/modules/es.typed-array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.of.js"},{"id":"core-js/modules/es.typed-array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce-right.js"},{"id":"core-js/modules/es.typed-array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce.js"},{"id":"core-js/modules/es.typed-array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reverse.js"},{"id":"core-js/modules/es.typed-array.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.set.js"},{"id":"core-js/modules/es.typed-array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.slice.js"},{"id":"core-js/modules/es.typed-array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.some.js"},{"id":"core-js/modules/es.typed-array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.sort.js"},{"id":"core-js/modules/es.typed-array.subarray.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.subarray.js"},{"id":"core-js/modules/es.typed-array.to-locale-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-locale-string.js"},{"id":"core-js/modules/es.typed-array.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-string.js"},{"id":"core-js/modules/es.typed-array.uint16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint16-array.js"},{"id":"core-js/modules/es.typed-array.uint32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint32-array.js"},{"id":"core-js/modules/es.typed-array.uint8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-array.js"},{"id":"core-js/modules/es.typed-array.uint8-clamped-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-clamped-array.js"},{"id":"core-js/modules/es.weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-map.js"},{"id":"core-js/modules/es.weak-set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-set.js"},{"id":"core-js/modules/web.dom-collections.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.for-each.js"},{"id":"core-js/modules/web.dom-collections.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.iterator.js"},{"id":"core-js/modules/web.immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.immediate.js"},{"id":"core-js/modules/web.queue-microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.queue-microtask.js"},{"id":"core-js/modules/web.timers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.timers.js"},{"id":"core-js/modules/web.url-search-params.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url-search-params.js"},{"id":"core-js/modules/web.url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.js"},{"id":"core-js/modules/web.url.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.to-json.js"},{"id":"core-js/stable/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/stable/index.js"},{"id":"core-js/web/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/web/index.js"},{"id":"datatables.net-bs4/js/dataTables.bootstrap4.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/datatables.net-bs4/js/dataTables.bootstrap4.js"},{"id":"datatables.net-responsive-bs4/js/responsive.bootstrap4.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/datatables.net-responsive-bs4/js/responsive.bootstrap4.js"},{"id":"datatables.net-responsive/js/dataTables.responsive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net-responsive/License.txt"}],"src_url":"/static/jssources/datatables.net-responsive/js/dataTables.responsive.js"},{"id":"datatables.net/js/jquery.dataTables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net/License.txt"}],"src_url":"/static/jssources/datatables.net/js/jquery.dataTables.js"},{"id":"iframe-resizer/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/index.js"},{"id":"iframe-resizer/js/iframeResizer.contentWindow.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.contentWindow.js"},{"id":"iframe-resizer/js/iframeResizer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.js"},{"id":"iframe-resizer/js/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/index.js"},{"id":"jquery/dist/jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/jquery/LICENSE.txt"}],"src_url":"/static/jssources/jquery/dist/jquery.js"},{"id":"js-cookie/src/js.cookie.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/src/js.cookie.js"},{"id":"popper.js/dist/esm/popper.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/popper.js/dist/esm/popper.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"swh/web/assets/src/bundles/vendors/elementsfrompoint-polyfill.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vendors/elementsfrompoint-polyfill.js"},{"id":"swh/web/assets/src/bundles/vendors/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vendors/index.js"},{"id":"whatwg-fetch/dist/fetch.umd.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/whatwg-fetch/LICENSE.txt"}],"src_url":"/static/jssources/whatwg-fetch/dist/fetch.umd.js"}],"/static/js/webapp.0afe58b813354c5e6ded.js":[{"id":"@babel/runtime/helpers/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/asyncToGenerator.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"@sentry/browser/esm/backend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/backend.js"},{"id":"@sentry/browser/esm/client.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/client.js"},{"id":"@sentry/browser/esm/eventbuilder.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/eventbuilder.js"},{"id":"@sentry/browser/esm/helpers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/helpers.js"},{"id":"@sentry/browser/esm/integrations/breadcrumbs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/breadcrumbs.js"},{"id":"@sentry/browser/esm/integrations/globalhandlers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/globalhandlers.js"},{"id":"@sentry/browser/esm/integrations/linkederrors.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/linkederrors.js"},{"id":"@sentry/browser/esm/integrations/trycatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/trycatch.js"},{"id":"@sentry/browser/esm/integrations/useragent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/useragent.js"},{"id":"@sentry/browser/esm/parsers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/parsers.js"},{"id":"@sentry/browser/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/sdk.js"},{"id":"@sentry/browser/esm/tracekit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/tracekit.js"},{"id":"@sentry/browser/esm/transports/base.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/base.js"},{"id":"@sentry/browser/esm/transports/fetch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/fetch.js"},{"id":"@sentry/browser/esm/transports/xhr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/xhr.js"},{"id":"@sentry/browser/esm/version.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/version.js"},{"id":"@sentry/core/esm/api.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/api.js"},{"id":"@sentry/core/esm/basebackend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/basebackend.js"},{"id":"@sentry/core/esm/baseclient.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/baseclient.js"},{"id":"@sentry/core/esm/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/index.js"},{"id":"@sentry/core/esm/integration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integration.js"},{"id":"@sentry/core/esm/integrations/functiontostring.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/functiontostring.js"},{"id":"@sentry/core/esm/integrations/inboundfilters.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/inboundfilters.js"},{"id":"@sentry/core/esm/integrations/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/index.js"},{"id":"@sentry/core/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/sdk.js"},{"id":"@sentry/core/esm/transports/noop.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/transports/noop.js"},{"id":"@sentry/hub/esm/hub.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/hub.js"},{"id":"@sentry/hub/esm/scope.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/scope.js"},{"id":"@sentry/minimal/esm/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/minimal/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/minimal/esm/index.js"},{"id":"@sentry/types/esm/severity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/types/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/types/esm/severity.js"},{"id":"@sentry/types/esm/status.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/types/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/types/esm/status.js"},{"id":"@sentry/utils/esm/dsn.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/dsn.js"},{"id":"@sentry/utils/esm/error.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/error.js"},{"id":"@sentry/utils/esm/instrument.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/instrument.js"},{"id":"@sentry/utils/esm/is.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/is.js"},{"id":"@sentry/utils/esm/logger.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/logger.js"},{"id":"@sentry/utils/esm/memo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/memo.js"},{"id":"@sentry/utils/esm/misc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/misc.js"},{"id":"@sentry/utils/esm/object.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/object.js"},{"id":"@sentry/utils/esm/polyfill.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/polyfill.js"},{"id":"@sentry/utils/esm/promisebuffer.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/promisebuffer.js"},{"id":"@sentry/utils/esm/string.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/string.js"},{"id":"@sentry/utils/esm/supports.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/supports.js"},{"id":"@sentry/utils/esm/syncpromise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/syncpromise.js"},{"id":"ansi_up/ansi_up.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/ansi_up/LICENSE.txt"}],"src_url":"/static/jssources/ansi_up/ansi_up.js"},{"id":"dompurify/dist/purify.js","licenses":[{"name":"Mozilla Public License 2.0","url":"http://www.mozilla.org/MPL/2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"},{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"}],"src_url":"/static/jssources/dompurify/dist/purify.js"},{"id":"he/he.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/he/LICENSE-MIT.txt.txt"}],"src_url":"/static/jssources/he/he.js"},{"id":"html-encoder-decoder/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/html-encoder-decoder/LICENSE.txt"}],"src_url":"/static/jssources/html-encoder-decoder/lib/index.js"},{"id":"iterate-object/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iterate-object/LICENSE.txt"}],"src_url":"/static/jssources/iterate-object/lib/index.js"},{"id":"notebookjs/notebook.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/notebookjs/LICENSE.txt"}],"src_url":"/static/jssources/notebookjs/notebook.js"},{"id":"object-fit-images/dist/ofi.common-js.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/object-fit-images/license.txt"}],"src_url":"/static/jssources/object-fit-images/dist/ofi.common-js.js"},{"id":"process/browser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/process/LICENSE.txt"}],"src_url":"/static/jssources/process/browser.js"},{"id":"regex-escape/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regex-escape/LICENSE.txt"}],"src_url":"/static/jssources/regex-escape/lib/index.js"},{"id":"script-loader/addScript.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/script-loader/LICENSE.txt"}],"src_url":"/static/jssources/script-loader/addScript.js"},{"id":"swh/web/assets/src/bundles/webapp/badges.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/badges.js"},{"id":"swh/web/assets/src/bundles/webapp/code-highlighting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/code-highlighting.js"},{"id":"swh/web/assets/src/bundles/webapp/history-counters.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/history-counters.js"},{"id":"swh/web/assets/src/bundles/webapp/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/index.js"},{"id":"swh/web/assets/src/bundles/webapp/notebook-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/notebook-rendering.js"},{"id":"swh/web/assets/src/bundles/webapp/pdf-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/pdf-rendering.js"},{"id":"swh/web/assets/src/bundles/webapp/readme-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/readme-rendering.js"},{"id":"swh/web/assets/src/bundles/webapp/sentry.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/sentry.js"},{"id":"swh/web/assets/src/bundles/webapp/webapp-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/webapp-utils.js"},{"id":"swh/web/assets/src/bundles/webapp/xss-filtering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/webapp/xss-filtering.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"},{"id":"tslib/tslib.es6.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/tslib/LICENSE.txt"}],"src_url":"/static/jssources/tslib/tslib.es6.js"}],"/static/js/admin.a0c3e72ca2ba4cd0be4d.js":[{"id":"swh/web/assets/src/bundles/admin/deposit.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/admin/deposit.js"},{"id":"swh/web/assets/src/bundles/admin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/admin/index.js"},{"id":"swh/web/assets/src/bundles/admin/origin-save.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/admin/origin-save.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"}],"/static/js/browse.f94437a6b169adb8e3c7.js":[{"id":"clipboard/dist/clipboard.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/clipboard/dist/clipboard.js"},{"id":"swh/web/assets/src/bundles/browse/browse-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/browse-utils.js"},{"id":"swh/web/assets/src/bundles/browse/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/index.js"},{"id":"swh/web/assets/src/bundles/browse/origin-search.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/origin-search.js"},{"id":"swh/web/assets/src/bundles/browse/snapshot-navigation.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/snapshot-navigation.js"},{"id":"swh/web/assets/src/bundles/browse/swh-ids-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/browse/swh-ids-utils.js"},{"id":"swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js","licenses":[{"name":"GNU General Public License (GPL) version 3","url":"http://www.gnu.org/licenses/gpl-3.0.html","copy_url":"/static/jssources/swh/web/assets/src/thirdparty/jquery.tabSlideOut/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"}],"/static/js/revision.65bbd43a3b3458f9ebcc.js":[{"id":"@babel/runtime/helpers/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/asyncToGenerator.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"swh/web/assets/src/bundles/revision/diff-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/revision/diff-utils.js"},{"id":"swh/web/assets/src/bundles/revision/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/revision/index.js"},{"id":"swh/web/assets/src/bundles/revision/log-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/revision/log-utils.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"},{"id":"waypoints/lib/jquery.waypoints.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/waypoints/licenses.txt.txt"}],"src_url":"/static/jssources/waypoints/lib/jquery.waypoints.js"}],"/static/js/save.a9da031fcf6aac529058.js":[{"id":"swh/web/assets/src/bundles/save/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/save/index.js"},{"id":"swh/web/assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/constants.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"},{"id":"validate.js/validate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/validate.js/LICENSE.txt"}],"src_url":"/static/jssources/validate.js/validate.js"}],"/static/js/vault.4a7e12be1c0d2a47b149.js":[{"id":"swh/web/assets/src/bundles/vault/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vault/index.js"},{"id":"swh/web/assets/src/bundles/vault/vault-create-tasks.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vault/vault-create-tasks.js"},{"id":"swh/web/assets/src/bundles/vault/vault-ui.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/vault/vault-ui.js"},{"id":"swh/web/assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/functions.js"}],"/static/js/origin.ade863ca79c843d2b12c.js":[{"id":"@babel/runtime/helpers/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/asyncToGenerator.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js"},{"id":"@babel/runtime/node_modules/regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"js-year-calendar/dist/js-year-calendar.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/js-year-calendar/LICENSE.txt"}],"src_url":"/static/jssources/js-year-calendar/dist/js-year-calendar.js"},{"id":"swh/web/assets/src/bundles/origin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/index.js"},{"id":"swh/web/assets/src/bundles/origin/visits-calendar.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/visits-calendar.js"},{"id":"swh/web/assets/src/bundles/origin/visits-histogram.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/visits-histogram.js"},{"id":"swh/web/assets/src/bundles/origin/visits-reporting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/bundles/origin/visits-reporting.js"}],"/static/js/highlightjs.013f2b69313022f30437.js":[{"id":"highlight.js/lib/highlight.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/highlight.js"},{"id":"highlight.js/lib/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/index.js"},{"id":"highlight.js/lib/languages/1c.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/1c.js"},{"id":"highlight.js/lib/languages/abnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/abnf.js"},{"id":"highlight.js/lib/languages/accesslog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/accesslog.js"},{"id":"highlight.js/lib/languages/actionscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/actionscript.js"},{"id":"highlight.js/lib/languages/ada.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ada.js"},{"id":"highlight.js/lib/languages/angelscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/angelscript.js"},{"id":"highlight.js/lib/languages/apache.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/apache.js"},{"id":"highlight.js/lib/languages/applescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/applescript.js"},{"id":"highlight.js/lib/languages/arcade.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arcade.js"},{"id":"highlight.js/lib/languages/arduino.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arduino.js"},{"id":"highlight.js/lib/languages/armasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/armasm.js"},{"id":"highlight.js/lib/languages/asciidoc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/asciidoc.js"},{"id":"highlight.js/lib/languages/aspectj.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/aspectj.js"},{"id":"highlight.js/lib/languages/autohotkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autohotkey.js"},{"id":"highlight.js/lib/languages/autoit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autoit.js"},{"id":"highlight.js/lib/languages/avrasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/avrasm.js"},{"id":"highlight.js/lib/languages/awk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/awk.js"},{"id":"highlight.js/lib/languages/axapta.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/axapta.js"},{"id":"highlight.js/lib/languages/bash.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bash.js"},{"id":"highlight.js/lib/languages/basic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/basic.js"},{"id":"highlight.js/lib/languages/bnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bnf.js"},{"id":"highlight.js/lib/languages/brainfuck.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/brainfuck.js"},{"id":"highlight.js/lib/languages/cal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cal.js"},{"id":"highlight.js/lib/languages/capnproto.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/capnproto.js"},{"id":"highlight.js/lib/languages/ceylon.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ceylon.js"},{"id":"highlight.js/lib/languages/clean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clean.js"},{"id":"highlight.js/lib/languages/clojure-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure-repl.js"},{"id":"highlight.js/lib/languages/clojure.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure.js"},{"id":"highlight.js/lib/languages/cmake.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cmake.js"},{"id":"highlight.js/lib/languages/coffeescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coffeescript.js"},{"id":"highlight.js/lib/languages/coq.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coq.js"},{"id":"highlight.js/lib/languages/cos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cos.js"},{"id":"highlight.js/lib/languages/cpp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cpp.js"},{"id":"highlight.js/lib/languages/crmsh.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crmsh.js"},{"id":"highlight.js/lib/languages/crystal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crystal.js"},{"id":"highlight.js/lib/languages/cs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cs.js"},{"id":"highlight.js/lib/languages/csp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/csp.js"},{"id":"highlight.js/lib/languages/css.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/css.js"},{"id":"highlight.js/lib/languages/d.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/d.js"},{"id":"highlight.js/lib/languages/dart.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dart.js"},{"id":"highlight.js/lib/languages/delphi.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/delphi.js"},{"id":"highlight.js/lib/languages/diff.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/diff.js"},{"id":"highlight.js/lib/languages/django.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/django.js"},{"id":"highlight.js/lib/languages/dns.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dns.js"},{"id":"highlight.js/lib/languages/dockerfile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dockerfile.js"},{"id":"highlight.js/lib/languages/dos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dos.js"},{"id":"highlight.js/lib/languages/dsconfig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dsconfig.js"},{"id":"highlight.js/lib/languages/dts.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dts.js"},{"id":"highlight.js/lib/languages/dust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dust.js"},{"id":"highlight.js/lib/languages/ebnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ebnf.js"},{"id":"highlight.js/lib/languages/elixir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elixir.js"},{"id":"highlight.js/lib/languages/elm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elm.js"},{"id":"highlight.js/lib/languages/erb.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erb.js"},{"id":"highlight.js/lib/languages/erlang-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang-repl.js"},{"id":"highlight.js/lib/languages/erlang.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang.js"},{"id":"highlight.js/lib/languages/excel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/excel.js"},{"id":"highlight.js/lib/languages/fix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fix.js"},{"id":"highlight.js/lib/languages/flix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/flix.js"},{"id":"highlight.js/lib/languages/fortran.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fortran.js"},{"id":"highlight.js/lib/languages/fsharp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fsharp.js"},{"id":"highlight.js/lib/languages/gams.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gams.js"},{"id":"highlight.js/lib/languages/gauss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gauss.js"},{"id":"highlight.js/lib/languages/gcode.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gcode.js"},{"id":"highlight.js/lib/languages/gherkin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gherkin.js"},{"id":"highlight.js/lib/languages/glsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/glsl.js"},{"id":"highlight.js/lib/languages/gml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gml.js"},{"id":"highlight.js/lib/languages/go.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/go.js"},{"id":"highlight.js/lib/languages/golo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/golo.js"},{"id":"highlight.js/lib/languages/gradle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gradle.js"},{"id":"highlight.js/lib/languages/groovy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/groovy.js"},{"id":"highlight.js/lib/languages/haml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haml.js"},{"id":"highlight.js/lib/languages/handlebars.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/handlebars.js"},{"id":"highlight.js/lib/languages/haskell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haskell.js"},{"id":"highlight.js/lib/languages/haxe.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haxe.js"},{"id":"highlight.js/lib/languages/hsp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hsp.js"},{"id":"highlight.js/lib/languages/htmlbars.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/htmlbars.js"},{"id":"highlight.js/lib/languages/http.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/http.js"},{"id":"highlight.js/lib/languages/hy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hy.js"},{"id":"highlight.js/lib/languages/inform7.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/inform7.js"},{"id":"highlight.js/lib/languages/ini.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ini.js"},{"id":"highlight.js/lib/languages/irpf90.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/irpf90.js"},{"id":"highlight.js/lib/languages/isbl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/isbl.js"},{"id":"highlight.js/lib/languages/java.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/java.js"},{"id":"highlight.js/lib/languages/javascript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/javascript.js"},{"id":"highlight.js/lib/languages/jboss-cli.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/jboss-cli.js"},{"id":"highlight.js/lib/languages/json.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/json.js"},{"id":"highlight.js/lib/languages/julia-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia-repl.js"},{"id":"highlight.js/lib/languages/julia.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia.js"},{"id":"highlight.js/lib/languages/kotlin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/kotlin.js"},{"id":"highlight.js/lib/languages/lasso.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lasso.js"},{"id":"highlight.js/lib/languages/ldif.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ldif.js"},{"id":"highlight.js/lib/languages/leaf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/leaf.js"},{"id":"highlight.js/lib/languages/less.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/less.js"},{"id":"highlight.js/lib/languages/lisp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lisp.js"},{"id":"highlight.js/lib/languages/livecodeserver.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livecodeserver.js"},{"id":"highlight.js/lib/languages/livescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livescript.js"},{"id":"highlight.js/lib/languages/llvm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/llvm.js"},{"id":"highlight.js/lib/languages/lsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lsl.js"},{"id":"highlight.js/lib/languages/lua.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lua.js"},{"id":"highlight.js/lib/languages/makefile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/makefile.js"},{"id":"highlight.js/lib/languages/markdown.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/markdown.js"},{"id":"highlight.js/lib/languages/mathematica.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mathematica.js"},{"id":"highlight.js/lib/languages/matlab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/matlab.js"},{"id":"highlight.js/lib/languages/maxima.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/maxima.js"},{"id":"highlight.js/lib/languages/mel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mel.js"},{"id":"highlight.js/lib/languages/mercury.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mercury.js"},{"id":"highlight.js/lib/languages/mipsasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mipsasm.js"},{"id":"highlight.js/lib/languages/mizar.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mizar.js"},{"id":"highlight.js/lib/languages/mojolicious.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mojolicious.js"},{"id":"highlight.js/lib/languages/monkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/monkey.js"},{"id":"highlight.js/lib/languages/moonscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/moonscript.js"},{"id":"highlight.js/lib/languages/n1ql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/n1ql.js"},{"id":"highlight.js/lib/languages/nginx.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nginx.js"},{"id":"highlight.js/lib/languages/nimrod.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nimrod.js"},{"id":"highlight.js/lib/languages/nix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nix.js"},{"id":"highlight.js/lib/languages/nsis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nsis.js"},{"id":"highlight.js/lib/languages/objectivec.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/objectivec.js"},{"id":"highlight.js/lib/languages/ocaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ocaml.js"},{"id":"highlight.js/lib/languages/openscad.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/openscad.js"},{"id":"highlight.js/lib/languages/oxygene.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/oxygene.js"},{"id":"highlight.js/lib/languages/parser3.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/parser3.js"},{"id":"highlight.js/lib/languages/perl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/perl.js"},{"id":"highlight.js/lib/languages/pf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pf.js"},{"id":"highlight.js/lib/languages/pgsql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pgsql.js"},{"id":"highlight.js/lib/languages/php.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/php.js"},{"id":"highlight.js/lib/languages/plaintext.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/plaintext.js"},{"id":"highlight.js/lib/languages/pony.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pony.js"},{"id":"highlight.js/lib/languages/powershell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/powershell.js"},{"id":"highlight.js/lib/languages/processing.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/processing.js"},{"id":"highlight.js/lib/languages/profile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/profile.js"},{"id":"highlight.js/lib/languages/prolog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/prolog.js"},{"id":"highlight.js/lib/languages/properties.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/properties.js"},{"id":"highlight.js/lib/languages/protobuf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/protobuf.js"},{"id":"highlight.js/lib/languages/puppet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/puppet.js"},{"id":"highlight.js/lib/languages/purebasic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/purebasic.js"},{"id":"highlight.js/lib/languages/python.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/python.js"},{"id":"highlight.js/lib/languages/q.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/q.js"},{"id":"highlight.js/lib/languages/qml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/qml.js"},{"id":"highlight.js/lib/languages/r.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/r.js"},{"id":"highlight.js/lib/languages/reasonml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/reasonml.js"},{"id":"highlight.js/lib/languages/rib.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rib.js"},{"id":"highlight.js/lib/languages/roboconf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/roboconf.js"},{"id":"highlight.js/lib/languages/routeros.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/routeros.js"},{"id":"highlight.js/lib/languages/rsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rsl.js"},{"id":"highlight.js/lib/languages/ruby.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruby.js"},{"id":"highlight.js/lib/languages/ruleslanguage.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruleslanguage.js"},{"id":"highlight.js/lib/languages/rust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rust.js"},{"id":"highlight.js/lib/languages/sas.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sas.js"},{"id":"highlight.js/lib/languages/scala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scala.js"},{"id":"highlight.js/lib/languages/scheme.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scheme.js"},{"id":"highlight.js/lib/languages/scilab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scilab.js"},{"id":"highlight.js/lib/languages/scss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scss.js"},{"id":"highlight.js/lib/languages/shell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/shell.js"},{"id":"highlight.js/lib/languages/smali.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smali.js"},{"id":"highlight.js/lib/languages/smalltalk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smalltalk.js"},{"id":"highlight.js/lib/languages/sml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sml.js"},{"id":"highlight.js/lib/languages/sqf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sqf.js"},{"id":"highlight.js/lib/languages/sql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sql.js"},{"id":"highlight.js/lib/languages/stan.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stan.js"},{"id":"highlight.js/lib/languages/stata.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stata.js"},{"id":"highlight.js/lib/languages/step21.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/step21.js"},{"id":"highlight.js/lib/languages/stylus.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stylus.js"},{"id":"highlight.js/lib/languages/subunit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/subunit.js"},{"id":"highlight.js/lib/languages/swift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/swift.js"},{"id":"highlight.js/lib/languages/taggerscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/taggerscript.js"},{"id":"highlight.js/lib/languages/tap.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tap.js"},{"id":"highlight.js/lib/languages/tcl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tcl.js"},{"id":"highlight.js/lib/languages/tex.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tex.js"},{"id":"highlight.js/lib/languages/thrift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/thrift.js"},{"id":"highlight.js/lib/languages/tp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tp.js"},{"id":"highlight.js/lib/languages/twig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/twig.js"},{"id":"highlight.js/lib/languages/typescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/typescript.js"},{"id":"highlight.js/lib/languages/vala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vala.js"},{"id":"highlight.js/lib/languages/vbnet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbnet.js"},{"id":"highlight.js/lib/languages/vbscript-html.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript-html.js"},{"id":"highlight.js/lib/languages/vbscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript.js"},{"id":"highlight.js/lib/languages/verilog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/verilog.js"},{"id":"highlight.js/lib/languages/vhdl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vhdl.js"},{"id":"highlight.js/lib/languages/vim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vim.js"},{"id":"highlight.js/lib/languages/x86asm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/x86asm.js"},{"id":"highlight.js/lib/languages/xl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xl.js"},{"id":"highlight.js/lib/languages/xml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xml.js"},{"id":"highlight.js/lib/languages/xquery.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xquery.js"},{"id":"highlight.js/lib/languages/yaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/yaml.js"},{"id":"highlight.js/lib/languages/zephir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/zephir.js"},{"id":"highlightjs-line-numbers.js/src/highlightjs-line-numbers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-line-numbers.js/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-line-numbers.js/src/highlightjs-line-numbers.js"},{"id":"swh/web/assets/src/utils/highlightjs.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/highlightjs.js"}],"/static/js/d3.1a77dc57ed5902be8bf5.js":[{"id":"d3-array/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/array.js"},{"id":"d3-array/src/ascending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ascending.js"},{"id":"d3-array/src/bisect.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisect.js"},{"id":"d3-array/src/bisector.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisector.js"},{"id":"d3-array/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/constant.js"},{"id":"d3-array/src/cross.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/cross.js"},{"id":"d3-array/src/descending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/descending.js"},{"id":"d3-array/src/deviation.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/deviation.js"},{"id":"d3-array/src/extent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/extent.js"},{"id":"d3-array/src/histogram.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/histogram.js"},{"id":"d3-array/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/identity.js"},{"id":"d3-array/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/index.js"},{"id":"d3-array/src/max.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/max.js"},{"id":"d3-array/src/mean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/mean.js"},{"id":"d3-array/src/median.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/median.js"},{"id":"d3-array/src/merge.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/merge.js"},{"id":"d3-array/src/min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/min.js"},{"id":"d3-array/src/number.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/number.js"},{"id":"d3-array/src/pairs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/pairs.js"},{"id":"d3-array/src/permute.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/permute.js"},{"id":"d3-array/src/quantile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/quantile.js"},{"id":"d3-array/src/range.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/range.js"},{"id":"d3-array/src/scan.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/scan.js"},{"id":"d3-array/src/shuffle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/shuffle.js"},{"id":"d3-array/src/sum.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/sum.js"},{"id":"d3-array/src/threshold/freedmanDiaconis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/freedmanDiaconis.js"},{"id":"d3-array/src/threshold/scott.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/scott.js"},{"id":"d3-array/src/threshold/sturges.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/sturges.js"},{"id":"d3-array/src/ticks.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ticks.js"},{"id":"d3-array/src/transpose.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/transpose.js"},{"id":"d3-array/src/variance.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/variance.js"},{"id":"d3-array/src/zip.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/zip.js"},{"id":"d3-axis/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/array.js"},{"id":"d3-axis/src/axis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/axis.js"},{"id":"d3-axis/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/identity.js"},{"id":"d3-axis/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/index.js"},{"id":"d3-collection/src/entries.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/entries.js"},{"id":"d3-collection/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/index.js"},{"id":"d3-collection/src/keys.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/keys.js"},{"id":"d3-collection/src/map.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/map.js"},{"id":"d3-collection/src/nest.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/nest.js"},{"id":"d3-collection/src/set.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/set.js"},{"id":"d3-collection/src/values.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-collection/LICENSE.txt"}],"src_url":"/static/jssources/d3-collection/src/values.js"},{"id":"d3-color/src/color.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/color.js"},{"id":"d3-color/src/cubehelix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/cubehelix.js"},{"id":"d3-color/src/define.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/define.js"},{"id":"d3-color/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/index.js"},{"id":"d3-color/src/lab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/lab.js"},{"id":"d3-color/src/math.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/math.js"},{"id":"d3-dispatch/src/dispatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-dispatch/LICENSE.txt"}],"src_url":"/static/jssources/d3-dispatch/src/dispatch.js"},{"id":"d3-dispatch/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-dispatch/LICENSE.txt"}],"src_url":"/static/jssources/d3-dispatch/src/index.js"},{"id":"d3-ease/src/back.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/back.js"},{"id":"d3-ease/src/bounce.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/bounce.js"},{"id":"d3-ease/src/circle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/circle.js"},{"id":"d3-ease/src/cubic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/cubic.js"},{"id":"d3-ease/src/elastic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/elastic.js"},{"id":"d3-ease/src/exp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/exp.js"},{"id":"d3-ease/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/index.js"},{"id":"d3-ease/src/linear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/linear.js"},{"id":"d3-ease/src/poly.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/poly.js"},{"id":"d3-ease/src/quad.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/quad.js"},{"id":"d3-ease/src/sin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/sin.js"},{"id":"d3-format/src/defaultLocale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/defaultLocale.js"},{"id":"d3-format/src/exponent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/exponent.js"},{"id":"d3-format/src/formatDecimal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatDecimal.js"},{"id":"d3-format/src/formatGroup.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatGroup.js"},{"id":"d3-format/src/formatNumerals.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatNumerals.js"},{"id":"d3-format/src/formatPrefixAuto.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatPrefixAuto.js"},{"id":"d3-format/src/formatRounded.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatRounded.js"},{"id":"d3-format/src/formatSpecifier.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatSpecifier.js"},{"id":"d3-format/src/formatTrim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTrim.js"},{"id":"d3-format/src/formatTypes.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTypes.js"},{"id":"d3-format/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/identity.js"},{"id":"d3-format/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/index.js"},{"id":"d3-format/src/locale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/locale.js"},{"id":"d3-format/src/precisionFixed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionFixed.js"},{"id":"d3-format/src/precisionPrefix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionPrefix.js"},{"id":"d3-format/src/precisionRound.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionRound.js"},{"id":"d3-interpolate/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/array.js"},{"id":"d3-interpolate/src/basis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basis.js"},{"id":"d3-interpolate/src/basisClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basisClosed.js"},{"id":"d3-interpolate/src/color.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/color.js"},{"id":"d3-interpolate/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/constant.js"},{"id":"d3-interpolate/src/cubehelix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/cubehelix.js"},{"id":"d3-interpolate/src/date.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/date.js"},{"id":"d3-interpolate/src/discrete.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/discrete.js"},{"id":"d3-interpolate/src/hcl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/hcl.js"},{"id":"d3-interpolate/src/hsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/hsl.js"},{"id":"d3-interpolate/src/hue.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/hue.js"},{"id":"d3-interpolate/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/index.js"},{"id":"d3-interpolate/src/lab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/lab.js"},{"id":"d3-interpolate/src/number.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/number.js"},{"id":"d3-interpolate/src/object.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/object.js"},{"id":"d3-interpolate/src/piecewise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/piecewise.js"},{"id":"d3-interpolate/src/quantize.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/quantize.js"},{"id":"d3-interpolate/src/rgb.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/rgb.js"},{"id":"d3-interpolate/src/round.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/round.js"},{"id":"d3-interpolate/src/string.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/string.js"},{"id":"d3-interpolate/src/transform/decompose.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/decompose.js"},{"id":"d3-interpolate/src/transform/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/index.js"},{"id":"d3-interpolate/src/transform/parse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/parse.js"},{"id":"d3-interpolate/src/value.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/value.js"},{"id":"d3-interpolate/src/zoom.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/zoom.js"},{"id":"d3-path/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-path/LICENSE.txt"}],"src_url":"/static/jssources/d3-path/src/index.js"},{"id":"d3-path/src/path.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-path/LICENSE.txt"}],"src_url":"/static/jssources/d3-path/src/path.js"},{"id":"d3-scale/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/array.js"},{"id":"d3-scale/src/band.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/band.js"},{"id":"d3-scale/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/constant.js"},{"id":"d3-scale/src/continuous.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/continuous.js"},{"id":"d3-scale/src/diverging.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/diverging.js"},{"id":"d3-scale/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/identity.js"},{"id":"d3-scale/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/index.js"},{"id":"d3-scale/src/init.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/init.js"},{"id":"d3-scale/src/linear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/linear.js"},{"id":"d3-scale/src/log.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/log.js"},{"id":"d3-scale/src/nice.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/nice.js"},{"id":"d3-scale/src/number.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/number.js"},{"id":"d3-scale/src/ordinal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/ordinal.js"},{"id":"d3-scale/src/pow.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/pow.js"},{"id":"d3-scale/src/quantile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantile.js"},{"id":"d3-scale/src/quantize.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantize.js"},{"id":"d3-scale/src/sequential.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequential.js"},{"id":"d3-scale/src/sequentialQuantile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequentialQuantile.js"},{"id":"d3-scale/src/symlog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/symlog.js"},{"id":"d3-scale/src/threshold.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/threshold.js"},{"id":"d3-scale/src/tickFormat.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/tickFormat.js"},{"id":"d3-scale/src/time.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/time.js"},{"id":"d3-scale/src/utcTime.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/utcTime.js"},{"id":"d3-selection/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/constant.js"},{"id":"d3-selection/src/create.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/create.js"},{"id":"d3-selection/src/creator.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/creator.js"},{"id":"d3-selection/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/index.js"},{"id":"d3-selection/src/local.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/local.js"},{"id":"d3-selection/src/matcher.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/matcher.js"},{"id":"d3-selection/src/mouse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/mouse.js"},{"id":"d3-selection/src/namespace.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespace.js"},{"id":"d3-selection/src/namespaces.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespaces.js"},{"id":"d3-selection/src/point.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/point.js"},{"id":"d3-selection/src/select.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/select.js"},{"id":"d3-selection/src/selectAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectAll.js"},{"id":"d3-selection/src/selection/append.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/append.js"},{"id":"d3-selection/src/selection/attr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/attr.js"},{"id":"d3-selection/src/selection/call.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/call.js"},{"id":"d3-selection/src/selection/classed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/classed.js"},{"id":"d3-selection/src/selection/clone.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/clone.js"},{"id":"d3-selection/src/selection/data.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/data.js"},{"id":"d3-selection/src/selection/datum.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/datum.js"},{"id":"d3-selection/src/selection/dispatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/dispatch.js"},{"id":"d3-selection/src/selection/each.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/each.js"},{"id":"d3-selection/src/selection/empty.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/empty.js"},{"id":"d3-selection/src/selection/enter.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/enter.js"},{"id":"d3-selection/src/selection/exit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/exit.js"},{"id":"d3-selection/src/selection/filter.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/filter.js"},{"id":"d3-selection/src/selection/html.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/html.js"},{"id":"d3-selection/src/selection/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/index.js"},{"id":"d3-selection/src/selection/insert.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/insert.js"},{"id":"d3-selection/src/selection/join.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/join.js"},{"id":"d3-selection/src/selection/lower.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/lower.js"},{"id":"d3-selection/src/selection/merge.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/merge.js"},{"id":"d3-selection/src/selection/node.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/node.js"},{"id":"d3-selection/src/selection/nodes.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/nodes.js"},{"id":"d3-selection/src/selection/on.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/on.js"},{"id":"d3-selection/src/selection/order.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/order.js"},{"id":"d3-selection/src/selection/property.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/property.js"},{"id":"d3-selection/src/selection/raise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/raise.js"},{"id":"d3-selection/src/selection/remove.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/remove.js"},{"id":"d3-selection/src/selection/select.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/select.js"},{"id":"d3-selection/src/selection/selectAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectAll.js"},{"id":"d3-selection/src/selection/size.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/size.js"},{"id":"d3-selection/src/selection/sort.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sort.js"},{"id":"d3-selection/src/selection/sparse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sparse.js"},{"id":"d3-selection/src/selection/style.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/style.js"},{"id":"d3-selection/src/selection/text.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/text.js"},{"id":"d3-selection/src/selector.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selector.js"},{"id":"d3-selection/src/selectorAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectorAll.js"},{"id":"d3-selection/src/sourceEvent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/sourceEvent.js"},{"id":"d3-selection/src/touch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/touch.js"},{"id":"d3-selection/src/touches.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/touches.js"},{"id":"d3-selection/src/window.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/window.js"},{"id":"d3-shape/src/arc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/arc.js"},{"id":"d3-shape/src/area.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/area.js"},{"id":"d3-shape/src/areaRadial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/areaRadial.js"},{"id":"d3-shape/src/array.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/array.js"},{"id":"d3-shape/src/constant.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/constant.js"},{"id":"d3-shape/src/curve/basis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basis.js"},{"id":"d3-shape/src/curve/basisClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisClosed.js"},{"id":"d3-shape/src/curve/basisOpen.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisOpen.js"},{"id":"d3-shape/src/curve/bundle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/bundle.js"},{"id":"d3-shape/src/curve/cardinal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinal.js"},{"id":"d3-shape/src/curve/cardinalClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalClosed.js"},{"id":"d3-shape/src/curve/cardinalOpen.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalOpen.js"},{"id":"d3-shape/src/curve/catmullRom.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRom.js"},{"id":"d3-shape/src/curve/catmullRomClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomClosed.js"},{"id":"d3-shape/src/curve/catmullRomOpen.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomOpen.js"},{"id":"d3-shape/src/curve/linear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linear.js"},{"id":"d3-shape/src/curve/linearClosed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linearClosed.js"},{"id":"d3-shape/src/curve/monotone.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/monotone.js"},{"id":"d3-shape/src/curve/natural.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/natural.js"},{"id":"d3-shape/src/curve/radial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/radial.js"},{"id":"d3-shape/src/curve/step.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/step.js"},{"id":"d3-shape/src/descending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/descending.js"},{"id":"d3-shape/src/identity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/identity.js"},{"id":"d3-shape/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/index.js"},{"id":"d3-shape/src/line.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/line.js"},{"id":"d3-shape/src/lineRadial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/lineRadial.js"},{"id":"d3-shape/src/link/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/link/index.js"},{"id":"d3-shape/src/math.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/math.js"},{"id":"d3-shape/src/noop.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/noop.js"},{"id":"d3-shape/src/offset/diverging.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/diverging.js"},{"id":"d3-shape/src/offset/expand.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/expand.js"},{"id":"d3-shape/src/offset/none.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/none.js"},{"id":"d3-shape/src/offset/silhouette.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/silhouette.js"},{"id":"d3-shape/src/offset/wiggle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/wiggle.js"},{"id":"d3-shape/src/order/appearance.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/appearance.js"},{"id":"d3-shape/src/order/ascending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/ascending.js"},{"id":"d3-shape/src/order/descending.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/descending.js"},{"id":"d3-shape/src/order/insideOut.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/insideOut.js"},{"id":"d3-shape/src/order/none.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/none.js"},{"id":"d3-shape/src/order/reverse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/reverse.js"},{"id":"d3-shape/src/pie.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pie.js"},{"id":"d3-shape/src/point.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/point.js"},{"id":"d3-shape/src/pointRadial.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pointRadial.js"},{"id":"d3-shape/src/stack.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/stack.js"},{"id":"d3-shape/src/symbol.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol.js"},{"id":"d3-shape/src/symbol/circle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/circle.js"},{"id":"d3-shape/src/symbol/cross.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/cross.js"},{"id":"d3-shape/src/symbol/diamond.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/diamond.js"},{"id":"d3-shape/src/symbol/square.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/square.js"},{"id":"d3-shape/src/symbol/star.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/star.js"},{"id":"d3-shape/src/symbol/triangle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/triangle.js"},{"id":"d3-shape/src/symbol/wye.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/wye.js"},{"id":"d3-time-format/src/defaultLocale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/defaultLocale.js"},{"id":"d3-time-format/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/index.js"},{"id":"d3-time-format/src/isoFormat.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoFormat.js"},{"id":"d3-time-format/src/isoParse.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoParse.js"},{"id":"d3-time-format/src/locale.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/locale.js"},{"id":"d3-time/src/day.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/day.js"},{"id":"d3-time/src/duration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/duration.js"},{"id":"d3-time/src/hour.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/hour.js"},{"id":"d3-time/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/index.js"},{"id":"d3-time/src/interval.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/interval.js"},{"id":"d3-time/src/millisecond.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/millisecond.js"},{"id":"d3-time/src/minute.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/minute.js"},{"id":"d3-time/src/month.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/month.js"},{"id":"d3-time/src/second.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/second.js"},{"id":"d3-time/src/utcDay.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcDay.js"},{"id":"d3-time/src/utcHour.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcHour.js"},{"id":"d3-time/src/utcMinute.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMinute.js"},{"id":"d3-time/src/utcMonth.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMonth.js"},{"id":"d3-time/src/utcWeek.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcWeek.js"},{"id":"d3-time/src/utcYear.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcYear.js"},{"id":"d3-time/src/week.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/week.js"},{"id":"d3-time/src/year.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/year.js"},{"id":"d3-timer/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/index.js"},{"id":"d3-timer/src/interval.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/interval.js"},{"id":"d3-timer/src/timeout.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timeout.js"},{"id":"d3-timer/src/timer.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timer.js"},{"id":"d3-transition/src/active.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/active.js"},{"id":"d3-transition/src/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/index.js"},{"id":"d3-transition/src/interrupt.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/interrupt.js"},{"id":"d3-transition/src/selection/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/index.js"},{"id":"d3-transition/src/selection/interrupt.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/interrupt.js"},{"id":"d3-transition/src/selection/transition.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/transition.js"},{"id":"d3-transition/src/transition/attr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attr.js"},{"id":"d3-transition/src/transition/attrTween.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attrTween.js"},{"id":"d3-transition/src/transition/delay.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/delay.js"},{"id":"d3-transition/src/transition/duration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/duration.js"},{"id":"d3-transition/src/transition/ease.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/ease.js"},{"id":"d3-transition/src/transition/end.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/end.js"},{"id":"d3-transition/src/transition/filter.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/filter.js"},{"id":"d3-transition/src/transition/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/index.js"},{"id":"d3-transition/src/transition/interpolate.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/interpolate.js"},{"id":"d3-transition/src/transition/merge.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/merge.js"},{"id":"d3-transition/src/transition/on.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/on.js"},{"id":"d3-transition/src/transition/remove.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/remove.js"},{"id":"d3-transition/src/transition/schedule.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/schedule.js"},{"id":"d3-transition/src/transition/select.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/select.js"},{"id":"d3-transition/src/transition/selectAll.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selectAll.js"},{"id":"d3-transition/src/transition/selection.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selection.js"},{"id":"d3-transition/src/transition/style.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/style.js"},{"id":"d3-transition/src/transition/styleTween.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/styleTween.js"},{"id":"d3-transition/src/transition/text.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/text.js"},{"id":"d3-transition/src/transition/transition.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/transition.js"},{"id":"d3-transition/src/transition/tween.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/tween.js"},{"id":"swh/web/assets/src/utils/d3-custom.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/d3-custom.js"},{"id":"swh/web/assets/src/utils/d3.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/d3.js"}],"/static/js/showdown.91aacda56c49ac468692.js":[{"id":"showdown/dist/showdown.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/showdown/license.txt"}],"src_url":"/static/jssources/showdown/dist/showdown.js"},{"id":"swh/web/assets/src/utils/showdown.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/showdown.js"}],"/static/js/org.5174f2b8350d07e203c7.js":[{"id":"org/lib/org.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org.js"},{"id":"org/lib/org/converter/converter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/converter.js"},{"id":"org/lib/org/converter/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/html.js"},{"id":"org/lib/org/lexer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/lexer.js"},{"id":"org/lib/org/node.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/node.js"},{"id":"org/lib/org/parser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/parser.js"},{"id":"org/lib/org/stream.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/stream.js"},{"id":"swh/web/assets/src/utils/org.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/swh/web/assets/src/utils/org.js"}],"/static/js/pdfjs.e7e30b41a87080946820.js":[{"id":"pdfjs-dist/build/pdf.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.js"}],"/static/js/pdf.worker.min.js":[{"id":"pdfjs-dist/build/pdf.worker.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.worker.js"}],"/jsreverse/":[{"id":"jsreverse","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/jsreverse/"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js":[{"id":"MathJax.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/MathJax.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS_HTML.js":[{"id":"config/TeX-AMS_HTML.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/config/TeX-AMS_HTML.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/extensions/MathMenu.js":[{"id":"extensions/MathMenu.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/extensions/MathMenu.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/element/mml/optable/BasicLatin.js":[{"id":"jax/element/mml/optable/BasicLatin.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/element/mml/optable/BasicLatin.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/jax.js":[{"id":"jax/output/HTML-CSS/jax.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/jax.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/fontdata.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/fontdata.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/fontdata.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/autoload/mtable.js":[{"id":"jax/output/HTML-CSS/autoload/mtable.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/autoload/mtable.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/element/mml/optable/MathOperators.js":[{"id":"jax/element/mml/optable/MathOperators.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/element/mml/optable/MathOperators.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/autoload/multiline.js":[{"id":"jax/output/HTML-CSS/autoload/multiline.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/autoload/multiline.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js":[{"id":"jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js"}],"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/jax/element/mml/optable/GeneralPunctuation.js":[{"id":"jax/element/mml/optable/GeneralPunctuation.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":""}],"src_url":"https://raw.githubusercontent.com/mathjax/MathJax/2.7.5/unpacked/jax/element/mml/optable/GeneralPunctuation.js"}]} \ No newline at end of file diff --git a/static/jssources/swh/web/assets/src/bundles/browse/origin-search.js b/static/jssources/swh/web/assets/src/bundles/browse/origin-search.js index 4662ce7d..82683883 100644 --- a/static/jssources/swh/web/assets/src/bundles/browse/origin-search.js +++ b/static/jssources/swh/web/assets/src/bundles/browse/origin-search.js @@ -1,225 +1,225 @@ /** * Copyright (C) 2018-2020 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError} from 'utils/functions'; const limit = 100; let linksPrev = []; let linkNext = null; let linkCurrent = null; let inSearch = false; function parseLinkHeader(s) { let re = /<(.+)>; rel="next"/; return s.match(re)[1]; } function fixTableRowsStyle() { setTimeout(() => { $('#origin-search-results tbody tr').removeAttr('style'); }); } function clearOriginSearchResultsTable() { $('#origin-search-results tbody tr').remove(); } function populateOriginSearchResultsTable(origins) { if (origins.length > 0) { $('#swh-origin-search-results').show(); $('#swh-no-result').hide(); clearOriginSearchResultsTable(); let table = $('#origin-search-results tbody'); for (let [i, origin] of origins.entries()) { let browseUrl = Urls.browse_origin(origin.url); let tableRow = `<tr id="origin-${i}" class="swh-search-result-entry swh-tr-hover-highlight">`; tableRow += `<td style="white-space: nowrap;"><a href="${encodeURI(browseUrl)}">${encodeURI(origin.url)}</a></td>`; tableRow += `<td id="visit-type-origin-${i}" style="width: 120px;"></td>`; tableRow += `<td class="swh-visit-status" id="visit-status-origin-${i}"><i title="Checking visit status" class="fa fa-refresh fa-spin"></i></td>`; tableRow += '</tr>'; table.append(tableRow); // get async latest visit snapshot and update visit status icon let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url); latestSnapshotUrl += '?require_snapshot=true'; fetch(latestSnapshotUrl) .then(response => response.json()) .then(data => { $(`#visit-type-origin-${i}`).text(data.type); $(`#visit-status-origin-${i}`).children().remove(); if (data) { $(`#visit-status-origin-${i}`).append('<i title="Origin has at least one full visit by Software Heritage" class="fa fa-check"></i>'); } else { $(`#visit-status-origin-${i}`).append('<i title="Origin has not yet been visited by Software Heritage or does not have at least one full visit" class="fa fa-times"></i>'); if ($('#swh-filter-empty-visits').prop('checked')) { $(`#origin-${i}`).remove(); } } }); } fixTableRowsStyle(); } else { $('#swh-origin-search-results').hide(); $('#swh-no-result').text('No origins matching the search criteria were found.'); $('#swh-no-result').show(); } if (linkNext === null) { $('#origins-next-results-button').addClass('disabled'); } else { $('#origins-next-results-button').removeClass('disabled'); } if (linksPrev.length === 0) { $('#origins-prev-results-button').addClass('disabled'); } else { $('#origins-prev-results-button').removeClass('disabled'); } inSearch = false; setTimeout(() => { window.scrollTo(0, 0); }); } function searchOriginsFirst(searchQueryText, limit) { let baseSearchUrl; let searchMetadata = $('#swh-search-origin-metadata').prop('checked'); if (searchMetadata) { baseSearchUrl = Urls.api_1_origin_metadata_search() + '?fulltext=' + encodeURIComponent(searchQueryText); } else { - baseSearchUrl = Urls.api_1_origin_search(searchQueryText); + baseSearchUrl = Urls.api_1_origin_search(searchQueryText) + '?'; } let withVisit = $('#swh-search-origins-with-visit').prop('checked'); - let searchUrl = baseSearchUrl + `?limit=${limit}&with_visit=${withVisit}`; + let searchUrl = baseSearchUrl + `&limit=${limit}&with_visit=${withVisit}`; searchOrigins(searchUrl); } function searchOrigins(searchUrl) { clearOriginSearchResultsTable(); $('.swh-loading').addClass('show'); let response = fetch(searchUrl) .then(handleFetchError) .then(resp => { response = resp; return response.json(); }) .then(data => { // Save link to the current results page linkCurrent = searchUrl; // Save link to the next results page. linkNext = null; if (response.headers.has('Link')) { let parsedLink = parseLinkHeader(response.headers.get('Link')); if (parsedLink !== undefined) { linkNext = parsedLink; } } // prevLinks is updated by the caller, which is the one to know if // we're going forward or backward in the pages. $('.swh-loading').removeClass('show'); populateOriginSearchResultsTable(data); }) .catch(response => { $('.swh-loading').removeClass('show'); inSearch = false; $('#swh-origin-search-results').hide(); $('#swh-no-result').text(`Error ${response.status}: ${response.statusText}`); $('#swh-no-result').show(); }); } function doSearch() { $('#swh-no-result').hide(); let searchQueryText = $('#origins-url-patterns').val(); inSearch = true; if (searchQueryText.startsWith('swh:')) { // searchQueryText may be a PID so sending search queries to PID resolve endpoint let resolvePidUrl = Urls.api_1_resolve_swh_pid(searchQueryText); fetch(resolvePidUrl) .then(handleFetchError) .then(response => response.json()) .then(data => { // pid has been successfully resolved, // so redirect to browse page window.location = data.browse_url; }) .catch(response => { // display a useful error message if the input // looks like a swh pid response.json().then(data => { $('#swh-origin-search-results').hide(); $('.swh-search-pagination').hide(); $('#swh-no-result').text(data.reason); $('#swh-no-result').show(); }); }); } else { // otherwise, proceed with origins search $('#swh-origin-search-results').show(); $('.swh-search-pagination').show(); searchOriginsFirst(searchQueryText, limit); } } export function initOriginSearch() { $(document).ready(() => { $('#swh-search-origins').submit(event => { event.preventDefault(); let searchQueryText = $('#origins-url-patterns').val().trim(); let withVisit = $('#swh-search-origins-with-visit').prop('checked'); let withContent = $('#swh-filter-empty-visits').prop('checked'); let searchMetadata = $('#swh-search-origin-metadata').prop('checked'); let queryParameters = '?q=' + encodeURIComponent(searchQueryText); if (withVisit) { queryParameters += '&with_visit'; } if (withContent) { queryParameters += '&with_content'; } if (searchMetadata) { queryParameters += '&search_metadata'; } // Update the url, triggering page reload and effective search window.location.search = queryParameters; }); $('#origins-next-results-button').click(event => { if ($('#origins-next-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; linksPrev.push(linkCurrent); searchOrigins(linkNext); event.preventDefault(); }); $('#origins-prev-results-button').click(event => { if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; searchOrigins(linksPrev.pop()); event.preventDefault(); }); let urlParams = new URLSearchParams(window.location.search); let query = urlParams.get('q'); let withVisit = urlParams.has('with_visit'); let withContent = urlParams.has('with_content'); let searchMetadata = urlParams.has('search_metadata'); if (query) { $('#origins-url-patterns').val(query); $('#swh-search-origins-with-visit').prop('checked', withVisit); $('#swh-filter-empty-visits').prop('checked', withContent); $('#swh-search-origin-metadata').prop('checked', searchMetadata); doSearch(); } }); } diff --git a/static/jssources/swh/web/assets/src/bundles/vault/vault-create-tasks.js b/static/jssources/swh/web/assets/src/bundles/vault/vault-create-tasks.js index fc741677..8238dbc4 100644 --- a/static/jssources/swh/web/assets/src/bundles/vault/vault-create-tasks.js +++ b/static/jssources/swh/web/assets/src/bundles/vault/vault-create-tasks.js @@ -1,121 +1,125 @@ /** * Copyright (C) 2018-2019 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError, csrfPost} from 'utils/functions'; export function vaultRequest(objectType, objectId) { let vaultUrl; if (objectType === 'directory') { vaultUrl = Urls.api_1_vault_cook_directory(objectId); } else { vaultUrl = Urls.api_1_vault_cook_revision_gitfast(objectId); } // check if object has already been cooked fetch(vaultUrl) .then(response => response.json()) .then(data => { // object needs to be cooked - if (data.exception === 'NotFoundExc') { + if (data.exception === 'NotFoundExc' || data.status === 'failed') { + // if last cooking has failed, remove previous task info from localStorage + // in order to force the recooking of the object + swh.vault.removeCookingTaskInfo([objectId]); $(`#vault-cook-${objectType}-modal`).modal('show'); - // object has been cooked and is in the vault cache + // object has been cooked and should be in the vault cache, + // it will be asked to cook it again if it is not } else if (data.status === 'done') { $(`#vault-fetch-${objectType}-modal`).modal('show'); } }); } function addVaultCookingTask(cookingTask) { let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); if (!vaultCookingTasks) { vaultCookingTasks = []; } if (vaultCookingTasks.find(val => { return val.object_type === cookingTask.object_type && val.object_id === cookingTask.object_id; }) === undefined) { let cookingUrl; if (cookingTask.object_type === 'directory') { cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id); } else { cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id); } if (cookingTask.email) { cookingUrl += '?email=' + cookingTask.email; } csrfPost(cookingUrl) .then(handleFetchError) .then(() => { vaultCookingTasks.push(cookingTask); localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); $('#vault-cook-directory-modal').modal('hide'); $('#vault-cook-revision-modal').modal('hide'); window.location = Urls.browse_vault(); }) .catch(() => { $('#vault-cook-directory-modal').modal('hide'); $('#vault-cook-revision-modal').modal('hide'); }); } else { window.location = Urls.browse_vault(); } } function validateEmail(email) { let re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); } export function cookDirectoryArchive(directoryId) { let email = $('#swh-vault-directory-email').val().trim(); if (!email || validateEmail(email)) { let cookingTask = { 'object_type': 'directory', 'object_id': directoryId, 'email': email, 'status': 'new' }; addVaultCookingTask(cookingTask); } else { $('#invalid-email-modal').modal('show'); } } export function fetchDirectoryArchive(directoryId) { $('#vault-fetch-directory-modal').modal('hide'); const vaultUrl = Urls.api_1_vault_cook_directory(directoryId); fetch(vaultUrl) .then(response => response.json()) .then(data => { swh.vault.fetchCookedObject(data.fetch_url); }); } export function cookRevisionArchive(revisionId) { let email = $('#swh-vault-revision-email').val().trim(); if (!email || validateEmail(email)) { let cookingTask = { 'object_type': 'revision', 'object_id': revisionId, 'email': email, 'status': 'new' }; addVaultCookingTask(cookingTask); } else { $('#invalid-email-modal').modal('show'); } } export function fetchRevisionArchive(revisionId) { $('#vault-fetch-directory-modal').modal('hide'); const vaultUrl = Urls.api_1_vault_cook_revision_gitfast(revisionId); fetch(vaultUrl) .then(response => response.json()) .then(data => { swh.vault.fetchCookedObject(data.fetch_url); }); } diff --git a/static/jssources/swh/web/assets/src/bundles/vault/vault-ui.js b/static/jssources/swh/web/assets/src/bundles/vault/vault-ui.js index 213aab1c..0124d514 100644 --- a/static/jssources/swh/web/assets/src/bundles/vault/vault-ui.js +++ b/static/jssources/swh/web/assets/src/bundles/vault/vault-ui.js @@ -1,245 +1,252 @@ /** * Copyright (C) 2018-2019 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions'; let progress = `<div class="progress"> <div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%;height: 100%;"> </div> </div>;`; let pollingInterval = 5000; let checkVaultId; function updateProgressBar(progressBar, cookingTask) { if (cookingTask.status === 'new') { progressBar.css('background-color', 'rgba(128, 128, 128, 0.5)'); } else if (cookingTask.status === 'pending') { progressBar.css('background-color', 'rgba(0, 0, 255, 0.5)'); } else if (cookingTask.status === 'done') { progressBar.css('background-color', '#5cb85c'); } else if (cookingTask.status === 'failed') { progressBar.css('background-color', 'rgba(255, 0, 0, 0.5)'); progressBar.css('background-image', 'none'); } progressBar.text(cookingTask.progress_message || cookingTask.status); if (cookingTask.status === 'new' || cookingTask.status === 'pending') { progressBar.addClass('progress-bar-animated'); } else { progressBar.removeClass('progress-bar-striped'); } } let recookTask; // called when the user wants to download a cooked archive export function fetchCookedObject(fetchUrl) { recookTask = null; // first, check if the link is still available from the vault fetch(fetchUrl) .then(response => { // link is still alive, proceed to download if (response.ok) { $('#vault-fetch-iframe').attr('src', fetchUrl); // link is dead } else { // get the associated cooking task let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); for (let i = 0; i < vaultCookingTasks.length; ++i) { if (vaultCookingTasks[i].fetch_url === fetchUrl) { recookTask = vaultCookingTasks[i]; break; } } // display a modal asking the user if he wants to recook the archive $('#vault-recook-object-modal').modal('show'); } }); } // called when the user wants to recook an archive // for which the download link is not available anymore export function recookObject() { if (recookTask) { // stop cooking tasks status polling clearTimeout(checkVaultId); // build cook request url let cookingUrl; if (recookTask.object_type === 'directory') { cookingUrl = Urls.api_1_vault_cook_directory(recookTask.object_id); } else { cookingUrl = Urls.api_1_vault_cook_revision_gitfast(recookTask.object_id); } if (recookTask.email) { cookingUrl += '?email=' + recookTask.email; } // request archive cooking csrfPost(cookingUrl) .then(handleFetchError) .then(() => { // update task status recookTask.status = 'new'; let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); for (let i = 0; i < vaultCookingTasks.length; ++i) { if (vaultCookingTasks[i].object_id === recookTask.object_id) { vaultCookingTasks[i] = recookTask; break; } } // save updated tasks to local storage localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); // restart cooking tasks status polling checkVaultCookingTasks(); // hide recook archive modal $('#vault-recook-object-modal').modal('hide'); }) // something went wrong .catch(() => { checkVaultCookingTasks(); $('#vault-recook-object-modal').modal('hide'); }); } } function checkVaultCookingTasks() { let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); if (!vaultCookingTasks || vaultCookingTasks.length === 0) { $('.swh-vault-table tbody tr').remove(); checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval); return; } let cookingTaskRequests = []; let tasks = {}; let currentObjectIds = []; for (let i = 0; i < vaultCookingTasks.length; ++i) { let cookingTask = vaultCookingTasks[i]; currentObjectIds.push(cookingTask.object_id); tasks[cookingTask.object_id] = cookingTask; let cookingUrl; if (cookingTask.object_type === 'directory') { cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id); } else { cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id); } if (cookingTask.status !== 'done' && cookingTask.status !== 'failed') { cookingTaskRequests.push(fetch(cookingUrl)); } } $('.swh-vault-table tbody tr').each((i, row) => { let objectId = $(row).find('.vault-object-id').data('object-id'); if ($.inArray(objectId, currentObjectIds) === -1) { $(row).remove(); } }); Promise.all(cookingTaskRequests) .then(handleFetchErrors) .then(responses => Promise.all(responses.map(r => r.json()))) .then(cookingTasks => { let table = $('#vault-cooking-tasks tbody'); for (let i = 0; i < cookingTasks.length; ++i) { let cookingTask = tasks[cookingTasks[i].obj_id]; cookingTask.status = cookingTasks[i].status; cookingTask.fetch_url = cookingTasks[i].fetch_url; cookingTask.progress_message = cookingTasks[i].progress_message; } for (let i = 0; i < vaultCookingTasks.length; ++i) { let cookingTask = vaultCookingTasks[i]; let rowTask = $('#vault-task-' + cookingTask.object_id); let downloadLinkWait = 'Waiting for download link to be available'; if (!rowTask.length) { let browseUrl; if (cookingTask.object_type === 'directory') { browseUrl = Urls.browse_directory(cookingTask.object_id); } else { browseUrl = Urls.browse_revision(cookingTask.object_id); } let progressBar = $.parseHTML(progress)[0]; let progressBarContent = $(progressBar).find('.progress-bar'); updateProgressBar(progressBarContent, cookingTask); let tableRow; if (cookingTask.object_type === 'directory') { tableRow = `<tr id="vault-task-${cookingTask.object_id}" title="Once downloaded, the directory can be extracted with the ` + `following command:\n\n$ tar xvzf ${cookingTask.object_id}.tar.gz">`; } else { tableRow = `<tr id="vault-task-${cookingTask.object_id}" title="Once downloaded, the git repository can be imported with the ` + `following commands:\n\n$ git init\n$ zcat ${cookingTask.object_id}.gitfast.gz | git fast-import">`; } tableRow += '<td><input type="checkbox" class="vault-task-toggle-selection"/></td>'; tableRow += `<td style="width: 120px"><i class="${swh.webapp.getSwhObjectIcon(cookingTask.object_type)} fa-fw"></i>${cookingTask.object_type}</td>`; tableRow += `<td class="vault-object-id" data-object-id="${cookingTask.object_id}"><a href="${browseUrl}">${cookingTask.object_id}</a></td>`; tableRow += `<td style="width: 350px">${progressBar.outerHTML}</td>`; let downloadLink = downloadLinkWait; if (cookingTask.status === 'done') { downloadLink = `<button class="btn btn-default btn-sm" onclick="swh.vault.fetchCookedObject('${cookingTask.fetch_url}')` + '"><i class="fa fa-download fa-fw" aria-hidden="true"></i>Download</button>'; } else if (cookingTask.status === 'failed') { downloadLink = ''; } tableRow += `<td class="vault-dl-link" style="width: 320px">${downloadLink}</td>`; tableRow += '</tr>'; table.prepend(tableRow); } else { let progressBar = rowTask.find('.progress-bar'); updateProgressBar(progressBar, cookingTask); let downloadLink = rowTask.find('.vault-dl-link'); if (cookingTask.status === 'done') { downloadLink[0].innerHTML = `<button class="btn btn-default btn-sm" onclick="swh.vault.fetchCookedObject('${cookingTask.fetch_url}')` + '"><i class="fa fa-download fa-fw" aria-hidden="true"></i>Download</button>'; } else if (cookingTask.status === 'failed') { downloadLink[0].innerHTML = ''; } else if (cookingTask.status === 'new') { downloadLink[0].innerHTML = downloadLinkWait; } } } localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval); }) .catch(() => {}); } +export function removeCookingTaskInfo(tasksToRemove) { + let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); + if (!vaultCookingTasks) { + return; + } + vaultCookingTasks = $.grep(vaultCookingTasks, task => { + return $.inArray(task.object_id, tasksToRemove) === -1; + }); + localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); +} + export function initUi() { $('#vault-tasks-toggle-selection').change(event => { $('.vault-task-toggle-selection').prop('checked', event.currentTarget.checked); }); $('#vault-remove-tasks').click(() => { clearTimeout(checkVaultId); let tasksToRemove = []; $('.swh-vault-table tbody tr').each((i, row) => { let taskSelected = $(row).find('.vault-task-toggle-selection').prop('checked'); if (taskSelected) { let objectId = $(row).find('.vault-object-id').data('object-id'); tasksToRemove.push(objectId); $(row).remove(); } }); - let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); - vaultCookingTasks = $.grep(vaultCookingTasks, task => { - return $.inArray(task.object_id, tasksToRemove) === -1; - }); - localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); + removeCookingTaskInfo(tasksToRemove); $('#vault-tasks-toggle-selection').prop('checked', false); checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval); }); checkVaultCookingTasks(); window.onfocus = () => { clearTimeout(checkVaultId); checkVaultCookingTasks(); }; } diff --git a/static/webpack-stats.json b/static/webpack-stats.json index 0c2620d5..c95d2d90 100644 --- a/static/webpack-stats.json +++ b/static/webpack-stats.json @@ -1 +1 @@ -{"status":"done","publicPath":"/static/","chunks":{"vendors":[{"name":"css/vendors.107388fdefb1ab367e96.css","publicPath":"/static/css/vendors.107388fdefb1ab367e96.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/vendors.107388fdefb1ab367e96.css"},{"name":"js/vendors.107388fdefb1ab367e96.js","publicPath":"/static/js/vendors.107388fdefb1ab367e96.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vendors.107388fdefb1ab367e96.js"},{"name":"js/vendors.107388fdefb1ab367e96.js.map","publicPath":"/static/js/vendors.107388fdefb1ab367e96.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vendors.107388fdefb1ab367e96.js.map"}],"admin":[{"name":"js/admin.a0c3e72ca2ba4cd0be4d.js","publicPath":"/static/js/admin.a0c3e72ca2ba4cd0be4d.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/admin.a0c3e72ca2ba4cd0be4d.js"},{"name":"js/admin.a0c3e72ca2ba4cd0be4d.js.map","publicPath":"/static/js/admin.a0c3e72ca2ba4cd0be4d.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/admin.a0c3e72ca2ba4cd0be4d.js.map"}],"browse":[{"name":"css/browse.a3b98efba34a099f7f2c.css","publicPath":"/static/css/browse.a3b98efba34a099f7f2c.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/browse.a3b98efba34a099f7f2c.css"},{"name":"js/browse.a3b98efba34a099f7f2c.js","publicPath":"/static/js/browse.a3b98efba34a099f7f2c.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.a3b98efba34a099f7f2c.js"},{"name":"js/browse.a3b98efba34a099f7f2c.js.map","publicPath":"/static/js/browse.a3b98efba34a099f7f2c.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.a3b98efba34a099f7f2c.js.map"}],"d3":[{"name":"js/d3.1a77dc57ed5902be8bf5.js","publicPath":"/static/js/d3.1a77dc57ed5902be8bf5.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/d3.1a77dc57ed5902be8bf5.js"},{"name":"js/d3.1a77dc57ed5902be8bf5.js.map","publicPath":"/static/js/d3.1a77dc57ed5902be8bf5.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/d3.1a77dc57ed5902be8bf5.js.map"}],"highlightjs":[{"name":"css/highlightjs.013f2b69313022f30437.css","publicPath":"/static/css/highlightjs.013f2b69313022f30437.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/highlightjs.013f2b69313022f30437.css"},{"name":"js/highlightjs.013f2b69313022f30437.js","publicPath":"/static/js/highlightjs.013f2b69313022f30437.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/highlightjs.013f2b69313022f30437.js"},{"name":"js/highlightjs.013f2b69313022f30437.js.map","publicPath":"/static/js/highlightjs.013f2b69313022f30437.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/highlightjs.013f2b69313022f30437.js.map"}],"org":[{"name":"css/org.5174f2b8350d07e203c7.css","publicPath":"/static/css/org.5174f2b8350d07e203c7.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/org.5174f2b8350d07e203c7.css"},{"name":"js/org.5174f2b8350d07e203c7.js","publicPath":"/static/js/org.5174f2b8350d07e203c7.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/org.5174f2b8350d07e203c7.js"},{"name":"js/org.5174f2b8350d07e203c7.js.map","publicPath":"/static/js/org.5174f2b8350d07e203c7.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/org.5174f2b8350d07e203c7.js.map"}],"origin":[{"name":"css/origin.ade863ca79c843d2b12c.css","publicPath":"/static/css/origin.ade863ca79c843d2b12c.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/origin.ade863ca79c843d2b12c.css"},{"name":"js/origin.ade863ca79c843d2b12c.js","publicPath":"/static/js/origin.ade863ca79c843d2b12c.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/origin.ade863ca79c843d2b12c.js"},{"name":"js/origin.ade863ca79c843d2b12c.js.map","publicPath":"/static/js/origin.ade863ca79c843d2b12c.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/origin.ade863ca79c843d2b12c.js.map"}],"pdfjs":[{"name":"js/pdfjs.e7e30b41a87080946820.js","publicPath":"/static/js/pdfjs.e7e30b41a87080946820.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdfjs.e7e30b41a87080946820.js"},{"name":"js/pdfjs.e7e30b41a87080946820.js.map","publicPath":"/static/js/pdfjs.e7e30b41a87080946820.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdfjs.e7e30b41a87080946820.js.map"}],"revision":[{"name":"css/revision.65bbd43a3b3458f9ebcc.css","publicPath":"/static/css/revision.65bbd43a3b3458f9ebcc.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/revision.65bbd43a3b3458f9ebcc.css"},{"name":"js/revision.65bbd43a3b3458f9ebcc.js","publicPath":"/static/js/revision.65bbd43a3b3458f9ebcc.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/revision.65bbd43a3b3458f9ebcc.js"},{"name":"js/revision.65bbd43a3b3458f9ebcc.js.map","publicPath":"/static/js/revision.65bbd43a3b3458f9ebcc.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/revision.65bbd43a3b3458f9ebcc.js.map"}],"save":[{"name":"js/save.a9da031fcf6aac529058.js","publicPath":"/static/js/save.a9da031fcf6aac529058.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/save.a9da031fcf6aac529058.js"},{"name":"js/save.a9da031fcf6aac529058.js.map","publicPath":"/static/js/save.a9da031fcf6aac529058.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/save.a9da031fcf6aac529058.js.map"}],"showdown":[{"name":"css/showdown.91aacda56c49ac468692.css","publicPath":"/static/css/showdown.91aacda56c49ac468692.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/showdown.91aacda56c49ac468692.css"},{"name":"js/showdown.91aacda56c49ac468692.js","publicPath":"/static/js/showdown.91aacda56c49ac468692.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/showdown.91aacda56c49ac468692.js"},{"name":"js/showdown.91aacda56c49ac468692.js.map","publicPath":"/static/js/showdown.91aacda56c49ac468692.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/showdown.91aacda56c49ac468692.js.map"}],"vault":[{"name":"css/vault.ca0a73c50330026034f5.css","publicPath":"/static/css/vault.ca0a73c50330026034f5.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/vault.ca0a73c50330026034f5.css"},{"name":"js/vault.ca0a73c50330026034f5.js","publicPath":"/static/js/vault.ca0a73c50330026034f5.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vault.ca0a73c50330026034f5.js"},{"name":"js/vault.ca0a73c50330026034f5.js.map","publicPath":"/static/js/vault.ca0a73c50330026034f5.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vault.ca0a73c50330026034f5.js.map"}],"webapp":[{"name":"css/webapp.6583e14cb115c32af0b8.css","publicPath":"/static/css/webapp.6583e14cb115c32af0b8.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/webapp.6583e14cb115c32af0b8.css"},{"name":"js/webapp.6583e14cb115c32af0b8.js","publicPath":"/static/js/webapp.6583e14cb115c32af0b8.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/webapp.6583e14cb115c32af0b8.js"},{"name":"js/webapp.6583e14cb115c32af0b8.js.map","publicPath":"/static/js/webapp.6583e14cb115c32af0b8.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/webapp.6583e14cb115c32af0b8.js.map"}]}} \ No newline at end of file +{"status":"done","publicPath":"/static/","chunks":{"vendors":[{"name":"css/vendors.107388fdefb1ab367e96.css","publicPath":"/static/css/vendors.107388fdefb1ab367e96.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/vendors.107388fdefb1ab367e96.css"},{"name":"js/vendors.107388fdefb1ab367e96.js","publicPath":"/static/js/vendors.107388fdefb1ab367e96.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vendors.107388fdefb1ab367e96.js"},{"name":"js/vendors.107388fdefb1ab367e96.js.map","publicPath":"/static/js/vendors.107388fdefb1ab367e96.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vendors.107388fdefb1ab367e96.js.map"}],"admin":[{"name":"js/admin.a0c3e72ca2ba4cd0be4d.js","publicPath":"/static/js/admin.a0c3e72ca2ba4cd0be4d.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/admin.a0c3e72ca2ba4cd0be4d.js"},{"name":"js/admin.a0c3e72ca2ba4cd0be4d.js.map","publicPath":"/static/js/admin.a0c3e72ca2ba4cd0be4d.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/admin.a0c3e72ca2ba4cd0be4d.js.map"}],"browse":[{"name":"css/browse.f94437a6b169adb8e3c7.css","publicPath":"/static/css/browse.f94437a6b169adb8e3c7.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/browse.f94437a6b169adb8e3c7.css"},{"name":"js/browse.f94437a6b169adb8e3c7.js","publicPath":"/static/js/browse.f94437a6b169adb8e3c7.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.f94437a6b169adb8e3c7.js"},{"name":"js/browse.f94437a6b169adb8e3c7.js.map","publicPath":"/static/js/browse.f94437a6b169adb8e3c7.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.f94437a6b169adb8e3c7.js.map"}],"d3":[{"name":"js/d3.1a77dc57ed5902be8bf5.js","publicPath":"/static/js/d3.1a77dc57ed5902be8bf5.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/d3.1a77dc57ed5902be8bf5.js"},{"name":"js/d3.1a77dc57ed5902be8bf5.js.map","publicPath":"/static/js/d3.1a77dc57ed5902be8bf5.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/d3.1a77dc57ed5902be8bf5.js.map"}],"highlightjs":[{"name":"css/highlightjs.013f2b69313022f30437.css","publicPath":"/static/css/highlightjs.013f2b69313022f30437.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/highlightjs.013f2b69313022f30437.css"},{"name":"js/highlightjs.013f2b69313022f30437.js","publicPath":"/static/js/highlightjs.013f2b69313022f30437.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/highlightjs.013f2b69313022f30437.js"},{"name":"js/highlightjs.013f2b69313022f30437.js.map","publicPath":"/static/js/highlightjs.013f2b69313022f30437.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/highlightjs.013f2b69313022f30437.js.map"}],"org":[{"name":"css/org.5174f2b8350d07e203c7.css","publicPath":"/static/css/org.5174f2b8350d07e203c7.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/org.5174f2b8350d07e203c7.css"},{"name":"js/org.5174f2b8350d07e203c7.js","publicPath":"/static/js/org.5174f2b8350d07e203c7.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/org.5174f2b8350d07e203c7.js"},{"name":"js/org.5174f2b8350d07e203c7.js.map","publicPath":"/static/js/org.5174f2b8350d07e203c7.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/org.5174f2b8350d07e203c7.js.map"}],"origin":[{"name":"css/origin.ade863ca79c843d2b12c.css","publicPath":"/static/css/origin.ade863ca79c843d2b12c.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/origin.ade863ca79c843d2b12c.css"},{"name":"js/origin.ade863ca79c843d2b12c.js","publicPath":"/static/js/origin.ade863ca79c843d2b12c.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/origin.ade863ca79c843d2b12c.js"},{"name":"js/origin.ade863ca79c843d2b12c.js.map","publicPath":"/static/js/origin.ade863ca79c843d2b12c.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/origin.ade863ca79c843d2b12c.js.map"}],"pdfjs":[{"name":"js/pdfjs.e7e30b41a87080946820.js","publicPath":"/static/js/pdfjs.e7e30b41a87080946820.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdfjs.e7e30b41a87080946820.js"},{"name":"js/pdfjs.e7e30b41a87080946820.js.map","publicPath":"/static/js/pdfjs.e7e30b41a87080946820.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdfjs.e7e30b41a87080946820.js.map"}],"revision":[{"name":"css/revision.65bbd43a3b3458f9ebcc.css","publicPath":"/static/css/revision.65bbd43a3b3458f9ebcc.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/revision.65bbd43a3b3458f9ebcc.css"},{"name":"js/revision.65bbd43a3b3458f9ebcc.js","publicPath":"/static/js/revision.65bbd43a3b3458f9ebcc.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/revision.65bbd43a3b3458f9ebcc.js"},{"name":"js/revision.65bbd43a3b3458f9ebcc.js.map","publicPath":"/static/js/revision.65bbd43a3b3458f9ebcc.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/revision.65bbd43a3b3458f9ebcc.js.map"}],"save":[{"name":"js/save.a9da031fcf6aac529058.js","publicPath":"/static/js/save.a9da031fcf6aac529058.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/save.a9da031fcf6aac529058.js"},{"name":"js/save.a9da031fcf6aac529058.js.map","publicPath":"/static/js/save.a9da031fcf6aac529058.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/save.a9da031fcf6aac529058.js.map"}],"showdown":[{"name":"css/showdown.91aacda56c49ac468692.css","publicPath":"/static/css/showdown.91aacda56c49ac468692.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/showdown.91aacda56c49ac468692.css"},{"name":"js/showdown.91aacda56c49ac468692.js","publicPath":"/static/js/showdown.91aacda56c49ac468692.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/showdown.91aacda56c49ac468692.js"},{"name":"js/showdown.91aacda56c49ac468692.js.map","publicPath":"/static/js/showdown.91aacda56c49ac468692.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/showdown.91aacda56c49ac468692.js.map"}],"vault":[{"name":"css/vault.4a7e12be1c0d2a47b149.css","publicPath":"/static/css/vault.4a7e12be1c0d2a47b149.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/vault.4a7e12be1c0d2a47b149.css"},{"name":"js/vault.4a7e12be1c0d2a47b149.js","publicPath":"/static/js/vault.4a7e12be1c0d2a47b149.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vault.4a7e12be1c0d2a47b149.js"},{"name":"js/vault.4a7e12be1c0d2a47b149.js.map","publicPath":"/static/js/vault.4a7e12be1c0d2a47b149.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/vault.4a7e12be1c0d2a47b149.js.map"}],"webapp":[{"name":"css/webapp.0afe58b813354c5e6ded.css","publicPath":"/static/css/webapp.0afe58b813354c5e6ded.css","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/css/webapp.0afe58b813354c5e6ded.css"},{"name":"js/webapp.0afe58b813354c5e6ded.js","publicPath":"/static/js/webapp.0afe58b813354c5e6ded.js","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/webapp.0afe58b813354c5e6ded.js"},{"name":"js/webapp.0afe58b813354c5e6ded.js.map","publicPath":"/static/js/webapp.0afe58b813354c5e6ded.js.map","path":"/home/jenkins/workspace/DWAPPS/pypi-upload/static/js/webapp.0afe58b813354c5e6ded.js.map"}]}} \ No newline at end of file diff --git a/swh.web.egg-info/PKG-INFO b/swh.web.egg-info/PKG-INFO index 882996dc..16c80e03 100644 --- a/swh.web.egg-info/PKG-INFO +++ b/swh.web.egg-info/PKG-INFO @@ -1,127 +1,127 @@ Metadata-Version: 2.1 Name: swh.web -Version: 0.0.225 +Version: 0.0.226 Summary: Software Heritage Web UI Home-page: https://forge.softwareheritage.org/diffusion/DWUI/ Author: Software Heritage developers Author-email: swh-devel@inria.fr License: UNKNOWN Project-URL: Bug Reports, https://forge.softwareheritage.org/maniphest Project-URL: Funding, https://www.softwareheritage.org/donate Project-URL: Source, https://forge.softwareheritage.org/source/swh-web Description: # swh-web This repository holds the development of Software Heritage web applications: * swh-web API (https://archive.softwareheritage.org/api): enables to query the content of the archive through HTTP requests and get responses in JSON or YAML. * swh-web browse (https://archive.softwareheritage.org/browse): graphical interface that eases the navigation in the archive. Documentation about how to use these components but also the details of their URI schemes can be found in the docs folder. The produced HTML documentation can be read and browsed at https://docs.softwareheritage.org/devel/swh-web/index.html. ## Technical details Those applications are powered by: * [Django Web Framework](https://www.djangoproject.com/) on the backend side with the following extensions enabled: * [django-rest-framework](http://www.django-rest-framework.org/) * [django-webpack-loader](https://github.com/owais/django-webpack-loader) * [django-js-reverse](http://django-js-reverse.readthedocs.io/en/latest/) * [webpack](https://webpack.js.org/) on the frontend side for better static assets management, including: * assets dependencies management and retrieval through [yarn](https://yarnpkg.com/en/) * linting of custom javascript code (through [eslint](https://eslint.org/)) and stylesheets (through [stylelint](https://stylelint.io/)) * use of [es6](http://es6-features.org) syntax and advanced javascript feature like [async/await](https://javascript.info/async-await) or [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) thanks to [babel](https://babeljs.io/) (es6 to es5 transpiler and polyfills provider) * assets minification (using [terser](https://github.com/terser-js/terser) and [cssnano](http://cssnano.co/)) but also dead code elimination for production use ## How to build, run and test ### Backend requirements First you will need [Python 3](https://www.python.org) and a complete [swh development environment](https://forge.softwareheritage.org/source/swh-environment/) installed. To run the backend, you need to have the following [Python 3 modules](requirements.txt) installed. To run the backend tests, the following [Python 3 modules](requirements-test.txt) are also required to be installed. One easy way to install them is to use the `pip` tool: ``` $ pip install -r requirements.txt -r requirements-test.txt ``` ### Frontend requirements To compile the frontend assets, you need to have [nodejs](https://nodejs.org/en/) >= 8.9.0 and [yarn](https://yarnpkg.com/en/) installed. If you are on Debian stretch, you can easily install an up to date nodejs from the [stretch-backports](https://backports.debian.org/Instructions/) repository. Packages for yarn can be installed by following [these instructions](https://yarnpkg.com/en/docs/install#debian-stable). Alternatively, you can install yarn with `npm install yarn`, and add `YARN=node_modules/yarn/bin/yarn` as argument whenever you run `make`. Please note that the static assets bundles generated by webpack are not stored in the git repository. Follow the instructions below in order to generate them in order to be able to run the frontend part of the web applications. ### Make targets to execute the applications Below is the list of available make targets that can be executed from the root directory of swh-web in order to build and/or execute the web applications under various configurations: * **run-django-webpack-devserver**: Compile and serve not optimized (without mignification and dead code elimination) frontend static assets using [webpack-dev-server](https://github.com/webpack/webpack-dev-server) and run django server with development settings. This is the recommended target to use when developing swh-web as it enables automatic reloading of backend and frontend part of the applications when modifying source files (*.py, *.js, *.css, *.html). * **run-django-webpack-dev**: Compile not optimized (no minification, no dead code elimination) frontend static assets using webpack and run django server with development settings. This is the recommended target when one only wants to develop the backend side of the application. * **run-django-webpack-prod**: Compile optimized (with minification and dead code elimination) frontend static assets using webpack and run django server with production settings. This is useful to test the applications in production mode (with the difference that static assets are served by django). Production settings notably enable advanced django caching and you will need to have [memcached](https://memcached.org/) installed for that feature to work. * **run-django-server-dev**: Run the django server with development settings but without compiling frontend static assets through webpack. * **run-django-server-prod**: Run the django server with production settings but without compiling frontend static assets through webpack. * **run-gunicorn-server**: Run the web applications with production settings in a [gunicorn](http://gunicorn.org/) worker as they will be in real production environment. Once one of these targets executed, the web applications can be executed by pointing your browser to http://localhost:5004. ### Make targets to test the applications Some make targets are also available to easily execute the backend and frontend tests of the Software Heritage web applications. The backend tests are powered by the [pytest](https://docs.pytest.org/en/latest/) and [hypothesis](https://hypothesis.readthedocs.io/en/latest/) frameworks while the frontend ones rely on the use of the [cypress](https://www.cypress.io/) tool. Below is the exhaustive list of those targets: * **test**: execute the backend tests using a fast hypothesis profile (only one input example will be provided for each test) * **test-full**: execute the backend tests using a slower hypothesis profile (one hundred of input examples will be provided for each test which helps spotting possible bugs) * **test-frontend**: execute the frontend tests using cypress in headless mode but with some slow test suites disabled * **test-frontend-full**: execute the frontend tests using cypress in headless mode with all test suites enabled * **test-frontend-ui**: execute the frontend tests using the cypress GUI but with some slow test suites disabled * **test-frontend-full-ui**: execute the frontend tests using the cypress GUI with all test suites enabled ### Yarn targets Below is a list of available yarn targets in order to only execute the frontend static assets compilation (no web server will be executed): * **build-dev**: compile not optimized (without mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. * **build**: compile optimized (with mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. **The build target must be executed prior performing the Debian packaging of swh-web** in order for the package to contain the optimized assets dedicated to production environment. To execute these targets, issue the following command: ``` $ yarn <target_name> ``` Platform: UNKNOWN Classifier: Programming Language :: Python :: 3 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+) Classifier: Operating System :: OS Independent Classifier: Development Status :: 5 - Production/Stable Classifier: Framework :: Django Description-Content-Type: text/markdown Provides-Extra: testing diff --git a/swh.web.egg-info/SOURCES.txt b/swh.web.egg-info/SOURCES.txt index 17f53203..030210cb 100644 --- a/swh.web.egg-info/SOURCES.txt +++ b/swh.web.egg-info/SOURCES.txt @@ -1,1592 +1,1592 @@ MANIFEST.in README.md package.json pytest.ini requirements-swh.txt requirements-test.txt requirements.txt setup.py tox.ini version.txt yarn.lock static/robots.txt static/webpack-stats.json -static/css/browse.a3b98efba34a099f7f2c.css -static/css/browse.a3b98efba34a099f7f2c.css.map +static/css/browse.f94437a6b169adb8e3c7.css +static/css/browse.f94437a6b169adb8e3c7.css.map static/css/highlightjs.013f2b69313022f30437.css static/css/highlightjs.013f2b69313022f30437.css.map static/css/org.5174f2b8350d07e203c7.css static/css/org.5174f2b8350d07e203c7.css.map static/css/origin.ade863ca79c843d2b12c.css static/css/origin.ade863ca79c843d2b12c.css.map static/css/revision.65bbd43a3b3458f9ebcc.css static/css/revision.65bbd43a3b3458f9ebcc.css.map static/css/showdown.91aacda56c49ac468692.css static/css/showdown.91aacda56c49ac468692.css.map -static/css/vault.ca0a73c50330026034f5.css -static/css/vault.ca0a73c50330026034f5.css.map +static/css/vault.4a7e12be1c0d2a47b149.css +static/css/vault.4a7e12be1c0d2a47b149.css.map static/css/vendors.107388fdefb1ab367e96.css static/css/vendors.107388fdefb1ab367e96.css.map -static/css/webapp.6583e14cb115c32af0b8.css -static/css/webapp.6583e14cb115c32af0b8.css.map +static/css/webapp.0afe58b813354c5e6ded.css +static/css/webapp.0afe58b813354c5e6ded.css.map static/fonts/alegreya-latin-400.woff static/fonts/alegreya-latin-400.woff2 static/fonts/alegreya-latin-400italic.woff static/fonts/alegreya-latin-400italic.woff2 static/fonts/alegreya-latin-500.woff static/fonts/alegreya-latin-500.woff2 static/fonts/alegreya-latin-500italic.woff static/fonts/alegreya-latin-500italic.woff2 static/fonts/alegreya-latin-700.woff static/fonts/alegreya-latin-700.woff2 static/fonts/alegreya-latin-700italic.woff static/fonts/alegreya-latin-700italic.woff2 static/fonts/alegreya-latin-800.woff static/fonts/alegreya-latin-800.woff2 static/fonts/alegreya-latin-800italic.woff static/fonts/alegreya-latin-800italic.woff2 static/fonts/alegreya-latin-900.woff static/fonts/alegreya-latin-900.woff2 static/fonts/alegreya-latin-900italic.woff static/fonts/alegreya-latin-900italic.woff2 static/fonts/alegreya-sans-latin-100.woff static/fonts/alegreya-sans-latin-100.woff2 static/fonts/alegreya-sans-latin-100italic.woff static/fonts/alegreya-sans-latin-100italic.woff2 static/fonts/alegreya-sans-latin-300.woff static/fonts/alegreya-sans-latin-300.woff2 static/fonts/alegreya-sans-latin-300italic.woff static/fonts/alegreya-sans-latin-300italic.woff2 static/fonts/alegreya-sans-latin-400.woff static/fonts/alegreya-sans-latin-400.woff2 static/fonts/alegreya-sans-latin-400italic.woff static/fonts/alegreya-sans-latin-400italic.woff2 static/fonts/alegreya-sans-latin-500.woff static/fonts/alegreya-sans-latin-500.woff2 static/fonts/alegreya-sans-latin-500italic.woff static/fonts/alegreya-sans-latin-500italic.woff2 static/fonts/alegreya-sans-latin-700.woff static/fonts/alegreya-sans-latin-700.woff2 static/fonts/alegreya-sans-latin-700italic.woff static/fonts/alegreya-sans-latin-700italic.woff2 static/fonts/alegreya-sans-latin-800.woff static/fonts/alegreya-sans-latin-800.woff2 static/fonts/alegreya-sans-latin-800italic.woff static/fonts/alegreya-sans-latin-800italic.woff2 static/fonts/alegreya-sans-latin-900.woff static/fonts/alegreya-sans-latin-900.woff2 static/fonts/alegreya-sans-latin-900italic.woff static/fonts/alegreya-sans-latin-900italic.woff2 static/fonts/fontawesome-webfont.eot static/fonts/fontawesome-webfont.svg static/fonts/fontawesome-webfont.ttf static/fonts/fontawesome-webfont.woff static/fonts/fontawesome-webfont.woff2 static/fonts/git-commit.svg static/img/arrow-up-small.png static/img/swh-api.png static/img/swh-browse.png static/img/swh-logo-white.svg static/img/swh-logo.png static/img/swh-logo.svg static/img/swh-spinner-small.gif static/img/swh-spinner.gif static/img/swh-support.png static/img/swh-vault.png static/img/icons/swh-logo-32x32.png static/img/icons/swh-logo-archive-180x180.png static/img/icons/swh-logo-archive-192x192.png static/img/icons/swh-logo-archive-270x270.png static/img/logos/bitbucket.png static/img/logos/cran.svg static/img/logos/debian.png static/img/logos/framagit.png static/img/logos/github.png static/img/logos/gitlab.svg static/img/logos/gitorious.png static/img/logos/gnu.png static/img/logos/googlecode.png static/img/logos/hal.png static/img/logos/inria.jpg static/img/logos/npm.png static/img/logos/pypi.svg static/img/thirdParty/chosen-sprite.png static/img/thirdParty/chosen-sprite@2x.png static/js/admin.a0c3e72ca2ba4cd0be4d.js static/js/admin.a0c3e72ca2ba4cd0be4d.js.map -static/js/browse.a3b98efba34a099f7f2c.js -static/js/browse.a3b98efba34a099f7f2c.js.LICENSE.txt -static/js/browse.a3b98efba34a099f7f2c.js.map +static/js/browse.f94437a6b169adb8e3c7.js +static/js/browse.f94437a6b169adb8e3c7.js.LICENSE.txt +static/js/browse.f94437a6b169adb8e3c7.js.map static/js/d3.1a77dc57ed5902be8bf5.js static/js/d3.1a77dc57ed5902be8bf5.js.map static/js/highlightjs.013f2b69313022f30437.js static/js/highlightjs.013f2b69313022f30437.js.map static/js/org.5174f2b8350d07e203c7.js static/js/org.5174f2b8350d07e203c7.js.map static/js/origin.ade863ca79c843d2b12c.js static/js/origin.ade863ca79c843d2b12c.js.map static/js/pdf.worker.min.js static/js/pdfjs.e7e30b41a87080946820.js static/js/pdfjs.e7e30b41a87080946820.js.map static/js/revision.65bbd43a3b3458f9ebcc.js static/js/revision.65bbd43a3b3458f9ebcc.js.LICENSE.txt static/js/revision.65bbd43a3b3458f9ebcc.js.map static/js/save.a9da031fcf6aac529058.js static/js/save.a9da031fcf6aac529058.js.LICENSE.txt static/js/save.a9da031fcf6aac529058.js.map static/js/showdown.91aacda56c49ac468692.js static/js/showdown.91aacda56c49ac468692.js.LICENSE.txt static/js/showdown.91aacda56c49ac468692.js.map -static/js/vault.ca0a73c50330026034f5.js -static/js/vault.ca0a73c50330026034f5.js.map +static/js/vault.4a7e12be1c0d2a47b149.js +static/js/vault.4a7e12be1c0d2a47b149.js.map static/js/vendors.107388fdefb1ab367e96.js static/js/vendors.107388fdefb1ab367e96.js.LICENSE.txt static/js/vendors.107388fdefb1ab367e96.js.map -static/js/webapp.6583e14cb115c32af0b8.js -static/js/webapp.6583e14cb115c32af0b8.js.LICENSE.txt -static/js/webapp.6583e14cb115c32af0b8.js.map +static/js/webapp.0afe58b813354c5e6ded.js +static/js/webapp.0afe58b813354c5e6ded.js.LICENSE.txt +static/js/webapp.0afe58b813354c5e6ded.js.map static/jssources/LICENSE.txt static/jssources/jslicenses.json static/jssources/@babel/runtime/LICENSE.txt static/jssources/@babel/runtime/helpers/asyncToGenerator.js static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js static/jssources/@babel/runtime/node_modules/regenerator-runtime/runtime.js static/jssources/@babel/runtime/regenerator/index.js static/jssources/@sentry/browser/LICENSE.txt static/jssources/@sentry/browser/esm/backend.js static/jssources/@sentry/browser/esm/client.js static/jssources/@sentry/browser/esm/eventbuilder.js static/jssources/@sentry/browser/esm/helpers.js static/jssources/@sentry/browser/esm/parsers.js static/jssources/@sentry/browser/esm/sdk.js static/jssources/@sentry/browser/esm/tracekit.js static/jssources/@sentry/browser/esm/version.js static/jssources/@sentry/browser/esm/integrations/breadcrumbs.js static/jssources/@sentry/browser/esm/integrations/globalhandlers.js static/jssources/@sentry/browser/esm/integrations/linkederrors.js static/jssources/@sentry/browser/esm/integrations/trycatch.js static/jssources/@sentry/browser/esm/integrations/useragent.js static/jssources/@sentry/browser/esm/transports/base.js static/jssources/@sentry/browser/esm/transports/fetch.js static/jssources/@sentry/browser/esm/transports/xhr.js static/jssources/@sentry/core/LICENSE.txt static/jssources/@sentry/core/esm/api.js static/jssources/@sentry/core/esm/basebackend.js static/jssources/@sentry/core/esm/baseclient.js static/jssources/@sentry/core/esm/index.js static/jssources/@sentry/core/esm/integration.js static/jssources/@sentry/core/esm/sdk.js static/jssources/@sentry/core/esm/integrations/functiontostring.js static/jssources/@sentry/core/esm/integrations/inboundfilters.js static/jssources/@sentry/core/esm/integrations/index.js static/jssources/@sentry/core/esm/transports/noop.js static/jssources/@sentry/hub/LICENSE.txt static/jssources/@sentry/hub/esm/hub.js static/jssources/@sentry/hub/esm/scope.js static/jssources/@sentry/minimal/LICENSE.txt static/jssources/@sentry/minimal/esm/index.js static/jssources/@sentry/types/LICENSE.txt static/jssources/@sentry/types/esm/severity.js static/jssources/@sentry/types/esm/status.js static/jssources/@sentry/utils/LICENSE.txt static/jssources/@sentry/utils/esm/dsn.js static/jssources/@sentry/utils/esm/error.js static/jssources/@sentry/utils/esm/instrument.js static/jssources/@sentry/utils/esm/is.js static/jssources/@sentry/utils/esm/logger.js static/jssources/@sentry/utils/esm/memo.js static/jssources/@sentry/utils/esm/misc.js static/jssources/@sentry/utils/esm/object.js static/jssources/@sentry/utils/esm/polyfill.js static/jssources/@sentry/utils/esm/promisebuffer.js static/jssources/@sentry/utils/esm/string.js static/jssources/@sentry/utils/esm/supports.js static/jssources/@sentry/utils/esm/syncpromise.js static/jssources/admin-lte/LICENSE.txt static/jssources/admin-lte/dist/js/adminlte.js static/jssources/ansi_up/LICENSE.txt static/jssources/ansi_up/ansi_up.js static/jssources/bootstrap/LICENSE.txt static/jssources/bootstrap/js/dist/alert.js static/jssources/bootstrap/js/dist/button.js static/jssources/bootstrap/js/dist/carousel.js static/jssources/bootstrap/js/dist/collapse.js static/jssources/bootstrap/js/dist/dropdown.js static/jssources/bootstrap/js/dist/modal.js static/jssources/bootstrap/js/dist/popover.js static/jssources/bootstrap/js/dist/scrollspy.js static/jssources/bootstrap/js/dist/tab.js static/jssources/bootstrap/js/dist/tooltip.js static/jssources/bootstrap/js/dist/util.js static/jssources/chosen-js/LICENSE.md static/jssources/chosen-js/chosen.jquery.js static/jssources/clipboard/dist/clipboard.js static/jssources/core-js/LICENSE.txt static/jssources/core-js/es/index.js static/jssources/core-js/internals/a-function.js static/jssources/core-js/internals/a-possible-prototype.js static/jssources/core-js/internals/add-to-unscopables.js static/jssources/core-js/internals/advance-string-index.js static/jssources/core-js/internals/an-instance.js static/jssources/core-js/internals/an-object.js static/jssources/core-js/internals/array-buffer-native.js static/jssources/core-js/internals/array-buffer-view-core.js static/jssources/core-js/internals/array-buffer.js static/jssources/core-js/internals/array-copy-within.js static/jssources/core-js/internals/array-fill.js static/jssources/core-js/internals/array-for-each.js static/jssources/core-js/internals/array-from.js static/jssources/core-js/internals/array-includes.js static/jssources/core-js/internals/array-iteration.js static/jssources/core-js/internals/array-last-index-of.js static/jssources/core-js/internals/array-method-has-species-support.js static/jssources/core-js/internals/array-method-is-strict.js static/jssources/core-js/internals/array-method-uses-to-length.js static/jssources/core-js/internals/array-reduce.js static/jssources/core-js/internals/array-species-create.js static/jssources/core-js/internals/call-with-safe-iteration-closing.js static/jssources/core-js/internals/check-correctness-of-iteration.js static/jssources/core-js/internals/classof-raw.js static/jssources/core-js/internals/classof.js static/jssources/core-js/internals/collection-strong.js static/jssources/core-js/internals/collection-weak.js static/jssources/core-js/internals/collection.js static/jssources/core-js/internals/copy-constructor-properties.js static/jssources/core-js/internals/correct-is-regexp-logic.js static/jssources/core-js/internals/correct-prototype-getter.js static/jssources/core-js/internals/create-html.js static/jssources/core-js/internals/create-iterator-constructor.js static/jssources/core-js/internals/create-non-enumerable-property.js static/jssources/core-js/internals/create-property-descriptor.js static/jssources/core-js/internals/create-property.js static/jssources/core-js/internals/date-to-iso-string.js static/jssources/core-js/internals/date-to-primitive.js static/jssources/core-js/internals/define-iterator.js static/jssources/core-js/internals/define-well-known-symbol.js static/jssources/core-js/internals/descriptors.js static/jssources/core-js/internals/document-create-element.js static/jssources/core-js/internals/dom-iterables.js static/jssources/core-js/internals/engine-is-ios.js static/jssources/core-js/internals/engine-user-agent.js static/jssources/core-js/internals/engine-v8-version.js static/jssources/core-js/internals/enum-bug-keys.js static/jssources/core-js/internals/export.js static/jssources/core-js/internals/fails.js static/jssources/core-js/internals/fix-regexp-well-known-symbol-logic.js static/jssources/core-js/internals/flatten-into-array.js static/jssources/core-js/internals/freezing.js static/jssources/core-js/internals/function-bind-context.js static/jssources/core-js/internals/function-bind.js static/jssources/core-js/internals/get-built-in.js static/jssources/core-js/internals/get-iterator-method.js static/jssources/core-js/internals/get-iterator.js static/jssources/core-js/internals/global.js static/jssources/core-js/internals/has.js static/jssources/core-js/internals/hidden-keys.js static/jssources/core-js/internals/host-report-errors.js static/jssources/core-js/internals/html.js static/jssources/core-js/internals/ie8-dom-define.js static/jssources/core-js/internals/ieee754.js static/jssources/core-js/internals/indexed-object.js static/jssources/core-js/internals/inherit-if-required.js static/jssources/core-js/internals/inspect-source.js static/jssources/core-js/internals/internal-metadata.js static/jssources/core-js/internals/internal-state.js static/jssources/core-js/internals/is-array-iterator-method.js static/jssources/core-js/internals/is-array.js static/jssources/core-js/internals/is-forced.js static/jssources/core-js/internals/is-integer.js static/jssources/core-js/internals/is-object.js static/jssources/core-js/internals/is-pure.js static/jssources/core-js/internals/is-regexp.js static/jssources/core-js/internals/iterate.js static/jssources/core-js/internals/iterators-core.js static/jssources/core-js/internals/iterators.js static/jssources/core-js/internals/math-expm1.js static/jssources/core-js/internals/math-fround.js static/jssources/core-js/internals/math-log1p.js static/jssources/core-js/internals/math-sign.js static/jssources/core-js/internals/microtask.js static/jssources/core-js/internals/native-promise-constructor.js static/jssources/core-js/internals/native-symbol.js static/jssources/core-js/internals/native-url.js static/jssources/core-js/internals/native-weak-map.js static/jssources/core-js/internals/new-promise-capability.js static/jssources/core-js/internals/not-a-regexp.js static/jssources/core-js/internals/number-is-finite.js static/jssources/core-js/internals/number-parse-float.js static/jssources/core-js/internals/number-parse-int.js static/jssources/core-js/internals/object-assign.js static/jssources/core-js/internals/object-create.js static/jssources/core-js/internals/object-define-properties.js static/jssources/core-js/internals/object-define-property.js static/jssources/core-js/internals/object-get-own-property-descriptor.js static/jssources/core-js/internals/object-get-own-property-names-external.js static/jssources/core-js/internals/object-get-own-property-names.js static/jssources/core-js/internals/object-get-own-property-symbols.js static/jssources/core-js/internals/object-get-prototype-of.js static/jssources/core-js/internals/object-keys-internal.js static/jssources/core-js/internals/object-keys.js static/jssources/core-js/internals/object-property-is-enumerable.js static/jssources/core-js/internals/object-prototype-accessors-forced.js static/jssources/core-js/internals/object-set-prototype-of.js static/jssources/core-js/internals/object-to-array.js static/jssources/core-js/internals/object-to-string.js static/jssources/core-js/internals/own-keys.js static/jssources/core-js/internals/path.js static/jssources/core-js/internals/perform.js static/jssources/core-js/internals/promise-resolve.js static/jssources/core-js/internals/redefine-all.js static/jssources/core-js/internals/redefine.js static/jssources/core-js/internals/regexp-exec-abstract.js static/jssources/core-js/internals/regexp-exec.js static/jssources/core-js/internals/regexp-flags.js static/jssources/core-js/internals/regexp-sticky-helpers.js static/jssources/core-js/internals/require-object-coercible.js static/jssources/core-js/internals/same-value.js static/jssources/core-js/internals/set-global.js static/jssources/core-js/internals/set-species.js static/jssources/core-js/internals/set-to-string-tag.js static/jssources/core-js/internals/shared-key.js static/jssources/core-js/internals/shared-store.js static/jssources/core-js/internals/shared.js static/jssources/core-js/internals/species-constructor.js static/jssources/core-js/internals/string-html-forced.js static/jssources/core-js/internals/string-multibyte.js static/jssources/core-js/internals/string-pad-webkit-bug.js static/jssources/core-js/internals/string-pad.js static/jssources/core-js/internals/string-punycode-to-ascii.js static/jssources/core-js/internals/string-repeat.js static/jssources/core-js/internals/string-trim-forced.js static/jssources/core-js/internals/string-trim.js static/jssources/core-js/internals/task.js static/jssources/core-js/internals/this-number-value.js static/jssources/core-js/internals/to-absolute-index.js static/jssources/core-js/internals/to-index.js static/jssources/core-js/internals/to-indexed-object.js static/jssources/core-js/internals/to-integer.js static/jssources/core-js/internals/to-length.js static/jssources/core-js/internals/to-object.js static/jssources/core-js/internals/to-offset.js static/jssources/core-js/internals/to-positive-integer.js static/jssources/core-js/internals/to-primitive.js static/jssources/core-js/internals/to-string-tag-support.js static/jssources/core-js/internals/typed-array-constructor.js static/jssources/core-js/internals/typed-array-constructors-require-wrappers.js static/jssources/core-js/internals/typed-array-from.js static/jssources/core-js/internals/uid.js static/jssources/core-js/internals/use-symbol-as-uid.js static/jssources/core-js/internals/well-known-symbol-wrapped.js static/jssources/core-js/internals/well-known-symbol.js static/jssources/core-js/internals/whitespaces.js static/jssources/core-js/modules/es.array-buffer.constructor.js static/jssources/core-js/modules/es.array-buffer.is-view.js static/jssources/core-js/modules/es.array-buffer.slice.js static/jssources/core-js/modules/es.array.concat.js static/jssources/core-js/modules/es.array.copy-within.js static/jssources/core-js/modules/es.array.every.js static/jssources/core-js/modules/es.array.fill.js static/jssources/core-js/modules/es.array.filter.js static/jssources/core-js/modules/es.array.find-index.js static/jssources/core-js/modules/es.array.find.js static/jssources/core-js/modules/es.array.flat-map.js static/jssources/core-js/modules/es.array.flat.js static/jssources/core-js/modules/es.array.for-each.js static/jssources/core-js/modules/es.array.from.js static/jssources/core-js/modules/es.array.includes.js static/jssources/core-js/modules/es.array.index-of.js static/jssources/core-js/modules/es.array.is-array.js static/jssources/core-js/modules/es.array.iterator.js static/jssources/core-js/modules/es.array.join.js static/jssources/core-js/modules/es.array.last-index-of.js static/jssources/core-js/modules/es.array.map.js static/jssources/core-js/modules/es.array.of.js static/jssources/core-js/modules/es.array.reduce-right.js static/jssources/core-js/modules/es.array.reduce.js static/jssources/core-js/modules/es.array.reverse.js static/jssources/core-js/modules/es.array.slice.js static/jssources/core-js/modules/es.array.some.js static/jssources/core-js/modules/es.array.sort.js static/jssources/core-js/modules/es.array.species.js static/jssources/core-js/modules/es.array.splice.js static/jssources/core-js/modules/es.array.unscopables.flat-map.js static/jssources/core-js/modules/es.array.unscopables.flat.js static/jssources/core-js/modules/es.data-view.js static/jssources/core-js/modules/es.date.now.js static/jssources/core-js/modules/es.date.to-iso-string.js static/jssources/core-js/modules/es.date.to-json.js static/jssources/core-js/modules/es.date.to-primitive.js static/jssources/core-js/modules/es.date.to-string.js static/jssources/core-js/modules/es.function.bind.js static/jssources/core-js/modules/es.function.has-instance.js static/jssources/core-js/modules/es.function.name.js static/jssources/core-js/modules/es.global-this.js static/jssources/core-js/modules/es.json.stringify.js static/jssources/core-js/modules/es.json.to-string-tag.js static/jssources/core-js/modules/es.map.js static/jssources/core-js/modules/es.math.acosh.js static/jssources/core-js/modules/es.math.asinh.js static/jssources/core-js/modules/es.math.atanh.js static/jssources/core-js/modules/es.math.cbrt.js static/jssources/core-js/modules/es.math.clz32.js static/jssources/core-js/modules/es.math.cosh.js static/jssources/core-js/modules/es.math.expm1.js static/jssources/core-js/modules/es.math.fround.js static/jssources/core-js/modules/es.math.hypot.js static/jssources/core-js/modules/es.math.imul.js static/jssources/core-js/modules/es.math.log10.js static/jssources/core-js/modules/es.math.log1p.js static/jssources/core-js/modules/es.math.log2.js static/jssources/core-js/modules/es.math.sign.js static/jssources/core-js/modules/es.math.sinh.js static/jssources/core-js/modules/es.math.tanh.js static/jssources/core-js/modules/es.math.to-string-tag.js static/jssources/core-js/modules/es.math.trunc.js static/jssources/core-js/modules/es.number.constructor.js static/jssources/core-js/modules/es.number.epsilon.js static/jssources/core-js/modules/es.number.is-finite.js static/jssources/core-js/modules/es.number.is-integer.js static/jssources/core-js/modules/es.number.is-nan.js static/jssources/core-js/modules/es.number.is-safe-integer.js static/jssources/core-js/modules/es.number.max-safe-integer.js static/jssources/core-js/modules/es.number.min-safe-integer.js static/jssources/core-js/modules/es.number.parse-float.js static/jssources/core-js/modules/es.number.parse-int.js static/jssources/core-js/modules/es.number.to-fixed.js static/jssources/core-js/modules/es.number.to-precision.js static/jssources/core-js/modules/es.object.assign.js static/jssources/core-js/modules/es.object.create.js static/jssources/core-js/modules/es.object.define-getter.js static/jssources/core-js/modules/es.object.define-properties.js static/jssources/core-js/modules/es.object.define-property.js static/jssources/core-js/modules/es.object.define-setter.js static/jssources/core-js/modules/es.object.entries.js static/jssources/core-js/modules/es.object.freeze.js static/jssources/core-js/modules/es.object.from-entries.js static/jssources/core-js/modules/es.object.get-own-property-descriptor.js static/jssources/core-js/modules/es.object.get-own-property-descriptors.js static/jssources/core-js/modules/es.object.get-own-property-names.js static/jssources/core-js/modules/es.object.get-prototype-of.js static/jssources/core-js/modules/es.object.is-extensible.js static/jssources/core-js/modules/es.object.is-frozen.js static/jssources/core-js/modules/es.object.is-sealed.js static/jssources/core-js/modules/es.object.is.js static/jssources/core-js/modules/es.object.keys.js static/jssources/core-js/modules/es.object.lookup-getter.js static/jssources/core-js/modules/es.object.lookup-setter.js static/jssources/core-js/modules/es.object.prevent-extensions.js static/jssources/core-js/modules/es.object.seal.js static/jssources/core-js/modules/es.object.set-prototype-of.js static/jssources/core-js/modules/es.object.to-string.js static/jssources/core-js/modules/es.object.values.js static/jssources/core-js/modules/es.parse-float.js static/jssources/core-js/modules/es.parse-int.js static/jssources/core-js/modules/es.promise.all-settled.js static/jssources/core-js/modules/es.promise.finally.js static/jssources/core-js/modules/es.promise.js static/jssources/core-js/modules/es.reflect.apply.js static/jssources/core-js/modules/es.reflect.construct.js static/jssources/core-js/modules/es.reflect.define-property.js static/jssources/core-js/modules/es.reflect.delete-property.js static/jssources/core-js/modules/es.reflect.get-own-property-descriptor.js static/jssources/core-js/modules/es.reflect.get-prototype-of.js static/jssources/core-js/modules/es.reflect.get.js static/jssources/core-js/modules/es.reflect.has.js static/jssources/core-js/modules/es.reflect.is-extensible.js static/jssources/core-js/modules/es.reflect.own-keys.js static/jssources/core-js/modules/es.reflect.prevent-extensions.js static/jssources/core-js/modules/es.reflect.set-prototype-of.js static/jssources/core-js/modules/es.reflect.set.js static/jssources/core-js/modules/es.regexp.constructor.js static/jssources/core-js/modules/es.regexp.exec.js static/jssources/core-js/modules/es.regexp.flags.js static/jssources/core-js/modules/es.regexp.sticky.js static/jssources/core-js/modules/es.regexp.test.js static/jssources/core-js/modules/es.regexp.to-string.js static/jssources/core-js/modules/es.set.js static/jssources/core-js/modules/es.string.anchor.js static/jssources/core-js/modules/es.string.big.js static/jssources/core-js/modules/es.string.blink.js static/jssources/core-js/modules/es.string.bold.js static/jssources/core-js/modules/es.string.code-point-at.js static/jssources/core-js/modules/es.string.ends-with.js static/jssources/core-js/modules/es.string.fixed.js static/jssources/core-js/modules/es.string.fontcolor.js static/jssources/core-js/modules/es.string.fontsize.js static/jssources/core-js/modules/es.string.from-code-point.js static/jssources/core-js/modules/es.string.includes.js static/jssources/core-js/modules/es.string.italics.js static/jssources/core-js/modules/es.string.iterator.js static/jssources/core-js/modules/es.string.link.js static/jssources/core-js/modules/es.string.match-all.js static/jssources/core-js/modules/es.string.match.js static/jssources/core-js/modules/es.string.pad-end.js static/jssources/core-js/modules/es.string.pad-start.js static/jssources/core-js/modules/es.string.raw.js static/jssources/core-js/modules/es.string.repeat.js static/jssources/core-js/modules/es.string.replace.js static/jssources/core-js/modules/es.string.search.js static/jssources/core-js/modules/es.string.small.js static/jssources/core-js/modules/es.string.split.js static/jssources/core-js/modules/es.string.starts-with.js static/jssources/core-js/modules/es.string.strike.js static/jssources/core-js/modules/es.string.sub.js static/jssources/core-js/modules/es.string.sup.js static/jssources/core-js/modules/es.string.trim-end.js static/jssources/core-js/modules/es.string.trim-start.js static/jssources/core-js/modules/es.string.trim.js static/jssources/core-js/modules/es.symbol.async-iterator.js static/jssources/core-js/modules/es.symbol.description.js static/jssources/core-js/modules/es.symbol.has-instance.js static/jssources/core-js/modules/es.symbol.is-concat-spreadable.js static/jssources/core-js/modules/es.symbol.iterator.js static/jssources/core-js/modules/es.symbol.js static/jssources/core-js/modules/es.symbol.match-all.js static/jssources/core-js/modules/es.symbol.match.js static/jssources/core-js/modules/es.symbol.replace.js static/jssources/core-js/modules/es.symbol.search.js static/jssources/core-js/modules/es.symbol.species.js static/jssources/core-js/modules/es.symbol.split.js static/jssources/core-js/modules/es.symbol.to-primitive.js static/jssources/core-js/modules/es.symbol.to-string-tag.js static/jssources/core-js/modules/es.symbol.unscopables.js static/jssources/core-js/modules/es.typed-array.copy-within.js static/jssources/core-js/modules/es.typed-array.every.js static/jssources/core-js/modules/es.typed-array.fill.js static/jssources/core-js/modules/es.typed-array.filter.js static/jssources/core-js/modules/es.typed-array.find-index.js static/jssources/core-js/modules/es.typed-array.find.js static/jssources/core-js/modules/es.typed-array.float32-array.js static/jssources/core-js/modules/es.typed-array.float64-array.js static/jssources/core-js/modules/es.typed-array.for-each.js static/jssources/core-js/modules/es.typed-array.from.js static/jssources/core-js/modules/es.typed-array.includes.js static/jssources/core-js/modules/es.typed-array.index-of.js static/jssources/core-js/modules/es.typed-array.int16-array.js static/jssources/core-js/modules/es.typed-array.int32-array.js static/jssources/core-js/modules/es.typed-array.int8-array.js static/jssources/core-js/modules/es.typed-array.iterator.js static/jssources/core-js/modules/es.typed-array.join.js static/jssources/core-js/modules/es.typed-array.last-index-of.js static/jssources/core-js/modules/es.typed-array.map.js static/jssources/core-js/modules/es.typed-array.of.js static/jssources/core-js/modules/es.typed-array.reduce-right.js static/jssources/core-js/modules/es.typed-array.reduce.js static/jssources/core-js/modules/es.typed-array.reverse.js static/jssources/core-js/modules/es.typed-array.set.js static/jssources/core-js/modules/es.typed-array.slice.js static/jssources/core-js/modules/es.typed-array.some.js static/jssources/core-js/modules/es.typed-array.sort.js static/jssources/core-js/modules/es.typed-array.subarray.js static/jssources/core-js/modules/es.typed-array.to-locale-string.js static/jssources/core-js/modules/es.typed-array.to-string.js static/jssources/core-js/modules/es.typed-array.uint16-array.js static/jssources/core-js/modules/es.typed-array.uint32-array.js static/jssources/core-js/modules/es.typed-array.uint8-array.js static/jssources/core-js/modules/es.typed-array.uint8-clamped-array.js static/jssources/core-js/modules/es.weak-map.js static/jssources/core-js/modules/es.weak-set.js static/jssources/core-js/modules/web.dom-collections.for-each.js static/jssources/core-js/modules/web.dom-collections.iterator.js static/jssources/core-js/modules/web.immediate.js static/jssources/core-js/modules/web.queue-microtask.js static/jssources/core-js/modules/web.timers.js static/jssources/core-js/modules/web.url-search-params.js static/jssources/core-js/modules/web.url.js static/jssources/core-js/modules/web.url.to-json.js static/jssources/core-js/stable/index.js static/jssources/core-js/web/index.js static/jssources/d3-array/LICENSE.txt static/jssources/d3-array/src/array.js static/jssources/d3-array/src/ascending.js static/jssources/d3-array/src/bisect.js static/jssources/d3-array/src/bisector.js static/jssources/d3-array/src/constant.js static/jssources/d3-array/src/cross.js static/jssources/d3-array/src/descending.js static/jssources/d3-array/src/deviation.js static/jssources/d3-array/src/extent.js static/jssources/d3-array/src/histogram.js static/jssources/d3-array/src/identity.js static/jssources/d3-array/src/index.js static/jssources/d3-array/src/max.js static/jssources/d3-array/src/mean.js static/jssources/d3-array/src/median.js static/jssources/d3-array/src/merge.js static/jssources/d3-array/src/min.js static/jssources/d3-array/src/number.js static/jssources/d3-array/src/pairs.js static/jssources/d3-array/src/permute.js static/jssources/d3-array/src/quantile.js static/jssources/d3-array/src/range.js static/jssources/d3-array/src/scan.js static/jssources/d3-array/src/shuffle.js static/jssources/d3-array/src/sum.js static/jssources/d3-array/src/ticks.js static/jssources/d3-array/src/transpose.js static/jssources/d3-array/src/variance.js static/jssources/d3-array/src/zip.js static/jssources/d3-array/src/threshold/freedmanDiaconis.js static/jssources/d3-array/src/threshold/scott.js static/jssources/d3-array/src/threshold/sturges.js static/jssources/d3-axis/LICENSE.txt static/jssources/d3-axis/src/array.js static/jssources/d3-axis/src/axis.js static/jssources/d3-axis/src/identity.js static/jssources/d3-axis/src/index.js static/jssources/d3-collection/LICENSE.txt static/jssources/d3-collection/src/entries.js static/jssources/d3-collection/src/index.js static/jssources/d3-collection/src/keys.js static/jssources/d3-collection/src/map.js static/jssources/d3-collection/src/nest.js static/jssources/d3-collection/src/set.js static/jssources/d3-collection/src/values.js static/jssources/d3-color/LICENSE.txt static/jssources/d3-color/src/color.js static/jssources/d3-color/src/cubehelix.js static/jssources/d3-color/src/define.js static/jssources/d3-color/src/index.js static/jssources/d3-color/src/lab.js static/jssources/d3-color/src/math.js static/jssources/d3-dispatch/LICENSE.txt static/jssources/d3-dispatch/src/dispatch.js static/jssources/d3-dispatch/src/index.js static/jssources/d3-ease/LICENSE.txt static/jssources/d3-ease/src/back.js static/jssources/d3-ease/src/bounce.js static/jssources/d3-ease/src/circle.js static/jssources/d3-ease/src/cubic.js static/jssources/d3-ease/src/elastic.js static/jssources/d3-ease/src/exp.js static/jssources/d3-ease/src/index.js static/jssources/d3-ease/src/linear.js static/jssources/d3-ease/src/poly.js static/jssources/d3-ease/src/quad.js static/jssources/d3-ease/src/sin.js static/jssources/d3-format/LICENSE.txt static/jssources/d3-format/src/defaultLocale.js static/jssources/d3-format/src/exponent.js static/jssources/d3-format/src/formatDecimal.js static/jssources/d3-format/src/formatGroup.js static/jssources/d3-format/src/formatNumerals.js static/jssources/d3-format/src/formatPrefixAuto.js static/jssources/d3-format/src/formatRounded.js static/jssources/d3-format/src/formatSpecifier.js static/jssources/d3-format/src/formatTrim.js static/jssources/d3-format/src/formatTypes.js static/jssources/d3-format/src/identity.js static/jssources/d3-format/src/index.js static/jssources/d3-format/src/locale.js static/jssources/d3-format/src/precisionFixed.js static/jssources/d3-format/src/precisionPrefix.js static/jssources/d3-format/src/precisionRound.js static/jssources/d3-interpolate/LICENSE.txt static/jssources/d3-interpolate/src/array.js static/jssources/d3-interpolate/src/basis.js static/jssources/d3-interpolate/src/basisClosed.js static/jssources/d3-interpolate/src/color.js static/jssources/d3-interpolate/src/constant.js static/jssources/d3-interpolate/src/cubehelix.js static/jssources/d3-interpolate/src/date.js static/jssources/d3-interpolate/src/discrete.js static/jssources/d3-interpolate/src/hcl.js static/jssources/d3-interpolate/src/hsl.js static/jssources/d3-interpolate/src/hue.js static/jssources/d3-interpolate/src/index.js static/jssources/d3-interpolate/src/lab.js static/jssources/d3-interpolate/src/number.js static/jssources/d3-interpolate/src/object.js static/jssources/d3-interpolate/src/piecewise.js static/jssources/d3-interpolate/src/quantize.js static/jssources/d3-interpolate/src/rgb.js static/jssources/d3-interpolate/src/round.js static/jssources/d3-interpolate/src/string.js static/jssources/d3-interpolate/src/value.js static/jssources/d3-interpolate/src/zoom.js static/jssources/d3-interpolate/src/transform/decompose.js static/jssources/d3-interpolate/src/transform/index.js static/jssources/d3-interpolate/src/transform/parse.js static/jssources/d3-path/LICENSE.txt static/jssources/d3-path/src/index.js static/jssources/d3-path/src/path.js static/jssources/d3-scale/LICENSE.txt static/jssources/d3-scale/src/array.js static/jssources/d3-scale/src/band.js static/jssources/d3-scale/src/constant.js static/jssources/d3-scale/src/continuous.js static/jssources/d3-scale/src/diverging.js static/jssources/d3-scale/src/identity.js static/jssources/d3-scale/src/index.js static/jssources/d3-scale/src/init.js static/jssources/d3-scale/src/linear.js static/jssources/d3-scale/src/log.js static/jssources/d3-scale/src/nice.js static/jssources/d3-scale/src/number.js static/jssources/d3-scale/src/ordinal.js static/jssources/d3-scale/src/pow.js static/jssources/d3-scale/src/quantile.js static/jssources/d3-scale/src/quantize.js static/jssources/d3-scale/src/sequential.js static/jssources/d3-scale/src/sequentialQuantile.js static/jssources/d3-scale/src/symlog.js static/jssources/d3-scale/src/threshold.js static/jssources/d3-scale/src/tickFormat.js static/jssources/d3-scale/src/time.js static/jssources/d3-scale/src/utcTime.js static/jssources/d3-selection/LICENSE.txt static/jssources/d3-selection/src/constant.js static/jssources/d3-selection/src/create.js static/jssources/d3-selection/src/creator.js static/jssources/d3-selection/src/index.js static/jssources/d3-selection/src/local.js static/jssources/d3-selection/src/matcher.js static/jssources/d3-selection/src/mouse.js static/jssources/d3-selection/src/namespace.js static/jssources/d3-selection/src/namespaces.js static/jssources/d3-selection/src/point.js static/jssources/d3-selection/src/select.js static/jssources/d3-selection/src/selectAll.js static/jssources/d3-selection/src/selector.js static/jssources/d3-selection/src/selectorAll.js static/jssources/d3-selection/src/sourceEvent.js static/jssources/d3-selection/src/touch.js static/jssources/d3-selection/src/touches.js static/jssources/d3-selection/src/window.js static/jssources/d3-selection/src/selection/append.js static/jssources/d3-selection/src/selection/attr.js static/jssources/d3-selection/src/selection/call.js static/jssources/d3-selection/src/selection/classed.js static/jssources/d3-selection/src/selection/clone.js static/jssources/d3-selection/src/selection/data.js static/jssources/d3-selection/src/selection/datum.js static/jssources/d3-selection/src/selection/dispatch.js static/jssources/d3-selection/src/selection/each.js static/jssources/d3-selection/src/selection/empty.js static/jssources/d3-selection/src/selection/enter.js static/jssources/d3-selection/src/selection/exit.js static/jssources/d3-selection/src/selection/filter.js static/jssources/d3-selection/src/selection/html.js static/jssources/d3-selection/src/selection/index.js static/jssources/d3-selection/src/selection/insert.js static/jssources/d3-selection/src/selection/join.js static/jssources/d3-selection/src/selection/lower.js static/jssources/d3-selection/src/selection/merge.js static/jssources/d3-selection/src/selection/node.js static/jssources/d3-selection/src/selection/nodes.js static/jssources/d3-selection/src/selection/on.js static/jssources/d3-selection/src/selection/order.js static/jssources/d3-selection/src/selection/property.js static/jssources/d3-selection/src/selection/raise.js static/jssources/d3-selection/src/selection/remove.js static/jssources/d3-selection/src/selection/select.js static/jssources/d3-selection/src/selection/selectAll.js static/jssources/d3-selection/src/selection/size.js static/jssources/d3-selection/src/selection/sort.js static/jssources/d3-selection/src/selection/sparse.js static/jssources/d3-selection/src/selection/style.js static/jssources/d3-selection/src/selection/text.js static/jssources/d3-shape/LICENSE.txt static/jssources/d3-shape/src/arc.js static/jssources/d3-shape/src/area.js static/jssources/d3-shape/src/areaRadial.js static/jssources/d3-shape/src/array.js static/jssources/d3-shape/src/constant.js static/jssources/d3-shape/src/descending.js static/jssources/d3-shape/src/identity.js static/jssources/d3-shape/src/index.js static/jssources/d3-shape/src/line.js static/jssources/d3-shape/src/lineRadial.js static/jssources/d3-shape/src/math.js static/jssources/d3-shape/src/noop.js static/jssources/d3-shape/src/pie.js static/jssources/d3-shape/src/point.js static/jssources/d3-shape/src/pointRadial.js static/jssources/d3-shape/src/stack.js static/jssources/d3-shape/src/symbol.js static/jssources/d3-shape/src/curve/basis.js static/jssources/d3-shape/src/curve/basisClosed.js static/jssources/d3-shape/src/curve/basisOpen.js static/jssources/d3-shape/src/curve/bundle.js static/jssources/d3-shape/src/curve/cardinal.js static/jssources/d3-shape/src/curve/cardinalClosed.js static/jssources/d3-shape/src/curve/cardinalOpen.js static/jssources/d3-shape/src/curve/catmullRom.js static/jssources/d3-shape/src/curve/catmullRomClosed.js static/jssources/d3-shape/src/curve/catmullRomOpen.js static/jssources/d3-shape/src/curve/linear.js static/jssources/d3-shape/src/curve/linearClosed.js static/jssources/d3-shape/src/curve/monotone.js static/jssources/d3-shape/src/curve/natural.js static/jssources/d3-shape/src/curve/radial.js static/jssources/d3-shape/src/curve/step.js static/jssources/d3-shape/src/link/index.js static/jssources/d3-shape/src/offset/diverging.js static/jssources/d3-shape/src/offset/expand.js static/jssources/d3-shape/src/offset/none.js static/jssources/d3-shape/src/offset/silhouette.js static/jssources/d3-shape/src/offset/wiggle.js static/jssources/d3-shape/src/order/appearance.js static/jssources/d3-shape/src/order/ascending.js static/jssources/d3-shape/src/order/descending.js static/jssources/d3-shape/src/order/insideOut.js static/jssources/d3-shape/src/order/none.js static/jssources/d3-shape/src/order/reverse.js static/jssources/d3-shape/src/symbol/circle.js static/jssources/d3-shape/src/symbol/cross.js static/jssources/d3-shape/src/symbol/diamond.js static/jssources/d3-shape/src/symbol/square.js static/jssources/d3-shape/src/symbol/star.js static/jssources/d3-shape/src/symbol/triangle.js static/jssources/d3-shape/src/symbol/wye.js static/jssources/d3-time/LICENSE.txt static/jssources/d3-time-format/LICENSE.txt static/jssources/d3-time-format/src/defaultLocale.js static/jssources/d3-time-format/src/index.js static/jssources/d3-time-format/src/isoFormat.js static/jssources/d3-time-format/src/isoParse.js static/jssources/d3-time-format/src/locale.js static/jssources/d3-time/src/day.js static/jssources/d3-time/src/duration.js static/jssources/d3-time/src/hour.js static/jssources/d3-time/src/index.js static/jssources/d3-time/src/interval.js static/jssources/d3-time/src/millisecond.js static/jssources/d3-time/src/minute.js static/jssources/d3-time/src/month.js static/jssources/d3-time/src/second.js static/jssources/d3-time/src/utcDay.js static/jssources/d3-time/src/utcHour.js static/jssources/d3-time/src/utcMinute.js static/jssources/d3-time/src/utcMonth.js static/jssources/d3-time/src/utcWeek.js static/jssources/d3-time/src/utcYear.js static/jssources/d3-time/src/week.js static/jssources/d3-time/src/year.js static/jssources/d3-timer/LICENSE.txt static/jssources/d3-timer/src/index.js static/jssources/d3-timer/src/interval.js static/jssources/d3-timer/src/timeout.js static/jssources/d3-timer/src/timer.js static/jssources/d3-transition/LICENSE.txt static/jssources/d3-transition/src/active.js static/jssources/d3-transition/src/index.js static/jssources/d3-transition/src/interrupt.js static/jssources/d3-transition/src/selection/index.js static/jssources/d3-transition/src/selection/interrupt.js static/jssources/d3-transition/src/selection/transition.js static/jssources/d3-transition/src/transition/attr.js static/jssources/d3-transition/src/transition/attrTween.js static/jssources/d3-transition/src/transition/delay.js static/jssources/d3-transition/src/transition/duration.js static/jssources/d3-transition/src/transition/ease.js static/jssources/d3-transition/src/transition/end.js static/jssources/d3-transition/src/transition/filter.js static/jssources/d3-transition/src/transition/index.js static/jssources/d3-transition/src/transition/interpolate.js static/jssources/d3-transition/src/transition/merge.js static/jssources/d3-transition/src/transition/on.js static/jssources/d3-transition/src/transition/remove.js static/jssources/d3-transition/src/transition/schedule.js static/jssources/d3-transition/src/transition/select.js static/jssources/d3-transition/src/transition/selectAll.js static/jssources/d3-transition/src/transition/selection.js static/jssources/d3-transition/src/transition/style.js static/jssources/d3-transition/src/transition/styleTween.js static/jssources/d3-transition/src/transition/text.js static/jssources/d3-transition/src/transition/transition.js static/jssources/d3-transition/src/transition/tween.js static/jssources/datatables.net/License.txt static/jssources/datatables.net-bs4/js/dataTables.bootstrap4.js static/jssources/datatables.net-responsive/License.txt static/jssources/datatables.net-responsive-bs4/js/responsive.bootstrap4.js static/jssources/datatables.net-responsive/js/dataTables.responsive.js static/jssources/datatables.net/js/jquery.dataTables.js static/jssources/dompurify/LICENSE.txt static/jssources/dompurify/dist/purify.js static/jssources/he/LICENSE-MIT.txt.txt static/jssources/he/he.js static/jssources/highlight.js/LICENSE.txt static/jssources/highlight.js/lib/highlight.js static/jssources/highlight.js/lib/index.js static/jssources/highlight.js/lib/languages/1c.js static/jssources/highlight.js/lib/languages/abnf.js static/jssources/highlight.js/lib/languages/accesslog.js static/jssources/highlight.js/lib/languages/actionscript.js static/jssources/highlight.js/lib/languages/ada.js static/jssources/highlight.js/lib/languages/angelscript.js static/jssources/highlight.js/lib/languages/apache.js static/jssources/highlight.js/lib/languages/applescript.js static/jssources/highlight.js/lib/languages/arcade.js static/jssources/highlight.js/lib/languages/arduino.js static/jssources/highlight.js/lib/languages/armasm.js static/jssources/highlight.js/lib/languages/asciidoc.js static/jssources/highlight.js/lib/languages/aspectj.js static/jssources/highlight.js/lib/languages/autohotkey.js static/jssources/highlight.js/lib/languages/autoit.js static/jssources/highlight.js/lib/languages/avrasm.js static/jssources/highlight.js/lib/languages/awk.js static/jssources/highlight.js/lib/languages/axapta.js static/jssources/highlight.js/lib/languages/bash.js static/jssources/highlight.js/lib/languages/basic.js static/jssources/highlight.js/lib/languages/bnf.js static/jssources/highlight.js/lib/languages/brainfuck.js static/jssources/highlight.js/lib/languages/cal.js static/jssources/highlight.js/lib/languages/capnproto.js static/jssources/highlight.js/lib/languages/ceylon.js static/jssources/highlight.js/lib/languages/clean.js static/jssources/highlight.js/lib/languages/clojure-repl.js static/jssources/highlight.js/lib/languages/clojure.js static/jssources/highlight.js/lib/languages/cmake.js static/jssources/highlight.js/lib/languages/coffeescript.js static/jssources/highlight.js/lib/languages/coq.js static/jssources/highlight.js/lib/languages/cos.js static/jssources/highlight.js/lib/languages/cpp.js static/jssources/highlight.js/lib/languages/crmsh.js static/jssources/highlight.js/lib/languages/crystal.js static/jssources/highlight.js/lib/languages/cs.js static/jssources/highlight.js/lib/languages/csp.js static/jssources/highlight.js/lib/languages/css.js static/jssources/highlight.js/lib/languages/d.js static/jssources/highlight.js/lib/languages/dart.js static/jssources/highlight.js/lib/languages/delphi.js static/jssources/highlight.js/lib/languages/diff.js static/jssources/highlight.js/lib/languages/django.js static/jssources/highlight.js/lib/languages/dns.js static/jssources/highlight.js/lib/languages/dockerfile.js static/jssources/highlight.js/lib/languages/dos.js static/jssources/highlight.js/lib/languages/dsconfig.js static/jssources/highlight.js/lib/languages/dts.js static/jssources/highlight.js/lib/languages/dust.js static/jssources/highlight.js/lib/languages/ebnf.js static/jssources/highlight.js/lib/languages/elixir.js static/jssources/highlight.js/lib/languages/elm.js static/jssources/highlight.js/lib/languages/erb.js static/jssources/highlight.js/lib/languages/erlang-repl.js static/jssources/highlight.js/lib/languages/erlang.js static/jssources/highlight.js/lib/languages/excel.js static/jssources/highlight.js/lib/languages/fix.js static/jssources/highlight.js/lib/languages/flix.js static/jssources/highlight.js/lib/languages/fortran.js static/jssources/highlight.js/lib/languages/fsharp.js static/jssources/highlight.js/lib/languages/gams.js static/jssources/highlight.js/lib/languages/gauss.js static/jssources/highlight.js/lib/languages/gcode.js static/jssources/highlight.js/lib/languages/gherkin.js static/jssources/highlight.js/lib/languages/glsl.js static/jssources/highlight.js/lib/languages/gml.js static/jssources/highlight.js/lib/languages/go.js static/jssources/highlight.js/lib/languages/golo.js static/jssources/highlight.js/lib/languages/gradle.js static/jssources/highlight.js/lib/languages/groovy.js static/jssources/highlight.js/lib/languages/haml.js static/jssources/highlight.js/lib/languages/handlebars.js static/jssources/highlight.js/lib/languages/haskell.js static/jssources/highlight.js/lib/languages/haxe.js static/jssources/highlight.js/lib/languages/hsp.js static/jssources/highlight.js/lib/languages/htmlbars.js static/jssources/highlight.js/lib/languages/http.js static/jssources/highlight.js/lib/languages/hy.js static/jssources/highlight.js/lib/languages/inform7.js static/jssources/highlight.js/lib/languages/ini.js static/jssources/highlight.js/lib/languages/irpf90.js static/jssources/highlight.js/lib/languages/isbl.js static/jssources/highlight.js/lib/languages/java.js static/jssources/highlight.js/lib/languages/javascript.js static/jssources/highlight.js/lib/languages/jboss-cli.js static/jssources/highlight.js/lib/languages/json.js static/jssources/highlight.js/lib/languages/julia-repl.js static/jssources/highlight.js/lib/languages/julia.js static/jssources/highlight.js/lib/languages/kotlin.js static/jssources/highlight.js/lib/languages/lasso.js static/jssources/highlight.js/lib/languages/ldif.js static/jssources/highlight.js/lib/languages/leaf.js static/jssources/highlight.js/lib/languages/less.js static/jssources/highlight.js/lib/languages/lisp.js static/jssources/highlight.js/lib/languages/livecodeserver.js static/jssources/highlight.js/lib/languages/livescript.js static/jssources/highlight.js/lib/languages/llvm.js static/jssources/highlight.js/lib/languages/lsl.js static/jssources/highlight.js/lib/languages/lua.js static/jssources/highlight.js/lib/languages/makefile.js static/jssources/highlight.js/lib/languages/markdown.js static/jssources/highlight.js/lib/languages/mathematica.js static/jssources/highlight.js/lib/languages/matlab.js static/jssources/highlight.js/lib/languages/maxima.js static/jssources/highlight.js/lib/languages/mel.js static/jssources/highlight.js/lib/languages/mercury.js static/jssources/highlight.js/lib/languages/mipsasm.js static/jssources/highlight.js/lib/languages/mizar.js static/jssources/highlight.js/lib/languages/mojolicious.js static/jssources/highlight.js/lib/languages/monkey.js static/jssources/highlight.js/lib/languages/moonscript.js static/jssources/highlight.js/lib/languages/n1ql.js static/jssources/highlight.js/lib/languages/nginx.js static/jssources/highlight.js/lib/languages/nimrod.js static/jssources/highlight.js/lib/languages/nix.js static/jssources/highlight.js/lib/languages/nsis.js static/jssources/highlight.js/lib/languages/objectivec.js static/jssources/highlight.js/lib/languages/ocaml.js static/jssources/highlight.js/lib/languages/openscad.js static/jssources/highlight.js/lib/languages/oxygene.js static/jssources/highlight.js/lib/languages/parser3.js static/jssources/highlight.js/lib/languages/perl.js static/jssources/highlight.js/lib/languages/pf.js static/jssources/highlight.js/lib/languages/pgsql.js static/jssources/highlight.js/lib/languages/php.js static/jssources/highlight.js/lib/languages/plaintext.js static/jssources/highlight.js/lib/languages/pony.js static/jssources/highlight.js/lib/languages/powershell.js static/jssources/highlight.js/lib/languages/processing.js static/jssources/highlight.js/lib/languages/profile.js static/jssources/highlight.js/lib/languages/prolog.js static/jssources/highlight.js/lib/languages/properties.js static/jssources/highlight.js/lib/languages/protobuf.js static/jssources/highlight.js/lib/languages/puppet.js static/jssources/highlight.js/lib/languages/purebasic.js static/jssources/highlight.js/lib/languages/python.js static/jssources/highlight.js/lib/languages/q.js static/jssources/highlight.js/lib/languages/qml.js static/jssources/highlight.js/lib/languages/r.js static/jssources/highlight.js/lib/languages/reasonml.js static/jssources/highlight.js/lib/languages/rib.js static/jssources/highlight.js/lib/languages/roboconf.js static/jssources/highlight.js/lib/languages/routeros.js static/jssources/highlight.js/lib/languages/rsl.js static/jssources/highlight.js/lib/languages/ruby.js static/jssources/highlight.js/lib/languages/ruleslanguage.js static/jssources/highlight.js/lib/languages/rust.js static/jssources/highlight.js/lib/languages/sas.js static/jssources/highlight.js/lib/languages/scala.js static/jssources/highlight.js/lib/languages/scheme.js static/jssources/highlight.js/lib/languages/scilab.js static/jssources/highlight.js/lib/languages/scss.js static/jssources/highlight.js/lib/languages/shell.js static/jssources/highlight.js/lib/languages/smali.js static/jssources/highlight.js/lib/languages/smalltalk.js static/jssources/highlight.js/lib/languages/sml.js static/jssources/highlight.js/lib/languages/sqf.js static/jssources/highlight.js/lib/languages/sql.js static/jssources/highlight.js/lib/languages/stan.js static/jssources/highlight.js/lib/languages/stata.js static/jssources/highlight.js/lib/languages/step21.js static/jssources/highlight.js/lib/languages/stylus.js static/jssources/highlight.js/lib/languages/subunit.js static/jssources/highlight.js/lib/languages/swift.js static/jssources/highlight.js/lib/languages/taggerscript.js static/jssources/highlight.js/lib/languages/tap.js static/jssources/highlight.js/lib/languages/tcl.js static/jssources/highlight.js/lib/languages/tex.js static/jssources/highlight.js/lib/languages/thrift.js static/jssources/highlight.js/lib/languages/tp.js static/jssources/highlight.js/lib/languages/twig.js static/jssources/highlight.js/lib/languages/typescript.js static/jssources/highlight.js/lib/languages/vala.js static/jssources/highlight.js/lib/languages/vbnet.js static/jssources/highlight.js/lib/languages/vbscript-html.js static/jssources/highlight.js/lib/languages/vbscript.js static/jssources/highlight.js/lib/languages/verilog.js static/jssources/highlight.js/lib/languages/vhdl.js static/jssources/highlight.js/lib/languages/vim.js static/jssources/highlight.js/lib/languages/x86asm.js static/jssources/highlight.js/lib/languages/xl.js static/jssources/highlight.js/lib/languages/xml.js static/jssources/highlight.js/lib/languages/xquery.js static/jssources/highlight.js/lib/languages/yaml.js static/jssources/highlight.js/lib/languages/zephir.js static/jssources/highlightjs-line-numbers.js/LICENSE.txt static/jssources/highlightjs-line-numbers.js/src/highlightjs-line-numbers.js static/jssources/html-encoder-decoder/LICENSE.txt static/jssources/html-encoder-decoder/lib/index.js static/jssources/iframe-resizer/LICENSE.txt static/jssources/iframe-resizer/index.js static/jssources/iframe-resizer/js/iframeResizer.contentWindow.js static/jssources/iframe-resizer/js/iframeResizer.js static/jssources/iframe-resizer/js/index.js static/jssources/iterate-object/LICENSE.txt static/jssources/iterate-object/lib/index.js static/jssources/jquery/LICENSE.txt static/jssources/jquery/dist/jquery.js static/jssources/js-cookie/LICENSE.txt static/jssources/js-cookie/src/js.cookie.js static/jssources/js-year-calendar/LICENSE.txt static/jssources/js-year-calendar/dist/js-year-calendar.js static/jssources/notebookjs/LICENSE.txt static/jssources/notebookjs/notebook.js static/jssources/object-fit-images/license.txt static/jssources/object-fit-images/dist/ofi.common-js.js static/jssources/org/LICENSE.txt static/jssources/org/lib/org.js static/jssources/org/lib/org/lexer.js static/jssources/org/lib/org/node.js static/jssources/org/lib/org/parser.js static/jssources/org/lib/org/stream.js static/jssources/org/lib/org/converter/converter.js static/jssources/org/lib/org/converter/html.js static/jssources/pdfjs-dist/LICENSE.txt static/jssources/pdfjs-dist/build/pdf.js static/jssources/pdfjs-dist/build/pdf.worker.js static/jssources/popper.js/dist/esm/popper.js static/jssources/process/LICENSE.txt static/jssources/process/browser.js static/jssources/regenerator-runtime/LICENSE.txt static/jssources/regenerator-runtime/runtime.js static/jssources/regex-escape/LICENSE.txt static/jssources/regex-escape/lib/index.js static/jssources/script-loader/LICENSE.txt static/jssources/script-loader/addScript.js static/jssources/showdown/license.txt static/jssources/showdown/dist/showdown.js static/jssources/swh/web/assets/src/bundles/admin/deposit.js static/jssources/swh/web/assets/src/bundles/admin/index.js static/jssources/swh/web/assets/src/bundles/admin/origin-save.js static/jssources/swh/web/assets/src/bundles/browse/browse-utils.js static/jssources/swh/web/assets/src/bundles/browse/index.js static/jssources/swh/web/assets/src/bundles/browse/origin-search.js static/jssources/swh/web/assets/src/bundles/browse/snapshot-navigation.js static/jssources/swh/web/assets/src/bundles/browse/swh-ids-utils.js static/jssources/swh/web/assets/src/bundles/origin/index.js static/jssources/swh/web/assets/src/bundles/origin/visits-calendar.js static/jssources/swh/web/assets/src/bundles/origin/visits-histogram.js static/jssources/swh/web/assets/src/bundles/origin/visits-reporting.js static/jssources/swh/web/assets/src/bundles/revision/diff-utils.js static/jssources/swh/web/assets/src/bundles/revision/index.js static/jssources/swh/web/assets/src/bundles/revision/log-utils.js static/jssources/swh/web/assets/src/bundles/save/index.js static/jssources/swh/web/assets/src/bundles/vault/index.js static/jssources/swh/web/assets/src/bundles/vault/vault-create-tasks.js static/jssources/swh/web/assets/src/bundles/vault/vault-ui.js static/jssources/swh/web/assets/src/bundles/vendors/elementsfrompoint-polyfill.js static/jssources/swh/web/assets/src/bundles/vendors/index.js static/jssources/swh/web/assets/src/bundles/webapp/badges.js static/jssources/swh/web/assets/src/bundles/webapp/code-highlighting.js static/jssources/swh/web/assets/src/bundles/webapp/history-counters.js static/jssources/swh/web/assets/src/bundles/webapp/index.js static/jssources/swh/web/assets/src/bundles/webapp/notebook-rendering.js static/jssources/swh/web/assets/src/bundles/webapp/pdf-rendering.js static/jssources/swh/web/assets/src/bundles/webapp/readme-rendering.js static/jssources/swh/web/assets/src/bundles/webapp/sentry.js static/jssources/swh/web/assets/src/bundles/webapp/webapp-utils.js static/jssources/swh/web/assets/src/bundles/webapp/xss-filtering.js static/jssources/swh/web/assets/src/thirdparty/jquery.tabSlideOut/LICENSE.txt static/jssources/swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js static/jssources/swh/web/assets/src/utils/constants.js static/jssources/swh/web/assets/src/utils/d3-custom.js static/jssources/swh/web/assets/src/utils/d3.js static/jssources/swh/web/assets/src/utils/functions.js static/jssources/swh/web/assets/src/utils/highlightjs.js static/jssources/swh/web/assets/src/utils/org.js static/jssources/swh/web/assets/src/utils/showdown.js static/jssources/tslib/LICENSE.txt static/jssources/tslib/tslib.es6.js static/jssources/validate.js/LICENSE.txt static/jssources/validate.js/validate.js static/jssources/waypoints/licenses.txt.txt static/jssources/waypoints/lib/jquery.waypoints.js static/jssources/whatwg-fetch/LICENSE.txt static/jssources/whatwg-fetch/dist/fetch.umd.js static/xml/swh-opensearch.xml swh/__init__.py swh.web.egg-info/PKG-INFO swh.web.egg-info/SOURCES.txt swh.web.egg-info/dependency_links.txt swh.web.egg-info/requires.txt swh.web.egg-info/top_level.txt swh/web/__init__.py swh/web/config.py swh/web/doc_config.py swh/web/gunicorn_config.py swh/web/manage.py swh/web/py.typed swh/web/urls.py swh/web/admin/__init__.py swh/web/admin/adminurls.py swh/web/admin/deposit.py swh/web/admin/origin_save.py swh/web/admin/urls.py swh/web/api/__init__.py swh/web/api/apidoc.py swh/web/api/apiresponse.py swh/web/api/apiurls.py swh/web/api/renderers.py swh/web/api/urls.py swh/web/api/utils.py swh/web/api/views/__init__.py swh/web/api/views/content.py swh/web/api/views/directory.py swh/web/api/views/identifiers.py swh/web/api/views/origin.py swh/web/api/views/origin_save.py swh/web/api/views/release.py swh/web/api/views/revision.py swh/web/api/views/snapshot.py swh/web/api/views/stat.py swh/web/api/views/utils.py swh/web/api/views/vault.py swh/web/assets/config/.bootstraprc swh/web/assets/config/.eslintignore swh/web/assets/config/.eslintrc swh/web/assets/config/bootstrap-pre-customize.scss swh/web/assets/config/mathjax-js-files.js swh/web/assets/config/webpack.config.development.js swh/web/assets/config/webpack.config.production.js swh/web/assets/config/webpack-plugins/fix-swh-source-maps-webpack-plugin.js swh/web/assets/config/webpack-plugins/generate-weblabels-webpack-plugin/README.md swh/web/assets/config/webpack-plugins/generate-weblabels-webpack-plugin/index.js swh/web/assets/config/webpack-plugins/generate-weblabels-webpack-plugin/jslicenses.ejs swh/web/assets/config/webpack-plugins/generate-weblabels-webpack-plugin/plugin-options-schema.json swh/web/assets/config/webpack-plugins/generate-weblabels-webpack-plugin/spdx-licenses-mapping.js swh/web/assets/src/bundles/admin/deposit.js swh/web/assets/src/bundles/admin/index.js swh/web/assets/src/bundles/admin/origin-save.js swh/web/assets/src/bundles/browse/breadcrumbs.css swh/web/assets/src/bundles/browse/browse-utils.js swh/web/assets/src/bundles/browse/browse.css swh/web/assets/src/bundles/browse/content.css swh/web/assets/src/bundles/browse/index.js swh/web/assets/src/bundles/browse/origin-search.js swh/web/assets/src/bundles/browse/snapshot-navigation.css swh/web/assets/src/bundles/browse/snapshot-navigation.js swh/web/assets/src/bundles/browse/swh-ids-utils.js swh/web/assets/src/bundles/origin/index.js swh/web/assets/src/bundles/origin/visits-calendar.js swh/web/assets/src/bundles/origin/visits-histogram.js swh/web/assets/src/bundles/origin/visits-reporting.css swh/web/assets/src/bundles/origin/visits-reporting.js swh/web/assets/src/bundles/revision/diff-utils.js swh/web/assets/src/bundles/revision/index.js swh/web/assets/src/bundles/revision/log-utils.js swh/web/assets/src/bundles/revision/revision.css swh/web/assets/src/bundles/save/index.js swh/web/assets/src/bundles/vault/index.js swh/web/assets/src/bundles/vault/vault-create-tasks.js swh/web/assets/src/bundles/vault/vault-ui.js swh/web/assets/src/bundles/vault/vault.css swh/web/assets/src/bundles/vendors/datatables.css swh/web/assets/src/bundles/vendors/elementsfrompoint-polyfill.js swh/web/assets/src/bundles/vendors/index.js swh/web/assets/src/bundles/vendors/octicons.css swh/web/assets/src/bundles/webapp/badges.js swh/web/assets/src/bundles/webapp/breadcrumbs.css swh/web/assets/src/bundles/webapp/code-highlighting.js swh/web/assets/src/bundles/webapp/history-counters.css swh/web/assets/src/bundles/webapp/history-counters.js swh/web/assets/src/bundles/webapp/index.js swh/web/assets/src/bundles/webapp/notebook-rendering.js swh/web/assets/src/bundles/webapp/notebook.css swh/web/assets/src/bundles/webapp/pdf-rendering.js swh/web/assets/src/bundles/webapp/readme-rendering.js swh/web/assets/src/bundles/webapp/sentry.js swh/web/assets/src/bundles/webapp/webapp-utils.js swh/web/assets/src/bundles/webapp/webapp.css swh/web/assets/src/bundles/webapp/xss-filtering.js swh/web/assets/src/thirdparty/jquery.tabSlideOut/LICENSE swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css swh/web/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js swh/web/assets/src/utils/constants.js swh/web/assets/src/utils/d3-custom.js swh/web/assets/src/utils/d3.js swh/web/assets/src/utils/functions.js swh/web/assets/src/utils/highlightjs.css swh/web/assets/src/utils/highlightjs.js swh/web/assets/src/utils/org.css swh/web/assets/src/utils/org.js swh/web/assets/src/utils/showdown.css swh/web/assets/src/utils/showdown.js swh/web/browse/__init__.py swh/web/browse/browseurls.py swh/web/browse/identifiers.py swh/web/browse/urls.py swh/web/browse/utils.py swh/web/browse/views/__init__.py swh/web/browse/views/content.py swh/web/browse/views/directory.py swh/web/browse/views/origin.py swh/web/browse/views/release.py swh/web/browse/views/revision.py swh/web/browse/views/snapshot.py swh/web/browse/views/utils/__init__.py swh/web/browse/views/utils/snapshot_context.py swh/web/common/__init__.py swh/web/common/apps.py swh/web/common/converters.py swh/web/common/exc.py swh/web/common/highlightjs.py swh/web/common/middlewares.py swh/web/common/models.py swh/web/common/origin_save.py swh/web/common/origin_visits.py swh/web/common/query.py swh/web/common/service.py swh/web/common/swh_templatetags.py swh/web/common/throttling.py swh/web/common/urlsindex.py swh/web/common/utils.py swh/web/common/migrations/0001_initial.py swh/web/common/migrations/0002_saveoriginrequest_visit_date.py swh/web/common/migrations/0003_saveoriginrequest_loading_task_status.py swh/web/common/migrations/0004_auto_20190204_1324.py swh/web/common/migrations/0005_remove_duplicated_authorized_origins.py swh/web/common/migrations/0006_rename_origin_type.py swh/web/common/migrations/__init__.py swh/web/misc/__init__.py swh/web/misc/badges.py swh/web/misc/coverage.py swh/web/misc/metrics.py swh/web/misc/origin_save.py swh/web/misc/urls.py swh/web/settings/__init__.py swh/web/settings/common.py swh/web/settings/development.py swh/web/settings/production.py swh/web/settings/tests.py swh/web/templates/error.html swh/web/templates/homepage.html swh/web/templates/layout.html swh/web/templates/login.html swh/web/templates/logout.html swh/web/templates/admin/deposit.html swh/web/templates/admin/origin-save.html swh/web/templates/api/api.html swh/web/templates/api/apidoc.html swh/web/templates/api/endpoints.html swh/web/templates/browse/branches.html swh/web/templates/browse/browse.html swh/web/templates/browse/content.html swh/web/templates/browse/directory.html swh/web/templates/browse/help.html swh/web/templates/browse/layout.html swh/web/templates/browse/origin-visits.html swh/web/templates/browse/person.html swh/web/templates/browse/release.html swh/web/templates/browse/releases.html swh/web/templates/browse/revision-log.html swh/web/templates/browse/revision.html swh/web/templates/browse/search.html swh/web/templates/browse/vault-ui.html swh/web/templates/includes/apidoc-header.html swh/web/templates/includes/apidoc-header.md swh/web/templates/includes/breadcrumbs.html swh/web/templates/includes/content-display.html swh/web/templates/includes/directory-display.html swh/web/templates/includes/empty-snapshot.html swh/web/templates/includes/global-modals.html swh/web/templates/includes/http-error.html swh/web/templates/includes/readme-display.html swh/web/templates/includes/show-metadata.html swh/web/templates/includes/show-swh-ids.html swh/web/templates/includes/snapshot-context.html swh/web/templates/includes/take-new-snapshot.html swh/web/templates/includes/top-navigation.html swh/web/templates/includes/vault-common.html swh/web/templates/includes/vault-create-tasks.html swh/web/templates/misc/coverage.html swh/web/templates/misc/jslicenses.html swh/web/templates/misc/origin-save.html swh/web/tests/__init__.py swh/web/tests/conftest.py swh/web/tests/create_test_admin.py swh/web/tests/data.py swh/web/tests/django_asserts.py swh/web/tests/strategies.py swh/web/tests/test_gunicorn_config.py swh/web/tests/admin/__init__.py swh/web/tests/admin/test_origin_save.py swh/web/tests/api/__init__.py swh/web/tests/api/test_api_lookup.py swh/web/tests/api/test_apidoc.py swh/web/tests/api/test_apiresponse.py swh/web/tests/api/test_utils.py swh/web/tests/api/views/__init__.py swh/web/tests/api/views/test_content.py swh/web/tests/api/views/test_directory.py swh/web/tests/api/views/test_identifiers.py swh/web/tests/api/views/test_origin.py swh/web/tests/api/views/test_origin_save.py swh/web/tests/api/views/test_release.py swh/web/tests/api/views/test_revision.py swh/web/tests/api/views/test_snapshot.py swh/web/tests/api/views/test_stat.py swh/web/tests/api/views/test_vault.py swh/web/tests/browse/__init__.py swh/web/tests/browse/test_utils.py swh/web/tests/browse/views/__init__.py swh/web/tests/browse/views/test_content.py swh/web/tests/browse/views/test_directory.py swh/web/tests/browse/views/test_identifiers.py swh/web/tests/browse/views/test_origin.py swh/web/tests/browse/views/test_release.py swh/web/tests/browse/views/test_revision.py swh/web/tests/common/__init__.py swh/web/tests/common/test_converters.py swh/web/tests/common/test_highlightjs.py swh/web/tests/common/test_origin_save.py swh/web/tests/common/test_origin_visits.py swh/web/tests/common/test_query.py swh/web/tests/common/test_service.py swh/web/tests/common/test_templatetags.py swh/web/tests/common/test_throttling.py swh/web/tests/common/test_utils.py swh/web/tests/misc/__init__.py swh/web/tests/misc/test_badges.py swh/web/tests/misc/test_metrics.py swh/web/tests/misc/test_origin_save.py swh/web/tests/resources/contents/code/LICENSE swh/web/tests/resources/contents/code/extensions/test.R swh/web/tests/resources/contents/code/extensions/test.abnf swh/web/tests/resources/contents/code/extensions/test.adb swh/web/tests/resources/contents/code/extensions/test.adoc swh/web/tests/resources/contents/code/extensions/test.ahk swh/web/tests/resources/contents/code/extensions/test.aj swh/web/tests/resources/contents/code/extensions/test.applescript swh/web/tests/resources/contents/code/extensions/test.as swh/web/tests/resources/contents/code/extensions/test.au3 swh/web/tests/resources/contents/code/extensions/test.awk swh/web/tests/resources/contents/code/extensions/test.bas swh/web/tests/resources/contents/code/extensions/test.bat swh/web/tests/resources/contents/code/extensions/test.bf swh/web/tests/resources/contents/code/extensions/test.bnf swh/web/tests/resources/contents/code/extensions/test.bsl swh/web/tests/resources/contents/code/extensions/test.cal swh/web/tests/resources/contents/code/extensions/test.capnp swh/web/tests/resources/contents/code/extensions/test.ceylon swh/web/tests/resources/contents/code/extensions/test.clj swh/web/tests/resources/contents/code/extensions/test.cls swh/web/tests/resources/contents/code/extensions/test.cmake swh/web/tests/resources/contents/code/extensions/test.coffee swh/web/tests/resources/contents/code/extensions/test.cpp swh/web/tests/resources/contents/code/extensions/test.cr swh/web/tests/resources/contents/code/extensions/test.cs swh/web/tests/resources/contents/code/extensions/test.css swh/web/tests/resources/contents/code/extensions/test.d swh/web/tests/resources/contents/code/extensions/test.dart swh/web/tests/resources/contents/code/extensions/test.dcl swh/web/tests/resources/contents/code/extensions/test.dfm swh/web/tests/resources/contents/code/extensions/test.diff swh/web/tests/resources/contents/code/extensions/test.do swh/web/tests/resources/contents/code/extensions/test.dts swh/web/tests/resources/contents/code/extensions/test.dust swh/web/tests/resources/contents/code/extensions/test.ebnf swh/web/tests/resources/contents/code/extensions/test.elm swh/web/tests/resources/contents/code/extensions/test.ep swh/web/tests/resources/contents/code/extensions/test.erb swh/web/tests/resources/contents/code/extensions/test.erl swh/web/tests/resources/contents/code/extensions/test.ex swh/web/tests/resources/contents/code/extensions/test.f90 swh/web/tests/resources/contents/code/extensions/test.feature swh/web/tests/resources/contents/code/extensions/test.flix swh/web/tests/resources/contents/code/extensions/test.fs swh/web/tests/resources/contents/code/extensions/test.gcode swh/web/tests/resources/contents/code/extensions/test.glsl swh/web/tests/resources/contents/code/extensions/test.gml swh/web/tests/resources/contents/code/extensions/test.gms swh/web/tests/resources/contents/code/extensions/test.go swh/web/tests/resources/contents/code/extensions/test.golo swh/web/tests/resources/contents/code/extensions/test.gradle swh/web/tests/resources/contents/code/extensions/test.groovy swh/web/tests/resources/contents/code/extensions/test.gss swh/web/tests/resources/contents/code/extensions/test.haml swh/web/tests/resources/contents/code/extensions/test.hbs swh/web/tests/resources/contents/code/extensions/test.hs swh/web/tests/resources/contents/code/extensions/test.hsp swh/web/tests/resources/contents/code/extensions/test.html swh/web/tests/resources/contents/code/extensions/test.hx swh/web/tests/resources/contents/code/extensions/test.hy swh/web/tests/resources/contents/code/extensions/test.ini swh/web/tests/resources/contents/code/extensions/test.ino swh/web/tests/resources/contents/code/extensions/test.java swh/web/tests/resources/contents/code/extensions/test.jl swh/web/tests/resources/contents/code/extensions/test.js swh/web/tests/resources/contents/code/extensions/test.json swh/web/tests/resources/contents/code/extensions/test.kt swh/web/tests/resources/contents/code/extensions/test.lasso swh/web/tests/resources/contents/code/extensions/test.lc swh/web/tests/resources/contents/code/extensions/test.ldif swh/web/tests/resources/contents/code/extensions/test.leaf swh/web/tests/resources/contents/code/extensions/test.less swh/web/tests/resources/contents/code/extensions/test.lisp swh/web/tests/resources/contents/code/extensions/test.ll swh/web/tests/resources/contents/code/extensions/test.ls swh/web/tests/resources/contents/code/extensions/test.lsl swh/web/tests/resources/contents/code/extensions/test.lua swh/web/tests/resources/contents/code/extensions/test.m swh/web/tests/resources/contents/code/extensions/test.md swh/web/tests/resources/contents/code/extensions/test.mel swh/web/tests/resources/contents/code/extensions/test.mk swh/web/tests/resources/contents/code/extensions/test.ml swh/web/tests/resources/contents/code/extensions/test.moon swh/web/tests/resources/contents/code/extensions/test.nim swh/web/tests/resources/contents/code/extensions/test.nix swh/web/tests/resources/contents/code/extensions/test.nsi swh/web/tests/resources/contents/code/extensions/test.p swh/web/tests/resources/contents/code/extensions/test.pbi swh/web/tests/resources/contents/code/extensions/test.pde swh/web/tests/resources/contents/code/extensions/test.php swh/web/tests/resources/contents/code/extensions/test.pl swh/web/tests/resources/contents/code/extensions/test.pony swh/web/tests/resources/contents/code/extensions/test.pp swh/web/tests/resources/contents/code/extensions/test.properties swh/web/tests/resources/contents/code/extensions/test.proto swh/web/tests/resources/contents/code/extensions/test.ps1 swh/web/tests/resources/contents/code/extensions/test.py swh/web/tests/resources/contents/code/extensions/test.q swh/web/tests/resources/contents/code/extensions/test.qml swh/web/tests/resources/contents/code/extensions/test.rb swh/web/tests/resources/contents/code/extensions/test.re swh/web/tests/resources/contents/code/extensions/test.rib swh/web/tests/resources/contents/code/extensions/test.rs swh/web/tests/resources/contents/code/extensions/test.rsc swh/web/tests/resources/contents/code/extensions/test.s swh/web/tests/resources/contents/code/extensions/test.sas swh/web/tests/resources/contents/code/extensions/test.scad swh/web/tests/resources/contents/code/extensions/test.scala swh/web/tests/resources/contents/code/extensions/test.sci swh/web/tests/resources/contents/code/extensions/test.scm swh/web/tests/resources/contents/code/extensions/test.scss swh/web/tests/resources/contents/code/extensions/test.sh swh/web/tests/resources/contents/code/extensions/test.sl swh/web/tests/resources/contents/code/extensions/test.smali swh/web/tests/resources/contents/code/extensions/test.sml swh/web/tests/resources/contents/code/extensions/test.sqf swh/web/tests/resources/contents/code/extensions/test.st swh/web/tests/resources/contents/code/extensions/test.stan swh/web/tests/resources/contents/code/extensions/test.styl swh/web/tests/resources/contents/code/extensions/test.subunit swh/web/tests/resources/contents/code/extensions/test.swift swh/web/tests/resources/contents/code/extensions/test.tap swh/web/tests/resources/contents/code/extensions/test.tcl swh/web/tests/resources/contents/code/extensions/test.tex swh/web/tests/resources/contents/code/extensions/test.thrift swh/web/tests/resources/contents/code/extensions/test.ts swh/web/tests/resources/contents/code/extensions/test.v swh/web/tests/resources/contents/code/extensions/test.vala swh/web/tests/resources/contents/code/extensions/test.vb swh/web/tests/resources/contents/code/extensions/test.vbs swh/web/tests/resources/contents/code/extensions/test.vhd swh/web/tests/resources/contents/code/extensions/test.vim swh/web/tests/resources/contents/code/extensions/test.wl swh/web/tests/resources/contents/code/extensions/test.xml swh/web/tests/resources/contents/code/extensions/test.xqy swh/web/tests/resources/contents/code/extensions/test.yml swh/web/tests/resources/contents/code/extensions/test.zep swh/web/tests/resources/contents/code/filenames/.htaccess swh/web/tests/resources/contents/code/filenames/CMakeLists.txt swh/web/tests/resources/contents/code/filenames/Dockerfile swh/web/tests/resources/contents/code/filenames/Makefile swh/web/tests/resources/contents/code/filenames/access.log swh/web/tests/resources/contents/code/filenames/httpd.conf swh/web/tests/resources/contents/code/filenames/nginx.conf swh/web/tests/resources/contents/code/filenames/nginx.log swh/web/tests/resources/contents/code/filenames/pf.conf swh/web/tests/resources/contents/code/filenames/resolv.conf swh/web/tests/resources/contents/other/extensions/bash-cheatsheet.pdf swh/web/tests/resources/contents/other/extensions/swh-logo.jpeg swh/web/tests/resources/contents/other/extensions/swh-logo.png swh/web/tests/resources/contents/other/extensions/swh-logo.webp swh/web/tests/resources/contents/other/extensions/swh-spinner.gif swh/web/tests/resources/contents/other/extensions/word2vec.ipynb swh/web/tests/resources/http_esnode1.internal.softwareheritage.org/swh_workers-*__search swh/web/tests/resources/repos/highlightjs-line-numbers.js.zip swh/web/tests/resources/repos/highlightjs-line-numbers.js_visit2.zip swh/web/tests/resources/repos/libtess2.zip swh/web/tests/resources/repos/repo_with_submodules.tgz \ No newline at end of file diff --git a/swh.web.egg-info/requires.txt b/swh.web.egg-info/requires.txt index d89d4e6c..5cfabeac 100644 --- a/swh.web.egg-info/requires.txt +++ b/swh.web.egg-info/requires.txt @@ -1,40 +1,40 @@ beautifulsoup4 django<3 django-cors-headers djangorestframework django_webpack_loader django_js_reverse docutils python-magic>=0.4.0 htmlmin lxml prometheus_client pygments python-dateutil pyyaml requests python-memcached pybadges sentry-sdk typing-extensions sphinx sphinxcontrib-httpdomain swh.model>=0.0.32 -swh.storage>=0.0.145 +swh.storage>=0.0.172 swh.vault>=0.0.23 swh.indexer>=0.0.120 swh.scheduler>=0.0.31 swh.core>=0.0.81 swh.search>=0.0.3 [testing] hypothesis pytest pytest-django pytest-mock django-stubs djangorestframework-stubs requests-mock swh.core[http]>=0.0.81 swh.loader.git>=0.0.55 decorator diff --git a/swh/web/api/apidoc.py b/swh/web/api/apidoc.py index 970a843a..d9a51fb1 100644 --- a/swh/web/api/apidoc.py +++ b/swh/web/api/apidoc.py @@ -1,400 +1,441 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information -import docutils.nodes -import docutils.parsers.rst -import docutils.utils +from collections import defaultdict import functools from functools import wraps import os import re import textwrap +from typing import List + +import docutils.nodes +import docutils.parsers.rst +import docutils.utils from rest_framework.decorators import api_view import sentry_sdk from swh.web.common.utils import parse_rst from swh.web.api.apiurls import APIUrls from swh.web.api.apiresponse import make_api_response, error_response class _HTTPDomainDocVisitor(docutils.nodes.NodeVisitor): """ docutils visitor for walking on a parsed rst document containing sphinx httpdomain roles. Its purpose is to extract relevant info regarding swh api endpoints (for instance url arguments) from their docstring written using sphinx httpdomain. """ # httpdomain roles we want to parse (based on sphinxcontrib.httpdomain 1.6) parameter_roles = ('param', 'parameter', 'arg', 'argument') + request_json_object_roles = ('reqjsonobj', 'reqjson', '<jsonobj', '<json') + + request_json_array_roles = ('reqjsonarr', '<jsonarr') + response_json_object_roles = ('resjsonobj', 'resjson', '>jsonobj', '>json') response_json_array_roles = ('resjsonarr', '>jsonarr') query_parameter_roles = ('queryparameter', 'queryparam', 'qparam', 'query') request_header_roles = ('<header', 'reqheader', 'requestheader') response_header_roles = ('>header', 'resheader', 'responseheader') status_code_roles = ('statuscode', 'status', 'code') - def __init__(self, document, urls, data): + def __init__(self, document, data): super().__init__(document) - self.urls = urls - self.url_idx = 0 self.data = data self.args_set = set() self.params_set = set() + self.inputs_set = set() self.returns_set = set() self.status_codes_set = set() self.reqheaders_set = set() self.resheaders_set = set() self.field_list_visited = False + self.current_json_obj = None def process_paragraph(self, par): """ Process extracted paragraph text before display. Cleanup document model markups and transform the paragraph into a valid raw rst string (as the apidoc documentation transform rst to html when rendering). """ par = par.replace('\n', ' ') # keep emphasized, strong and literal text par = par.replace('<emphasis>', '*') par = par.replace('</emphasis>', '*') par = par.replace('<strong>', '**') par = par.replace('</strong>', '**') par = par.replace('<literal>', '``') par = par.replace('</literal>', '``') - # remove parsed document markups - par = re.sub('<[^<]+?>', '', par) + # keep links to web pages + if '<reference' in par: + par = re.sub(r'<reference name="(.*)" refuri="(.*)".*</reference>', + r'`\1 <\2>`_', par) + # remove parsed document markups but keep rst links + par = re.sub(r'<[^<]+?>(?!`_)', '', par) # api urls cleanup to generate valid links afterwards - par = re.sub(r'\(\w+\)', '', par) - par = re.sub(r'\[.*\]', '', par) + subs_made = 1 + while subs_made: + (par, subs_made) = re.subn(r'(:http:.*)(\(\w+\))', r'\1', par) + subs_made = 1 + while subs_made: + (par, subs_made) = re.subn(r'(:http:.*)(\[.*\])', r'\1', par) par = par.replace('//', '/') - # transform references to api endpoints into valid rst links - par = re.sub(':http:get:`([^,]*)`', r'`<\1>`_', par) + # transform references to api endpoints doc into valid rst links + par = re.sub(':http:get:`([^,`]*)`', r'`\1 <\1doc/>`_', par) # transform references to some elements into bold text par = re.sub(':http:header:`(.*)`', r'**\1**', par) par = re.sub(':func:`(.*)`', r'**\1**', par) return par def visit_field_list(self, node): """ Visit parsed rst field lists to extract relevant info regarding api endpoint. """ self.field_list_visited = True for child in node.traverse(): # get the parsed field name if isinstance(child, docutils.nodes.field_name): field_name = child.astext() # parse field text elif isinstance(child, docutils.nodes.paragraph): text = self.process_paragraph(str(child)) field_data = field_name.split(' ') # Parameters if field_data[0] in self.parameter_roles: if field_data[2] not in self.args_set: self.data['args'].append({'name': field_data[2], 'type': field_data[1], 'doc': text}) self.args_set.add(field_data[2]) # Query Parameters if field_data[0] in self.query_parameter_roles: if field_data[2] not in self.params_set: self.data['params'].append({'name': field_data[2], 'type': field_data[1], 'doc': text}) self.params_set.add(field_data[2]) + # Request data type + if (field_data[0] in self.request_json_array_roles or + field_data[0] in self.request_json_object_roles): + # array + if field_data[0] in self.request_json_array_roles: + self.data['input_type'] = 'array' + # object + else: + self.data['input_type'] = 'object' + # input object field + if field_data[2] not in self.inputs_set: + self.data['inputs'].append({'name': field_data[2], + 'type': field_data[1], + 'doc': text}) + self.inputs_set.add(field_data[2]) + self.current_json_obj = self.data['inputs'][-1] # Response type - if field_data[0] in self.response_json_array_roles or \ - field_data[0] in self.response_json_object_roles: + if (field_data[0] in self.response_json_array_roles or + field_data[0] in self.response_json_object_roles): # array if field_data[0] in self.response_json_array_roles: self.data['return_type'] = 'array' # object else: self.data['return_type'] = 'object' # returned object field if field_data[2] not in self.returns_set: self.data['returns'].append({'name': field_data[2], 'type': field_data[1], 'doc': text}) self.returns_set.add(field_data[2]) + self.current_json_obj = self.data['returns'][-1] # Status Codes if field_data[0] in self.status_code_roles: if field_data[1] not in self.status_codes_set: self.data['status_codes'].append({'code': field_data[1], # noqa 'doc': text}) self.status_codes_set.add(field_data[1]) # Request Headers if field_data[0] in self.request_header_roles: if field_data[1] not in self.reqheaders_set: self.data['reqheaders'].append({'name': field_data[1], 'doc': text}) self.reqheaders_set.add(field_data[1]) # Response Headers if field_data[0] in self.response_header_roles: if field_data[1] not in self.resheaders_set: resheader = {'name': field_data[1], 'doc': text} self.data['resheaders'].append(resheader) self.resheaders_set.add(field_data[1]) if resheader['name'] == 'Content-Type' and \ resheader['doc'] == 'application/octet-stream': self.data['return_type'] = 'octet stream' def visit_paragraph(self, node): """ Visit relevant paragraphs to parse """ # only parsed top level paragraphs if isinstance(node.parent, docutils.nodes.block_quote): text = self.process_paragraph(str(node)) # endpoint description if (not text.startswith('**') and text not in self.data['description']): self.data['description'] += '\n\n' if self.data['description'] else '' # noqa self.data['description'] += text - # http methods - elif text.startswith('**Allowed HTTP Methods:**'): - text = text.replace('**Allowed HTTP Methods:**', '') - http_methods = text.strip().split(',') - http_methods = [m[m.find('`')+1:-1].upper() - for m in http_methods] - self.data['urls'].append({'rule': self.urls[self.url_idx], - 'methods': http_methods}) - self.url_idx += 1 def visit_literal_block(self, node): """ Visit literal blocks """ text = node.astext() # literal block in endpoint description if not self.field_list_visited: self.data['description'] += \ ':\n\n%s\n' % textwrap.indent(text, '\t') # extract example url if ':swh_web_api:' in text: self.data['examples'].append( '/api/1/' + re.sub('.*`(.*)`.*', r'\1', text)) def visit_bullet_list(self, node): # bullet list in endpoint description if not self.field_list_visited: self.data['description'] += '\n\n' for child in node.traverse(): # process list item if isinstance(child, docutils.nodes.paragraph): line_text = self.process_paragraph(str(child)) self.data['description'] += '\t* %s\n' % line_text + elif self.current_json_obj: + self.current_json_obj['doc'] += '\n\n' + for child in node.traverse(): + # process list item + if isinstance(child, docutils.nodes.paragraph): + line_text = self.process_paragraph(str(child)) + self.current_json_obj['doc'] += '\t\t* %s\n' % line_text + self.current_json_obj = None def visit_warning(self, node): text = self.process_paragraph(str(node)) rst_warning = '\n\n.. warning::\n%s\n' % textwrap.indent(text, '\t') if rst_warning not in self.data['description']: self.data['description'] += rst_warning def unknown_visit(self, node): pass - def depart_document(self, node): - """ - End of parsing extra processing - """ - default_methods = ['GET', 'HEAD', 'OPTIONS'] - # ensure urls info is present and set default http methods - if not self.data['urls']: - for url in self.urls: - self.data['urls'].append({'rule': url, - 'methods': default_methods}) - def unknown_departure(self, node): pass def _parse_httpdomain_doc(doc, data): doc_lines = doc.split('\n') doc_lines_filtered = [] - urls = [] + urls = defaultdict(list) + default_http_methods = ['HEAD', 'OPTIONS'] # httpdomain is a sphinx extension that is unknown to docutils but # fortunately we can still parse its directives' content, # so remove lines with httpdomain directives before executing the # rst parser from docutils for doc_line in doc_lines: if '.. http' not in doc_line: doc_lines_filtered.append(doc_line) else: url = doc_line[doc_line.find('/'):] # emphasize url arguments for html rendering url = re.sub(r'\((\w+)\)', r' **\(\1\)** ', url) - urls.append(url) + method = re.search(r'http:(\w+)::', doc_line).group(1) + urls[url].append(method.upper()) + + for url, methods in urls.items(): + data['urls'].append({'rule': url, + 'methods': methods + default_http_methods}) # parse the rst docstring and do not print system messages about # unknown httpdomain roles document = parse_rst('\n'.join(doc_lines_filtered), report_level=5) # remove the system_message nodes from the parsed document for node in document.traverse(docutils.nodes.system_message): node.parent.remove(node) # visit the document nodes to extract relevant endpoint info - visitor = _HTTPDomainDocVisitor(document, urls, data) + visitor = _HTTPDomainDocVisitor(document, data) document.walkabout(visitor) class APIDocException(Exception): """ Custom exception to signal errors in the use of the APIDoc decorators """ -def api_doc(route, noargs=False, need_params=False, tags=[], - handle_response=False, api_version='1'): +def api_doc(route: str, noargs: bool = False, need_params: bool = False, + tags: List[str] = [], handle_response: bool = False, + api_version: str = '1'): """ - Decorate an API function to register it in the API doc route index - and create the corresponding DRF route. + Decorator for an API endpoint implementation used to generate a dedicated + view displaying its HTML documentation. + + The documentation will be generated from the endpoint docstring based on + sphinxcontrib-httpdomain format. Args: - route (str): documentation page's route - noargs (boolean): set to True if the route has no arguments, and its + route: documentation page's route + noargs: set to True if the route has no arguments, and its result should be displayed anytime its documentation is requested. Default to False - need_params (boolean): specify the route requires query parameters + need_params: specify the route requires query parameters otherwise errors will occur. It enables to avoid displaying the invalid response in its HTML documentation. Default to False. - tags (list): Further information on api endpoints. Two values are + tags: Further information on api endpoints. Two values are possibly expected: * hidden: remove the entry points from the listing * upcoming: display the entry point but it is not followable - handle_response (boolean): indicate if the decorated function takes + handle_response: indicate if the decorated function takes care of creating the HTTP response or delegates that task to the apiresponse module - api_version (str): api version string - + api_version: api version string """ - urlpattern = '^' + api_version + route + '$' - tags = set(tags) + + tags_set = set(tags) # @api_doc() Decorator call def decorator(f): - - # If the route is not hidden, add it to the index - if 'hidden' not in tags: + # if the route is not hidden, add it to the index + if 'hidden' not in tags_set: doc_data = get_doc_data(f, route, noargs) doc_desc = doc_data['description'] first_dot_pos = doc_desc.find('.') - APIUrls.add_route(route, doc_desc[:first_dot_pos+1], - tags=tags) + APIUrls.add_doc_route(route, doc_desc[:first_dot_pos+1], + noargs=noargs, api_version=api_version, + tags=tags_set) - # If the decorated route has arguments, we create a specific - # documentation view - if not noargs: + # create a dedicated view to display endpoint HTML doc + @api_view(['GET', 'HEAD']) + @wraps(f) + def doc_view(request): + doc_data = get_doc_data(f, route, noargs) + return make_api_response(request, None, doc_data) - @api_view(['GET', 'HEAD']) - @wraps(f) - def doc_view(request): - doc_data = get_doc_data(f, route, noargs) - return make_api_response(request, None, doc_data) + route_name = '%s-doc' % route[1:-1].replace('/', '-') + urlpattern = f'^{api_version}{route}doc/$' - view_name = 'api-%s-%s' % \ - (api_version, route[1:-1].replace('/', '-')) - APIUrls.add_url_pattern(urlpattern, doc_view, view_name) + view_name = 'api-%s-%s' % (api_version, route_name) + APIUrls.add_url_pattern(urlpattern, doc_view, view_name) @wraps(f) def documented_view(request, **kwargs): doc_data = get_doc_data(f, route, noargs) try: response = f(request, **kwargs) except Exception as exc: sentry_sdk.capture_exception(exc) if request.accepted_media_type == 'text/html' and \ need_params and not request.query_params: response = None else: return error_response(request, exc, doc_data) if handle_response: return response else: return make_api_response(request, response, doc_data) return documented_view return decorator @functools.lru_cache(maxsize=32) def get_doc_data(f, route, noargs): """ Build documentation data for the decorated api endpoint function """ data = { 'description': '', 'response_data': None, 'urls': [], 'args': [], 'params': [], + 'input_type': '', + 'inputs': [], 'resheaders': [], 'reqheaders': [], 'return_type': '', 'returns': [], 'status_codes': [], 'examples': [], 'route': route, 'noargs': noargs } if not f.__doc__: raise APIDocException('apidoc: expected a docstring' ' for function %s' % (f.__name__,)) # use raw docstring as endpoint documentation if sphinx # httpdomain is not used if '.. http' not in f.__doc__: data['description'] = f.__doc__ # else parse the sphinx httpdomain docstring with docutils # (except when building the swh-web documentation through autodoc # sphinx extension, not needed and raise errors with sphinx >= 1.7) elif 'SWH_WEB_DOC_BUILD' not in os.environ: _parse_httpdomain_doc(f.__doc__, data) - # process returned object info for nicer html display + # process input/returned object info for nicer html display + inputs_list = '' returns_list = '' + for inp in data['inputs']: + # special case for array of non object type, for instance + # :<jsonarr string -: an array of string + if inp['name'] != '-': + inputs_list += ('\t* **%s (%s)**: %s\n' % + (inp['name'], inp['type'], inp['doc'])) for ret in data['returns']: - returns_list += '\t* **%s (%s)**: %s\n' %\ - (ret['name'], ret['type'], ret['doc']) + # special case for array of non object type, for instance + # :>jsonarr string -: an array of string + if ret['name'] != '-': + returns_list += ('\t* **%s (%s)**: %s\n' % + (ret['name'], ret['type'], ret['doc'])) + data['inputs_list'] = inputs_list data['returns_list'] = returns_list return data DOC_COMMON_HEADERS = ''' :reqheader Accept: the requested response content type, either ``application/json`` (default) or ``application/yaml`` :resheader Content-Type: this depends on :http:header:`Accept` header of request''' DOC_RESHEADER_LINK = ''' :resheader Link: indicates that a subsequent result page is available and contains the url pointing to it ''' DEFAULT_SUBSTITUTIONS = { 'common_headers': DOC_COMMON_HEADERS, 'resheader_link': DOC_RESHEADER_LINK, } def format_docstring(**substitutions): def decorator(f): f.__doc__ = f.__doc__.format(**{ **DEFAULT_SUBSTITUTIONS, **substitutions}) return f return decorator diff --git a/swh/web/api/apiresponse.py b/swh/web/api/apiresponse.py index 45a93e22..773cda44 100644 --- a/swh/web/api/apiresponse.py +++ b/swh/web/api/apiresponse.py @@ -1,186 +1,196 @@ # Copyright (C) 2017-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import json import traceback from django.utils.html import escape from rest_framework.response import Response from swh.storage.exc import StorageDBError, StorageAPIError from swh.web.api import utils -from swh.web.common.exc import NotFoundExc, ForbiddenExc, BadInputExc +from swh.web.common.exc import ( + NotFoundExc, ForbiddenExc, + BadInputExc, LargePayloadExc +) from swh.web.common.utils import shorten_path, gen_path_info from swh.web.config import get_config def compute_link_header(rv, options): """Add Link header in returned value results. Args: request: a DRF Request object rv (dict): dictionary with keys: - headers: potential headers with 'link-next' and 'link-prev' keys - results: containing the result to return options (dict): the initial dict to update with result if any Returns: dict: dictionary with optional keys 'link-next' and 'link-prev' """ link_headers = [] if 'headers' not in rv: return {} rv_headers = rv['headers'] if 'link-next' in rv_headers: link_headers.append('<%s>; rel="next"' % rv_headers['link-next']) if 'link-prev' in rv_headers: link_headers.append('<%s>; rel="previous"' % rv_headers['link-prev']) if link_headers: link_header_str = ','.join(link_headers) headers = options.get('headers', {}) headers.update({ 'Link': link_header_str }) return headers return {} def filter_by_fields(request, data): """Extract a request parameter 'fields' if it exists to permit the filtering on the data dict's keys. If such field is not provided, returns the data as is. """ fields = request.query_params.get('fields') if fields: fields = set(fields.split(',')) data = utils.filter_field_keys(data, fields) return data def transform(rv): """Transform an eventual returned value with multiple layer of information with only what's necessary. If the returned value rv contains the 'results' key, this is the associated value which is returned. Otherwise, return the initial dict without the potential 'headers' key. """ if 'results' in rv: return rv['results'] if 'headers' in rv: rv.pop('headers') return rv def make_api_response(request, data, doc_data={}, options={}): """Generates an API response based on the requested mimetype. Args: request: a DRF Request object data: raw data to return in the API response doc_data: documentation data for HTML response options: optional data that can be used to generate the response Returns: a DRF Response a object """ if data: options['headers'] = compute_link_header(data, options) data = transform(data) data = filter_by_fields(request, data) doc_env = doc_data headers = {} if 'headers' in options: doc_env['headers_data'] = options['headers'] headers = options['headers'] # get request status code doc_env['status_code'] = options.get('status', 200) response_args = {'status': doc_env['status_code'], 'headers': headers, 'content_type': request.accepted_media_type} # when requesting HTML, typically when browsing the API through its # documented views, we need to enrich the input data with documentation # related ones and inform DRF that we request HTML template rendering if request.accepted_media_type == 'text/html': if data: data = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')) doc_env['response_data'] = data doc_env['heading'] = shorten_path(str(request.path)) + # generate breadcrumbs data if 'route' in doc_env: doc_env['endpoint_path'] = gen_path_info(doc_env['route']) + for i in range(len(doc_env['endpoint_path']) - 1): + doc_env['endpoint_path'][i]['path'] += '/doc/' + if not doc_env['noargs']: + doc_env['endpoint_path'][-1]['path'] += '/doc/' response_args['data'] = doc_env response_args['template_name'] = 'api/apidoc.html' # otherwise simply return the raw data and let DRF picks # the correct renderer (JSON or YAML) else: response_args['data'] = data return Response(**response_args) def error_response(request, error, doc_data): """Private function to create a custom error response. Args: request: a DRF Request object error: the exception that caused the error doc_data: documentation data for HTML response """ error_code = 500 if isinstance(error, BadInputExc): error_code = 400 elif isinstance(error, NotFoundExc): error_code = 404 elif isinstance(error, ForbiddenExc): error_code = 403 + elif isinstance(error, LargePayloadExc): + error_code = 413 elif isinstance(error, StorageDBError): error_code = 503 elif isinstance(error, StorageAPIError): error_code = 503 error_opts = {'status': error_code} error_data = { 'exception': error.__class__.__name__, 'reason': str(error), } if request.accepted_media_type == 'text/html': error_data['reason'] = escape(error_data['reason']) if get_config()['debug']: error_data['traceback'] = traceback.format_exc() return make_api_response(request, error_data, doc_data, options=error_opts) diff --git a/swh/web/api/apiurls.py b/swh/web/api/apiurls.py index 8694115f..6f8031f0 100644 --- a/swh/web/api/apiurls.py +++ b/swh/web/api/apiurls.py @@ -1,86 +1,91 @@ # Copyright (C) 2017-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import functools from typing import Dict from rest_framework.decorators import api_view from swh.web.common.urlsindex import UrlsIndex from swh.web.common import throttling class APIUrls(UrlsIndex): """ Class to manage API documentation URLs. - Indexes all routes documented using apidoc's decorators. - Tracks endpoint/request processing method relationships for use in generating related urls in API documentation """ _apidoc_routes = {} # type: Dict[str, Dict[str, str]] scope = 'api' @classmethod def get_app_endpoints(cls): return cls._apidoc_routes @classmethod - def add_route(cls, route, docstring, **kwargs): + def add_doc_route(cls, route, docstring, noargs=False, + api_version='1', **kwargs): """ Add a route to the self-documenting API reference """ - route_view_name = 'api-1-%s' % route[1:-1].replace('/', '-') + route_name = route[1:-1].replace('/', '-') + if not noargs: + route_name = '%s-doc' % route_name + route_view_name = 'api-%s-%s' % (api_version, route_name) if route not in cls._apidoc_routes: d = {'docstring': docstring, + 'route': '/api/%s%s' % (api_version, route), 'route_view_name': route_view_name} for k, v in kwargs.items(): d[k] = v cls._apidoc_routes[route] = d def api_route(url_pattern=None, view_name=None, methods=['GET', 'HEAD', 'OPTIONS'], throttle_scope='swh_api', api_version='1', checksum_args=None): """ Decorator to ease the registration of an API endpoint using the Django REST Framework. Args: url_pattern: the url pattern used by DRF to identify the API route view_name: the name of the API view associated to the route used to reverse the url methods: array of HTTP methods supported by the API route """ url_pattern = '^' + api_version + url_pattern + '$' def decorator(f): # create a DRF view from the wrapped function @api_view(methods) @throttling.throttle_scope(throttle_scope) @functools.wraps(f) def api_view_f(*args, **kwargs): return f(*args, **kwargs) # small hacks for correctly generating API endpoints index doc api_view_f.__name__ = f.__name__ api_view_f.http_method_names = methods # register the route and its view in the endpoints index APIUrls.add_url_pattern(url_pattern, api_view_f, view_name) if checksum_args: APIUrls.add_redirect_for_checksum_args(view_name, [url_pattern], checksum_args) return f return decorator diff --git a/swh/web/api/views/content.py b/swh/web/api/views/content.py index 5d956091..b98ba4ac 100644 --- a/swh/web/api/views/content.py +++ b/swh/web/api/views/content.py @@ -1,384 +1,372 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import functools from django.http import HttpResponse from swh.web.common import service from swh.web.common.utils import reverse from swh.web.common.exc import NotFoundExc from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api import utils from swh.web.api.apiurls import api_route from swh.web.api.views.utils import api_lookup @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/filetype/', 'api-1-content-filetype', checksum_args=['q']) @api_doc('/content/filetype/') @format_docstring() def api_content_filetype(request, q): """ .. http:get:: /api/1/content/[(hash_type):](hash)/filetype/ Get information about the detected MIME type of a content object. :param string hash_type: optional parameter specifying which hashing algorithm has been used to compute the content checksum. It can be either ``sha1``, ``sha1_git``, ``sha256`` or ``blake2s256``. If that parameter is not provided, it is assumed that the hashing algorithm used is `sha1`. :param string hash: hexadecimal representation of the checksum value computed with the specified hashing algorithm. :>json object content_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/` for getting information about the content :>json string encoding: the detected content encoding :>json string id: the **sha1** identifier of the content :>json string mimetype: the detected MIME type of the content :>json object tool: information about the tool used to detect the content filetype {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **hash_type** or **hash** has been provided :statuscode 404: requested content can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`content/sha1:dc2830a9e72f23c1dfebef4413003221baa5fb62/filetype/` """ # noqa return api_lookup( service.lookup_content_filetype, q, notfound_msg='No filetype information found for content {}.'.format(q), enrich_fn=utils.enrich_metadata_endpoint, request=request) @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/language/', 'api-1-content-language', checksum_args=['q']) @api_doc('/content/language/') @format_docstring() def api_content_language(request, q): """ .. http:get:: /api/1/content/[(hash_type):](hash)/language/ Get information about the programming language used in a content object. Note: this endpoint currently returns no data. :param string hash_type: optional parameter specifying which hashing algorithm has been used to compute the content checksum. It can be either ``sha1``, ``sha1_git``, ``sha256`` or ``blake2s256``. If that parameter is not provided, it is assumed that the hashing algorithm used is ``sha1``. :param string hash: hexadecimal representation of the checksum value computed with the specified hashing algorithm. :>json object content_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/` for getting information about the content :>json string id: the **sha1** identifier of the content :>json string lang: the detected programming language if any :>json object tool: information about the tool used to detect the programming language {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **hash_type** or **hash** has been provided :statuscode 404: requested content can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`content/sha1:dc2830a9e72f23c1dfebef4413003221baa5fb62/language/` """ # noqa return api_lookup( service.lookup_content_language, q, notfound_msg='No language information found for content {}.'.format(q), enrich_fn=utils.enrich_metadata_endpoint, request=request) @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/license/', 'api-1-content-license', checksum_args=['q']) @api_doc('/content/license/') @format_docstring() def api_content_license(request, q): """ .. http:get:: /api/1/content/[(hash_type):](hash)/license/ Get information about the license of a content object. :param string hash_type: optional parameter specifying which hashing algorithm has been used to compute the content checksum. It can be either ``sha1``, ``sha1_git``, ``sha256`` or ``blake2s256``. If that parameter is not provided, it is assumed that the hashing algorithm used is ``sha1``. :param string hash: hexadecimal representation of the checksum value computed with the specified hashing algorithm. :>json object content_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/` for getting information about the content :>json string id: the **sha1** identifier of the content :>json array licenses: array of strings containing the detected license names if any :>json object tool: information about the tool used to detect the license {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **hash_type** or **hash** has been provided :statuscode 404: requested content can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`content/sha1:dc2830a9e72f23c1dfebef4413003221baa5fb62/license/` """ # noqa return api_lookup( service.lookup_content_license, q, notfound_msg='No license information found for content {}.'.format(q), enrich_fn=utils.enrich_metadata_endpoint, request=request) @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/ctags/', 'api-1-content-ctags') @api_doc('/content/ctags/', tags=['hidden']) def api_content_ctags(request, q): """ Get information about all `Ctags <http://ctags.sourceforge.net/>`_-style symbols defined in a content object. """ return api_lookup( service.lookup_content_ctags, q, notfound_msg='No ctags symbol found for content {}.'.format(q), enrich_fn=utils.enrich_metadata_endpoint, request=request) @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/raw/', 'api-1-content-raw', checksum_args=['q']) @api_doc('/content/raw/', handle_response=True) def api_content_raw(request, q): """ .. http:get:: /api/1/content/[(hash_type):](hash)/raw/ Get the raw content of a content object (aka a "blob"), as a byte sequence. :param string hash_type: optional parameter specifying which hashing algorithm has been used to compute the content checksum. It can be either ``sha1``, ``sha1_git``, ``sha256`` or ``blake2s256``. If that parameter is not provided, it is assumed that the hashing algorithm used is ``sha1``. :param string hash: hexadecimal representation of the checksum value computed with the specified hashing algorithm. :query string filename: if provided, the downloaded content will get that filename :resheader Content-Type: application/octet-stream - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **hash_type** or **hash** has been provided :statuscode 404: requested content can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`content/sha1:dc2830a9e72f23c1dfebef4413003221baa5fb62/raw/` """ # noqa def generate(content): yield content['data'] content_raw = service.lookup_content_raw(q) if not content_raw: raise NotFoundExc('Content %s is not found.' % q) filename = request.query_params.get('filename') if not filename: filename = 'content_%s_raw' % q.replace(':', '_') response = HttpResponse(generate(content_raw), content_type='application/octet-stream') response['Content-disposition'] = 'attachment; filename=%s' % filename return response @api_route(r'/content/symbol/(?P<q>.+)/', 'api-1-content-symbol') @api_doc('/content/symbol/', tags=['hidden']) def api_content_symbol(request, q=None): """Search content objects by `Ctags <http://ctags.sourceforge.net/>`_-style symbol (e.g., function name, data type, method, ...). """ result = {} last_sha1 = request.query_params.get('last_sha1', None) per_page = int(request.query_params.get('per_page', '10')) def lookup_exp(exp, last_sha1=last_sha1, per_page=per_page): exp = list(service.lookup_expression(exp, last_sha1, per_page)) return exp if exp else None symbols = api_lookup( lookup_exp, q, notfound_msg="No indexed raw content match expression '{}'.".format(q), enrich_fn=functools.partial(utils.enrich_content, top_url=True), request=request) if symbols: nb_symbols = len(symbols) if nb_symbols == per_page: query_params = {} new_last_sha1 = symbols[-1]['sha1'] query_params['last_sha1'] = new_last_sha1 if request.query_params.get('per_page'): query_params['per_page'] = per_page result['headers'] = { 'link-next': reverse('api-1-content-symbol', url_args={'q': q}, query_params=query_params, request=request) } result.update({ 'results': symbols }) return result @api_route(r'/content/known/search/', 'api-1-content-known', methods=['POST']) @api_route(r'/content/known/(?P<q>(?!search).*)/', 'api-1-content-known') @api_doc('/content/known/', tags=['hidden']) @format_docstring() def api_check_content_known(request, q=None): """ .. http:get:: /api/1/content/known/(sha1)[,(sha1), ...,(sha1)]/ Check whether some content(s) (aka "blob(s)") is present in the archive based on its **sha1** checksum. :param string sha1: hexadecimal representation of the **sha1** checksum value for the content to check existence. Multiple values can be provided separated by ','. {common_headers} :>json array search_res: array holding the search result for each provided **sha1** :>json object search_stats: some statistics regarding the number of **sha1** provided and the percentage of those found in the archive - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **sha1** has been provided **Example:** .. parsed-literal:: :swh_web_api:`content/known/dc2830a9e72f23c1dfebef4413003221baa5fb62,0c3f19cb47ebfbe643fb19fa94c874d18fa62d12/` """ # noqa response = {'search_res': None, 'search_stats': None} search_stats = {'nbfiles': 0, 'pct': 0} search_res = None queries = [] # GET: Many hash separated values request if q: hashes = q.split(',') for v in hashes: queries.append({'filename': None, 'sha1': v}) # POST: Many hash requests in post form submission elif request.method == 'POST': data = request.data # Remove potential inputs with no associated value for k, v in data.items(): if v is not None: if k == 'q' and len(v) > 0: queries.append({'filename': None, 'sha1': v}) elif v != '': queries.append({'filename': k, 'sha1': v}) if queries: lookup = service.lookup_multiple_hashes(queries) result = [] nb_queries = len(queries) for el in lookup: res_d = {'sha1': el['sha1'], 'found': el['found']} if 'filename' in el and el['filename']: res_d['filename'] = el['filename'] result.append(res_d) search_res = result nbfound = len([x for x in lookup if x['found']]) search_stats['nbfiles'] = nb_queries search_stats['pct'] = (nbfound / nb_queries) * 100 response['search_res'] = search_res response['search_stats'] = search_stats return response @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/', 'api-1-content', checksum_args=['q']) @api_doc('/content/') @format_docstring() def api_content_metadata(request, q): """ .. http:get:: /api/1/content/[(hash_type):](hash)/ Get information about a content (aka a "blob") object. In the archive, a content object is identified based on checksum values computed using various hashing algorithms. :param string hash_type: optional parameter specifying which hashing algorithm has been used to compute the content checksum. It can be either ``sha1``, ``sha1_git``, ``sha256`` or ``blake2s256``. If that parameter is not provided, it is assumed that the hashing algorithm used is ``sha1``. :param string hash: hexadecimal representation of the checksum value computed with the specified hashing algorithm. {common_headers} :>json object checksums: object holding the computed checksum values for the requested content :>json string data_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/raw/` for downloading the content raw bytes :>json string filetype_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/filetype/` for getting information about the content MIME type :>json string language_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/language/` for getting information about the programming language used in the content :>json number length: length of the content in bytes :>json string license_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/license/` for getting information about the license of the content - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **hash_type** or **hash** has been provided :statuscode 404: requested content can not be found in the archive **Example:** .. parsed-literal:: curl -i :swh_web_api:`content/sha1_git:fe95a46679d128ff167b7c55df5d02356c5a1ae1/` """ # noqa return api_lookup( service.lookup_content, q, notfound_msg='Content with {} not found.'.format(q), enrich_fn=functools.partial(utils.enrich_content, query_string=q), request=request) diff --git a/swh/web/api/views/directory.py b/swh/web/api/views/directory.py index 14e87981..01fec6b2 100644 --- a/swh/web/api/views/directory.py +++ b/swh/web/api/views/directory.py @@ -1,78 +1,76 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from swh.web.common import service from swh.web.api import utils from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.api.views.utils import api_lookup @api_route(r'/directory/(?P<sha1_git>[0-9a-f]+)/', 'api-1-directory', checksum_args=['sha1_git']) @api_route(r'/directory/(?P<sha1_git>[0-9a-f]+)/(?P<path>.+)/', 'api-1-directory', checksum_args=['sha1_git']) @api_doc('/directory/') @format_docstring() def api_directory(request, sha1_git, path=None): """ .. http:get:: /api/1/directory/(sha1_git)/[(path)/] Get information about directory objects. Directories are identified by **sha1** checksums, compatible with Git directory identifiers. See :func:`swh.model.identifiers.directory_identifier` in our data model module for details about how they are computed. When given only a directory identifier, this endpoint returns information about the directory itself, returning its content (usually a list of directory entries). When given a directory identifier and a path, this endpoint returns information about the directory entry pointed by the relative path, starting path resolution from the given directory. :param string sha1_git: hexadecimal representation of the directory **sha1_git** identifier :param string path: optional parameter to get information about the directory entry pointed by that relative path {common_headers} :>jsonarr object checksums: object holding the computed checksum values for a directory entry (only for file entries) :>jsonarr string dir_id: **sha1_git** identifier of the requested directory :>jsonarr number length: length of a directory entry in bytes (only for file entries) for getting information about the content MIME type :>jsonarr string name: the directory entry name :>jsonarr number perms: permissions for the directory entry :>jsonarr string target: **sha1_git** identifier of the directory entry :>jsonarr string target_url: link to :http:get:`/api/1/content/[(hash_type):](hash)/` or :http:get:`/api/1/directory/(sha1_git)/[(path)/]` depending on the directory entry type :>jsonarr string type: the type of the directory entry, can be either ``dir``, ``file`` or ``rev`` - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **hash_type** or **hash** has been provided :statuscode 404: requested directory can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`directory/977fc4b98c0e85816348cebd3b12026407c368b6/` """ # noqa if path: error_msg_path = ('Entry with path %s relative to directory ' 'with sha1_git %s not found.') % (path, sha1_git) return api_lookup( service.lookup_directory_with_path, sha1_git, path, notfound_msg=error_msg_path, enrich_fn=utils.enrich_directory, request=request) else: error_msg_nopath = 'Directory with sha1_git %s not found.' % sha1_git return api_lookup( service.lookup_directory, sha1_git, notfound_msg=error_msg_nopath, enrich_fn=utils.enrich_directory, request=request) diff --git a/swh/web/api/views/identifiers.py b/swh/web/api/views/identifiers.py index cc8c6567..28fdfcc5 100644 --- a/swh/web/api/views/identifiers.py +++ b/swh/web/api/views/identifiers.py @@ -1,101 +1,120 @@ # Copyright (C) 2018-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from swh.web.common import service, utils from swh.web.common.utils import ( resolve_swh_persistent_id, get_persistent_identifier ) from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route +from swh.web.common.exc import LargePayloadExc @api_route(r'/resolve/(?P<swh_id>.*)/', 'api-1-resolve-swh-pid') @api_doc('/resolve/') @format_docstring() def api_resolve_swh_pid(request, swh_id): """ .. http:get:: /api/1/resolve/(swh_id)/ Resolve a Software Heritage persistent identifier. - Try to resolve a provided `persistent identifier <https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html>`_ + Try to resolve a provided `persistent identifier + <https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html>`_ into an url for browsing the pointed archive object. If the provided identifier is valid, the existence of the object in the archive will also be checked. :param string swh_id: a Software Heritage persistent identifier :>json string browse_url: the url for browsing the pointed object - :>json object metadata: object holding optional parts of the persistent identifier + :>json object metadata: object holding optional parts of the + persistent identifier :>json string namespace: the persistent identifier namespace :>json string object_id: the hash identifier of the pointed object :>json string object_type: the type of the pointed object - :>json number scheme_version: the scheme version of the persistent identifier + :>json number scheme_version: the scheme version of the persistent + identifier {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid persistent identifier has been provided :statuscode 404: the pointed object does not exist in the archive **Example:** .. parsed-literal:: :swh_web_api:`resolve/swh:1:rev:96db9023b881d7cd9f379b0c154650d6c108e9a3;origin=https://github.com/openssl/openssl/` - """ # noqa + """ # try to resolve the provided pid swh_id_resolved = resolve_swh_persistent_id(swh_id) # id is well-formed, now check that the pointed # object is present in the archive, NotFoundExc # will be raised otherwise swh_id_parsed = swh_id_resolved['swh_id_parsed'] object_type = swh_id_parsed.object_type object_id = swh_id_parsed.object_id service.lookup_object(object_type, object_id) # id is well-formed and the pointed object exists swh_id_data = swh_id_parsed._asdict() swh_id_data['browse_url'] = request.build_absolute_uri( swh_id_resolved['browse_url']) return swh_id_data @api_route(r'/known/', - 'api-1-swh-pid-known', methods=['POST']) -@api_doc('/known/', noargs=True, tags=['hidden']) + 'api-1-known', methods=['POST']) +@api_doc('/known/') @format_docstring() def api_swh_pid_known(request): """ .. http:post:: /api/1/known/ - Check if a list of Software Heritage persistent identifier is present - in the archive depending on their id (sha1_git). + Check if a list of objects are present in the Software Heritage + archive. + + The objects to check existence must be provided using Software Heritage + `persistent identifiers + <https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html>`_. + + :<jsonarr string -: input array of Software Heritage persistent + identifiers, its length can not exceed 1000. + + :>json object <swh_pid>: an object whose keys are input persistent + identifiers and values objects with the following keys: - Returns: - A dictionary with: - keys(str): Persistent identifier - values(dict): A dictionary containing the key 'known'. (true if - the pid is present, False otherwise) + * **known (bool)**: whether the object was found + + {common_headers} + + :statuscode 200: no error + :statuscode 400: an invalid persistent identifier was provided + :statuscode 413: the input array of persistent identifiers is too large """ + limit = 1000 + if len(request.data) > limit: + raise LargePayloadExc('The maximum number of PIDs this endpoint can ' + 'receive is %s' % limit) + persistent_ids = [get_persistent_identifier(pid) for pid in request.data] response = {str(pid): {'known': False} for pid in persistent_ids} # group pids by their type pids_by_type = utils.group_swh_persistent_identifiers(persistent_ids) # search for hashes not present in the storage missing_hashes = service.lookup_missing_hashes(pids_by_type) for pid in persistent_ids: if pid.object_id not in missing_hashes: response[str(pid)]['known'] = True return response diff --git a/swh/web/api/views/origin.py b/swh/web/api/views/origin.py index 5bec10a4..c6729eb4 100644 --- a/swh/web/api/views/origin.py +++ b/swh/web/api/views/origin.py @@ -1,483 +1,459 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from distutils.util import strtobool from functools import partial from swh.web.common import service from swh.web.common.exc import BadInputExc from swh.web.common.origin_visits import get_origin_visits from swh.web.common.utils import reverse from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.api.utils import enrich_origin, enrich_origin_visit from swh.web.api.views.utils import api_lookup DOC_RETURN_ORIGIN = ''' :>json string origin_visits_url: link to in order to get information about the visits for that origin :>json string url: the origin canonical url ''' DOC_RETURN_ORIGIN_ARRAY = \ DOC_RETURN_ORIGIN.replace(':>json', ':>jsonarr') DOC_RETURN_ORIGIN_VISIT = ''' :>json string date: ISO representation of the visit date (in UTC) :>json str origin: the origin canonical url :>json string origin_url: link to get information about the origin :>jsonarr string snapshot: the snapshot identifier of the visit (may be null if status is not **full**). :>jsonarr string snapshot_url: link to :http:get:`/api/1/snapshot/(snapshot_id)/` in order to get information about the snapshot of the visit (may be null if status is not **full**). :>json string status: status of the visit (either **full**, **partial** or **ongoing**) :>json number visit: the unique identifier of the visit ''' DOC_RETURN_ORIGIN_VISIT_ARRAY = \ DOC_RETURN_ORIGIN_VISIT.replace(':>json', ':>jsonarr') DOC_RETURN_ORIGIN_VISIT_ARRAY += ''' :>jsonarr number id: the unique identifier of the origin :>jsonarr string origin_visit_url: link to :http:get:`/api/1/origin/(origin_url)/visit/(visit_id)/` in order to get information about the visit ''' @api_route(r'/origins/', 'api-1-origins') @api_doc('/origins/', noargs=True) @format_docstring(return_origin_array=DOC_RETURN_ORIGIN_ARRAY) def api_origins(request): """ .. http:get:: /api/1/origins/ Get list of archived software origins. .. warning:: This endpoint used to provide an `origin_from` query parameter, and guarantee an order on results. This is no longer true, and only the Link header should be used for paginating through results. :query int origin_count: The maximum number of origins to return (default to 100, can not exceed 10000) {return_origin_array} {common_headers} {resheader_link} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error **Example:** .. parsed-literal:: :swh_web_api:`origins?origin_count=500` """ origin_from = int(request.query_params.get('origin_from', '1')) origin_count = int(request.query_params.get('origin_count', '100')) origin_count = min(origin_count, 10000) results = api_lookup( service.lookup_origins, origin_from, origin_count+1, enrich_fn=enrich_origin, request=request) response = {'results': results, 'headers': {}} if len(results) > origin_count: origin_from = results.pop()['id'] response['headers']['link-next'] = reverse( 'api-1-origins', query_params={'origin_from': origin_from, 'origin_count': origin_count}, request=request) for result in results: if 'id' in result: del result['id'] return response @api_route(r'/origin/(?P<origin_url>.+)/get/', 'api-1-origin') @api_doc('/origin/') @format_docstring(return_origin=DOC_RETURN_ORIGIN) def api_origin(request, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/get/ Get information about a software origin. :param string origin_url: the origin url {return_origin} {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 404: requested origin can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/python/cpython/get/` """ ori_dict = { 'url': origin_url } error_msg = 'Origin with url %s not found.' % ori_dict['url'] return api_lookup( service.lookup_origin, ori_dict, notfound_msg=error_msg, enrich_fn=enrich_origin, request=request) @api_route(r'/origin/search/(?P<url_pattern>.+)/', 'api-1-origin-search', throttle_scope='swh_api_origin_search') @api_doc('/origin/search/') @format_docstring(return_origin_array=DOC_RETURN_ORIGIN_ARRAY) def api_origin_search(request, url_pattern): """ .. http:get:: /api/1/origin/search/(url_pattern)/ Search for software origins whose urls contain a provided string pattern or match a provided regular expression. The search is performed in a case insensitive way. .. warning:: This endpoint used to provide an `offset` query parameter, and guarantee an order on results. This is no longer true, and only the Link header should be used for paginating through results. :param string url_pattern: a string pattern :query int limit: the maximum number of found origins to return (bounded to 1000) :query boolean with_visit: if true, only return origins with at least one visit by Software heritage {return_origin_array} {common_headers} {resheader_link} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error **Example:** .. parsed-literal:: :swh_web_api:`origin/search/python/?limit=2` """ result = {} limit = min(int(request.query_params.get('limit', '70')), 1000) page_token = request.query_params.get('page_token') with_visit = request.query_params.get('with_visit', 'false') (results, page_token) = api_lookup( service.search_origin, url_pattern, limit, bool(strtobool(with_visit)), page_token, enrich_fn=enrich_origin, request=request) if page_token is not None: query_params = {} query_params['limit'] = limit query_params['page_token'] = page_token result['headers'] = { 'link-next': reverse('api-1-origin-search', url_args={'url_pattern': url_pattern}, query_params=query_params, request=request) } result.update({ 'results': results }) return result @api_route(r'/origin/metadata-search/', 'api-1-origin-metadata-search') @api_doc('/origin/metadata-search/', noargs=True, need_params=True) @format_docstring(return_origin_array=DOC_RETURN_ORIGIN_ARRAY) def api_origin_metadata_search(request): """ .. http:get:: /api/1/origin/metadata-search/ Search for software origins whose metadata (expressed as a JSON-LD/CodeMeta dictionary) match the provided criteria. For now, only full-text search on this dictionary is supported. :query str fulltext: a string that will be matched against origin metadata; results are ranked and ordered starting with the best ones. :query int limit: the maximum number of found origins to return (bounded to 100) {return_origin_array} {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error **Example:** .. parsed-literal:: :swh_web_api:`origin/metadata-search/?limit=2&fulltext=Jane%20Doe` """ fulltext = request.query_params.get('fulltext', None) limit = min(int(request.query_params.get('limit', '70')), 100) if not fulltext: content = '"fulltext" must be provided and non-empty.' raise BadInputExc(content) results = api_lookup(service.search_origin_metadata, fulltext, limit, request=request) return { 'results': results, } @api_route(r'/origin/(?P<origin_url>.*)/visits/', 'api-1-origin-visits') @api_doc('/origin/visits/') @format_docstring( return_origin_visit_array=DOC_RETURN_ORIGIN_VISIT_ARRAY) def api_origin_visits(request, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/visits/ Get information about all visits of a software origin. Visits are returned sorted in descending order according to their date. :param str origin_url: a software origin URL :query int per_page: specify the number of visits to list, for pagination purposes :query int last_visit: visit to start listing from, for pagination purposes {common_headers} {resheader_link} {return_origin_visit_array} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 404: requested origin can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/hylang/hy/visits/` """ result = {} origin_query = {'url': origin_url} notfound_msg = 'No origin {} found'.format(origin_url) url_args_next = {'origin_url': origin_url} per_page = int(request.query_params.get('per_page', '10')) last_visit = request.query_params.get('last_visit') if last_visit: last_visit = int(last_visit) def _lookup_origin_visits( origin_query, last_visit=last_visit, per_page=per_page): all_visits = get_origin_visits(origin_query) all_visits.reverse() visits = [] if not last_visit: visits = all_visits[:per_page] else: for i, v in enumerate(all_visits): if v['visit'] == last_visit: visits = all_visits[i+1:i+1+per_page] break for v in visits: yield v results = api_lookup(_lookup_origin_visits, origin_query, notfound_msg=notfound_msg, enrich_fn=partial(enrich_origin_visit, with_origin_link=False, with_origin_visit_link=True), request=request) if results: nb_results = len(results) if nb_results == per_page: new_last_visit = results[-1]['visit'] query_params = {} query_params['last_visit'] = new_last_visit if request.query_params.get('per_page'): query_params['per_page'] = per_page result['headers'] = { 'link-next': reverse('api-1-origin-visits', url_args=url_args_next, query_params=query_params, request=request) } result.update({ 'results': results }) return result @api_route(r'/origin/(?P<origin_url>.*)/visit/latest/', 'api-1-origin-visit-latest', throttle_scope='swh_api_origin_visit_latest') @api_doc('/origin/visit/latest/') @format_docstring(return_origin_visit=DOC_RETURN_ORIGIN_VISIT) def api_origin_visit_latest(request, origin_url=None): """ .. http:get:: /api/1/origin/(origin_url)/visit/latest/ Get information about the latest visit of a software origin. :param str origin_url: a software origin URL :query boolean require_snapshot: if true, only return a visit with a snapshot {common_headers} {return_origin_visit} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 404: requested origin or visit can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/hylang/hy/visit/latest/` """ require_snapshot = request.query_params.get('require_snapshot', 'false') return api_lookup( service.lookup_origin_visit_latest, origin_url, bool(strtobool(require_snapshot)), notfound_msg=('No visit for origin {} found' .format(origin_url)), enrich_fn=partial(enrich_origin_visit, with_origin_link=True, with_origin_visit_link=False), request=request) @api_route(r'/origin/(?P<origin_url>.*)/visit/(?P<visit_id>[0-9]+)/', 'api-1-origin-visit') @api_doc('/origin/visit/') @format_docstring(return_origin_visit=DOC_RETURN_ORIGIN_VISIT) def api_origin_visit(request, visit_id, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/visit/(visit_id)/ Get information about a specific visit of a software origin. :param str origin_url: a software origin URL :param int visit_id: a visit identifier {common_headers} {return_origin_visit} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 404: requested origin or visit can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/hylang/hy/visit/1/` """ return api_lookup( service.lookup_origin_visit, origin_url, int(visit_id), notfound_msg=('No visit {} for origin {} found' .format(visit_id, origin_url)), enrich_fn=partial(enrich_origin_visit, with_origin_link=True, with_origin_visit_link=False), request=request) @api_route(r'/origin/(?P<origin_url>.+)' '/intrinsic-metadata', 'api-origin-intrinsic-metadata') @api_doc('/origin/intrinsic-metadata/') @format_docstring() def api_origin_intrinsic_metadata(request, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/intrinsic-metadata Get intrinsic metadata of a software origin (as a JSON-LD/CodeMeta dictionary). :param string origin_url: the origin url :>json string ???: intrinsic metadata field of the origin {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 404: requested origin can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/python/cpython/intrinsic-metadata` """ # noqa ori_dict = { 'url': origin_url } error_msg = 'Origin with url %s not found' % ori_dict['url'] return api_lookup( service.lookup_origin_intrinsic_metadata, ori_dict, notfound_msg=error_msg, enrich_fn=enrich_origin, request=request) diff --git a/swh/web/api/views/origin_save.py b/swh/web/api/views/origin_save.py index be6240ed..0696169a 100644 --- a/swh/web/api/views/origin_save.py +++ b/swh/web/api/views/origin_save.py @@ -1,88 +1,85 @@ # Copyright (C) 2018-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from django.views.decorators.cache import never_cache from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.common.origin_save import ( create_save_origin_request, get_save_origin_requests ) @api_route(r'/origin/save/(?P<visit_type>.+)/url/(?P<origin_url>.+)/', 'api-1-save-origin', methods=['GET', 'POST'], throttle_scope='swh_save_origin') @never_cache @api_doc('/origin/save/') @format_docstring() def api_save_origin(request, visit_type, origin_url): """ .. http:get:: /api/1/origin/save/(visit_type)/url/(origin_url)/ .. http:post:: /api/1/origin/save/(visit_type)/url/(origin_url)/ Request the saving of a software origin into the archive or check the status of previously created save requests. That endpoint enables to create a saving task for a software origin through a POST request. Depending of the provided origin url, the save request can either be: * immediately **accepted**, for well known code hosting providers like for instance GitHub or GitLab * **rejected**, in case the url is blacklisted by Software Heritage * **put in pending state** until a manual check is done in order to determine if it can be loaded or not Once a saving request has been accepted, its associated saving task status can then be checked through a GET request on the same url. Returned status can either be: * **not created**: no saving task has been created * **not yet scheduled**: saving task has been created but its execution has not yet been scheduled * **scheduled**: the task execution has been scheduled * **succeed**: the saving task has been successfully executed * **failed**: the saving task has been executed but it failed When issuing a POST request an object will be returned while a GET request will return an array of objects (as multiple save requests might have been submitted for the same origin). :param string visit_type: the type of visit to perform (currently the supported types are ``git``, ``hg`` and ``svn``) :param string origin_url: the url of the origin to save {common_headers} :>json string origin_url: the url of the origin to save :>json string visit_type: the type of visit to perform :>json string save_request_date: the date (in iso format) the save request was issued :>json string save_request_status: the status of the save request, either **accepted**, **rejected** or **pending** :>json string save_task_status: the status of the origin saving task, either **not created**, **not yet scheduled**, **scheduled**, **succeed** or **failed** - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`post`, - :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid visit type or origin url has been provided :statuscode 403: the provided origin url is blacklisted :statuscode 404: no save requests have been found for a given origin """ if request.method == 'POST': sor = create_save_origin_request(visit_type, origin_url) del sor['id'] else: sor = get_save_origin_requests(visit_type, origin_url) for s in sor: del s['id'] return sor diff --git a/swh/web/api/views/release.py b/swh/web/api/views/release.py index 80b0a1f1..f4e827c7 100644 --- a/swh/web/api/views/release.py +++ b/swh/web/api/views/release.py @@ -1,60 +1,57 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from swh.web.common import service from swh.web.api import utils from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.api.views.utils import api_lookup @api_route(r'/release/(?P<sha1_git>[0-9a-f]+)/', 'api-1-release', checksum_args=['sha1_git']) @api_doc('/release/') @format_docstring() def api_release(request, sha1_git): """ .. http:get:: /api/1/release/(sha1_git)/ Get information about a release in the archive. Releases are identified by **sha1** checksums, compatible with Git tag identifiers. See :func:`swh.model.identifiers.release_identifier` in our data model module for details about how they are computed. :param string sha1_git: hexadecimal representation of the release **sha1_git** identifier {common_headers} :>json object author: information about the author of the release :>json string date: ISO representation of the release date (in UTC) :>json string id: the release unique identifier :>json string message: the message associated to the release :>json string name: the name of the release :>json string target: the target identifier of the release :>json string target_type: the type of the target, can be either **release**, **revision**, **content**, **directory** :>json string target_url: a link to the adequate api url based on the target type - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **sha1_git** value has been provided :statuscode 404: requested release can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`release/208f61cc7a5dbc9879ae6e5c2f95891e270f09ef/` """ error_msg = 'Release with sha1_git %s not found.' % sha1_git return api_lookup( service.lookup_release, sha1_git, notfound_msg=error_msg, enrich_fn=utils.enrich_release, request=request) diff --git a/swh/web/api/views/revision.py b/swh/web/api/views/revision.py index 363a3e66..b1047e9a 100644 --- a/swh/web/api/views/revision.py +++ b/swh/web/api/views/revision.py @@ -1,260 +1,251 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from django.http import HttpResponse from swh.web.common import service from swh.web.common.utils import reverse from swh.web.api import utils from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.api.views.utils import api_lookup DOC_RETURN_REVISION = ''' :>json object author: information about the author of the revision :>json object committer: information about the committer of the revision :>json string committer_date: ISO representation of the commit date (in UTC) :>json string date: ISO representation of the revision date (in UTC) :>json string directory: the unique identifier that revision points to :>json string directory_url: link to :http:get:`/api/1/directory/(sha1_git)/[(path)/]` to get information about the directory associated to the revision :>json string id: the revision unique identifier :>json boolean merge: whether or not the revision corresponds to a merge commit :>json string message: the message associated to the revision :>json array parents: the parents of the revision, i.e. the previous revisions that head directly to it, each entry of that array contains an unique parent revision identifier but also a link to :http:get:`/api/1/revision/(sha1_git)/` to get more information about it :>json string type: the type of the revision ''' # noqa DOC_RETURN_REVISION_ARRAY = \ DOC_RETURN_REVISION.replace(':>json', ':>jsonarr') def _revision_directory_by(revision, path, request_path, limit=100, with_data=False): """ Compute the revision matching criterion's directory or content data. Args: revision: dictionary of criterions representing a revision to lookup path: directory's path to lookup request_path: request path which holds the original context to limit: optional query parameter to limit the revisions log (default to 100). For now, note that this limit could impede the transitivity conclusion about sha1_git not being an ancestor of with_data: indicate to retrieve the content's raw data if path resolves to a content. """ def enrich_directory_local(dir, context_url=request_path): return utils.enrich_directory(dir, context_url) rev_id, result = service.lookup_directory_through_revision( revision, path, limit=limit, with_data=with_data) content = result['content'] if result['type'] == 'dir': # dir_entries result['content'] = list(map(enrich_directory_local, content)) elif result['type'] == 'file': # content result['content'] = utils.enrich_content(content) elif result['type'] == 'rev': # revision result['content'] = utils.enrich_revision(content) return result @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/', 'api-1-revision', checksum_args=['sha1_git']) @api_doc('/revision/') @format_docstring(return_revision=DOC_RETURN_REVISION) def api_revision(request, sha1_git): """ .. http:get:: /api/1/revision/(sha1_git)/ Get information about a revision in the archive. Revisions are identified by **sha1** checksums, compatible with Git commit identifiers. See :func:`swh.model.identifiers.revision_identifier` in our data model module for details about how they are computed. :param string sha1_git: hexadecimal representation of the revision **sha1_git** identifier {common_headers} {return_revision} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **sha1_git** value has been provided :statuscode 404: requested revision can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`revision/aafb16d69fd30ff58afdd69036a26047f3aebdc6/` """ # noqa return api_lookup( service.lookup_revision, sha1_git, notfound_msg='Revision with sha1_git {} not found.'.format(sha1_git), enrich_fn=utils.enrich_revision, request=request) @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/raw/', 'api-1-revision-raw-message', checksum_args=['sha1_git']) @api_doc('/revision/raw/', tags=['hidden'], handle_response=True) def api_revision_raw_message(request, sha1_git): """Return the raw data of the message of revision identified by sha1_git """ raw = service.lookup_revision_message(sha1_git) response = HttpResponse(raw['message'], content_type='application/octet-stream') response['Content-disposition'] = \ 'attachment;filename=rev_%s_raw' % sha1_git return response @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/directory/', 'api-1-revision-directory', checksum_args=['sha1_git']) @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/directory/(?P<dir_path>.+)/', 'api-1-revision-directory', checksum_args=['sha1_git']) @api_doc('/revision/directory/') @format_docstring() def api_revision_directory(request, sha1_git, dir_path=None, with_data=False): """ .. http:get:: /api/1/revision/(sha1_git)/directory/[(path)/] Get information about directory (entry) objects associated to revisions. Each revision is associated to a single "root" directory. This endpoint behaves like :http:get:`/api/1/directory/(sha1_git)/[(path)/]`, but operates on the root directory associated to a given revision. :param string sha1_git: hexadecimal representation of the revision **sha1_git** identifier :param string path: optional parameter to get information about the directory entry pointed by that relative path {common_headers} :>json array content: directory entries as returned by :http:get:`/api/1/directory/(sha1_git)/[(path)/]` :>json string path: path of directory from the revision root one :>json string revision: the unique revision identifier :>json string type: the type of the directory - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **sha1_git** value has been provided :statuscode 404: requested revision can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`revision/f1b94134a4b879bc55c3dacdb496690c8ebdc03f/directory/` """ # noqa return _revision_directory_by({'sha1_git': sha1_git}, dir_path, request.path, with_data=with_data) @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/log/', 'api-1-revision-log', checksum_args=['sha1_git']) @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)' r'/prev/(?P<prev_sha1s>[0-9a-f]*/*)/log/', 'api-1-revision-log', checksum_args=['sha1_git', 'prev_sha1s']) @api_doc('/revision/log/') @format_docstring(return_revision_array=DOC_RETURN_REVISION_ARRAY) def api_revision_log(request, sha1_git, prev_sha1s=None): """ .. http:get:: /api/1/revision/(sha1_git)[/prev/(prev_sha1s)]/log/ Get a list of all revisions heading to a given one, in other words show the commit log. :param string sha1_git: hexadecimal representation of the revision **sha1_git** identifier :param string prev_sha1s: optional parameter representing the navigation breadcrumbs (descendant revisions previously visited). If multiple values, use / as delimiter. If provided, revisions information will be added at the beginning of the returned list. :query int per_page: number of elements in the returned list, for pagination purpose {common_headers} {resheader_link} {return_revision_array} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid **sha1_git** value has been provided :statuscode 404: requested revision can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`revision/e1a315fa3fa734e2a6154ed7b5b9ae0eb8987aad/log/` """ # noqa result = {} per_page = int(request.query_params.get('per_page', '10')) def lookup_revision_log_with_limit(s, limit=per_page+1): return service.lookup_revision_log(s, limit) error_msg = 'Revision with sha1_git %s not found.' % sha1_git rev_get = api_lookup(lookup_revision_log_with_limit, sha1_git, notfound_msg=error_msg, enrich_fn=utils.enrich_revision, request=request) nb_rev = len(rev_get) if nb_rev == per_page+1: rev_backward = rev_get[:-1] new_last_sha1 = rev_get[-1]['id'] query_params = {} if request.query_params.get('per_page'): query_params['per_page'] = per_page result['headers'] = { 'link-next': reverse('api-1-revision-log', url_args={'sha1_git': new_last_sha1}, query_params=query_params, request=request) } else: rev_backward = rev_get if not prev_sha1s: # no nav breadcrumbs, so we're done revisions = rev_backward else: rev_forward_ids = prev_sha1s.split('/') rev_forward = api_lookup( service.lookup_revision_multiple, rev_forward_ids, notfound_msg=error_msg, enrich_fn=utils.enrich_revision, request=request) revisions = rev_forward + rev_backward result.update({ 'results': revisions }) return result diff --git a/swh/web/api/views/snapshot.py b/swh/web/api/views/snapshot.py index 6027846b..bd6ff0ad 100644 --- a/swh/web/api/views/snapshot.py +++ b/swh/web/api/views/snapshot.py @@ -1,97 +1,94 @@ # Copyright (C) 2018-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from swh.web.common import service from swh.web.common.utils import reverse from swh.web.config import get_config from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.api.utils import enrich_snapshot from swh.web.api.views.utils import api_lookup @api_route(r'/snapshot/(?P<snapshot_id>[0-9a-f]+)/', 'api-1-snapshot', checksum_args=['snapshot_id']) @api_doc('/snapshot/') @format_docstring() def api_snapshot(request, snapshot_id): """ .. http:get:: /api/1/snapshot/(snapshot_id)/ Get information about a snapshot in the archive. A snapshot is a set of named branches, which are pointers to objects at any level of the Software Heritage DAG. It represents a full picture of an origin at a given time. As well as pointing to other objects in the Software Heritage DAG, branches can also be aliases, in which case their target is the name of another branch in the same snapshot, or dangling, in which case the target is unknown. A snapshot identifier is a salted sha1. See :func:`swh.model.identifiers.snapshot_identifier` in our data model module for details about how they are computed. :param sha1 snapshot_id: a snapshot identifier :query str branches_from: optional parameter used to skip branches whose name is lesser than it before returning them :query int branches_count: optional parameter used to restrain the amount of returned branches (default to 1000) :query str target_types: optional comma separated list parameter used to filter the target types of branch to return (possible values that can be contained in that list are ``content``, ``directory``, ``revision``, ``release``, ``snapshot`` or ``alias``) {common_headers} {resheader_link} :>json object branches: object containing all branches associated to the snapshot,for each of them the associated target type and id are given but also a link to get information about that target :>json string id: the unique identifier of the snapshot - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid snapshot identifier has been provided :statuscode 404: requested snapshot can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`snapshot/6a3a2cf0b2b90ce7ae1cf0a221ed68035b686f5a/` """ snapshot_content_max_size = get_config()['snapshot_content_max_size'] branches_from = request.GET.get('branches_from', '') branches_count = int(request.GET.get('branches_count', snapshot_content_max_size)) target_types = request.GET.get('target_types', None) target_types = target_types.split(',') if target_types else None results = api_lookup( service.lookup_snapshot, snapshot_id, branches_from, branches_count, target_types, notfound_msg='Snapshot with id {} not found.'.format(snapshot_id), enrich_fn=enrich_snapshot, request=request) response = {'results': results, 'headers': {}} if results['next_branch'] is not None: response['headers']['link-next'] = reverse( 'api-1-snapshot', url_args={'snapshot_id': snapshot_id}, query_params={'branches_from': results['next_branch'], 'branches_count': branches_count, 'target_types': target_types}, request=request) return response diff --git a/swh/web/api/views/stat.py b/swh/web/api/views/stat.py index edddcc96..12477717 100644 --- a/swh/web/api/views/stat.py +++ b/swh/web/api/views/stat.py @@ -1,53 +1,50 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from swh.web.common import service from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route @api_route(r'/stat/counters/', 'api-1-stat-counters') @api_doc('/stat/counters/', noargs=True) @format_docstring() def api_stats(request): """ .. http:get:: /api/1/stat/counters/ Get statistics about the content of the archive. :>json number content: current number of content objects (aka files) in the archive :>json number directory: current number of directory objects in the archive :>json number origin: current number of software origins (an origin is a "place" where code source can be found, e.g. a git repository, a tarball, ...) in the archive :>json number origin_visit: current number of visits on software origins to fill the archive :>json number person: current number of persons (code source authors or committers) in the archive :>json number release: current number of releases objects in the archive :>json number revision: current number of revision objects (aka commits) in the archive :>json number skipped_content: current number of content objects (aka files) which where not inserted in the archive :>json number snapshot: current number of snapshot objects (aka set of named branches) in the archive {common_headers} - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error **Example:** .. parsed-literal:: :swh_web_api:`stat/counters/` """ return service.stat_counters() diff --git a/swh/web/api/views/vault.py b/swh/web/api/views/vault.py index 6e33ac92..7e5e544e 100644 --- a/swh/web/api/views/vault.py +++ b/swh/web/api/views/vault.py @@ -1,252 +1,240 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from django.http import HttpResponse from django.shortcuts import redirect from django.views.decorators.cache import never_cache from swh.model import hashutil from swh.web.common import service, query from swh.web.common.utils import reverse from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.api.views.utils import api_lookup # XXX: a bit spaghetti. Would be better with class-based views. def _dispatch_cook_progress(request, obj_type, obj_id): hex_id = hashutil.hash_to_hex(obj_id) object_name = obj_type.split('_')[0].title() if request.method == 'GET': return api_lookup( service.vault_progress, obj_type, obj_id, notfound_msg=("{} '{}' was never requested." .format(object_name, hex_id)), request=request) elif request.method == 'POST': email = request.POST.get('email', request.GET.get('email', None)) return api_lookup( service.vault_cook, obj_type, obj_id, email, notfound_msg=("{} '{}' not found." .format(object_name, hex_id)), request=request) @api_route(r'/vault/directory/(?P<dir_id>[0-9a-f]+)/', 'api-1-vault-cook-directory', methods=['GET', 'POST'], checksum_args=['dir_id'], throttle_scope='swh_vault_cooking') @never_cache @api_doc('/vault/directory/') @format_docstring() def api_vault_cook_directory(request, dir_id): """ .. http:get:: /api/1/vault/directory/(dir_id)/ .. http:post:: /api/1/vault/directory/(dir_id)/ Request the cooking of an archive for a directory or check its cooking status. That endpoint enables to create a vault cooking task for a directory through a POST request or check the status of a previously created one through a GET request. Once the cooking task has been executed, the resulting archive can be downloaded using the dedicated endpoint :http:get:`/api/1/vault/directory/(dir_id)/raw/`. Then to extract the cooked directory in the current one, use:: $ tar xvf path/to/directory.tar.gz :param string dir_id: the directory's sha1 identifier :query string email: e-mail to notify when the archive is ready {common_headers} :>json string fetch_url: the url from which to download the archive once it has been cooked (see :http:get:`/api/1/vault/directory/(dir_id)/raw/`) :>json string obj_type: the type of object to cook (directory or revision) :>json string progress_message: message describing the cooking task progress :>json number id: the cooking task id :>json string status: the cooking task status (either **new**, **pending**, **done** or **failed**) :>json string obj_id: the identifier of the object to cook - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`post`, - :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid directory identifier has been provided :statuscode 404: requested directory did not receive any cooking request yet (in case of GET) or can not be found in the archive (in case of POST) """ _, obj_id = query.parse_hash_with_algorithms_or_throws( dir_id, ['sha1'], 'Only sha1_git is supported.') res = _dispatch_cook_progress(request, 'directory', obj_id) res['fetch_url'] = reverse('api-1-vault-fetch-directory', url_args={'dir_id': dir_id}) return res @api_route(r'/vault/directory/(?P<dir_id>[0-9a-f]+)/raw/', 'api-1-vault-fetch-directory', checksum_args=['dir_id']) @api_doc('/vault/directory/raw/', handle_response=True) def api_vault_fetch_directory(request, dir_id): """ .. http:get:: /api/1/vault/directory/(dir_id)/raw/ Fetch the cooked archive for a directory. See :http:get:`/api/1/vault/directory/(dir_id)/` to get more details on directory cooking. :param string dir_id: the directory's sha1 identifier :resheader Content-Type: application/octet-stream - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid directory identifier has been provided :statuscode 404: requested directory did not receive any cooking request yet (in case of GET) or can not be found in the archive (in case of POST) """ _, obj_id = query.parse_hash_with_algorithms_or_throws( dir_id, ['sha1'], 'Only sha1_git is supported.') res = api_lookup( service.vault_fetch, 'directory', obj_id, notfound_msg="Directory with ID '{}' not found.".format(dir_id), request=request) fname = '{}.tar.gz'.format(dir_id) response = HttpResponse(res, content_type='application/gzip') response['Content-disposition'] = 'attachment; filename={}'.format(fname) return response @api_route(r'/vault/revision/(?P<rev_id>[0-9a-f]+)/gitfast/', 'api-1-vault-cook-revision_gitfast', methods=['GET', 'POST'], checksum_args=['rev_id'], throttle_scope='swh_vault_cooking') @never_cache @api_doc('/vault/revision/gitfast/') @format_docstring() def api_vault_cook_revision_gitfast(request, rev_id): """ .. http:get:: /api/1/vault/revision/(rev_id)/gitfast/ .. http:post:: /api/1/vault/revision/(rev_id)/gitfast/ Request the cooking of a gitfast archive for a revision or check its cooking status. That endpoint enables to create a vault cooking task for a revision through a POST request or check the status of a previously created one through a GET request. Once the cooking task has been executed, the resulting gitfast archive can be downloaded using the dedicated endpoint :http:get:`/api/1/vault/revision/(rev_id)/gitfast/raw/`. Then to import the revision in the current directory, use:: $ git init $ zcat path/to/revision.gitfast.gz | git fast-import $ git checkout HEAD :param string rev_id: the revision's sha1 identifier :query string email: e-mail to notify when the gitfast archive is ready {common_headers} :>json string fetch_url: the url from which to download the archive once it has been cooked (see :http:get:`/api/1/vault/revision/(rev_id)/gitfast/raw/`) :>json string obj_type: the type of object to cook (directory or revision) :>json string progress_message: message describing the cooking task progress :>json number id: the cooking task id :>json string status: the cooking task status (new/pending/done/failed) :>json string obj_id: the identifier of the object to cook - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`post`, - :http:method:`head`, :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid revision identifier has been provided :statuscode 404: requested directory did not receive any cooking request yet (in case of GET) or can not be found in the archive (in case of POST) """ _, obj_id = query.parse_hash_with_algorithms_or_throws( rev_id, ['sha1'], 'Only sha1_git is supported.') res = _dispatch_cook_progress(request, 'revision_gitfast', obj_id) res['fetch_url'] = reverse('api-1-vault-fetch-revision_gitfast', url_args={'rev_id': rev_id}) return res @api_route(r'/vault/revision/(?P<rev_id>[0-9a-f]+)/gitfast/raw/', 'api-1-vault-fetch-revision_gitfast', checksum_args=['rev_id']) @api_doc('/vault/revision/gitfast/raw/', handle_response=True) def api_vault_fetch_revision_gitfast(request, rev_id): """ .. http:get:: /api/1/vault/revision/(rev_id)/gitfast/raw/ Fetch the cooked gitfast archive for a revision. See :http:get:`/api/1/vault/revision/(rev_id)/gitfast/` to get more details on directory cooking. :param string rev_id: the revision's sha1 identifier :resheader Content-Type: application/octet-stream - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head`, - :http:method:`options` - :statuscode 200: no error :statuscode 400: an invalid revision identifier has been provided :statuscode 404: requested directory did not receive any cooking request yet (in case of GET) or can not be found in the archive (in case of POST) """ _, obj_id = query.parse_hash_with_algorithms_or_throws( rev_id, ['sha1'], 'Only sha1_git is supported.') res = api_lookup( service.vault_fetch, 'revision_gitfast', obj_id, notfound_msg="Revision with ID '{}' not found.".format(rev_id), request=request) fname = '{}.gitfast.gz'.format(rev_id) response = HttpResponse(res, content_type='application/gzip') response['Content-disposition'] = 'attachment; filename={}'.format(fname) return response @api_route(r'/vault/revision_gitfast/(?P<rev_id>[0-9a-f]+)/raw/', 'api-1-vault-revision_gitfast-raw', checksum_args=['rev_id']) @api_doc('/vault/revision_gitfast/raw/', tags=['hidden'], handle_response=True) def _api_vault_revision_gitfast_raw(request, rev_id): """ The vault backend sends an email containing an invalid url to fetch a gitfast archive. So setup a redirection to the correct one as a temporary workaround. """ rev_gitfast_raw_url = reverse('api-1-vault-fetch-revision_gitfast', url_args={'rev_id': rev_id}) return redirect(rev_gitfast_raw_url) diff --git a/swh/web/assets/src/bundles/browse/origin-search.js b/swh/web/assets/src/bundles/browse/origin-search.js index 4662ce7d..82683883 100644 --- a/swh/web/assets/src/bundles/browse/origin-search.js +++ b/swh/web/assets/src/bundles/browse/origin-search.js @@ -1,225 +1,225 @@ /** * Copyright (C) 2018-2020 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError} from 'utils/functions'; const limit = 100; let linksPrev = []; let linkNext = null; let linkCurrent = null; let inSearch = false; function parseLinkHeader(s) { let re = /<(.+)>; rel="next"/; return s.match(re)[1]; } function fixTableRowsStyle() { setTimeout(() => { $('#origin-search-results tbody tr').removeAttr('style'); }); } function clearOriginSearchResultsTable() { $('#origin-search-results tbody tr').remove(); } function populateOriginSearchResultsTable(origins) { if (origins.length > 0) { $('#swh-origin-search-results').show(); $('#swh-no-result').hide(); clearOriginSearchResultsTable(); let table = $('#origin-search-results tbody'); for (let [i, origin] of origins.entries()) { let browseUrl = Urls.browse_origin(origin.url); let tableRow = `<tr id="origin-${i}" class="swh-search-result-entry swh-tr-hover-highlight">`; tableRow += `<td style="white-space: nowrap;"><a href="${encodeURI(browseUrl)}">${encodeURI(origin.url)}</a></td>`; tableRow += `<td id="visit-type-origin-${i}" style="width: 120px;"></td>`; tableRow += `<td class="swh-visit-status" id="visit-status-origin-${i}"><i title="Checking visit status" class="fa fa-refresh fa-spin"></i></td>`; tableRow += '</tr>'; table.append(tableRow); // get async latest visit snapshot and update visit status icon let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url); latestSnapshotUrl += '?require_snapshot=true'; fetch(latestSnapshotUrl) .then(response => response.json()) .then(data => { $(`#visit-type-origin-${i}`).text(data.type); $(`#visit-status-origin-${i}`).children().remove(); if (data) { $(`#visit-status-origin-${i}`).append('<i title="Origin has at least one full visit by Software Heritage" class="fa fa-check"></i>'); } else { $(`#visit-status-origin-${i}`).append('<i title="Origin has not yet been visited by Software Heritage or does not have at least one full visit" class="fa fa-times"></i>'); if ($('#swh-filter-empty-visits').prop('checked')) { $(`#origin-${i}`).remove(); } } }); } fixTableRowsStyle(); } else { $('#swh-origin-search-results').hide(); $('#swh-no-result').text('No origins matching the search criteria were found.'); $('#swh-no-result').show(); } if (linkNext === null) { $('#origins-next-results-button').addClass('disabled'); } else { $('#origins-next-results-button').removeClass('disabled'); } if (linksPrev.length === 0) { $('#origins-prev-results-button').addClass('disabled'); } else { $('#origins-prev-results-button').removeClass('disabled'); } inSearch = false; setTimeout(() => { window.scrollTo(0, 0); }); } function searchOriginsFirst(searchQueryText, limit) { let baseSearchUrl; let searchMetadata = $('#swh-search-origin-metadata').prop('checked'); if (searchMetadata) { baseSearchUrl = Urls.api_1_origin_metadata_search() + '?fulltext=' + encodeURIComponent(searchQueryText); } else { - baseSearchUrl = Urls.api_1_origin_search(searchQueryText); + baseSearchUrl = Urls.api_1_origin_search(searchQueryText) + '?'; } let withVisit = $('#swh-search-origins-with-visit').prop('checked'); - let searchUrl = baseSearchUrl + `?limit=${limit}&with_visit=${withVisit}`; + let searchUrl = baseSearchUrl + `&limit=${limit}&with_visit=${withVisit}`; searchOrigins(searchUrl); } function searchOrigins(searchUrl) { clearOriginSearchResultsTable(); $('.swh-loading').addClass('show'); let response = fetch(searchUrl) .then(handleFetchError) .then(resp => { response = resp; return response.json(); }) .then(data => { // Save link to the current results page linkCurrent = searchUrl; // Save link to the next results page. linkNext = null; if (response.headers.has('Link')) { let parsedLink = parseLinkHeader(response.headers.get('Link')); if (parsedLink !== undefined) { linkNext = parsedLink; } } // prevLinks is updated by the caller, which is the one to know if // we're going forward or backward in the pages. $('.swh-loading').removeClass('show'); populateOriginSearchResultsTable(data); }) .catch(response => { $('.swh-loading').removeClass('show'); inSearch = false; $('#swh-origin-search-results').hide(); $('#swh-no-result').text(`Error ${response.status}: ${response.statusText}`); $('#swh-no-result').show(); }); } function doSearch() { $('#swh-no-result').hide(); let searchQueryText = $('#origins-url-patterns').val(); inSearch = true; if (searchQueryText.startsWith('swh:')) { // searchQueryText may be a PID so sending search queries to PID resolve endpoint let resolvePidUrl = Urls.api_1_resolve_swh_pid(searchQueryText); fetch(resolvePidUrl) .then(handleFetchError) .then(response => response.json()) .then(data => { // pid has been successfully resolved, // so redirect to browse page window.location = data.browse_url; }) .catch(response => { // display a useful error message if the input // looks like a swh pid response.json().then(data => { $('#swh-origin-search-results').hide(); $('.swh-search-pagination').hide(); $('#swh-no-result').text(data.reason); $('#swh-no-result').show(); }); }); } else { // otherwise, proceed with origins search $('#swh-origin-search-results').show(); $('.swh-search-pagination').show(); searchOriginsFirst(searchQueryText, limit); } } export function initOriginSearch() { $(document).ready(() => { $('#swh-search-origins').submit(event => { event.preventDefault(); let searchQueryText = $('#origins-url-patterns').val().trim(); let withVisit = $('#swh-search-origins-with-visit').prop('checked'); let withContent = $('#swh-filter-empty-visits').prop('checked'); let searchMetadata = $('#swh-search-origin-metadata').prop('checked'); let queryParameters = '?q=' + encodeURIComponent(searchQueryText); if (withVisit) { queryParameters += '&with_visit'; } if (withContent) { queryParameters += '&with_content'; } if (searchMetadata) { queryParameters += '&search_metadata'; } // Update the url, triggering page reload and effective search window.location.search = queryParameters; }); $('#origins-next-results-button').click(event => { if ($('#origins-next-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; linksPrev.push(linkCurrent); searchOrigins(linkNext); event.preventDefault(); }); $('#origins-prev-results-button').click(event => { if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; searchOrigins(linksPrev.pop()); event.preventDefault(); }); let urlParams = new URLSearchParams(window.location.search); let query = urlParams.get('q'); let withVisit = urlParams.has('with_visit'); let withContent = urlParams.has('with_content'); let searchMetadata = urlParams.has('search_metadata'); if (query) { $('#origins-url-patterns').val(query); $('#swh-search-origins-with-visit').prop('checked', withVisit); $('#swh-filter-empty-visits').prop('checked', withContent); $('#swh-search-origin-metadata').prop('checked', searchMetadata); doSearch(); } }); } diff --git a/swh/web/assets/src/bundles/vault/vault-create-tasks.js b/swh/web/assets/src/bundles/vault/vault-create-tasks.js index fc741677..8238dbc4 100644 --- a/swh/web/assets/src/bundles/vault/vault-create-tasks.js +++ b/swh/web/assets/src/bundles/vault/vault-create-tasks.js @@ -1,121 +1,125 @@ /** * Copyright (C) 2018-2019 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError, csrfPost} from 'utils/functions'; export function vaultRequest(objectType, objectId) { let vaultUrl; if (objectType === 'directory') { vaultUrl = Urls.api_1_vault_cook_directory(objectId); } else { vaultUrl = Urls.api_1_vault_cook_revision_gitfast(objectId); } // check if object has already been cooked fetch(vaultUrl) .then(response => response.json()) .then(data => { // object needs to be cooked - if (data.exception === 'NotFoundExc') { + if (data.exception === 'NotFoundExc' || data.status === 'failed') { + // if last cooking has failed, remove previous task info from localStorage + // in order to force the recooking of the object + swh.vault.removeCookingTaskInfo([objectId]); $(`#vault-cook-${objectType}-modal`).modal('show'); - // object has been cooked and is in the vault cache + // object has been cooked and should be in the vault cache, + // it will be asked to cook it again if it is not } else if (data.status === 'done') { $(`#vault-fetch-${objectType}-modal`).modal('show'); } }); } function addVaultCookingTask(cookingTask) { let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); if (!vaultCookingTasks) { vaultCookingTasks = []; } if (vaultCookingTasks.find(val => { return val.object_type === cookingTask.object_type && val.object_id === cookingTask.object_id; }) === undefined) { let cookingUrl; if (cookingTask.object_type === 'directory') { cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id); } else { cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id); } if (cookingTask.email) { cookingUrl += '?email=' + cookingTask.email; } csrfPost(cookingUrl) .then(handleFetchError) .then(() => { vaultCookingTasks.push(cookingTask); localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); $('#vault-cook-directory-modal').modal('hide'); $('#vault-cook-revision-modal').modal('hide'); window.location = Urls.browse_vault(); }) .catch(() => { $('#vault-cook-directory-modal').modal('hide'); $('#vault-cook-revision-modal').modal('hide'); }); } else { window.location = Urls.browse_vault(); } } function validateEmail(email) { let re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(String(email).toLowerCase()); } export function cookDirectoryArchive(directoryId) { let email = $('#swh-vault-directory-email').val().trim(); if (!email || validateEmail(email)) { let cookingTask = { 'object_type': 'directory', 'object_id': directoryId, 'email': email, 'status': 'new' }; addVaultCookingTask(cookingTask); } else { $('#invalid-email-modal').modal('show'); } } export function fetchDirectoryArchive(directoryId) { $('#vault-fetch-directory-modal').modal('hide'); const vaultUrl = Urls.api_1_vault_cook_directory(directoryId); fetch(vaultUrl) .then(response => response.json()) .then(data => { swh.vault.fetchCookedObject(data.fetch_url); }); } export function cookRevisionArchive(revisionId) { let email = $('#swh-vault-revision-email').val().trim(); if (!email || validateEmail(email)) { let cookingTask = { 'object_type': 'revision', 'object_id': revisionId, 'email': email, 'status': 'new' }; addVaultCookingTask(cookingTask); } else { $('#invalid-email-modal').modal('show'); } } export function fetchRevisionArchive(revisionId) { $('#vault-fetch-directory-modal').modal('hide'); const vaultUrl = Urls.api_1_vault_cook_revision_gitfast(revisionId); fetch(vaultUrl) .then(response => response.json()) .then(data => { swh.vault.fetchCookedObject(data.fetch_url); }); } diff --git a/swh/web/assets/src/bundles/vault/vault-ui.js b/swh/web/assets/src/bundles/vault/vault-ui.js index 213aab1c..0124d514 100644 --- a/swh/web/assets/src/bundles/vault/vault-ui.js +++ b/swh/web/assets/src/bundles/vault/vault-ui.js @@ -1,245 +1,252 @@ /** * Copyright (C) 2018-2019 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError, handleFetchErrors, csrfPost} from 'utils/functions'; let progress = `<div class="progress"> <div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%;height: 100%;"> </div> </div>;`; let pollingInterval = 5000; let checkVaultId; function updateProgressBar(progressBar, cookingTask) { if (cookingTask.status === 'new') { progressBar.css('background-color', 'rgba(128, 128, 128, 0.5)'); } else if (cookingTask.status === 'pending') { progressBar.css('background-color', 'rgba(0, 0, 255, 0.5)'); } else if (cookingTask.status === 'done') { progressBar.css('background-color', '#5cb85c'); } else if (cookingTask.status === 'failed') { progressBar.css('background-color', 'rgba(255, 0, 0, 0.5)'); progressBar.css('background-image', 'none'); } progressBar.text(cookingTask.progress_message || cookingTask.status); if (cookingTask.status === 'new' || cookingTask.status === 'pending') { progressBar.addClass('progress-bar-animated'); } else { progressBar.removeClass('progress-bar-striped'); } } let recookTask; // called when the user wants to download a cooked archive export function fetchCookedObject(fetchUrl) { recookTask = null; // first, check if the link is still available from the vault fetch(fetchUrl) .then(response => { // link is still alive, proceed to download if (response.ok) { $('#vault-fetch-iframe').attr('src', fetchUrl); // link is dead } else { // get the associated cooking task let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); for (let i = 0; i < vaultCookingTasks.length; ++i) { if (vaultCookingTasks[i].fetch_url === fetchUrl) { recookTask = vaultCookingTasks[i]; break; } } // display a modal asking the user if he wants to recook the archive $('#vault-recook-object-modal').modal('show'); } }); } // called when the user wants to recook an archive // for which the download link is not available anymore export function recookObject() { if (recookTask) { // stop cooking tasks status polling clearTimeout(checkVaultId); // build cook request url let cookingUrl; if (recookTask.object_type === 'directory') { cookingUrl = Urls.api_1_vault_cook_directory(recookTask.object_id); } else { cookingUrl = Urls.api_1_vault_cook_revision_gitfast(recookTask.object_id); } if (recookTask.email) { cookingUrl += '?email=' + recookTask.email; } // request archive cooking csrfPost(cookingUrl) .then(handleFetchError) .then(() => { // update task status recookTask.status = 'new'; let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); for (let i = 0; i < vaultCookingTasks.length; ++i) { if (vaultCookingTasks[i].object_id === recookTask.object_id) { vaultCookingTasks[i] = recookTask; break; } } // save updated tasks to local storage localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); // restart cooking tasks status polling checkVaultCookingTasks(); // hide recook archive modal $('#vault-recook-object-modal').modal('hide'); }) // something went wrong .catch(() => { checkVaultCookingTasks(); $('#vault-recook-object-modal').modal('hide'); }); } } function checkVaultCookingTasks() { let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); if (!vaultCookingTasks || vaultCookingTasks.length === 0) { $('.swh-vault-table tbody tr').remove(); checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval); return; } let cookingTaskRequests = []; let tasks = {}; let currentObjectIds = []; for (let i = 0; i < vaultCookingTasks.length; ++i) { let cookingTask = vaultCookingTasks[i]; currentObjectIds.push(cookingTask.object_id); tasks[cookingTask.object_id] = cookingTask; let cookingUrl; if (cookingTask.object_type === 'directory') { cookingUrl = Urls.api_1_vault_cook_directory(cookingTask.object_id); } else { cookingUrl = Urls.api_1_vault_cook_revision_gitfast(cookingTask.object_id); } if (cookingTask.status !== 'done' && cookingTask.status !== 'failed') { cookingTaskRequests.push(fetch(cookingUrl)); } } $('.swh-vault-table tbody tr').each((i, row) => { let objectId = $(row).find('.vault-object-id').data('object-id'); if ($.inArray(objectId, currentObjectIds) === -1) { $(row).remove(); } }); Promise.all(cookingTaskRequests) .then(handleFetchErrors) .then(responses => Promise.all(responses.map(r => r.json()))) .then(cookingTasks => { let table = $('#vault-cooking-tasks tbody'); for (let i = 0; i < cookingTasks.length; ++i) { let cookingTask = tasks[cookingTasks[i].obj_id]; cookingTask.status = cookingTasks[i].status; cookingTask.fetch_url = cookingTasks[i].fetch_url; cookingTask.progress_message = cookingTasks[i].progress_message; } for (let i = 0; i < vaultCookingTasks.length; ++i) { let cookingTask = vaultCookingTasks[i]; let rowTask = $('#vault-task-' + cookingTask.object_id); let downloadLinkWait = 'Waiting for download link to be available'; if (!rowTask.length) { let browseUrl; if (cookingTask.object_type === 'directory') { browseUrl = Urls.browse_directory(cookingTask.object_id); } else { browseUrl = Urls.browse_revision(cookingTask.object_id); } let progressBar = $.parseHTML(progress)[0]; let progressBarContent = $(progressBar).find('.progress-bar'); updateProgressBar(progressBarContent, cookingTask); let tableRow; if (cookingTask.object_type === 'directory') { tableRow = `<tr id="vault-task-${cookingTask.object_id}" title="Once downloaded, the directory can be extracted with the ` + `following command:\n\n$ tar xvzf ${cookingTask.object_id}.tar.gz">`; } else { tableRow = `<tr id="vault-task-${cookingTask.object_id}" title="Once downloaded, the git repository can be imported with the ` + `following commands:\n\n$ git init\n$ zcat ${cookingTask.object_id}.gitfast.gz | git fast-import">`; } tableRow += '<td><input type="checkbox" class="vault-task-toggle-selection"/></td>'; tableRow += `<td style="width: 120px"><i class="${swh.webapp.getSwhObjectIcon(cookingTask.object_type)} fa-fw"></i>${cookingTask.object_type}</td>`; tableRow += `<td class="vault-object-id" data-object-id="${cookingTask.object_id}"><a href="${browseUrl}">${cookingTask.object_id}</a></td>`; tableRow += `<td style="width: 350px">${progressBar.outerHTML}</td>`; let downloadLink = downloadLinkWait; if (cookingTask.status === 'done') { downloadLink = `<button class="btn btn-default btn-sm" onclick="swh.vault.fetchCookedObject('${cookingTask.fetch_url}')` + '"><i class="fa fa-download fa-fw" aria-hidden="true"></i>Download</button>'; } else if (cookingTask.status === 'failed') { downloadLink = ''; } tableRow += `<td class="vault-dl-link" style="width: 320px">${downloadLink}</td>`; tableRow += '</tr>'; table.prepend(tableRow); } else { let progressBar = rowTask.find('.progress-bar'); updateProgressBar(progressBar, cookingTask); let downloadLink = rowTask.find('.vault-dl-link'); if (cookingTask.status === 'done') { downloadLink[0].innerHTML = `<button class="btn btn-default btn-sm" onclick="swh.vault.fetchCookedObject('${cookingTask.fetch_url}')` + '"><i class="fa fa-download fa-fw" aria-hidden="true"></i>Download</button>'; } else if (cookingTask.status === 'failed') { downloadLink[0].innerHTML = ''; } else if (cookingTask.status === 'new') { downloadLink[0].innerHTML = downloadLinkWait; } } } localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval); }) .catch(() => {}); } +export function removeCookingTaskInfo(tasksToRemove) { + let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); + if (!vaultCookingTasks) { + return; + } + vaultCookingTasks = $.grep(vaultCookingTasks, task => { + return $.inArray(task.object_id, tasksToRemove) === -1; + }); + localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); +} + export function initUi() { $('#vault-tasks-toggle-selection').change(event => { $('.vault-task-toggle-selection').prop('checked', event.currentTarget.checked); }); $('#vault-remove-tasks').click(() => { clearTimeout(checkVaultId); let tasksToRemove = []; $('.swh-vault-table tbody tr').each((i, row) => { let taskSelected = $(row).find('.vault-task-toggle-selection').prop('checked'); if (taskSelected) { let objectId = $(row).find('.vault-object-id').data('object-id'); tasksToRemove.push(objectId); $(row).remove(); } }); - let vaultCookingTasks = JSON.parse(localStorage.getItem('swh-vault-cooking-tasks')); - vaultCookingTasks = $.grep(vaultCookingTasks, task => { - return $.inArray(task.object_id, tasksToRemove) === -1; - }); - localStorage.setItem('swh-vault-cooking-tasks', JSON.stringify(vaultCookingTasks)); + removeCookingTaskInfo(tasksToRemove); $('#vault-tasks-toggle-selection').prop('checked', false); checkVaultId = setTimeout(checkVaultCookingTasks, pollingInterval); }); checkVaultCookingTasks(); window.onfocus = () => { clearTimeout(checkVaultId); checkVaultCookingTasks(); }; } diff --git a/swh/web/assets/src/bundles/webapp/webapp.css b/swh/web/assets/src/bundles/webapp/webapp.css index a078c7ab..e0a96f85 100644 --- a/swh/web/assets/src/bundles/webapp/webapp.css +++ b/swh/web/assets/src/bundles/webapp/webapp.css @@ -1,609 +1,615 @@ /** * Copyright (C) 2018-2019 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ html { height: 100%; overflow-x: hidden; scroll-behavior: auto !important; } body { min-height: 100%; margin: 0; position: relative; padding-bottom: 120px; } a:active, a.active { outline: none; } code { background-color: #f9f2f4; } pre code { background-color: transparent; } footer { background-color: #262626; color: #fff; font-size: 0.8rem; position: absolute; bottom: 0; width: 100%; padding-top: 20px; padding-bottom: 20px; } footer a, footer a:visited, footer a:hover { color: #fecd1b; } footer a:hover { text-decoration: underline; } .link-color { color: #fecd1b; } pre { background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px; padding: 9.5px; font-size: 0.8rem; } .btn.active { background-color: #e7e7e7; } .card { margin-bottom: 5px !important; overflow-x: auto; } .navbar-brand { padding: 5px; margin-right: 0; } .table { margin-bottom: 0; } .swh-table thead { background-color: #f2f4f5; border-top: 1px solid rgba(0, 0, 0, 0.2); font-weight: normal; } .swh-table-striped th { border-top: none; } .swh-table-striped tbody tr:nth-child(even) { background-color: #f2f4f5; } .swh-table-striped tbody tr:nth-child(odd) { background-color: #fff; } .swh-web-app-link a { text-decoration: none; border: none; } .swh-web-app-link:hover { background-color: #efeff2; } .table > thead > tr > th { border-top: none; border-bottom: 1px solid #e20026; } .table > tbody > tr > td { border-style: none; } .sitename .first-word, .sitename .second-word { color: rgba(0, 0, 0, 0.75); font-weight: normal; font-size: 1.2rem; } .sitename .first-word { font-family: 'Alegreya Sans', sans-serif; } .sitename .second-word { font-family: 'Alegreya', serif; } .swh-counter { font-size: 150%; } @media (max-width: 600px) { .swh-counter-container { margin-top: 1rem; } } .swh-http-error { margin: 0 auto; text-align: center; } .swh-http-error-head { color: #2d353c; font-size: 30px; } .swh-http-error-code { bottom: 60%; color: #2d353c; font-size: 96px; line-height: 80px; margin-bottom: 10px !important; } .swh-http-error-desc { font-size: 12px; color: #647788; text-align: center; } .swh-http-error-desc pre { display: inline-block; text-align: left; max-width: 800px; white-space: pre-wrap; } .popover { max-width: 97%; z-index: 40000; } .modal { text-align: center; padding: 0 !important; z-index: 50000; } .modal::before { content: ''; display: inline-block; height: 100%; vertical-align: middle; margin-right: -4px; } .modal-dialog { display: inline-block; text-align: left; vertical-align: middle; } .dropdown-submenu { position: relative; } .dropdown-submenu .dropdown-menu { top: 0; left: -100%; margin-top: -5px; margin-left: -2px; } .dropdown-item:hover, .dropdown-item:focus { background-color: rgba(0, 0, 0, 0.1); } a.dropdown-left::before { content: "\f0d9"; font-family: 'FontAwesome'; display: block; width: 20px; height: 20px; float: left; margin-left: 0; } #swh-navbar { border-top-style: none; border-left-style: none; border-right-style: none; border-bottom-style: solid; border-bottom-width: 5px; border-image: linear-gradient(to right, rgb(226, 0, 38) 0%, rgb(254, 205, 27) 100%) 1 1 1 1; width: 100%; padding: 5px; margin-bottom: 10px; margin-top: 30px; justify-content: normal; flex-wrap: nowrap; height: 72px; overflow: hidden; } #back-to-top { display: none; position: fixed; bottom: 30px; right: 30px; z-index: 10; } #back-to-top a img { display: block; width: 32px; height: 32px; background-size: 32px 32px; text-indent: -999px; overflow: hidden; } .swh-top-bar { direction: ltr; height: 30px; position: fixed; top: 0; left: 0; width: 100%; z-index: 99999; background-color: #262626; color: #fff; text-align: center; font-size: 14px; } .swh-top-bar ul { margin-top: 4px; padding-left: 0; white-space: nowrap; } .swh-top-bar li { display: inline-block; margin-left: 10px; margin-right: 10px; } .swh-top-bar a, .swh-top-bar a:visited { color: white; } .swh-top-bar a.swh-current-site, .swh-top-bar a.swh-current-site:visited { color: #fecd1b; } .swh-position-right { position: absolute; right: 0; } .swh-donate-link { border: 1px solid #fecd1b; background-color: #e20026; color: white !important; padding: 3px; border-radius: 3px; } .swh-navbar-content h4 { padding-top: 7px; } .swh-navbar-content .bread-crumbs { display: block; margin-left: -40px; } .swh-navbar-content .bread-crumbs li.bc-no-root { padding-top: 7px; } .main-sidebar { margin-top: 30px; } .content-wrapper { background: none; } .brand-image { max-height: 40px; } .brand-link { padding-top: 18.5px; padding-bottom: 18px; padding-left: 4px; border-bottom: 5px solid #e20026 !important; } .navbar-header a, ul.dropdown-menu a, ul.navbar-nav a, ul.nav-sidebar a { border-bottom-style: none; color: #323232; } .swh-sidebar .nav-link.active { color: #323232 !important; background-color: #e7e7e7 !important; } .swh-image-error { width: 80px; height: auto; } @media (max-width: 600px) { .card { min-width: 80%; } .swh-image-error { width: 40px; height: auto; } .swh-navbar-content h4 { font-size: 1rem; } .swh-donate-link { display: none; } } .form-check-label { padding-top: 4px; } .swh-id-option { display: inline-block; margin-right: 5px; line-height: 1rem; } .nav-pills .nav-link:not(.active):hover { color: rgba(0, 0, 0, 0.55); } .swh-heading-color { color: #e20026 !important; } .sidebar-mini.sidebar-collapse .main-sidebar:hover { width: 4.6rem; } .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p, .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text { visibility: hidden !important; } .sidebar .nav-link p, .main-sidebar .brand-text, .sidebar .user-panel .info { transition: none; } .sidebar-mini.sidebar-mini.sidebar-collapse .sidebar { padding-right: 0; } .swh-words-logo { position: absolute; top: 0; left: 0; width: 73px; height: 73px; text-align: center; font-size: 10pt; color: rgba(0, 0, 0, 0.75); } .swh-words-logo:hover { text-decoration: none; } .swh-words-logo-swh { line-height: 1; padding-top: 13px; visibility: hidden; } hr.swh-faded-line { border: 0; height: 1px; background-image: linear-gradient(to left, #f0f0f0, #8c8b8b, #f0f0f0); } /* Ensure that section title with link is colored like standard section title */ .swh-readme h1 a, .swh-readme h2 a, .swh-readme h3 a, .swh-readme h4 a, .swh-readme h5 a, .swh-readme h6 a { color: #e20026; } /* Make list compact in reStructuredText rendering */ .swh-rst li p { margin-bottom: 0; } .swh-readme-txt pre { background: none; border: none; } .swh-coverage-col { padding-left: 10px; padding-right: 10px; } .swh-coverage { height: calc(65px + 1em); padding-top: 0.3rem; border: none; } .swh-coverage a { text-decoration: none; } .swh-coverage-logo { display: block; width: 100%; height: 50px; margin-left: auto; margin-right: auto; object-fit: contain; /* polyfill for old browsers, see https://github.com/bfred-it/object-fit-images */ font-family: 'object-fit: contain;'; } .swh-coverage-list { width: 100%; height: 320px; border: none; } tr.swh-tr-hover-highlight:hover td { background: #ededed; } tr.swh-api-doc-route a { text-decoration: none; } .swh-apidoc .col { margin: 10px; } +.swh-apidoc .swh-rst blockquote { + border: 0; + margin: 0; + padding: 0; +} + a.toggle-col { text-decoration: none; } a.toggle-col.col-hidden { text-decoration: line-through; } .admonition.warning { background: #fcf8e3; border: 1px solid #faebcc; padding: 15px; border-radius: 4px; } .admonition.warning p { margin-bottom: 0; } .admonition.warning .first { font-size: 1.5rem; } .swh-popover { max-height: 50vh; overflow-y: auto; overflow-x: auto; padding: 0; padding-right: 1.4em; } @media screen and (min-width: 768px) { .swh-popover { max-width: 50vw; } } .swh-metadata-table-row { border-top: 1px solid #ddd !important; } .swh-metadata-table-key { min-width: 200px; max-width: 200px; width: 200px; } .swh-metadata-table-value pre { white-space: pre-wrap; } .d3-wrapper { position: relative; height: 0; width: 100%; padding: 0; /* padding-bottom will be overwritten by JavaScript later */ padding-bottom: 100%; } .d3-wrapper > svg { position: absolute; height: 100%; width: 100%; left: 0; top: 0; } div.d3-tooltip { position: absolute; text-align: center; width: auto; height: auto; padding: 2px; font: 12px sans-serif; background: white; border: 1px solid black; border-radius: 4px; pointer-events: none; } .page-link { cursor: pointer; } .wrapper { overflow: hidden; } .swh-badge { padding-bottom: 1rem; cursor: pointer; } .swh-badge-html, .swh-badge-md, .swh-badge-rst { white-space: pre-wrap; } diff --git a/swh/web/browse/views/directory.py b/swh/web/browse/views/directory.py index 917ba6a4..bd38d5bf 100644 --- a/swh/web/browse/views/directory.py +++ b/swh/web/browse/views/directory.py @@ -1,177 +1,179 @@ -# Copyright (C) 2017-2019 The Software Heritage developers +# Copyright (C) 2017-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import os from django.http import HttpResponse from django.shortcuts import render, redirect from django.template.defaultfilters import filesizeformat import sentry_sdk from swh.web.common import service from swh.web.common.utils import ( reverse, gen_path_info ) from swh.web.common.exc import handle_view_exception, NotFoundExc from swh.web.browse.utils import ( get_directory_entries, get_snapshot_context, get_readme_to_display, get_swh_persistent_ids, gen_link ) from swh.web.browse.browseurls import browse_route @browse_route(r'directory/(?P<sha1_git>[0-9a-f]+)/', r'directory/(?P<sha1_git>[0-9a-f]+)/(?P<path>.+)/', view_name='browse-directory', checksum_args=['sha1_git']) def directory_browse(request, sha1_git, path=None): """Django view for browsing the content of a directory identified by its sha1_git value. The url that points to it is :http:get:`/browse/directory/(sha1_git)/[(path)/]` """ root_sha1_git = sha1_git try: if path: dir_info = service.lookup_directory_with_path(sha1_git, path) sha1_git = dir_info['target'] dirs, files = get_directory_entries(sha1_git) origin_url = request.GET.get('origin_url', None) if not origin_url: origin_url = request.GET.get('origin', None) snapshot_context = None if origin_url: try: snapshot_context = get_snapshot_context(origin_url=origin_url) except NotFoundExc: raw_dir_url = reverse('browse-directory', url_args={'sha1_git': sha1_git}) error_message = \ ('The Software Heritage archive has a directory ' 'with the hash you provided but the origin ' 'mentioned in your request appears broken: %s. ' 'Please check the URL and try again.\n\n' 'Nevertheless, you can still browse the directory ' 'without origin information: %s' % (gen_link(origin_url), gen_link(raw_dir_url))) raise NotFoundExc(error_message) if snapshot_context: snapshot_context['visit_info'] = None except Exception as exc: return handle_view_exception(request, exc) path_info = gen_path_info(path) query_params = {'origin': origin_url} breadcrumbs = [] breadcrumbs.append({'name': root_sha1_git[:7], 'url': reverse('browse-directory', url_args={'sha1_git': root_sha1_git}, query_params=query_params)}) for pi in path_info: breadcrumbs.append({'name': pi['name'], 'url': reverse('browse-directory', url_args={'sha1_git': root_sha1_git, 'path': pi['path']}, query_params=query_params)}) path = '' if path is None else (path + '/') for d in dirs: if d['type'] == 'rev': d['url'] = reverse('browse-revision', url_args={'sha1_git': d['target']}, query_params=query_params) else: d['url'] = reverse('browse-directory', url_args={'sha1_git': root_sha1_git, 'path': path + d['name']}, query_params=query_params) sum_file_sizes = 0 readmes = {} for f in files: query_string = 'sha1_git:' + f['target'] f['url'] = reverse('browse-content', url_args={'query_string': query_string}, query_params={'path': root_sha1_git + '/' + path + f['name'], 'origin': origin_url}) if f['length'] is not None: sum_file_sizes += f['length'] f['length'] = filesizeformat(f['length']) if f['name'].lower().startswith('readme'): readmes[f['name']] = f['checksums']['sha1'] readme_name, readme_url, readme_html = get_readme_to_display(readmes) sum_file_sizes = filesizeformat(sum_file_sizes) dir_metadata = {"directory": sha1_git, "number of regular files": len(files), "number of subdirectories": len(dirs), "sum of regular file sizes": sum_file_sizes} vault_cooking = { 'directory_context': True, 'directory_id': sha1_git, 'revision_context': False, 'revision_id': None } - swh_ids = get_swh_persistent_ids([{'type': 'directory', - 'id': sha1_git}]) + swh_objects = [{'type': 'directory', 'id': sha1_git}] + + swh_ids = get_swh_persistent_ids( + swh_objects=swh_objects, snapshot_context=snapshot_context) heading = 'Directory - %s' % sha1_git if breadcrumbs: dir_path = '/'.join([bc['name'] for bc in breadcrumbs]) + '/' heading += ' - %s' % dir_path return render(request, 'browse/directory.html', {'heading': heading, 'swh_object_id': swh_ids[0]['swh_id'], 'swh_object_name': 'Directory', 'swh_object_metadata': dir_metadata, 'dirs': dirs, 'files': files, 'breadcrumbs': breadcrumbs, 'top_right_link': None, 'readme_name': readme_name, 'readme_url': readme_url, 'readme_html': readme_html, 'snapshot_context': snapshot_context, 'vault_cooking': vault_cooking, 'show_actions_menu': True, 'swh_ids': swh_ids}) -@browse_route(r'directory/resolve/content-path/(?P<sha1_git>[0-9a-f]+)/(?P<path>.+)/', # noqa +@browse_route(r'directory/resolve/content-path/(?P<sha1_git>[0-9a-f]+)/(?P<path>.+)/', # noqa view_name='browse-directory-resolve-content-path', checksum_args=['sha1_git']) def _directory_resolve_content_path(request, sha1_git, path): """ Internal endpoint redirecting to data url for a specific file path relative to a root directory. """ try: path = os.path.normpath(path) if not path.startswith('../'): dir_info = service.lookup_directory_with_path(sha1_git, path) if dir_info['type'] == 'file': sha1 = dir_info['checksums']['sha1'] data_url = reverse('browse-content-raw', url_args={'query_string': sha1}) return redirect(data_url) except Exception as exc: sentry_sdk.capture_exception(exc) return HttpResponse(status=404) diff --git a/swh/web/common/exc.py b/swh/web/common/exc.py index fea79b8d..fc94316d 100644 --- a/swh/web/common/exc.py +++ b/swh/web/common/exc.py @@ -1,125 +1,135 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import traceback from django.http import HttpResponse from django.shortcuts import render from django.utils.safestring import mark_safe from django.utils.html import escape import sentry_sdk from swh.web.config import get_config class BadInputExc(ValueError): """Wrong request to the api. Example: Asking a content with the wrong identifier format. """ pass class NotFoundExc(Exception): """Good request to the api but no result were found. Example: Asking a content with the right identifier format but that content does not exist. """ pass class ForbiddenExc(Exception): """Good request to the api, forbidden result to return due to enforce policy. Example: Asking for a raw content which exists but whose mimetype is not text. """ pass +class LargePayloadExc(Exception): + """The input size is too large. + + Example: Asking to resolve 10000 persistent identifier when the limit + is 1000. + """ + pass + + http_status_code_message = { 400: 'Bad Request', 401: 'Unauthorized', 403: 'Access Denied', 404: 'Resource not found', + 413: 'Payload Too Large', 500: 'Internal Server Error', 501: 'Not Implemented', 502: 'Bad Gateway', 503: 'Service unavailable' } def _generate_error_page(request, error_code, error_description): return render(request, 'error.html', {'error_code': error_code, 'error_message': http_status_code_message[error_code], 'error_description': mark_safe(error_description)}, status=error_code) def swh_handle400(request, exception=None): """ Custom Django HTTP error 400 handler for swh-web. """ error_description = ('The server cannot process the request to %s due to ' 'something that is perceived to be a client error.' % escape(request.META['PATH_INFO'])) return _generate_error_page(request, 400, error_description) def swh_handle403(request, exception=None): """ Custom Django HTTP error 403 handler for swh-web. """ error_description = ('The resource %s requires an authentication.' % escape(request.META['PATH_INFO'])) return _generate_error_page(request, 403, error_description) def swh_handle404(request, exception=None): """ Custom Django HTTP error 404 handler for swh-web. """ error_description = ('The resource %s could not be found on the server.' % escape(request.META['PATH_INFO'])) return _generate_error_page(request, 404, error_description) def swh_handle500(request): """ Custom Django HTTP error 500 handler for swh-web. """ error_description = ('An unexpected condition was encountered when ' 'requesting resource %s.' % escape(request.META['PATH_INFO'])) return _generate_error_page(request, 500, error_description) def handle_view_exception(request, exc, html_response=True): """ Function used to generate an error page when an exception was raised inside a swh-web browse view. """ sentry_sdk.capture_exception(exc) error_code = 500 error_description = '%s: %s' % (type(exc).__name__, str(exc)) if get_config()['debug']: error_description = traceback.format_exc() if isinstance(exc, BadInputExc): error_code = 400 if isinstance(exc, ForbiddenExc): error_code = 403 if isinstance(exc, NotFoundExc): error_code = 404 if html_response: return _generate_error_page(request, error_code, error_description) else: return HttpResponse(error_description, content_type='text/plain', status=error_code) diff --git a/swh/web/common/middlewares.py b/swh/web/common/middlewares.py index cb6ca5ac..7fceaf59 100644 --- a/swh/web/common/middlewares.py +++ b/swh/web/common/middlewares.py @@ -1,71 +1,71 @@ # Copyright (C) 2018-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information -from bs4 import BeautifulSoup from htmlmin import minify import sentry_sdk +from swh.web.common.utils import prettify_html + class HtmlPrettifyMiddleware(object): """ Django middleware for prettifying generated HTML in development mode. """ def __init__(self, get_response): self.get_response = get_response def __call__(self, request): response = self.get_response(request) if 'text/html' in response.get('Content-Type', ''): if hasattr(response, 'content'): content = response.content - response.content = BeautifulSoup(content, 'lxml').prettify() + response.content = prettify_html(content) elif hasattr(response, 'streaming_content'): content = b''.join(response.streaming_content) - response.streaming_content = \ - BeautifulSoup(content, 'lxml').prettify() + response.streaming_content = prettify_html(content) return response class HtmlMinifyMiddleware(object): """ Django middleware for minifying generated HTML in production mode. """ def __init__(self, get_response=None): self.get_response = get_response def __call__(self, request): response = self.get_response(request) if 'text/html' in response.get('Content-Type', ''): try: minified_html = minify(response.content.decode('utf-8')) response.content = minified_html.encode('utf-8') except Exception as exc: sentry_sdk.capture_exception(exc) return response class ThrottlingHeadersMiddleware(object): """ Django middleware for inserting rate limiting related headers in HTTP response. """ def __init__(self, get_response=None): self.get_response = get_response def __call__(self, request): resp = self.get_response(request) if 'RateLimit-Limit' in request.META: resp['X-RateLimit-Limit'] = request.META['RateLimit-Limit'] if 'RateLimit-Remaining' in request.META: resp['X-RateLimit-Remaining'] = request.META['RateLimit-Remaining'] if 'RateLimit-Reset' in request.META: resp['X-RateLimit-Reset'] = request.META['RateLimit-Reset'] return resp diff --git a/swh/web/common/service.py b/swh/web/common/service.py index c976bba6..6acc2a6c 100644 --- a/swh/web/common/service.py +++ b/swh/web/common/service.py @@ -1,1208 +1,1222 @@ -# Copyright (C) 2015-2019 The Software Heritage developers +# Copyright (C) 2015-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import itertools import os import re from collections import defaultdict from typing import Any, Dict, List, Set from swh.model import hashutil from swh.storage.algos import diff, revisions_walker from swh.model.identifiers import ( CONTENT, DIRECTORY, RELEASE, REVISION, SNAPSHOT ) from swh.web.common import converters from swh.web.common import query from swh.web.common.exc import BadInputExc, NotFoundExc from swh.web.common.origin_visits import get_origin_visit from swh.web import config search = config.search() storage = config.storage() vault = config.vault() idx_storage = config.indexer_storage() MAX_LIMIT = 50 # Top limit the users can ask for def _first_element(l): """Returns the first element in the provided list or None if it is empty or None""" return next(iter(l or []), None) def lookup_multiple_hashes(hashes): """Lookup the passed hashes in a single DB connection, using batch processing. Args: An array of {filename: X, sha1: Y}, string X, hex sha1 string Y. Returns: The same array with elements updated with elem['found'] = true if the hash is present in storage, elem['found'] = false if not. """ hashlist = [hashutil.hash_to_bytes(elem['sha1']) for elem in hashes] content_missing = storage.content_missing_per_sha1(hashlist) missing = [hashutil.hash_to_hex(x) for x in content_missing] for x in hashes: x.update({'found': True}) for h in hashes: if h['sha1'] in missing: h['found'] = False return hashes def lookup_expression(expression, last_sha1, per_page): """Lookup expression in raw content. Args: expression (str): An expression to lookup through raw indexed content last_sha1 (str): Last sha1 seen per_page (int): Number of results per page Yields: ctags whose content match the expression """ limit = min(per_page, MAX_LIMIT) ctags = idx_storage.content_ctags_search(expression, last_sha1=last_sha1, limit=limit) for ctag in ctags: ctag = converters.from_swh(ctag, hashess={'id'}) ctag['sha1'] = ctag['id'] ctag.pop('id') yield ctag def lookup_hash(q): """Checks if the storage contains a given content checksum Args: query string of the form <hash_algo:hash> Returns: Dict with key found containing the hash info if the hash is present, None if not. """ algo, hash = query.parse_hash(q) found = _first_element(storage.content_find({algo: hash})) return {'found': converters.from_content(found), 'algo': algo} def search_hash(q): """Checks if the storage contains a given content checksum Args: query string of the form <hash_algo:hash> Returns: Dict with key found to True or False, according to whether the checksum is present or not """ algo, hash = query.parse_hash(q) found = _first_element(storage.content_find({algo: hash})) return {'found': found is not None} def _lookup_content_sha1(q): """Given a possible input, query for the content's sha1. Args: q: query string of the form <hash_algo:hash> Returns: binary sha1 if found or None """ algo, hash = query.parse_hash(q) if algo != 'sha1': hashes = _first_element(storage.content_find({algo: hash})) if not hashes: return None return hashes['sha1'] return hash def lookup_content_ctags(q): """Return ctags information from a specified content. Args: q: query string of the form <hash_algo:hash> Yields: ctags information (dict) list if the content is found. """ sha1 = _lookup_content_sha1(q) if not sha1: return None ctags = list(idx_storage.content_ctags_get([sha1])) if not ctags: return None for ctag in ctags: yield converters.from_swh(ctag, hashess={'id'}) def lookup_content_filetype(q): """Return filetype information from a specified content. Args: q: query string of the form <hash_algo:hash> Yields: filetype information (dict) list if the content is found. """ sha1 = _lookup_content_sha1(q) if not sha1: return None filetype = _first_element(list(idx_storage.content_mimetype_get([sha1]))) if not filetype: return None return converters.from_filetype(filetype) def lookup_content_language(q): """Return language information from a specified content. Args: q: query string of the form <hash_algo:hash> Yields: language information (dict) list if the content is found. """ sha1 = _lookup_content_sha1(q) if not sha1: return None lang = _first_element(list(idx_storage.content_language_get([sha1]))) if not lang: return None return converters.from_swh(lang, hashess={'id'}) def lookup_content_license(q): """Return license information from a specified content. Args: q: query string of the form <hash_algo:hash> Yields: license information (dict) list if the content is found. """ sha1 = _lookup_content_sha1(q) if not sha1: return None lic = _first_element(idx_storage.content_fossology_license_get([sha1])) if not lic: return None return converters.from_swh({'id': sha1, 'facts': lic[sha1]}, hashess={'id'}) -def lookup_origin(origin): +def lookup_origin(origin: Dict[str, str]) -> Dict[str, str]: """Return information about the origin matching dict origin. Args: origin: origin's dict with 'url' key Returns: origin information as dict. """ - origin_info = storage.origin_get(origin) + origins = [origin] + if origin['url']: + # handle case when user provided an origin url with a trailing + # slash while the url in storage does not have it (e.g. GitHub) + if origin['url'].endswith('/'): + origins.append({'url': origin['url'][:-1]}) + # handle case when user provided an origin url without a trailing + # slash while the url in storage have it (e.g. Debian source package) + else: + origins.append({'url': f"{origin['url']}/"}) + # Check all possible origin urls + for orig in origins: + origin_info = storage.origin_get(orig) + if origin_info: + break if not origin_info: msg = 'Origin with url %s not found!' % origin['url'] raise NotFoundExc(msg) return converters.from_origin(origin_info) def lookup_origins(origin_from=1, origin_count=100): """Get list of archived software origins in a paginated way. Origins are sorted by id before returning them Args: origin_from (int): The minimum id of the origins to return origin_count (int): The maximum number of origins to return Yields: origins information as dicts """ origins = storage.origin_get_range(origin_from, origin_count) return map(converters.from_origin, origins) def search_origin(url_pattern, limit=50, with_visit=False, page_token=None): """Search for origins whose urls contain a provided string pattern or match a provided regular expression. Args: url_pattern: the string pattern to search for in origin urls limit: the maximum number of found origins to return page_token: opaque string used to get the next results of a search Returns: list of origin information as dict. """ if search: results = search.origin_search(url_pattern=url_pattern, count=limit, page_token=page_token, with_visit=with_visit) origins = list(map(converters.from_origin, results['results'])) return (origins, results['next_page_token']) else: # Fallback to swh-storage if swh-search is not configured offset = int(page_token) if page_token else 0 regexp = True search_words = [re.escape(word) for word in url_pattern.split()] if len(search_words) >= 7: url_pattern = '.*'.join(search_words) else: pattern_parts = [] for permut in itertools.permutations(search_words): pattern_parts.append('.*'.join(permut)) url_pattern = '|'.join(pattern_parts) origins = storage.origin_search(url_pattern, offset, limit, regexp, with_visit) origins = list(map(converters.from_origin, origins)) if len(origins) >= limit: page_token = str(offset + len(origins)) else: page_token = None return (origins, page_token) def search_origin_metadata(fulltext, limit=50): """Search for origins whose metadata match a provided string pattern. Args: fulltext: the string pattern to search for in origin metadata offset: number of found origins to skip before returning results limit: the maximum number of found origins to return Returns: list of origin metadata as dict. """ matches = idx_storage.origin_intrinsic_metadata_search_fulltext( conjunction=[fulltext], limit=limit) results = [] for match in matches: match['from_revision'] = hashutil.hash_to_hex(match['from_revision']) origin = storage.origin_get({'url': match['id']}) del match['id'] result = converters.from_origin(origin) if result: result['metadata'] = match results.append(result) return results def lookup_origin_intrinsic_metadata(origin_dict): """Return intrinsic metadata for origin whose origin matches given origin. Args: origin_dict: origin's dict with keys ('type' AND 'url') Returns: origin metadata. """ origin_info = storage.origin_get(origin_dict) if not origin_info: msg = 'Origin with url %s not found!' % origin_dict['url'] raise NotFoundExc(msg) origins = [origin_info['url']] match = _first_element( idx_storage.origin_intrinsic_metadata_get(origins)) result = {} if match: result = match['metadata'] return result def _to_sha1_bin(sha1_hex): _, sha1_git_bin = query.parse_hash_with_algorithms_or_throws( sha1_hex, ['sha1'], # HACK: sha1_git really 'Only sha1_git is supported.') return sha1_git_bin def _check_directory_exists(sha1_git, sha1_git_bin): if len(list(storage.directory_missing([sha1_git_bin]))): raise NotFoundExc('Directory with sha1_git %s not found' % sha1_git) def lookup_directory(sha1_git): """Return information about the directory with id sha1_git. Args: sha1_git as string Returns: directory information as dict. """ empty_dir_sha1 = '4b825dc642cb6eb9a060e54bf8d69288fbee4904' if sha1_git == empty_dir_sha1: return [] sha1_git_bin = _to_sha1_bin(sha1_git) _check_directory_exists(sha1_git, sha1_git_bin) directory_entries = storage.directory_ls(sha1_git_bin) return map(converters.from_directory_entry, directory_entries) def lookup_directory_with_path(sha1_git, path_string): """Return directory information for entry with path path_string w.r.t. root directory pointed by directory_sha1_git Args: - directory_sha1_git: sha1_git corresponding to the directory to which we append paths to (hopefully) find the entry - the relative path to the entry starting from the directory pointed by directory_sha1_git Raises: NotFoundExc if the directory entry is not found """ sha1_git_bin = _to_sha1_bin(sha1_git) _check_directory_exists(sha1_git, sha1_git_bin) paths = path_string.strip(os.path.sep).split(os.path.sep) queried_dir = storage.directory_entry_get_by_path( sha1_git_bin, list(map(lambda p: p.encode('utf-8'), paths))) if not queried_dir: raise NotFoundExc(('Directory entry with path %s from %s not found') % (path_string, sha1_git)) return converters.from_directory_entry(queried_dir) def lookup_release(release_sha1_git): """Return information about the release with sha1 release_sha1_git. Args: release_sha1_git: The release's sha1 as hexadecimal Returns: Release information as dict. Raises: ValueError if the identifier provided is not of sha1 nature. """ sha1_git_bin = _to_sha1_bin(release_sha1_git) release = _first_element(storage.release_get([sha1_git_bin])) if not release: raise NotFoundExc('Release with sha1_git %s not found.' % release_sha1_git) return converters.from_release(release) def lookup_release_multiple(sha1_git_list): """Return information about the revisions identified with their sha1_git identifiers. Args: sha1_git_list: A list of revision sha1_git identifiers Returns: Release information as dict. Raises: ValueError if the identifier provided is not of sha1 nature. """ sha1_bin_list = (_to_sha1_bin(sha1_git) for sha1_git in sha1_git_list) releases = storage.release_get(sha1_bin_list) or [] return (converters.from_release(r) for r in releases) def lookup_revision(rev_sha1_git): """Return information about the revision with sha1 revision_sha1_git. Args: revision_sha1_git: The revision's sha1 as hexadecimal Returns: Revision information as dict. Raises: ValueError if the identifier provided is not of sha1 nature. NotFoundExc if there is no revision with the provided sha1_git. """ sha1_git_bin = _to_sha1_bin(rev_sha1_git) revision = _first_element(storage.revision_get([sha1_git_bin])) if not revision: raise NotFoundExc('Revision with sha1_git %s not found.' % rev_sha1_git) return converters.from_revision(revision) def lookup_revision_multiple(sha1_git_list): """Return information about the revisions identified with their sha1_git identifiers. Args: sha1_git_list: A list of revision sha1_git identifiers Returns: Generator of revisions information as dict. Raises: ValueError if the identifier provided is not of sha1 nature. """ sha1_bin_list = (_to_sha1_bin(sha1_git) for sha1_git in sha1_git_list) revisions = storage.revision_get(sha1_bin_list) or [] return (converters.from_revision(r) for r in revisions) def lookup_revision_message(rev_sha1_git): """Return the raw message of the revision with sha1 revision_sha1_git. Args: revision_sha1_git: The revision's sha1 as hexadecimal Returns: Decoded revision message as dict {'message': <the_message>} Raises: ValueError if the identifier provided is not of sha1 nature. NotFoundExc if the revision is not found, or if it has no message """ sha1_git_bin = _to_sha1_bin(rev_sha1_git) revision = _first_element(storage.revision_get([sha1_git_bin])) if not revision: raise NotFoundExc('Revision with sha1_git %s not found.' % rev_sha1_git) if 'message' not in revision: raise NotFoundExc('No message for revision with sha1_git %s.' % rev_sha1_git) res = {'message': revision['message']} return res def _lookup_revision_id_by(origin, branch_name, timestamp): def _get_snapshot_branch(snapshot, branch_name): snapshot = lookup_snapshot(visit['snapshot'], branches_from=branch_name, branches_count=10) branch = None if branch_name in snapshot['branches']: branch = snapshot['branches'][branch_name] return branch if isinstance(origin, int): origin = {'id': origin} elif isinstance(origin, str): origin = {'url': origin} else: raise TypeError('"origin" must be an int or a string.') visit = get_origin_visit(origin, visit_ts=timestamp) branch = _get_snapshot_branch(visit['snapshot'], branch_name) rev_id = None if branch and branch['target_type'] == 'revision': rev_id = branch['target'] elif branch and branch['target_type'] == 'alias': branch = _get_snapshot_branch(visit['snapshot'], branch['target']) if branch and branch['target_type'] == 'revision': rev_id = branch['target'] if not rev_id: raise NotFoundExc('Revision for origin %s and branch %s not found.' % (origin.get('url'), branch_name)) return rev_id def lookup_revision_by(origin, branch_name='HEAD', timestamp=None): """Lookup revision by origin, snapshot branch name and visit timestamp. If branch_name is not provided, lookup using 'HEAD' as default. If timestamp is not provided, use the most recent. Args: origin (Union[int,str]): origin of the revision branch_name (str): snapshot branch name timestamp (str/int): origin visit time frame Returns: dict: The revision matching the criterions Raises: NotFoundExc if no revision corresponds to the criterion """ rev_id = _lookup_revision_id_by(origin, branch_name, timestamp) return lookup_revision(rev_id) def lookup_revision_log(rev_sha1_git, limit): """Lookup revision log by revision id. Args: rev_sha1_git (str): The revision's sha1 as hexadecimal limit (int): the maximum number of revisions returned Returns: list: Revision log as list of revision dicts Raises: ValueError: if the identifier provided is not of sha1 nature. swh.web.common.exc.NotFoundExc: if there is no revision with the provided sha1_git. """ lookup_revision(rev_sha1_git) sha1_git_bin = _to_sha1_bin(rev_sha1_git) revision_entries = storage.revision_log([sha1_git_bin], limit) return map(converters.from_revision, revision_entries) def lookup_revision_log_by(origin, branch_name, timestamp, limit): """Lookup revision by origin, snapshot branch name and visit timestamp. Args: origin (Union[int,str]): origin of the revision branch_name (str): snapshot branch timestamp (str/int): origin visit time frame limit (int): the maximum number of revisions returned Returns: list: Revision log as list of revision dicts Raises: swh.web.common.exc.NotFoundExc: if no revision corresponds to the criterion """ rev_id = _lookup_revision_id_by(origin, branch_name, timestamp) return lookup_revision_log(rev_id, limit) def lookup_revision_with_context_by(origin, branch_name, timestamp, sha1_git, limit=100): """Return information about revision sha1_git, limited to the sub-graph of all transitive parents of sha1_git_root. sha1_git_root being resolved through the lookup of a revision by origin, branch_name and ts. In other words, sha1_git is an ancestor of sha1_git_root. Args: - origin: origin of the revision. - branch_name: revision's branch. - timestamp: revision's time frame. - sha1_git: one of sha1_git_root's ancestors. - limit: limit the lookup to 100 revisions back. Returns: Pair of (root_revision, revision). Information on sha1_git if it is an ancestor of sha1_git_root including children leading to sha1_git_root Raises: - BadInputExc in case of unknown algo_hash or bad hash. - NotFoundExc if either revision is not found or if sha1_git is not an ancestor of sha1_git_root. """ rev_root_id = _lookup_revision_id_by(origin, branch_name, timestamp) rev_root_id_bin = hashutil.hash_to_bytes(rev_root_id) rev_root = _first_element(storage.revision_get([rev_root_id_bin])) return (converters.from_revision(rev_root), lookup_revision_with_context(rev_root, sha1_git, limit)) def lookup_revision_with_context(sha1_git_root, sha1_git, limit=100): """Return information about revision sha1_git, limited to the sub-graph of all transitive parents of sha1_git_root. In other words, sha1_git is an ancestor of sha1_git_root. Args: sha1_git_root: latest revision. The type is either a sha1 (as an hex string) or a non converted dict. sha1_git: one of sha1_git_root's ancestors limit: limit the lookup to 100 revisions back Returns: Information on sha1_git if it is an ancestor of sha1_git_root including children leading to sha1_git_root Raises: BadInputExc in case of unknown algo_hash or bad hash NotFoundExc if either revision is not found or if sha1_git is not an ancestor of sha1_git_root """ sha1_git_bin = _to_sha1_bin(sha1_git) revision = _first_element(storage.revision_get([sha1_git_bin])) if not revision: raise NotFoundExc('Revision %s not found' % sha1_git) if isinstance(sha1_git_root, str): sha1_git_root_bin = _to_sha1_bin(sha1_git_root) revision_root = _first_element(storage.revision_get([sha1_git_root_bin])) # noqa if not revision_root: raise NotFoundExc('Revision root %s not found' % sha1_git_root) else: sha1_git_root_bin = sha1_git_root['id'] revision_log = storage.revision_log([sha1_git_root_bin], limit) parents = {} children = defaultdict(list) for rev in revision_log: rev_id = rev['id'] parents[rev_id] = [] for parent_id in rev['parents']: parents[rev_id].append(parent_id) children[parent_id].append(rev_id) if revision['id'] not in parents: raise NotFoundExc('Revision %s is not an ancestor of %s' % (sha1_git, sha1_git_root)) revision['children'] = children[revision['id']] return converters.from_revision(revision) def lookup_directory_with_revision(sha1_git, dir_path=None, with_data=False): """Return information on directory pointed by revision with sha1_git. If dir_path is not provided, display top level directory. Otherwise, display the directory pointed by dir_path (if it exists). Args: sha1_git: revision's hash. dir_path: optional directory pointed to by that revision. with_data: boolean that indicates to retrieve the raw data if the path resolves to a content. Default to False (for the api) Returns: Information on the directory pointed to by that revision. Raises: BadInputExc in case of unknown algo_hash or bad hash. NotFoundExc either if the revision is not found or the path referenced does not exist. NotImplementedError in case of dir_path exists but do not reference a type 'dir' or 'file'. """ sha1_git_bin = _to_sha1_bin(sha1_git) revision = _first_element(storage.revision_get([sha1_git_bin])) if not revision: raise NotFoundExc('Revision %s not found' % sha1_git) dir_sha1_git_bin = revision['directory'] if dir_path: paths = dir_path.strip(os.path.sep).split(os.path.sep) entity = storage.directory_entry_get_by_path( dir_sha1_git_bin, list(map(lambda p: p.encode('utf-8'), paths))) if not entity: raise NotFoundExc( "Directory or File '%s' pointed to by revision %s not found" % (dir_path, sha1_git)) else: entity = {'type': 'dir', 'target': dir_sha1_git_bin} if entity['type'] == 'dir': directory_entries = storage.directory_ls(entity['target']) or [] return {'type': 'dir', 'path': '.' if not dir_path else dir_path, 'revision': sha1_git, 'content': list(map(converters.from_directory_entry, directory_entries))} elif entity['type'] == 'file': # content content = _first_element( storage.content_find({'sha1_git': entity['target']})) if not content: raise NotFoundExc('Content not found for revision %s' % sha1_git) if with_data: c = _first_element(storage.content_get([content['sha1']])) content['data'] = c['data'] return {'type': 'file', 'path': '.' if not dir_path else dir_path, 'revision': sha1_git, 'content': converters.from_content(content)} elif entity['type'] == 'rev': # revision revision = next(storage.revision_get([entity['target']])) return {'type': 'rev', 'path': '.' if not dir_path else dir_path, 'revision': sha1_git, 'content': converters.from_revision(revision)} else: raise NotImplementedError('Entity of type %s not implemented.' % entity['type']) def lookup_content(q): """Lookup the content designed by q. Args: q: The release's sha1 as hexadecimal Raises: NotFoundExc if the requested content is not found """ algo, hash = query.parse_hash(q) c = _first_element(storage.content_find({algo: hash})) if not c: raise NotFoundExc('Content with %s checksum equals to %s not found!' % (algo, hashutil.hash_to_hex(hash))) return converters.from_content(c) def lookup_content_raw(q): """Lookup the content defined by q. Args: q: query string of the form <hash_algo:hash> Returns: dict with 'sha1' and 'data' keys. data representing its raw data decoded. Raises: NotFoundExc if the requested content is not found or if the content bytes are not available in the storage """ c = lookup_content(q) content_sha1_bytes = hashutil.hash_to_bytes(c['checksums']['sha1']) content = _first_element(storage.content_get([content_sha1_bytes])) if not content: algo, hash = query.parse_hash(q) raise NotFoundExc('Bytes of content with %s checksum equals to %s ' 'are not available!' % (algo, hashutil.hash_to_hex(hash))) return converters.from_content(content) def stat_counters(): """Return the stat counters for Software Heritage Returns: A dict mapping textual labels to integer values. """ return storage.stat_counters() def _lookup_origin_visits(origin_url, last_visit=None, limit=10): """Yields the origin origins' visits. Args: origin_url (str): origin to list visits for last_visit (int): last visit to lookup from limit (int): Number of elements max to display Yields: Dictionaries of origin_visit for that origin """ limit = min(limit, MAX_LIMIT) for visit in storage.origin_visit_get( origin_url, last_visit=last_visit, limit=limit): visit['origin'] = origin_url yield visit def lookup_origin_visits(origin, last_visit=None, per_page=10): """Yields the origin origins' visits. Args: origin: origin to list visits for Yields: Dictionaries of origin_visit for that origin """ visits = _lookup_origin_visits(origin, last_visit=last_visit, limit=per_page) for visit in visits: yield converters.from_origin_visit(visit) def lookup_origin_visit_latest(origin_url, require_snapshot): """Return the origin's latest visit Args: origin_url (str): origin to list visits for require_snapshot (bool): filter out origins without a snapshot Returns: dict: The origin_visit concerned """ visit = storage.origin_visit_get_latest( origin_url, require_snapshot=require_snapshot) return converters.from_origin_visit(visit) def lookup_origin_visit(origin_url, visit_id): """Return information about visit visit_id with origin origin. Args: origin (str): origin concerned by the visit visit_id: the visit identifier to lookup Yields: The dict origin_visit concerned """ visit = storage.origin_visit_get_by(origin_url, visit_id) if not visit: raise NotFoundExc('Origin %s or its visit ' 'with id %s not found!' % (origin_url, visit_id)) visit['origin'] = origin_url return converters.from_origin_visit(visit) def lookup_snapshot_sizes(snapshot_id): """Count the number of branches in the snapshot with the given id Args: snapshot_id (str): sha1 identifier of the snapshot Returns: dict: A dict whose keys are the target types of branches and values their corresponding amount """ snapshot_id_bin = _to_sha1_bin(snapshot_id) snapshot_sizes = storage.snapshot_count_branches(snapshot_id_bin) if 'revision' not in snapshot_sizes: snapshot_sizes['revision'] = 0 if 'release' not in snapshot_sizes: snapshot_sizes['release'] = 0 # adjust revision / release count for display if aliases are defined if 'alias' in snapshot_sizes: aliases = lookup_snapshot(snapshot_id, branches_count=snapshot_sizes['alias'], target_types=['alias']) for alias in aliases['branches'].values(): if lookup_snapshot(snapshot_id, branches_from=alias['target'], branches_count=1, target_types=['revision']): snapshot_sizes['revision'] += 1 else: snapshot_sizes['release'] += 1 del snapshot_sizes['alias'] return snapshot_sizes def lookup_snapshot(snapshot_id, branches_from='', branches_count=1000, target_types=None): """Return information about a snapshot, aka the list of named branches found during a specific visit of an origin. Args: snapshot_id (str): sha1 identifier of the snapshot branches_from (str): optional parameter used to skip branches whose name is lesser than it before returning them branches_count (int): optional parameter used to restrain the amount of returned branches target_types (list): optional parameter used to filter the target types of branch to return (possible values that can be contained in that list are `'content', 'directory', 'revision', 'release', 'snapshot', 'alias'`) Returns: A dict filled with the snapshot content. """ snapshot_id_bin = _to_sha1_bin(snapshot_id) snapshot = storage.snapshot_get_branches(snapshot_id_bin, branches_from.encode(), branches_count, target_types) if not snapshot: raise NotFoundExc('Snapshot with id %s not found!' % snapshot_id) return converters.from_snapshot(snapshot) def lookup_latest_origin_snapshot(origin, allowed_statuses=None): """Return information about the latest snapshot of an origin. .. warning:: At most 1000 branches contained in the snapshot will be returned for performance reasons. Args: origin: URL or integer identifier of the origin allowed_statuses: list of visit statuses considered to find the latest snapshot for the visit. For instance, ``allowed_statuses=['full']`` will only consider visits that have successfully run to completion. Returns: A dict filled with the snapshot content. """ snapshot = storage.snapshot_get_latest(origin, allowed_statuses) return converters.from_snapshot(snapshot) def lookup_revision_through(revision, limit=100): """Retrieve a revision from the criterion stored in revision dictionary. Args: revision: Dictionary of criterion to lookup the revision with. Here are the supported combination of possible values: - origin_url, branch_name, ts, sha1_git - origin_url, branch_name, ts - sha1_git_root, sha1_git - sha1_git Returns: None if the revision is not found or the actual revision. """ if ( 'origin_url' in revision and 'branch_name' in revision and 'ts' in revision and 'sha1_git' in revision): return lookup_revision_with_context_by(revision['origin_url'], revision['branch_name'], revision['ts'], revision['sha1_git'], limit) if ( 'origin_url' in revision and 'branch_name' in revision and 'ts' in revision): return lookup_revision_by(revision['origin_url'], revision['branch_name'], revision['ts']) if ( 'sha1_git_root' in revision and 'sha1_git' in revision): return lookup_revision_with_context(revision['sha1_git_root'], revision['sha1_git'], limit) if 'sha1_git' in revision: return lookup_revision(revision['sha1_git']) # this should not happen raise NotImplementedError('Should not happen!') def lookup_directory_through_revision(revision, path=None, limit=100, with_data=False): """Retrieve the directory information from the revision. Args: revision: dictionary of criterion representing a revision to lookup path: directory's path to lookup. limit: optional query parameter to limit the revisions log (default to 100). For now, note that this limit could impede the transitivity conclusion about sha1_git not being an ancestor of. with_data: indicate to retrieve the content's raw data if path resolves to a content. Returns: The directory pointing to by the revision criterions at path. """ rev = lookup_revision_through(revision, limit) if not rev: raise NotFoundExc('Revision with criterion %s not found!' % revision) return (rev['id'], lookup_directory_with_revision(rev['id'], path, with_data)) def vault_cook(obj_type, obj_id, email=None): """Cook a vault bundle. """ return vault.cook(obj_type, obj_id, email=email) def vault_fetch(obj_type, obj_id): """Fetch a vault bundle. """ return vault.fetch(obj_type, obj_id) def vault_progress(obj_type, obj_id): """Get the current progress of a vault bundle. """ return vault.progress(obj_type, obj_id) def diff_revision(rev_id): """Get the list of file changes (insertion / deletion / modification / renaming) for a particular revision. """ rev_sha1_git_bin = _to_sha1_bin(rev_id) changes = diff.diff_revision(storage, rev_sha1_git_bin, track_renaming=True) for change in changes: change['from'] = converters.from_directory_entry(change['from']) change['to'] = converters.from_directory_entry(change['to']) if change['from_path']: change['from_path'] = change['from_path'].decode('utf-8') if change['to_path']: change['to_path'] = change['to_path'].decode('utf-8') return changes class _RevisionsWalkerProxy(object): """ Proxy class wrapping a revisions walker iterator from swh-storage and performing needed conversions. """ def __init__(self, rev_walker_type, rev_start, *args, **kwargs): rev_start_bin = hashutil.hash_to_bytes(rev_start) self.revisions_walker = \ revisions_walker.get_revisions_walker(rev_walker_type, storage, rev_start_bin, *args, **kwargs) def export_state(self): return self.revisions_walker.export_state() def __next__(self): return converters.from_revision(next(self.revisions_walker)) def __iter__(self): return self def get_revisions_walker(rev_walker_type, rev_start, *args, **kwargs): """ Utility function to instantiate a revisions walker of a given type, see :mod:`swh.storage.algos.revisions_walker`. Args: rev_walker_type (str): the type of revisions walker to return, possible values are: ``committer_date``, ``dfs``, ``dfs_post``, ``bfs`` and ``path`` rev_start (str): hexadecimal representation of a revision identifier args (list): position arguments to pass to the revisions walker constructor kwargs (dict): keyword arguments to pass to the revisions walker constructor """ # first check if the provided revision is valid lookup_revision(rev_start) return _RevisionsWalkerProxy(rev_walker_type, rev_start, *args, **kwargs) def lookup_object(object_type: str, object_id: str) -> Dict[str, Any]: """ Utility function for looking up an object in the archive by its type and id. Args: object_type (str): the type of object to lookup, either *content*, *directory*, *release*, *revision* or *snapshot* object_id (str): the *sha1_git* checksum identifier in hexadecimal form of the object to lookup Returns: Dict[str, Any]: A dictionary describing the object or a list of dictionary for the directory object type. Raises: swh.web.common.exc.NotFoundExc: if the object could not be found in the archive BadInputExc: if the object identifier is invalid """ if object_type == CONTENT: return lookup_content(f'sha1_git:{object_id}') elif object_type == DIRECTORY: return { 'id': object_id, 'content': list(lookup_directory(object_id)) } elif object_type == RELEASE: return lookup_release(object_id) elif object_type == REVISION: return lookup_revision(object_id) elif object_type == SNAPSHOT: return lookup_snapshot(object_id) raise BadInputExc(('Invalid swh object type! Valid types are ' f'{CONTENT}, {DIRECTORY}, {RELEASE} ' f'{REVISION} or {SNAPSHOT}.')) def lookup_missing_hashes(grouped_pids: Dict[str, List[bytes]]) -> Set[str]: """Lookup missing Software Heritage persistent identifier hash, using batch processing. Args: A dictionary with: keys: persistent identifier type values: list(bytes) persistent identifier hash Returns: A set(hexadecimal) of the hashes not found in the storage """ missing_hashes = [] for obj_type, obj_ids in grouped_pids.items(): if obj_type == CONTENT: missing_hashes.append( storage.content_missing_per_sha1_git(obj_ids)) elif obj_type == DIRECTORY: missing_hashes.append(storage.directory_missing(obj_ids)) elif obj_type == REVISION: missing_hashes.append(storage.revision_missing(obj_ids)) elif obj_type == RELEASE: missing_hashes.append(storage.directory_missing(obj_ids)) elif obj_type == SNAPSHOT: missing_hashes.append(storage.directory_missing(obj_ids)) missing = set(map(lambda x: hashutil.hash_to_hex(x), itertools.chain(*missing_hashes))) return missing diff --git a/swh/web/common/swh_templatetags.py b/swh/web/common/swh_templatetags.py index 18e20c69..b2e9c0c4 100644 --- a/swh/web/common/swh_templatetags.py +++ b/swh/web/common/swh_templatetags.py @@ -1,160 +1,158 @@ # Copyright (C) 2017-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import json import re -from inspect import cleandoc - from django import template from django.core.serializers.json import DjangoJSONEncoder from django.utils.safestring import mark_safe import sentry_sdk from swh.web.common.origin_save import get_savable_visit_types from swh.web.common.utils import rst_to_html register = template.Library() @register.filter -def safe_docstring_display(docstring): +def docstring_display(docstring): """ Utility function to htmlize reST-formatted documentation in browsable api. """ - return rst_to_html(cleandoc(docstring)) + return rst_to_html(docstring) @register.filter def urlize_links_and_mails(text): """Utility function for decorating api links in browsable api. Args: text: whose content matching links should be transformed into contextual API or Browse html links. Returns The text transformed if any link is found. The text as is otherwise. """ try: if 'href="' not in text: text = re.sub(r'(http.*)', r'<a href="\1">\1</a>', text) return re.sub(r'([^ <>"]+@[^ <>"]+)', r'<a href="mailto:\1">\1</a>', text) except Exception as exc: sentry_sdk.capture_exception(exc) return text @register.filter def urlize_header_links(text): """Utility function for decorating headers links in browsable api. Args text: Text whose content contains Link header value Returns: The text transformed with html link if any link is found. The text as is otherwise. """ links = text.split(',') ret = '' for i, link in enumerate(links): ret += re.sub(r'<(http.*)>', r'<<a href="\1">\1</a>>', link) # add one link per line and align them if i != len(links) - 1: ret += '\n ' return ret @register.filter def jsonify(obj): """Utility function for converting a django template variable to JSON in order to use it in script tags. Args obj: Any django template context variable Returns: JSON representation of the variable. """ return mark_safe(json.dumps(obj, cls=DjangoJSONEncoder)) @register.filter def sub(value, arg): """Django template filter for subtracting two numbers Args: value (int/float): the value to subtract from arg (int/float): the value to subtract to Returns: int/float: The subtraction result """ return value - arg @register.filter def mul(value, arg): """Django template filter for multiplying two numbers Args: value (int/float): the value to multiply from arg (int/float): the value to multiply with Returns: int/float: The multiplication result """ return value * arg @register.filter def key_value(dict, key): """Django template filter to get a value in a dictionary. Args: dict (dict): a dictionary key (str): the key to lookup value Returns: The requested value in the dictionary """ return dict[key] @register.filter def visit_type_savable(visit_type): """Django template filter to check if a save request can be created for a given visit type. Args: visit_type (str): the type of visit Returns: If the visit type is saveable or not """ return visit_type in get_savable_visit_types() @register.filter def split(value, arg): """Django template filter to split a string. Args: value (str): the string to split arg (str): the split separator Returns: list: the split string parts """ return value.split(arg) diff --git a/swh/web/common/utils.py b/swh/web/common/utils.py index 36781821..c0bfd76a 100644 --- a/swh/web/common/utils.py +++ b/swh/web/common/utils.py @@ -1,479 +1,494 @@ # Copyright (C) 2017-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import re from datetime import datetime, timezone from dateutil import parser as date_parser from dateutil import tz from typing import Optional, Dict, Any import docutils.parsers.rst import docutils.utils +from bs4 import BeautifulSoup + from docutils.core import publish_parts from docutils.writers.html5_polyglot import Writer, HTMLTranslator from django.urls import reverse as django_reverse from django.http import QueryDict, HttpRequest from prometheus_client.registry import CollectorRegistry from rest_framework.authentication import SessionAuthentication from swh.model.exceptions import ValidationError from swh.model.hashutil import hash_to_bytes from swh.model.identifiers import ( persistent_identifier, parse_persistent_identifier, CONTENT, DIRECTORY, ORIGIN, RELEASE, REVISION, SNAPSHOT ) from swh.web.common.exc import BadInputExc from swh.web.config import get_config SWH_WEB_METRICS_REGISTRY = CollectorRegistry(auto_describe=True) swh_object_icons = { 'branch': 'fa fa-code-fork', 'branches': 'fa fa-code-fork', 'content': 'fa fa-file-text', 'directory': 'fa fa-folder', 'person': 'fa fa-user', 'revisions history': 'fa fa-history', 'release': 'fa fa-tag', 'releases': 'fa fa-tag', 'revision': 'octicon-git-commit', 'snapshot': 'fa fa-camera', 'visits': 'fa fa-calendar', } def reverse(viewname: str, url_args: Optional[Dict[str, Any]] = None, query_params: Optional[Dict[str, Any]] = None, current_app: Optional[str] = None, urlconf: Optional[str] = None, request: Optional[HttpRequest] = None) -> str: """An override of django reverse function supporting query parameters. Args: viewname: the name of the django view from which to compute a url url_args: dictionary of url arguments indexed by their names query_params: dictionary of query parameters to append to the reversed url current_app: the name of the django app tighten to the view urlconf: url configuration module request: build an absolute URI if provided Returns: str: the url of the requested view with processed arguments and query parameters """ if url_args: url_args = {k: v for k, v in url_args.items() if v is not None} url = django_reverse(viewname, urlconf=urlconf, kwargs=url_args, current_app=current_app) if query_params: query_params = {k: v for k, v in query_params.items() if v} if query_params and len(query_params) > 0: query_dict = QueryDict('', mutable=True) for k in sorted(query_params.keys()): query_dict[k] = query_params[k] url += ('?' + query_dict.urlencode(safe='/;:')) if request is not None: url = request.build_absolute_uri(url) return url def datetime_to_utc(date): """Returns datetime in UTC without timezone info Args: date (datetime.datetime): input datetime with timezone info Returns: datetime.datetime: datetime in UTC without timezone info """ if date.tzinfo: return date.astimezone(tz.gettz('UTC')).replace(tzinfo=timezone.utc) else: return date def parse_timestamp(timestamp): """Given a time or timestamp (as string), parse the result as UTC datetime. Returns: datetime.datetime: a timezone-aware datetime representing the parsed value or None if the parsing fails. Samples: - 2016-01-12 - 2016-01-12T09:19:12+0100 - Today is January 1, 2047 at 8:21:00AM - 1452591542 """ if not timestamp: return None try: date = date_parser.parse(timestamp, ignoretz=False, fuzzy=True) return datetime_to_utc(date) except Exception: try: return datetime.utcfromtimestamp(float(timestamp)).replace( tzinfo=timezone.utc) except (ValueError, OverflowError) as e: raise BadInputExc(e) def shorten_path(path): """Shorten the given path: for each hash present, only return the first 8 characters followed by an ellipsis""" sha256_re = r'([0-9a-f]{8})[0-9a-z]{56}' sha1_re = r'([0-9a-f]{8})[0-9a-f]{32}' ret = re.sub(sha256_re, r'\1...', path) return re.sub(sha1_re, r'\1...', ret) def format_utc_iso_date(iso_date, fmt='%d %B %Y, %H:%M UTC'): """Turns a string representation of an ISO 8601 date string to UTC and format it into a more human readable one. For instance, from the following input string: '2017-05-04T13:27:13+02:00' the following one is returned: '04 May 2017, 11:27 UTC'. Custom format string may also be provided as parameter Args: iso_date (str): a string representation of an ISO 8601 date fmt (str): optional date formatting string Returns: str: a formatted string representation of the input iso date """ if not iso_date: return iso_date date = parse_timestamp(iso_date) return date.strftime(fmt) def gen_path_info(path): """Function to generate path data navigation for use with a breadcrumb in the swh web ui. For instance, from a path /folder1/folder2/folder3, it returns the following list:: [{'name': 'folder1', 'path': 'folder1'}, {'name': 'folder2', 'path': 'folder1/folder2'}, {'name': 'folder3', 'path': 'folder1/folder2/folder3'}] Args: path: a filesystem path Returns: list: a list of path data for navigation as illustrated above. """ path_info = [] if path: sub_paths = path.strip('/').split('/') path_from_root = '' for p in sub_paths: path_from_root += '/' + p path_info.append({'name': p, 'path': path_from_root.strip('/')}) return path_info def get_swh_persistent_id(object_type, object_id, scheme_version=1): """ Returns the persistent identifier for a swh object based on: * the object type * the object id * the swh identifiers scheme version Args: object_type (str): the swh object type (content/directory/release/revision/snapshot) object_id (str): the swh object id (hexadecimal representation of its hash value) scheme_version (int): the scheme version of the swh persistent identifiers Returns: str: the swh object persistent identifier Raises: BadInputExc: if the provided parameters do not enable to generate a valid identifier """ try: swh_id = persistent_identifier(object_type, object_id, scheme_version) except ValidationError as e: raise BadInputExc('Invalid object (%s) for swh persistent id. %s' % (object_id, e)) else: return swh_id def resolve_swh_persistent_id(swh_id, query_params=None): """ Try to resolve a Software Heritage persistent id into an url for browsing the pointed object. Args: swh_id (str): a Software Heritage persistent identifier query_params (django.http.QueryDict): optional dict filled with query parameters to append to the browse url Returns: dict: a dict with the following keys: * **swh_id_parsed (swh.model.identifiers.PersistentId)**: the parsed identifier * **browse_url (str)**: the url for browsing the pointed object """ swh_id_parsed = get_persistent_identifier(swh_id) object_type = swh_id_parsed.object_type object_id = swh_id_parsed.object_id browse_url = None query_dict = QueryDict('', mutable=True) if query_params and len(query_params) > 0: for k in sorted(query_params.keys()): query_dict[k] = query_params[k] if 'origin' in swh_id_parsed.metadata: query_dict['origin'] = swh_id_parsed.metadata['origin'] if object_type == CONTENT: query_string = 'sha1_git:' + object_id fragment = '' if 'lines' in swh_id_parsed.metadata: lines = swh_id_parsed.metadata['lines'].split('-') fragment += '#L' + lines[0] if len(lines) > 1: fragment += '-L' + lines[1] browse_url = reverse('browse-content', url_args={'query_string': query_string}, query_params=query_dict) + fragment elif object_type == DIRECTORY: browse_url = reverse('browse-directory', url_args={'sha1_git': object_id}, query_params=query_dict) elif object_type == RELEASE: browse_url = reverse('browse-release', url_args={'sha1_git': object_id}, query_params=query_dict) elif object_type == REVISION: browse_url = reverse('browse-revision', url_args={'sha1_git': object_id}, query_params=query_dict) elif object_type == SNAPSHOT: browse_url = reverse('browse-snapshot', url_args={'snapshot_id': object_id}, query_params=query_dict) elif object_type == ORIGIN: raise BadInputExc(('Origin PIDs (Persistent Identifiers) are not ' 'publicly resolvable because they are for ' 'internal usage only')) return {'swh_id_parsed': swh_id_parsed, 'browse_url': browse_url} def parse_rst(text, report_level=2): """ Parse a reStructuredText string with docutils. Args: text (str): string with reStructuredText markups in it report_level (int): level of docutils report messages to print (1 info 2 warning 3 error 4 severe 5 none) Returns: docutils.nodes.document: a parsed docutils document """ parser = docutils.parsers.rst.Parser() components = (docutils.parsers.rst.Parser,) settings = docutils.frontend.OptionParser( components=components).get_default_values() settings.report_level = report_level document = docutils.utils.new_document('rst-doc', settings=settings) parser.parse(text, document) return document def get_client_ip(request): """ Return the client IP address from an incoming HTTP request. Args: request (django.http.HttpRequest): the incoming HTTP request Returns: str: The client IP address """ x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: ip = x_forwarded_for.split(',')[0] else: ip = request.META.get('REMOTE_ADDR') return ip def context_processor(request): """ Django context processor used to inject variables in all swh-web templates. """ return { 'swh_object_icons': swh_object_icons, 'available_languages': None, 'swh_client_config': get_config()['client_config'], } class EnforceCSRFAuthentication(SessionAuthentication): """ Helper class to enforce CSRF validation on a DRF view when a user is not authenticated. """ def authenticate(self, request): user = getattr(request._request, 'user', None) self.enforce_csrf(request) return (user, None) def resolve_branch_alias(snapshot: Dict[str, Any], branch: Optional[Dict[str, Any]] ) -> Optional[Dict[str, Any]]: """ Resolve branch alias in snapshot content. Args: snapshot: a full snapshot content branch: a branch alias contained in the snapshot Returns: The real snapshot branch that got aliased. """ while branch and branch['target_type'] == 'alias': if branch['target'] in snapshot['branches']: branch = snapshot['branches'][branch['target']] else: from swh.web.common import service snp = service.lookup_snapshot( snapshot['id'], branches_from=branch['target'], branches_count=1) if snp and branch['target'] in snp['branches']: branch = snp['branches'][branch['target']] else: branch = None return branch def get_persistent_identifier(persistent_id): """Check if a persistent identifier is valid. Args: persistent_id: A string representing a Software Heritage persistent identifier. Raises: BadInputExc: if the provided persistent identifier can not be parsed. Return: A persistent identifier object. """ try: pid_object = parse_persistent_identifier(persistent_id) except ValidationError as ve: raise BadInputExc('Error when parsing identifier: %s' % ' '.join(ve.messages)) else: return pid_object def group_swh_persistent_identifiers(persistent_ids): """ Groups many Software Heritage persistent identifiers into a dictionary depending on their type. Args: persistent_ids (list): a list of Software Heritage persistent identifier objects Returns: A dictionary with: keys: persistent identifier types values: list(bytes) persistent identifiers id Raises: BadInputExc: if one of the provided persistent identifier can not be parsed. """ pids_by_type = { CONTENT: [], DIRECTORY: [], REVISION: [], RELEASE: [], SNAPSHOT: [] } for pid in persistent_ids: obj_id = pid.object_id obj_type = pid.object_type pids_by_type[obj_type].append(hash_to_bytes(obj_id)) return pids_by_type class _NoHeaderHTMLTranslator(HTMLTranslator): """ Docutils translator subclass to customize the generation of HTML from reST-formatted docstrings """ def __init__(self, document): super().__init__(document) self.body_prefix = [] self.body_suffix = [] _HTML_WRITER = Writer() _HTML_WRITER.translator_class = _NoHeaderHTMLTranslator def rst_to_html(rst: str) -> str: """ Convert reStructuredText document into HTML. Args: rst: A string containing a reStructuredText document Returns: Body content of the produced HTML conversion. """ settings = { 'initial_header_level': 2, } pp = publish_parts(rst, writer=_HTML_WRITER, settings_overrides=settings) return f'<div class="swh-rst">{pp["html_body"]}</div>' + + +def prettify_html(html: str) -> str: + """ + Prettify an HTML document. + + Args: + html: Input HTML document + + Returns: + The prettified HTML document + """ + return BeautifulSoup(html, 'lxml').prettify() diff --git a/swh/web/templates/api/apidoc.html b/swh/web/templates/api/apidoc.html index b5a7ef35..c088d19b 100644 --- a/swh/web/templates/api/apidoc.html +++ b/swh/web/templates/api/apidoc.html @@ -1,183 +1,212 @@ {% extends "layout.html" %} {% comment %} Copyright (C) 2015-2019 The Software Heritage developers See the AUTHORS file at the top-level directory of this distribution License: GNU Affero General Public License version 3, or any later version See top-level LICENSE file for more information {% endcomment %} {% load swh_templatetags %} {% block title %}{{ heading }} – Software Heritage API {% endblock %} {% block navbar-content %} <nav class="bread-crumbs"> <ul> <li><a href="/api/"><h4>Web API</h4></a></li> <li class="bc-no-root"><i class="fa fa-caret-right fa-fw" aria-hidden="true"></i></li> <li class="bc-no-root"><a href="/api/1/">endpoints</a></li> {% for endpoint in endpoint_path %} <li class="bc-no-root"><i class="fa fa-caret-right fa-fw" aria-hidden="true"></i></li> - {% if endpoint.name != 'stat' and endpoint.name != 'vault' and endpoint.path != 'vault/revision' %} + {% if endpoint.name != 'stat' and endpoint.name != 'vault' and endpoint.path != 'vault/revision/doc/' %} <li class="bc-no-root"><a href="{{ '/api/1/'|add:endpoint.path }}">{{ endpoint.name }}</a></li> {% else %} <li class="bc-no-root"><span>{{ endpoint.name }}</span></li> {% endif %} {% endfor %} </ul> </nav> {% endblock %} {% block content %} <div class='swh-apidoc'> {% if description %} <div> <h4> Description </h4> - {{ description | safe_docstring_display | safe }} + {{ description | docstring_display | safe }} </div> {% endif %} {% if response_data is not None %} <div> <h4>Request</h4> <pre><strong>{{ request.method }}</strong> {{ request.build_absolute_uri }}</pre> <hr/> <h4>Response</h4> {% if status_code != 200 %} <h5>Status Code</h5> <pre>{{ status_code }}</pre> {% endif %} {% if headers_data %} <h5>Headers</h5> {% for header_name, header_value in headers_data.items %} <pre><strong>{{ header_name }}</strong> {{ header_value | urlize_header_links | safe }}</pre> {% endfor %} {% endif %} <h5>Body</h5> <pre><code class="json">{{ response_data | urlize_links_and_mails | safe }}</code></pre> </div> {% endif %} <hr/> {% if urls and urls|length > 0 %} <div> <table class="m-x-auto table"> <thead> <tr> <th>URL</th> <th>Allowed Methods</th> </tr> </thead> <tbody> {% for url in urls %} <tr> - <td>{{ url.rule | safe_docstring_display | safe }}</td> + <td>{{ url.rule | docstring_display | safe }}</td> <td>{{ url.methods | dictsort:0 | join:', ' }}</td> </tr> {% endfor %} </tbody> </table> </div> <hr/> {% endif %} {% if args and args|length > 0 %} <div> <h4> Arguments </h4> {% for arg in args %} <dl class="row"> <dt class="col col-md-2 text-right"> {{ arg.name }} ({{ arg.type }}) </dt> - <dd class="col col-md-9"> {{ arg.doc | safe_docstring_display | safe }} </dd> + <dd class="col col-md-9"> {{ arg.doc | docstring_display | safe }} </dd> </dl> {% endfor %} </div> <hr/> {% endif %} {% if params and params|length > 0 %} <div> <h4> Query parameters </h4> {% for param in params %} <dl class="row"> <dt class="col col-md-2 text-right"> {{ param.name }} ({{ param.type }}) </dt> - <dd class="col col-md-9"> {{ param.doc | safe_docstring_display | safe }} </dd> + <dd class="col col-md-9"> {{ param.doc | docstring_display | safe }} </dd> </dl> {% endfor %} </div> <hr/> {% endif %} {% if reqheaders and reqheaders|length > 0 %} <div> <h4> Request headers </h4> {% for header in reqheaders %} <dl class="row"> <dt class="col col-md-2 text-right"> {{ header.name }} </dt> - <dd class="col col-md-9"> {{ header.doc | safe_docstring_display | safe }} </dd> + <dd class="col col-md-9"> {{ header.doc | docstring_display | safe }} </dd> </dl> {% endfor %} </div> <hr/> {% endif %} +{% if input_type %} + <div> + <h4> Request data </h4> + <dl class="row"> + <dt class="col col-md-2 text-right"> {{ input_type }} </dt> + <dd class="col col-md-9"> + <p> + {% if input_type == 'array' and inputs_list == '' %} + {{ inputs.0.doc | safe }} + {% elif input_type == 'array' and inputs_list != '' %} + an array of objects containing the following keys: + {% elif input_type == 'octet stream' %} + raw data as an octet stream + {% elif input_type == 'object' %} + an object containing the following keys: + {% endif %} + {% if inputs_list != '' %} + {{ inputs_list | docstring_display | safe }} + {% endif %} + </p> + </dd> + </dl> + </div> + <hr/> +{% endif %} {% if resheaders and resheaders|length > 0 %} <div> <h4> Response headers </h4> {% for header in resheaders %} <dl class="row"> <dt class="col col-md-2 text-right"> {{ header.name }} </dt> - <dd class="col col-md-9"> {{ header.doc | safe_docstring_display | safe }} </dd> + <dd class="col col-md-9"> {{ header.doc | docstring_display | safe }} </dd> </dl> {% endfor %} </div> <hr/> {% endif %} {% if return_type %} <div> <h4> Returns </h4> <dl class="row"> <dt class="col col-md-2 text-right"> {{ return_type }} </dt> <dd class="col col-md-9"> <p> - {% if return_type == 'array' %} + {% if return_type == 'array' and returns_list == '' %} + {{ returns.0.doc | safe }} + {% elif return_type == 'array' and returns_list != '' %} an array of objects containing the following keys: {% elif return_type == 'octet stream' %} - the raw data as an octet stream - {% else %} + raw data as an octet stream + {% elif return_type == 'object' %} an object containing the following keys: {% endif %} - {{ returns_list | safe_docstring_display | safe }} + {% if returns_list != '' %} + {{ returns_list | docstring_display | safe }} + {% endif %} </p> </dd> </dl> </div> <hr/> {% endif %} {% if status_codes and status_codes|length > 0 %} <div> <h4> HTTP status codes </h4> {% for status in status_codes %} <dl class="row"> <dt class="col col-md-2 text-right"> {{ status.code }} </dt> - <dd class="col col-md-9"> {{ status.doc | safe_docstring_display | safe }} </dd> + <dd class="col col-md-9"> {{ status.doc | docstring_display | safe }} </dd> </dl> {% endfor %} </div> <hr/> {% endif %} {% if examples and examples|length > 0 %} <div> <h4> Examples </h4> {% for example in examples %} <dl class="row"> <dt class="col col-md-2"></dt> <dd class="col col-md-9"> <a href="{{ example }}">{{ example }}</a> </dd> </dl> {% endfor %} </div> {% endif %} </div> <script> swh.webapp.initPage('api'); swh.webapp.highlightCode(false); </script> {% endblock %} diff --git a/swh/web/templates/api/endpoints.html b/swh/web/templates/api/endpoints.html index 1e4a49f2..6c94d5d7 100644 --- a/swh/web/templates/api/endpoints.html +++ b/swh/web/templates/api/endpoints.html @@ -1,82 +1,82 @@ {% extends "layout.html" %} {% comment %} Copyright (C) 2015-2019 The Software Heritage developers See the AUTHORS file at the top-level directory of this distribution License: GNU Affero General Public License version 3, or any later version See top-level LICENSE file for more information {% endcomment %} {% load swh_templatetags %} {% block title %} Endpoints – Software Heritage API {% endblock %} {% block navbar-content %} <div class="bread-crumbs"> <ul> <li><a href="/api/"><h4>Web API</h4></a></li> <li class="bc-no-root"><i class="fa fa-caret-right fa-fw" aria-hidden="true"></i></li> <li class="bc-no-root">endpoints</li> </ul> </div> {% endblock %} {% block content %} <div class="swh-api-1-doc"> <p> Below you can find a list of the available endpoints for version 1 of the Software Heritage API. For a more general introduction please refer to the <a href="/api/">API overview</a>. </p> <p> Endpoints marked "available" are considered stable for the current version of the API; endpoints marked "upcoming" are work in progress that will be stabilized in the near future. </p> </div> <div class="swh-api-1-doc table-responsive"> <table class="table table-striped search-res swh-table" width="100%"> <col width="200"> <thead class="thead-default"> <th>Endpoint</th> <th class="d-none d-sm-table-cell">Description</th> </thead> <tbody> {% for route, doc in doc_routes %} <tr class="swh-api-1-doc-route swh-tr-hover-highlight {% for tag in doc.tags %} swh-api-1-doc-route-{{ tag }} {% endfor %}"> {% if doc.tags|length > 0 %} <td id="{{ route }}"> {% url doc.route_view_name %} </td> {% else %} <td id="{{ route }}"> <a href="{% url doc.route_view_name %}"> - {% url doc.route_view_name %} + {{ doc.route }} </a> </td> {% endif %} <td class="d-none d-sm-table-cell"> <a href="{% url doc.route_view_name %}"> - {{ doc.doc_intro | safe_docstring_display | safe }} + {{ doc.doc_intro | docstring_display | safe }} </a> </td> </tr> {% endfor %} </tbody> </table> </div> <script type="text/javascript"> swh.webapp.initPage('api'); swh.webapp.highlightCode(false); $(document).ready(function() { $('table.swh-table').DataTable({ "paging": false, "info": false, "order": [[0, "asc"]] }); }); </script> {% endblock %} diff --git a/swh/web/tests/api/test_apidoc.py b/swh/web/tests/api/test_apidoc.py index 7dfc9b9d..a9768521 100644 --- a/swh/web/tests/api/test_apidoc.py +++ b/swh/web/tests/api/test_apidoc.py @@ -1,313 +1,499 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information +import textwrap + import pytest from rest_framework.response import Response from swh.storage.exc import StorageDBError, StorageAPIError from swh.web.api.apidoc import api_doc, _parse_httpdomain_doc from swh.web.api.apiurls import api_route from swh.web.common.exc import BadInputExc, ForbiddenExc, NotFoundExc +from swh.web.common.utils import reverse, prettify_html from swh.web.tests.django_asserts import assert_template_used -httpdomain_doc = """ +_httpdomain_doc = """ .. http:get:: /api/1/revision/(sha1_git)/ Get information about a revision in the archive. Revisions are identified by **sha1** checksums, compatible with Git commit identifiers. See :func:`swh.model.identifiers.revision_identifier` in our data model module for details about how they are computed. :param string sha1_git: hexadecimal representation of the revision **sha1_git** identifier :reqheader Accept: the requested response content type, either ``application/json`` (default) or ``application/yaml`` :resheader Content-Type: this depends on :http:header:`Accept` header of request + :<json int n: sample input integer + :<json string s: sample input string + :<json array a: sample input array + :>json object author: information about the author of the revision :>json object committer: information about the committer of the revision :>json string committer_date: ISO representation of the commit date (in UTC) :>json string date: ISO representation of the revision date (in UTC) :>json string directory: the unique identifier that revision points to :>json string directory_url: link to :http:get:`/api/1/directory/(sha1_git)/[(path)/]` to get information about the directory associated to the revision :>json string id: the revision unique identifier :>json boolean merge: whether or not the revision corresponds to a merge commit :>json string message: the message associated to the revision :>json array parents: the parents of the revision, i.e. the previous revisions that head directly to it, each entry of that array contains an unique parent revision identifier but also a link to :http:get:`/api/1/revision/(sha1_git)/` to get more information about it :>json string type: the type of the revision - **Allowed HTTP Methods:** :http:method:`get`, :http:method:`head` - :statuscode 200: no error :statuscode 400: an invalid **sha1_git** value has been provided :statuscode 404: requested revision can not be found in the archive **Request:** .. parsed-literal:: :swh_web_api:`revision/aafb16d69fd30ff58afdd69036a26047f3aebdc6/` """ -exception_http_code = { +_exception_http_code = { BadInputExc: 400, ForbiddenExc: 403, NotFoundExc: 404, Exception: 500, StorageAPIError: 503, StorageDBError: 503, } def test_apidoc_nodoc_failure(): with pytest.raises(Exception): @api_doc('/my/nodoc/url/') def apidoc_nodoc_tester(request, arga=0, argb=0): return Response(arga + argb) @api_route(r'/some/(?P<myarg>[0-9]+)/(?P<myotherarg>[0-9]+)/', - 'some-doc-route') + 'api-1-some-doc-route') @api_doc('/some/doc/route/') def apidoc_route(request, myarg, myotherarg, akw=0): """ Sample doc """ return {'result': int(myarg) + int(myotherarg) + akw} -# remove deprecation warnings related to docutils -@pytest.mark.filterwarnings( - 'ignore:.*U.*mode is deprecated:DeprecationWarning') + def test_apidoc_route_doc(client): - rv = client.get('/api/1/some/doc/route/', HTTP_ACCEPT='text/html') + url = reverse('api-1-some-doc-route-doc') + rv = client.get(url, HTTP_ACCEPT='text/html') assert rv.status_code == 200, rv.content assert_template_used(rv, 'api/apidoc.html') def test_apidoc_route_fn(api_client): - rv = api_client.get('/api/1/some/1/1/') - + url = reverse('api-1-some-doc-route', + url_args={'myarg': 1, 'myotherarg': 1}) + rv = api_client.get(url) assert rv.status_code == 200, rv.data -@api_route(r'/test/error/(?P<exc_name>.+)/', 'test-error') +@api_route(r'/test/error/(?P<exc_name>.+)/', 'api-1-test-error') @api_doc('/test/error/') def apidoc_test_error_route(request, exc_name): """ Sample doc """ - for e in exception_http_code.keys(): + for e in _exception_http_code.keys(): if e.__name__ == exc_name: raise e('Error') def test_apidoc_error(api_client): - for exc, code in exception_http_code.items(): - rv = api_client.get('/api/1/test/error/%s/' % exc.__name__) + for exc, code in _exception_http_code.items(): + url = reverse('api-1-test-error', + url_args={'exc_name': exc.__name__}) + rv = api_client.get(url) assert rv.status_code == code, rv.data @api_route(r'/some/full/(?P<myarg>[0-9]+)/(?P<myotherarg>[0-9]+)/', - 'some-complete-doc-route') + 'api-1-some-complete-doc-route') @api_doc('/some/complete/doc/route/') def apidoc_full_stack(request, myarg, myotherarg, akw=0): """ Sample doc """ return {'result': int(myarg) + int(myotherarg) + akw} -# remove deprecation warnings related to docutils -@pytest.mark.filterwarnings( - 'ignore:.*U.*mode is deprecated:DeprecationWarning') def test_apidoc_full_stack_doc(client): - rv = client.get('/api/1/some/complete/doc/route/', HTTP_ACCEPT='text/html') + url = reverse('api-1-some-complete-doc-route-doc') + rv = client.get(url, HTTP_ACCEPT='text/html') assert rv.status_code == 200, rv.content assert_template_used(rv, 'api/apidoc.html') def test_apidoc_full_stack_fn(api_client): - rv = api_client.get('/api/1/some/full/1/1/') + url = reverse('api-1-some-complete-doc-route', + url_args={'myarg': 1, 'myotherarg': 1}) + rv = api_client.get(url) assert rv.status_code == 200, rv.data +@api_route(r'/test/post/only/', 'api-1-test-post-only', + methods=['POST']) +@api_doc('/test/post/only/') +def apidoc_test_post_only(request, exc_name): + """ + Sample doc + """ + return {'result': 'some data'} + + +def test_apidoc_post_only(client): + # a dedicated view accepting GET requests should have + # been created to display the HTML documentation + url = reverse('api-1-test-post-only-doc') + rv = client.get(url, HTTP_ACCEPT='text/html') + assert rv.status_code == 200, rv.content + assert_template_used(rv, 'api/apidoc.html') + + def test_api_doc_parse_httpdomain(): doc_data = { 'description': '', 'urls': [], 'args': [], 'params': [], 'resheaders': [], 'reqheaders': [], + 'input_type': '', + 'inputs': [], 'return_type': '', 'returns': [], 'status_codes': [], 'examples': [] } - _parse_httpdomain_doc(httpdomain_doc, doc_data) + _parse_httpdomain_doc(_httpdomain_doc, doc_data) expected_urls = [{ 'rule': '/api/1/revision/ **\\(sha1_git\\)** /', - 'methods': ['GET', 'HEAD'] + 'methods': ['GET', 'HEAD', 'OPTIONS'] }] assert 'urls' in doc_data assert doc_data['urls'] == expected_urls expected_description = ('Get information about a revision in the archive. ' 'Revisions are identified by **sha1** checksums, ' 'compatible with Git commit identifiers. See ' '**swh.model.identifiers.revision_identifier** in ' 'our data model module for details about how they ' 'are computed.') assert 'description' in doc_data assert doc_data['description'] == expected_description expected_args = [{ 'name': 'sha1_git', 'type': 'string', 'doc': ('hexadecimal representation of the revision ' '**sha1_git** identifier') }] assert 'args' in doc_data assert doc_data['args'] == expected_args expected_params = [] assert 'params' in doc_data assert doc_data['params'] == expected_params expected_reqheaders = [{ 'doc': ('the requested response content type, either ' - '``application/json`` or ``application/yaml``'), + '``application/json`` (default) or ``application/yaml``'), 'name': 'Accept' }] assert 'reqheaders' in doc_data assert doc_data['reqheaders'] == expected_reqheaders expected_resheaders = [{ 'doc': 'this depends on **Accept** header of request', 'name': 'Content-Type' }] assert 'resheaders' in doc_data assert doc_data['resheaders'] == expected_resheaders expected_statuscodes = [ { 'code': '200', 'doc': 'no error' }, { 'code': '400', 'doc': 'an invalid **sha1_git** value has been provided' }, { 'code': '404', 'doc': 'requested revision can not be found in the archive' } ] assert 'status_codes' in doc_data assert doc_data['status_codes'] == expected_statuscodes + expected_input_type = 'object' + + assert 'input_type' in doc_data + assert doc_data['input_type'] == expected_input_type + + expected_inputs = [ + { + 'name': 'n', + 'type': 'int', + 'doc': 'sample input integer' + }, + { + 'name': 's', + 'type': 'string', + 'doc': 'sample input string' + }, + { + 'name': 'a', + 'type': 'array', + 'doc': 'sample input array' + }, + ] + + assert 'inputs' in doc_data + assert doc_data['inputs'] == expected_inputs + expected_return_type = 'object' assert 'return_type' in doc_data - assert doc_data['return_type'] in expected_return_type + assert doc_data['return_type'] == expected_return_type expected_returns = [ { 'name': 'author', 'type': 'object', 'doc': 'information about the author of the revision' }, { 'name': 'committer', 'type': 'object', 'doc': 'information about the committer of the revision' }, { 'name': 'committer_date', 'type': 'string', 'doc': 'ISO representation of the commit date (in UTC)' }, { 'name': 'date', 'type': 'string', 'doc': 'ISO representation of the revision date (in UTC)' }, { 'name': 'directory', 'type': 'string', 'doc': 'the unique identifier that revision points to' }, { 'name': 'directory_url', 'type': 'string', - 'doc': ('link to `</api/1/directory/>`_ to get information about ' - 'the directory associated to the revision') + 'doc': ('link to `/api/1/directory/ </api/1/directory/doc/>`_ ' + 'to get information about the directory associated to ' + 'the revision') }, { 'name': 'id', 'type': 'string', 'doc': 'the revision unique identifier' }, { 'name': 'merge', 'type': 'boolean', 'doc': 'whether or not the revision corresponds to a merge commit' }, { 'name': 'message', 'type': 'string', 'doc': 'the message associated to the revision' }, { 'name': 'parents', 'type': 'array', 'doc': ('the parents of the revision, i.e. the previous revisions ' 'that head directly to it, each entry of that array ' 'contains an unique parent revision identifier but also a ' - 'link to `</api/1/revision/>`_ to get more information ' - 'about it') + 'link to `/api/1/revision/ </api/1/revision/doc/>`_ ' + 'to get more information about it') }, { 'name': 'type', 'type': 'string', 'doc': 'the type of the revision' } ] assert 'returns' in doc_data assert doc_data['returns'] == expected_returns expected_examples = [ '/api/1/revision/aafb16d69fd30ff58afdd69036a26047f3aebdc6/' ] assert 'examples' in doc_data assert doc_data['examples'] == expected_examples + + +@api_route(r'/post/endpoint/', 'api-1-post-endpoint', + methods=['POST']) +@api_doc('/post/endpoint/') +def apidoc_test_post_endpoint(request): + """ + .. http:post:: /api/1/post/endpoint/ + + Endpoint documentation + + :<jsonarr string -: Input array of pids + + :>json object <swh_pid>: an object whose keys are input persistent + identifiers and values objects with the following keys: + + * **known (bool)**: whether the object was found + + """ + pass + + +def test_apidoc_input_output_doc(client): + url = reverse('api-1-post-endpoint-doc') + rv = client.get(url, HTTP_ACCEPT='text/html') + assert rv.status_code == 200, rv.content + assert_template_used(rv, 'api/apidoc.html') + + input_html_doc = textwrap.indent(( + '<dl class="row">\n' + ' <dt class="col col-md-2 text-right">\n' + ' array\n' + ' </dt>\n' + ' <dd class="col col-md-9">\n' + ' <p>\n' + ' Input array of pids\n' + ' </p>\n' + ' </dd>\n' + '</dl>\n' + ), ' '*7) + + output_html_doc = textwrap.indent(( + '<dl class="row">\n' + ' <dt class="col col-md-2 text-right">\n' + ' object\n' + ' </dt>\n' + ' <dd class="col col-md-9">\n' + ' <p>\n' + ' an object containing the following keys:\n' + ' </p>\n' + ' <div class="swh-rst">\n' + ' <blockquote>\n' + ' <ul>\n' + ' <li>\n' + ' <p>\n' + ' <strong>\n' + ' <swh_pid> (object)\n' + ' </strong>\n' + ' : an object whose keys are input persistent identifiers' + ' and values objects with the following keys:\n' + ' </p>\n' + ' <blockquote>\n' + ' <ul class="simple">\n' + ' <li>\n' + ' <p>\n' + ' <strong>\n' + ' known (bool)\n' + ' </strong>\n' + ' : whether the object was found\n' + ' </p>\n' + ' </li>\n' + ' </ul>\n' + ' </blockquote>\n' + ' </li>\n' + ' </ul>\n' + ' </blockquote>\n' + ' </div>\n' + ' </dd>\n' + '</dl>\n' + ), ' '*7) + + html = prettify_html(rv.content) + + assert input_html_doc in html + assert output_html_doc in html + + +@api_route(r'/endpoint/links/in/doc/', 'api-1-endpoint-links-in-doc') +@api_doc('/endpoint/links/in/doc/') +def apidoc_test_endpoint_with_links_in_doc(request): + """ + .. http:get:: /api/1/post/endpoint/ + + Endpoint documentation with links to + :http:get:`/api/1/content/[(hash_type):](hash)/`, + :http:get:`/api/1/directory/(sha1_git)/[(path)/]` + and `archive <https://archive.softwareheritage.org>`_. + """ + pass + + +def test_apidoc_with_links(client): + url = reverse('api-1-endpoint-links-in-doc') + rv = client.get(url, HTTP_ACCEPT='text/html') + assert rv.status_code == 200, rv.content + assert_template_used(rv, 'api/apidoc.html') + + html = prettify_html(rv.content) + + first_link = textwrap.indent(( + '<a class="reference external" href="/api/1/content/doc/">\n' + ' /api/1/content/\n' + '</a>' + ), ' '*9) + + second_link = textwrap.indent(( + '<a class="reference external" href="/api/1/directory/doc/">\n' + ' /api/1/directory/\n' + '</a>' + ), ' '*9) + + third_link = textwrap.indent(( + '<a class="reference external" ' + 'href="https:/archive.softwareheritage.org">\n' + ' archive\n' + '</a>' + ), ' '*9) + + assert first_link in html + assert second_link in html + assert third_link in html diff --git a/swh/web/tests/api/views/test_identifiers.py b/swh/web/tests/api/views/test_identifiers.py index 5d6edb0e..cc200d2b 100644 --- a/swh/web/tests/api/views/test_identifiers.py +++ b/swh/web/tests/api/views/test_identifiers.py @@ -1,142 +1,161 @@ # Copyright (C) 2018-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from hypothesis import given from swh.model.identifiers import ( CONTENT, DIRECTORY, RELEASE, REVISION, SNAPSHOT ) from swh.web.common.utils import reverse from swh.web.tests.data import random_sha1 from swh.web.tests.strategies import ( content, directory, origin, release, revision, snapshot, unknown_content, unknown_directory, unknown_release, unknown_revision, unknown_snapshot ) @given(origin(), content(), directory(), release(), revision(), snapshot()) def test_swh_id_resolve_success(api_client, origin, content, directory, release, revision, snapshot): for obj_type_short, obj_type, obj_id in ( ('cnt', CONTENT, content['sha1_git']), ('dir', DIRECTORY, directory), ('rel', RELEASE, release), ('rev', REVISION, revision), ('snp', SNAPSHOT, snapshot)): swh_id = 'swh:1:%s:%s;origin=%s' % (obj_type_short, obj_id, origin['url']) url = reverse('api-1-resolve-swh-pid', url_args={'swh_id': swh_id}) resp = api_client.get(url) if obj_type == CONTENT: url_args = {'query_string': 'sha1_git:%s' % obj_id} elif obj_type == SNAPSHOT: url_args = {'snapshot_id': obj_id} else: url_args = {'sha1_git': obj_id} browse_rev_url = reverse('browse-%s' % obj_type, url_args=url_args, query_params={'origin': origin['url']}, request=resp.wsgi_request) expected_result = { 'browse_url': browse_rev_url, 'metadata': {'origin': origin['url']}, 'namespace': 'swh', 'object_id': obj_id, 'object_type': obj_type, 'scheme_version': 1 } assert resp.status_code == 200, resp.data assert resp.data == expected_result def test_swh_id_resolve_invalid(api_client): rev_id_invalid = '96db9023b8_foo_50d6c108e9a3' swh_id = 'swh:1:rev:%s' % rev_id_invalid url = reverse('api-1-resolve-swh-pid', url_args={'swh_id': swh_id}) resp = api_client.get(url) assert resp.status_code == 400, resp.data @given(unknown_content(), unknown_directory(), unknown_release(), unknown_revision(), unknown_snapshot()) def test_swh_id_resolve_not_found(api_client, unknown_content, unknown_directory, unknown_release, unknown_revision, unknown_snapshot): for obj_type_short, obj_id in (('cnt', unknown_content['sha1_git']), ('dir', unknown_directory), ('rel', unknown_release), ('rev', unknown_revision), ('snp', unknown_snapshot)): swh_id = 'swh:1:%s:%s' % (obj_type_short, obj_id) url = reverse('api-1-resolve-swh-pid', url_args={'swh_id': swh_id}) resp = api_client.get(url) assert resp.status_code == 404, resp.data def test_swh_origin_id_not_resolvable(api_client): ori_pid = 'swh:1:ori:8068d0075010b590762c6cb5682ed53cb3c13deb' url = reverse('api-1-resolve-swh-pid', url_args={'swh_id': ori_pid}) resp = api_client.get(url) assert resp.status_code == 400, resp.data @given(content(), directory()) def test_api_known_swhpid_some_present(api_client, content, directory): content_ = 'swh:1:cnt:%s' % content['sha1_git'] directory_ = 'swh:1:dir:%s' % directory unknown_revision_ = 'swh:1:rev:%s' % random_sha1() unknown_release_ = 'swh:1:rel:%s' % random_sha1() unknown_snapshot_ = 'swh:1:snp:%s' % random_sha1() input_pids = [content_, directory_, unknown_revision_, unknown_release_, unknown_snapshot_] - url = reverse('api-1-swh-pid-known') + url = reverse('api-1-known') resp = api_client.post(url, data=input_pids, format='json', HTTP_ACCEPT='application/json') assert resp.status_code == 200, resp.data assert resp['Content-Type'] == 'application/json' assert resp.data == { content_: {'known': True}, directory_: {'known': True}, unknown_revision_: {'known': False}, unknown_release_: {'known': False}, unknown_snapshot_: {'known': False} } def test_api_known_invalid_swhpid(api_client): invalid_pid_sha1 = ['swh:1:cnt:8068d0075010b590762c6cb5682ed53cb3c13de;'] invalid_pid_type = ['swh:1:cnn:8068d0075010b590762c6cb5682ed53cb3c13deb'] - url = reverse('api-1-swh-pid-known') + url = reverse('api-1-known') resp = api_client.post(url, data=invalid_pid_sha1, format='json', HTTP_ACCEPT='application/json') assert resp.status_code == 400, resp.data resp2 = api_client.post(url, data=invalid_pid_type, format='json', HTTP_ACCEPT='application/json') assert resp2.status_code == 400, resp.data + + +def test_api_known_raises_large_payload_error(api_client): + random_pid = 'swh:1:cnt:8068d0075010b590762c6cb5682ed53cb3c13deb' + limit = 10000 + err_msg = 'The maximum number of PIDs this endpoint can receive is 1000' + + pids = [random_pid for i in range(limit)] + + url = reverse('api-1-known') + resp = api_client.post(url, data=pids, format='json', + HTTP_ACCEPT='application/json') + + assert resp.status_code == 413, resp.data + assert resp['Content-Type'] == 'application/json' + assert resp.data == { + 'exception': 'LargePayloadExc', + 'reason': err_msg + } diff --git a/swh/web/tests/browse/views/test_directory.py b/swh/web/tests/browse/views/test_directory.py index 05e478a3..78102b45 100644 --- a/swh/web/tests/browse/views/test_directory.py +++ b/swh/web/tests/browse/views/test_directory.py @@ -1,133 +1,146 @@ -# Copyright (C) 2017-2019 The Software Heritage developers +# Copyright (C) 2017-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import random from hypothesis import given from swh.web.common.utils import reverse, get_swh_persistent_id from swh.web.common.utils import gen_path_info from swh.web.tests.django_asserts import assert_contains, assert_template_used from swh.web.tests.strategies import ( directory, directory_with_subdirs, invalid_sha1, unknown_directory ) @given(directory()) def test_root_directory_view(client, archive_data, directory): _directory_view(client, directory, archive_data.directory_ls(directory)) @given(directory_with_subdirs()) def test_sub_directory_view(client, archive_data, directory): dir_content = archive_data.directory_ls(directory) subdir = random.choice([e for e in dir_content if e['type'] == 'dir']) subdir_content = archive_data.directory_ls(subdir['target']) _directory_view(client, directory, subdir_content, subdir['name']) @given(invalid_sha1(), unknown_directory()) def test_directory_request_errors(client, invalid_sha1, unknown_directory): dir_url = reverse('browse-directory', url_args={'sha1_git': invalid_sha1}) resp = client.get(dir_url) assert resp.status_code == 400 assert_template_used(resp, 'error.html') dir_url = reverse('browse-directory', url_args={'sha1_git': unknown_directory}) resp = client.get(dir_url) assert resp.status_code == 404 assert_template_used(resp, 'error.html') @given(directory()) def test_directory_uppercase(client, directory): url = reverse('browse-directory-uppercase-checksum', url_args={'sha1_git': directory.upper()}) resp = client.get(url) assert resp.status_code == 302 redirect_url = reverse('browse-directory', url_args={'sha1_git': directory}) assert resp['location'] == redirect_url +@given(directory()) +def test_permalink_box_context(client, tests_data, directory): + origin_url = random.choice(tests_data['origins'])['url'] + url = reverse('browse-directory', + url_args={'sha1_git': directory}, + query_params={'origin': origin_url}) + + resp = client.get(url) + + assert resp.status_code == 200 + assert_contains(resp, 'id="swh-id-option-origin-directory"') + + def _directory_view(client, root_directory_sha1, directory_entries, path=None): dirs = [e for e in directory_entries if e['type'] in ('dir', 'rev')] files = [e for e in directory_entries if e['type'] == 'file'] url_args = {'sha1_git': root_directory_sha1} if path: url_args['path'] = path url = reverse('browse-directory', url_args=url_args) root_dir_url = reverse('browse-directory', url_args={'sha1_git': root_directory_sha1}) resp = client.get(url) assert resp.status_code == 200 assert_template_used(resp, 'browse/directory.html') assert_contains(resp, '<a href="' + root_dir_url + '">' + root_directory_sha1[:7] + '</a>') assert_contains(resp, '<td class="swh-directory">', count=len(dirs)) assert_contains(resp, '<td class="swh-content">', count=len(files)) for d in dirs: if d['type'] == 'rev': dir_url = reverse('browse-revision', url_args={'sha1_git': d['target']}) else: dir_path = d['name'] if path: dir_path = "%s/%s" % (path, d['name']) dir_url = reverse('browse-directory', url_args={'sha1_git': root_directory_sha1, 'path': dir_path}) assert_contains(resp, dir_url) for f in files: file_path = "%s/%s" % (root_directory_sha1, f['name']) if path: file_path = "%s/%s/%s" % (root_directory_sha1, path, f['name']) query_string = 'sha1_git:' + f['target'] file_url = reverse('browse-content', url_args={'query_string': query_string}, query_params={'path': file_path}) assert_contains(resp, file_url) path_info = gen_path_info(path) assert_contains(resp, '<li class="swh-path">', count=len(path_info)+1) assert_contains(resp, '<a href="%s">%s</a>' % (root_dir_url, root_directory_sha1[:7])) for p in path_info: dir_url = reverse('browse-directory', url_args={'sha1_git': root_directory_sha1, 'path': p['path']}) assert_contains(resp, '<a href="%s">%s</a>' % (dir_url, p['name'])) assert_contains(resp, 'vault-cook-directory') swh_dir_id = get_swh_persistent_id( 'directory', directory_entries[0]['dir_id']) swh_dir_id_url = reverse('browse-swh-id', url_args={'swh_id': swh_dir_id}) assert_contains(resp, swh_dir_id) assert_contains(resp, swh_dir_id_url) diff --git a/swh/web/tests/common/test_service.py b/swh/web/tests/common/test_service.py index a4b7c2e8..a38ec6e8 100644 --- a/swh/web/tests/common/test_service.py +++ b/swh/web/tests/common/test_service.py @@ -1,918 +1,931 @@ -# Copyright (C) 2015-2019 The Software Heritage developers +# Copyright (C) 2015-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import itertools import pytest import random from collections import defaultdict from hypothesis import given from swh.model.hashutil import hash_to_bytes, hash_to_hex from swh.model.from_disk import DentryPerms from swh.model.identifiers import ( CONTENT, DIRECTORY, RELEASE, REVISION, SNAPSHOT ) from swh.web.common import service from swh.web.common.exc import BadInputExc, NotFoundExc from swh.web.tests.data import random_sha1, random_content from swh.web.tests.strategies import ( content, unknown_content, contents, unknown_contents, contents_with_ctags, origin, new_origin, visit_dates, directory, unknown_directory, release, unknown_release, revision, unknown_revision, revisions, ancestor_revisions, non_ancestor_revisions, invalid_sha1, sha256, revision_with_submodules, empty_directory, new_revision, snapshot, unknown_snapshot ) from swh.web.tests.conftest import ctags_json_missing, fossology_missing @given(contents()) def test_lookup_multiple_hashes_all_present(contents): input_data = [] expected_output = [] for cnt in contents: input_data.append({'sha1': cnt['sha1']}) expected_output.append({'sha1': cnt['sha1'], 'found': True}) assert service.lookup_multiple_hashes(input_data) == expected_output @given(contents(), unknown_contents()) def test_lookup_multiple_hashes_some_missing(contents, unknown_contents): input_contents = list(itertools.chain(contents, unknown_contents)) random.shuffle(input_contents) input_data = [] expected_output = [] for cnt in input_contents: input_data.append({'sha1': cnt['sha1']}) expected_output.append({'sha1': cnt['sha1'], 'found': cnt in contents}) assert service.lookup_multiple_hashes(input_data) == expected_output def test_lookup_hash_does_not_exist(): unknown_content_ = random_content() actual_lookup = service.lookup_hash('sha1_git:%s' % unknown_content_['sha1_git']) assert actual_lookup == {'found': None, 'algo': 'sha1_git'} @given(content()) def test_lookup_hash_exist(archive_data, content): actual_lookup = service.lookup_hash('sha1:%s' % content['sha1']) content_metadata = archive_data.content_get_metadata(content['sha1']) assert {'found': content_metadata, 'algo': 'sha1'} == actual_lookup def test_search_hash_does_not_exist(): unknown_content_ = random_content() actual_lookup = service.search_hash('sha1_git:%s' % unknown_content_['sha1_git']) assert {'found': False} == actual_lookup @given(content()) def test_search_hash_exist(content): actual_lookup = service.search_hash('sha1:%s' % content['sha1']) assert {'found': True} == actual_lookup @pytest.mark.skipif(ctags_json_missing, reason="requires ctags with json output support") @given(contents_with_ctags()) def test_lookup_content_ctags(indexer_data, contents_with_ctags): content_sha1 = random.choice(contents_with_ctags['sha1s']) indexer_data.content_add_ctags(content_sha1) actual_ctags = list(service.lookup_content_ctags('sha1:%s' % content_sha1)) expected_data = list(indexer_data.content_get_ctags(content_sha1)) for ctag in expected_data: ctag['id'] = content_sha1 assert actual_ctags == expected_data def test_lookup_content_ctags_no_hash(): unknown_content_ = random_content() actual_ctags = list(service.lookup_content_ctags('sha1:%s' % unknown_content_['sha1'])) assert actual_ctags == [] @given(content()) def test_lookup_content_filetype(indexer_data, content): indexer_data.content_add_mimetype(content['sha1']) actual_filetype = service.lookup_content_filetype(content['sha1']) expected_filetype = indexer_data.content_get_mimetype(content['sha1']) assert actual_filetype == expected_filetype @pytest.mark.skip # Language indexer is disabled. @given(content()) def test_lookup_content_language(indexer_data, content): indexer_data.content_add_language(content['sha1']) actual_language = service.lookup_content_language(content['sha1']) expected_language = indexer_data.content_get_language(content['sha1']) assert actual_language == expected_language @given(contents_with_ctags()) def test_lookup_expression(indexer_data, contents_with_ctags): per_page = 10 expected_ctags = [] for content_sha1 in contents_with_ctags['sha1s']: if len(expected_ctags) == per_page: break indexer_data.content_add_ctags(content_sha1) for ctag in indexer_data.content_get_ctags(content_sha1): if len(expected_ctags) == per_page: break if ctag['name'] == contents_with_ctags['symbol_name']: del ctag['id'] ctag['sha1'] = content_sha1 expected_ctags.append(ctag) actual_ctags = list( service.lookup_expression(contents_with_ctags['symbol_name'], last_sha1=None, per_page=10)) assert actual_ctags == expected_ctags def test_lookup_expression_no_result(): expected_ctags = [] actual_ctags = list(service.lookup_expression('barfoo', last_sha1=None, per_page=10)) assert actual_ctags == expected_ctags @pytest.mark.skipif(fossology_missing, reason="requires fossology-nomossa installed") @given(content()) def test_lookup_content_license(indexer_data, content): indexer_data.content_add_license(content['sha1']) actual_license = service.lookup_content_license(content['sha1']) expected_license = indexer_data.content_get_license(content['sha1']) assert actual_license == expected_license def test_stat_counters(archive_data): actual_stats = service.stat_counters() assert actual_stats == archive_data.stat_counters() @given(new_origin(), visit_dates()) def test_lookup_origin_visits(archive_data, new_origin, visit_dates): archive_data.origin_add_one(new_origin) for ts in visit_dates: archive_data.origin_visit_add( new_origin['url'], ts, type='git') actual_origin_visits = list( service.lookup_origin_visits(new_origin['url'], per_page=100)) expected_visits = archive_data.origin_visit_get(new_origin['url']) for expected_visit in expected_visits: expected_visit['origin'] = new_origin['url'] assert actual_origin_visits == expected_visits @given(new_origin(), visit_dates()) def test_lookup_origin_visit(archive_data, new_origin, visit_dates): archive_data.origin_add_one(new_origin) visits = [] for ts in visit_dates: visits.append(archive_data.origin_visit_add( new_origin['url'], ts, type='git')) visit = random.choice(visits)['visit'] actual_origin_visit = service.lookup_origin_visit( new_origin['url'], visit) expected_visit = dict(archive_data.origin_visit_get_by( new_origin['url'], visit)) assert actual_origin_visit == expected_visit @given(new_origin()) def test_lookup_origin(archive_data, new_origin): archive_data.origin_add_one(new_origin) actual_origin = service.lookup_origin({'url': new_origin['url']}) expected_origin = archive_data.origin_get( {'url': new_origin['url']}) assert actual_origin == expected_origin @given(invalid_sha1()) def test_lookup_release_ko_id_checksum_not_a_sha1(invalid_sha1): with pytest.raises(BadInputExc) as e: service.lookup_release(invalid_sha1) assert e.match('Invalid checksum') @given(sha256()) def test_lookup_release_ko_id_checksum_too_long(sha256): with pytest.raises(BadInputExc) as e: service.lookup_release(sha256) assert e.match('Only sha1_git is supported.') @given(directory()) def test_lookup_directory_with_path_not_found(directory): path = 'some/invalid/path/here' with pytest.raises(NotFoundExc) as e: service.lookup_directory_with_path(directory, path) assert e.match('Directory entry with path %s from %s not found' % (path, directory)) @given(directory()) def test_lookup_directory_with_path_found(archive_data, directory): directory_content = archive_data.directory_ls(directory) directory_entry = random.choice(directory_content) path = directory_entry['name'] actual_result = service.lookup_directory_with_path(directory, path) assert actual_result == directory_entry @given(release()) def test_lookup_release(archive_data, release): actual_release = service.lookup_release(release) assert actual_release == archive_data.release_get(release) @given(revision(), invalid_sha1(), sha256()) def test_lookup_revision_with_context_ko_not_a_sha1(revision, invalid_sha1, sha256): sha1_git_root = revision sha1_git = invalid_sha1 with pytest.raises(BadInputExc) as e: service.lookup_revision_with_context(sha1_git_root, sha1_git) assert e.match('Invalid checksum query string') sha1_git = sha256 with pytest.raises(BadInputExc) as e: service.lookup_revision_with_context(sha1_git_root, sha1_git) assert e.match('Only sha1_git is supported') @given(revision(), unknown_revision()) def test_lookup_revision_with_context_ko_sha1_git_does_not_exist( revision, unknown_revision): sha1_git_root = revision sha1_git = unknown_revision with pytest.raises(NotFoundExc) as e: service.lookup_revision_with_context(sha1_git_root, sha1_git) assert e.match('Revision %s not found' % sha1_git) @given(revision(), unknown_revision()) def test_lookup_revision_with_context_ko_root_sha1_git_does_not_exist( revision, unknown_revision): sha1_git_root = unknown_revision sha1_git = revision with pytest.raises(NotFoundExc) as e: service.lookup_revision_with_context(sha1_git_root, sha1_git) assert e.match('Revision root %s not found' % sha1_git_root) @given(ancestor_revisions()) def test_lookup_revision_with_context(archive_data, ancestor_revisions): sha1_git = ancestor_revisions['sha1_git'] root_sha1_git = ancestor_revisions['sha1_git_root'] for sha1_git_root in (root_sha1_git, {'id': hash_to_bytes(root_sha1_git)}): actual_revision = service.lookup_revision_with_context(sha1_git_root, sha1_git) children = [] for rev in archive_data.revision_log(root_sha1_git): for p_rev in rev['parents']: p_rev_hex = hash_to_hex(p_rev) if p_rev_hex == sha1_git: children.append(rev['id']) expected_revision = archive_data.revision_get(sha1_git) expected_revision['children'] = children assert actual_revision == expected_revision @given(non_ancestor_revisions()) def test_lookup_revision_with_context_ko(non_ancestor_revisions): sha1_git = non_ancestor_revisions['sha1_git'] root_sha1_git = non_ancestor_revisions['sha1_git_root'] with pytest.raises(NotFoundExc) as e: service.lookup_revision_with_context(root_sha1_git, sha1_git) assert e.match('Revision %s is not an ancestor of %s' % (sha1_git, root_sha1_git)) def test_lookup_directory_with_revision_not_found(): unknown_revision_ = random_sha1() with pytest.raises(NotFoundExc) as e: service.lookup_directory_with_revision(unknown_revision_) assert e.match('Revision %s not found' % unknown_revision_) def test_lookup_directory_with_revision_unknown_content(archive_data): unknown_content_ = random_content() unknown_revision_ = random_sha1() unknown_directory_ = random_sha1() dir_path = 'README.md' # Create a revision that points to a directory # Which points to unknown content revision = { 'author': { 'name': b'abcd', 'email': b'abcd@company.org', 'fullname': b'abcd abcd' }, 'committer': { 'email': b'aaaa@company.org', 'fullname': b'aaaa aaa', 'name': b'aaa' }, 'committer_date': { 'negative_utc': False, 'offset': 0, 'timestamp': 1437511651 }, 'date': { 'negative_utc': False, 'offset': 0, 'timestamp': 1437511651 }, 'message': b'bleh', 'metadata': [], 'parents': [], 'synthetic': False, 'type': 'git', 'id': hash_to_bytes(unknown_revision_), 'directory': hash_to_bytes(unknown_directory_) } # A directory that points to unknown content dir = { 'id': hash_to_bytes(unknown_directory_), 'entries': [{ 'name': bytes(dir_path.encode('utf-8')), 'type': 'file', 'target': hash_to_bytes(unknown_content_['sha1_git']), 'perms': DentryPerms.content }] } # Add the directory and revision in mem archive_data.directory_add([dir]) archive_data.revision_add([revision]) with pytest.raises(NotFoundExc) as e: service.lookup_directory_with_revision(unknown_revision_, dir_path) assert e.match('Content not found for revision %s' % unknown_revision_) @given(revision()) def test_lookup_directory_with_revision_ko_path_to_nowhere(revision): invalid_path = 'path/to/something/unknown' with pytest.raises(NotFoundExc) as e: service.lookup_directory_with_revision(revision, invalid_path) assert e.match('Directory or File') assert e.match(invalid_path) assert e.match('revision %s' % revision) assert e.match('not found') @given(revision_with_submodules()) def test_lookup_directory_with_revision_submodules(archive_data, revision_with_submodules): rev_sha1_git = revision_with_submodules['rev_sha1_git'] rev_dir_path = revision_with_submodules['rev_dir_rev_path'] actual_data = service.lookup_directory_with_revision( rev_sha1_git, rev_dir_path) revision = archive_data.revision_get( revision_with_submodules['rev_sha1_git']) directory = archive_data.directory_ls(revision['directory']) rev_entry = next(e for e in directory if e['name'] == rev_dir_path) expected_data = { 'content': archive_data.revision_get(rev_entry['target']), 'path': rev_dir_path, 'revision': rev_sha1_git, 'type': 'rev' } assert actual_data == expected_data @given(revision()) def test_lookup_directory_with_revision_without_path(archive_data, revision): actual_directory_entries = service.lookup_directory_with_revision(revision) revision_data = archive_data.revision_get(revision) expected_directory_entries = archive_data.directory_ls( revision_data['directory']) assert actual_directory_entries['type'] == 'dir' assert actual_directory_entries['content'] == expected_directory_entries @given(revision()) def test_lookup_directory_with_revision_with_path(archive_data, revision): rev_data = archive_data.revision_get(revision) dir_entries = [e for e in archive_data.directory_ls(rev_data['directory']) if e['type'] in ('file', 'dir')] expected_dir_entry = random.choice(dir_entries) actual_dir_entry = service.lookup_directory_with_revision( revision, expected_dir_entry['name']) assert actual_dir_entry['type'] == expected_dir_entry['type'] assert actual_dir_entry['revision'] == revision assert actual_dir_entry['path'] == expected_dir_entry['name'] if actual_dir_entry['type'] == 'file': del actual_dir_entry['content']['checksums']['blake2s256'] for key in ('checksums', 'status', 'length'): assert actual_dir_entry['content'][key] == expected_dir_entry[key] else: sub_dir_entries = archive_data.directory_ls( expected_dir_entry['target']) assert actual_dir_entry['content'] == sub_dir_entries @given(revision()) def test_lookup_directory_with_revision_with_path_to_file_and_data( archive_data, revision): rev_data = archive_data.revision_get(revision) dir_entries = [e for e in archive_data.directory_ls(rev_data['directory']) if e['type'] == 'file'] expected_dir_entry = random.choice(dir_entries) expected_data = archive_data.content_get( expected_dir_entry['checksums']['sha1']) actual_dir_entry = service.lookup_directory_with_revision( revision, expected_dir_entry['name'], with_data=True) assert actual_dir_entry['type'] == expected_dir_entry['type'] assert actual_dir_entry['revision'] == revision assert actual_dir_entry['path'] == expected_dir_entry['name'] del actual_dir_entry['content']['checksums']['blake2s256'] for key in ('checksums', 'status', 'length'): assert actual_dir_entry['content'][key] == expected_dir_entry[key] assert actual_dir_entry['content']['data'] == expected_data['data'] @given(revision()) def test_lookup_revision(archive_data, revision): actual_revision = service.lookup_revision(revision) assert actual_revision == archive_data.revision_get(revision) @given(new_revision()) def test_lookup_revision_invalid_msg(archive_data, new_revision): new_revision['message'] = b'elegant fix for bug \xff' archive_data.revision_add([new_revision]) revision = service.lookup_revision(hash_to_hex(new_revision['id'])) assert revision['message'] is None assert revision['message_decoding_failed'] is True @given(new_revision()) def test_lookup_revision_msg_ok(archive_data, new_revision): archive_data.revision_add([new_revision]) revision_message = service.lookup_revision_message( hash_to_hex(new_revision['id'])) assert revision_message == {'message': new_revision['message']} def test_lookup_revision_msg_no_rev(): unknown_revision_ = random_sha1() with pytest.raises(NotFoundExc) as e: service.lookup_revision_message(unknown_revision_) assert e.match('Revision with sha1_git %s not found.' % unknown_revision_) @given(revisions()) def test_lookup_revision_multiple(archive_data, revisions): actual_revisions = list(service.lookup_revision_multiple(revisions)) expected_revisions = [] for rev in revisions: expected_revisions.append(archive_data.revision_get(rev)) assert actual_revisions == expected_revisions def test_lookup_revision_multiple_none_found(): unknown_revisions_ = [random_sha1(), random_sha1(), random_sha1()] actual_revisions = list( service.lookup_revision_multiple(unknown_revisions_)) assert actual_revisions == [None] * len(unknown_revisions_) @given(revision()) def test_lookup_revision_log(archive_data, revision): actual_revision_log = list(service.lookup_revision_log(revision, limit=25)) expected_revision_log = archive_data.revision_log(revision, limit=25) assert actual_revision_log == expected_revision_log def _get_origin_branches(archive_data, origin): origin_visit = archive_data.origin_visit_get(origin['url'])[-1] snapshot = archive_data.snapshot_get(origin_visit['snapshot']) branches = {k: v for (k, v) in snapshot['branches'].items() if v['target_type'] == 'revision'} return branches @given(origin()) def test_lookup_revision_log_by(archive_data, origin): branches = _get_origin_branches(archive_data, origin) branch_name = random.choice(list(branches.keys())) actual_log = list( service.lookup_revision_log_by(origin['url'], branch_name, None, limit=25)) expected_log = archive_data.revision_log( branches[branch_name]['target'], limit=25) assert actual_log == expected_log @given(origin()) def test_lookup_revision_log_by_notfound(origin): with pytest.raises(NotFoundExc): service.lookup_revision_log_by( origin['url'], 'unknown_branch_name', None, limit=100) def test_lookup_content_raw_not_found(): unknown_content_ = random_content() with pytest.raises(NotFoundExc) as e: service.lookup_content_raw('sha1:' + unknown_content_['sha1']) assert e.match('Content with %s checksum equals to %s not found!' % ('sha1', unknown_content_['sha1'])) @given(content()) def test_lookup_content_raw(archive_data, content): actual_content = service.lookup_content_raw( 'sha256:%s' % content['sha256']) expected_content = archive_data.content_get(content['sha1']) assert actual_content == expected_content def test_lookup_content_not_found(): unknown_content_ = random_content() with pytest.raises(NotFoundExc) as e: service.lookup_content('sha1:%s' % unknown_content_['sha1']) assert e.match('Content with %s checksum equals to %s not found!' % ('sha1', unknown_content_['sha1'])) @given(content()) def test_lookup_content_with_sha1(archive_data, content): actual_content = service.lookup_content('sha1:%s' % content['sha1']) expected_content = archive_data.content_get_metadata(content['sha1']) assert actual_content == expected_content @given(content()) def test_lookup_content_with_sha256(archive_data, content): actual_content = service.lookup_content('sha256:%s' % content['sha256']) expected_content = archive_data.content_get_metadata(content['sha1']) assert actual_content == expected_content def test_lookup_directory_bad_checksum(): with pytest.raises(BadInputExc): service.lookup_directory('directory_id') def test_lookup_directory_not_found(): unknown_directory_ = random_sha1() with pytest.raises(NotFoundExc) as e: service.lookup_directory(unknown_directory_) assert e.match('Directory with sha1_git %s not found' % unknown_directory_) @given(directory()) def test_lookup_directory(archive_data, directory): actual_directory_ls = list(service.lookup_directory(directory)) expected_directory_ls = archive_data.directory_ls(directory) assert actual_directory_ls == expected_directory_ls @given(empty_directory()) def test_lookup_directory_empty(empty_directory): actual_directory_ls = list(service.lookup_directory(empty_directory)) assert actual_directory_ls == [] @given(origin()) def test_lookup_revision_by_nothing_found(origin): with pytest.raises(NotFoundExc): service.lookup_revision_by(origin['url'], 'invalid-branch-name') @given(origin()) def test_lookup_revision_by(archive_data, origin): branches = _get_origin_branches(archive_data, origin) branch_name = random.choice(list(branches.keys())) actual_revision = service.lookup_revision_by(origin['url'], branch_name) expected_revision = archive_data.revision_get( branches[branch_name]['target']) assert actual_revision == expected_revision @given(origin(), revision()) def test_lookup_revision_with_context_by_ko(origin, revision): with pytest.raises(NotFoundExc): service.lookup_revision_with_context_by(origin['url'], 'invalid-branch-name', None, revision) @given(origin()) def test_lookup_revision_with_context_by(archive_data, origin): branches = _get_origin_branches(archive_data, origin) branch_name = random.choice(list(branches.keys())) root_rev = branches[branch_name]['target'] root_rev_log = archive_data.revision_log(root_rev) children = defaultdict(list) for rev in root_rev_log: for rev_p in rev['parents']: children[rev_p].append(rev['id']) rev = root_rev_log[-1]['id'] actual_root_rev, actual_rev = service.lookup_revision_with_context_by( origin['url'], branch_name, None, rev) expected_root_rev = archive_data.revision_get(root_rev) expected_rev = archive_data.revision_get(rev) expected_rev['children'] = children[rev] assert actual_root_rev == expected_root_rev assert actual_rev == expected_rev def test_lookup_revision_through_ko_not_implemented(): with pytest.raises(NotImplementedError): service.lookup_revision_through({'something-unknown': 10}) @given(origin()) def test_lookup_revision_through_with_context_by(archive_data, origin): branches = _get_origin_branches(archive_data, origin) branch_name = random.choice(list(branches.keys())) root_rev = branches[branch_name]['target'] root_rev_log = archive_data.revision_log(root_rev) rev = root_rev_log[-1]['id'] assert service.lookup_revision_through({ 'origin_url': origin['url'], 'branch_name': branch_name, 'ts': None, 'sha1_git': rev }) == service.lookup_revision_with_context_by(origin['url'], branch_name, None, rev) @given(origin()) def test_lookup_revision_through_with_revision_by(archive_data, origin): branches = _get_origin_branches(archive_data, origin) branch_name = random.choice(list(branches.keys())) assert service.lookup_revision_through({ 'origin_url': origin['url'], 'branch_name': branch_name, 'ts': None, }) == service.lookup_revision_by(origin['url'], branch_name, None) @given(ancestor_revisions()) def test_lookup_revision_through_with_context(ancestor_revisions): sha1_git = ancestor_revisions['sha1_git'] sha1_git_root = ancestor_revisions['sha1_git_root'] assert service.lookup_revision_through({ 'sha1_git_root': sha1_git_root, 'sha1_git': sha1_git, }) == service.lookup_revision_with_context(sha1_git_root, sha1_git) @given(revision()) def test_lookup_revision_through_with_revision(revision): assert service.lookup_revision_through({ 'sha1_git': revision }) == service.lookup_revision(revision) @given(revision()) def test_lookup_directory_through_revision_ko_not_found(revision): with pytest.raises(NotFoundExc): service.lookup_directory_through_revision( {'sha1_git': revision}, 'some/invalid/path') @given(revision()) def test_lookup_directory_through_revision_ok(archive_data, revision): rev_data = archive_data.revision_get(revision) dir_entries = [e for e in archive_data.directory_ls(rev_data['directory']) if e['type'] == 'file'] dir_entry = random.choice(dir_entries) assert service.lookup_directory_through_revision( {'sha1_git': revision}, dir_entry['name'] ) == (revision, service.lookup_directory_with_revision(revision, dir_entry['name'])) @given(revision()) def test_lookup_directory_through_revision_ok_with_data( archive_data, revision): rev_data = archive_data.revision_get(revision) dir_entries = [e for e in archive_data.directory_ls(rev_data['directory']) if e['type'] == 'file'] dir_entry = random.choice(dir_entries) assert service.lookup_directory_through_revision( {'sha1_git': revision}, dir_entry['name'], with_data=True ) == (revision, service.lookup_directory_with_revision(revision, dir_entry['name'], with_data=True)) @given(content(), directory(), release(), revision(), snapshot()) def test_lookup_known_objects(archive_data, content, directory, release, revision, snapshot): expected = archive_data.content_find(content) assert service.lookup_object(CONTENT, content['sha1_git']) == expected expected = archive_data.directory_get(directory) assert service.lookup_object(DIRECTORY, directory) == expected expected = archive_data.release_get(release) assert service.lookup_object(RELEASE, release) == expected expected = archive_data.revision_get(revision) assert service.lookup_object(REVISION, revision) == expected expected = archive_data.snapshot_get(snapshot) assert service.lookup_object(SNAPSHOT, snapshot) == expected @given(unknown_content(), unknown_directory(), unknown_release(), unknown_revision(), unknown_snapshot()) def test_lookup_unknown_objects(unknown_content, unknown_directory, unknown_release, unknown_revision, unknown_snapshot): with pytest.raises(NotFoundExc) as e: service.lookup_object(CONTENT, unknown_content['sha1_git']) assert e.match(r'Content.*not found') with pytest.raises(NotFoundExc) as e: service.lookup_object(DIRECTORY, unknown_directory) assert e.match(r'Directory.*not found') with pytest.raises(NotFoundExc) as e: service.lookup_object(RELEASE, unknown_release) assert e.match(r'Release.*not found') with pytest.raises(NotFoundExc) as e: service.lookup_object(REVISION, unknown_revision) assert e.match(r'Revision.*not found') with pytest.raises(NotFoundExc) as e: service.lookup_object(SNAPSHOT, unknown_snapshot) assert e.match(r'Snapshot.*not found') @given(invalid_sha1()) def test_lookup_invalid_objects(invalid_sha1): with pytest.raises(BadInputExc) as e: service.lookup_object('foo', invalid_sha1) assert e.match('Invalid swh object type') with pytest.raises(BadInputExc) as e: service.lookup_object(CONTENT, invalid_sha1) assert e.match('Invalid hash') with pytest.raises(BadInputExc) as e: service.lookup_object(DIRECTORY, invalid_sha1) assert e.match('Invalid checksum') with pytest.raises(BadInputExc) as e: service.lookup_object(RELEASE, invalid_sha1) assert e.match('Invalid checksum') with pytest.raises(BadInputExc) as e: service.lookup_object(REVISION, invalid_sha1) assert e.match('Invalid checksum') with pytest.raises(BadInputExc) as e: service.lookup_object(SNAPSHOT, invalid_sha1) assert e.match('Invalid checksum') def test_lookup_missing_hashes_non_present(): missing_cnt = random_sha1() missing_dir = random_sha1() missing_rev = random_sha1() missing_rel = random_sha1() missing_snp = random_sha1() grouped_pids = { CONTENT: [hash_to_bytes(missing_cnt)], DIRECTORY: [hash_to_bytes(missing_dir)], REVISION: [hash_to_bytes(missing_rev)], RELEASE: [hash_to_bytes(missing_rel)], SNAPSHOT: [hash_to_bytes(missing_snp)], } actual_result = service.lookup_missing_hashes(grouped_pids) assert actual_result == {missing_cnt, missing_dir, missing_rev, missing_rel, missing_snp} @given(content(), directory()) def test_lookup_missing_hashes_some_present(archive_data, content, directory): missing_rev = random_sha1() missing_rel = random_sha1() missing_snp = random_sha1() grouped_pids = { CONTENT: [hash_to_bytes(content['sha1_git'])], DIRECTORY: [hash_to_bytes(directory)], REVISION: [hash_to_bytes(missing_rev)], RELEASE: [hash_to_bytes(missing_rel)], SNAPSHOT: [hash_to_bytes(missing_snp)], } actual_result = service.lookup_missing_hashes(grouped_pids) assert actual_result == {missing_rev, missing_rel, missing_snp} + + +@given(origin()) +def test_lookup_origin_extra_trailing_slash(origin): + origin_info = service.lookup_origin({'url': f"{origin['url']}/"}) + assert origin_info['url'] == origin['url'] + + +def test_lookup_origin_missing_trailing_slash(archive_data): + deb_origin = {'url': 'http://snapshot.debian.org/package/r-base/'} + archive_data.origin_add_one(deb_origin) + origin_info = service.lookup_origin({'url': deb_origin['url'][:-1]}) + assert origin_info['url'] == deb_origin['url'] diff --git a/swh/web/tests/common/test_templatetags.py b/swh/web/tests/common/test_templatetags.py index d4076eb9..93e4d134 100644 --- a/swh/web/tests/common/test_templatetags.py +++ b/swh/web/tests/common/test_templatetags.py @@ -1,61 +1,63 @@ # Copyright (C) 2015-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from swh.web.common.swh_templatetags import ( - urlize_links_and_mails, urlize_header_links, safe_docstring_display + urlize_links_and_mails, urlize_header_links, docstring_display ) def test_urlize_http_link(): link = 'https://example.com/api/1/abc/' expected_content = f'<a href="{link}">{link}</a>' assert urlize_links_and_mails(link) == expected_content def test_urlize_email(): email = 'someone@example.com' expected_content = f'<a href="mailto:{email}">{email}</a>' assert urlize_links_and_mails(email) == expected_content def test_urlize_header_links(): next_link = 'https://example.com/api/1/abc/' prev_link = 'https://example.com/api/1/def/' content = f'<{next_link}>; rel="next"\n<{prev_link}>; rel="prev"' expected_content = ( f'<<a href="{next_link}">{next_link}</a>>; rel="next"\n' f'<<a href="{prev_link}">{prev_link}</a>>; rel="prev"') assert urlize_header_links(content) == expected_content -def test_safe_docstring_display(): +def test_docstring_display(): # update api link with html links content with links docstring = ( 'This is my list header:\n\n' ' - Here is item 1, with a continuation\n' ' line right here\n' ' - Here is item 2\n\n' ' Here is something that is not part of the list' ) expected_docstring = ( '<div class="swh-rst">' '<p>This is my list header:</p>\n' + '<blockquote>\n' '<ul class="simple">\n' '<li><p>Here is item 1, with a continuation\n' 'line right here</p></li>\n' '<li><p>Here is item 2</p></li>\n' '</ul>\n' '<p>Here is something that is not part of the list</p>\n' + '</blockquote>\n' '</div>' ) - assert safe_docstring_display(docstring) == expected_docstring + assert docstring_display(docstring) == expected_docstring diff --git a/swh/web/tests/conftest.py b/swh/web/tests/conftest.py index 106e8f48..c3a817b5 100644 --- a/swh/web/tests/conftest.py +++ b/swh/web/tests/conftest.py @@ -1,309 +1,301 @@ # Copyright (C) 2018-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information -import inspect import json import os import shutil import sys from subprocess import run, PIPE import pytest from django.core.cache import cache from hypothesis import settings, HealthCheck from rest_framework.test import APIClient, APIRequestFactory from swh.model.hashutil import ALGORITHMS, hash_to_bytes from swh.web.common import converters from swh.web.tests.data import get_tests_data, override_storages # Used to skip some tests ctags_json_missing = ( shutil.which('ctags') is None or b'+json' not in run(['ctags', '--version'], stdout=PIPE).stdout ) fossology_missing = shutil.which('nomossa') is None # Register some hypothesis profiles settings.register_profile('default', settings()) settings.register_profile( 'swh-web', settings(deadline=None, suppress_health_check=[HealthCheck.too_slow, HealthCheck.filter_too_much])) settings.register_profile( 'swh-web-fast', settings(deadline=None, max_examples=1, suppress_health_check=[HealthCheck.too_slow, HealthCheck.filter_too_much])) def pytest_configure(config): # Small hack in order to be able to run the unit tests # without static assets generated by webpack. # Those assets are not really needed for the Python tests # but the django templates will fail to load due to missing # generated file webpack-stats.json describing the js and css # files to include. # So generate a dummy webpack-stats.json file to overcome # that issue. test_dir = os.path.dirname(__file__) # location of the static folder when running tests through tox static_dir = os.path.join(sys.prefix, 'share/swh/web/static') if not os.path.exists(static_dir): # location of the static folder when running tests locally with pytest static_dir = os.path.join(test_dir, '../../../static') webpack_stats = os.path.join(static_dir, 'webpack-stats.json') if os.path.exists(webpack_stats): return bundles_dir = os.path.join(test_dir, '../assets/src/bundles') _, dirs, _ = next(os.walk(bundles_dir)) mock_webpack_stats = { 'status': 'done', 'publicPath': '/static', 'chunks': {} } for bundle in dirs: asset = 'js/%s.js' % bundle mock_webpack_stats['chunks'][bundle] = [{ 'name': asset, 'publicPath': '/static/%s' % asset, 'path': os.path.join(static_dir, asset) }] with open(webpack_stats, 'w') as outfile: json.dump(mock_webpack_stats, outfile) # Clear Django cache before each test @pytest.fixture(autouse=True) def django_cache_cleared(): cache.clear() # Alias rf fixture from pytest-django @pytest.fixture def request_factory(rf): return rf # Fixture to get test client from Django REST Framework @pytest.fixture(scope='module') def api_client(): return APIClient() # Fixture to get API request factory from Django REST Framework @pytest.fixture(scope='module') def api_request_factory(): return APIRequestFactory() # Initialize tests data @pytest.fixture(autouse=True) def tests_data(): data = get_tests_data(reset=True) # Update swh-web configuration to use the in-memory storages # instantiated in the tests.data module override_storages(data['storage'], data['idx_storage'], data['search']) return data # Fixture to manipulate data from a sample archive used in the tests @pytest.fixture def archive_data(tests_data): return _ArchiveData(tests_data) # Fixture to manipulate indexer data from a sample archive used in the tests @pytest.fixture def indexer_data(tests_data): return _IndexerData(tests_data) # Custom data directory for requests_mock @pytest.fixture def datadir(): return os.path.join(os.path.abspath(os.path.dirname(__file__)), 'resources') class _ArchiveData: """ Helper class to manage data from a sample test archive. It is initialized with a reference to an in-memory storage containing raw tests data. It is basically a proxy to Storage interface but it overrides some methods to retrieve those tests data in a json serializable format in order to ease tests implementation. """ def __init__(self, tests_data): self.storage = tests_data['storage'] - def _call_storage_method(method): - def call_storage_method(*args, **kwargs): - return method(*args, **kwargs) - - return call_storage_method - + def __getattr__(self, key): + if key == 'storage': + raise AttributeError(key) # Forward calls to non overridden Storage methods to wrapped # storage instance - for method_name, method in inspect.getmembers( - self.storage, predicate=inspect.ismethod): - if (not hasattr(self, method_name) and - not method_name.startswith('_')): - setattr(self, method_name, _call_storage_method(method)) + return getattr(self.storage, key) def content_find(self, content): cnt_ids_bytes = {algo_hash: hash_to_bytes(content[algo_hash]) for algo_hash in ALGORITHMS if content.get(algo_hash)} cnt = self.storage.content_find(cnt_ids_bytes) return converters.from_content(cnt[0]) if cnt else cnt def content_get_metadata(self, cnt_id): cnt_id_bytes = hash_to_bytes(cnt_id) metadata = self.storage.content_get_metadata([cnt_id_bytes]) contents = metadata[cnt_id_bytes] content = None if not contents else contents[0] return converters.from_swh(content, hashess={'sha1', 'sha1_git', 'sha256', 'blake2s256'}) def content_get(self, cnt_id): cnt_id_bytes = hash_to_bytes(cnt_id) cnt = next(self.storage.content_get([cnt_id_bytes])) return converters.from_content(cnt) def directory_get(self, dir_id): return { 'id': dir_id, 'content': self.directory_ls(dir_id) } def directory_ls(self, dir_id): cnt_id_bytes = hash_to_bytes(dir_id) dir_content = map(converters.from_directory_entry, self.storage.directory_ls(cnt_id_bytes)) return list(dir_content) def release_get(self, rel_id): rel_id_bytes = hash_to_bytes(rel_id) rel_data = next(self.storage.release_get([rel_id_bytes])) return converters.from_release(rel_data) def revision_get(self, rev_id): rev_id_bytes = hash_to_bytes(rev_id) rev_data = next(self.storage.revision_get([rev_id_bytes])) return converters.from_revision(rev_data) def revision_log(self, rev_id, limit=None): rev_id_bytes = hash_to_bytes(rev_id) return list(map(converters.from_revision, self.storage.revision_log([rev_id_bytes], limit=limit))) def snapshot_get_latest(self, origin_url): snp = self.storage.snapshot_get_latest(origin_url) return converters.from_snapshot(snp) def origin_get(self, origin_info): origin = self.storage.origin_get(origin_info) return converters.from_origin(origin) def origin_visit_get(self, origin_url): visits = self.storage.origin_visit_get(origin_url) return list(map(converters.from_origin_visit, visits)) def origin_visit_get_by(self, origin_url, visit_id): visit = self.storage.origin_visit_get_by(origin_url, visit_id) return converters.from_origin_visit(visit) def snapshot_get(self, snapshot_id): snp = self.storage.snapshot_get(hash_to_bytes(snapshot_id)) return converters.from_snapshot(snp) def snapshot_get_branches(self, snapshot_id, branches_from='', branches_count=1000, target_types=None): snp = self.storage.snapshot_get_branches( hash_to_bytes(snapshot_id), branches_from.encode(), branches_count, target_types) return converters.from_snapshot(snp) def snapshot_get_head(self, snapshot): if snapshot['branches']['HEAD']['target_type'] == 'alias': target = snapshot['branches']['HEAD']['target'] head = snapshot['branches'][target]['target'] else: head = snapshot['branches']['HEAD']['target'] return head class _IndexerData: """ Helper class to manage indexer tests data It is initialized with a reference to an in-memory indexer storage containing raw tests data. It also defines class methods to retrieve those tests data in a json serializable format in order to ease tests implementation. """ def __init__(self, tests_data): self.idx_storage = tests_data['idx_storage'] self.mimetype_indexer = tests_data['mimetype_indexer'] self.license_indexer = tests_data['license_indexer'] self.ctags_indexer = tests_data['ctags_indexer'] def content_add_mimetype(self, cnt_id): self.mimetype_indexer.run([hash_to_bytes(cnt_id)], 'update-dups') def content_get_mimetype(self, cnt_id): mimetype = next(self.idx_storage.content_mimetype_get( [hash_to_bytes(cnt_id)])) return converters.from_filetype(mimetype) def content_add_language(self, cnt_id): raise NotImplementedError('Language indexer is disabled.') self.language_indexer.run([hash_to_bytes(cnt_id)], 'update-dups') def content_get_language(self, cnt_id): lang = next(self.idx_storage.content_language_get( [hash_to_bytes(cnt_id)])) return converters.from_swh(lang, hashess={'id'}) def content_add_license(self, cnt_id): self.license_indexer.run([hash_to_bytes(cnt_id)], 'update-dups') def content_get_license(self, cnt_id): cnt_id_bytes = hash_to_bytes(cnt_id) lic = next(self.idx_storage.content_fossology_license_get( [cnt_id_bytes])) return converters.from_swh({'id': cnt_id_bytes, 'facts': lic[cnt_id_bytes]}, hashess={'id'}) def content_add_ctags(self, cnt_id): self.ctags_indexer.run([hash_to_bytes(cnt_id)], 'update-dups') def content_get_ctags(self, cnt_id): cnt_id_bytes = hash_to_bytes(cnt_id) ctags = self.idx_storage.content_ctags_get([cnt_id_bytes]) for ctag in ctags: yield converters.from_swh(ctag, hashess={'id'}) diff --git a/swh/web/tests/data.py b/swh/web/tests/data.py index d69ee8d9..fff2253d 100644 --- a/swh/web/tests/data.py +++ b/swh/web/tests/data.py @@ -1,484 +1,487 @@ # Copyright (C) 2018-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information import os import random from copy import deepcopy from typing import Dict from rest_framework.decorators import api_view from rest_framework.response import Response from swh.indexer.fossology_license import FossologyLicenseIndexer from swh.indexer.mimetype import MimetypeIndexer from swh.indexer.ctags import CtagsIndexer from swh.indexer.storage import get_indexer_storage from swh.model.from_disk import Directory from swh.model.hashutil import hash_to_hex, hash_to_bytes, DEFAULT_ALGORITHMS from swh.model.identifiers import directory_identifier from swh.loader.git.from_disk import GitLoaderFromArchive from swh.search import get_search from swh.storage.algos.dir_iterators import dir_iterator from swh.web import config from swh.web.browse.utils import ( get_mimetype_and_encoding_for_content, prepare_content_for_display, _re_encode_content ) from swh.web.common import service from swh.web.common.highlightjs import get_hljs_language_from_filename # Module used to initialize data that will be provided as tests input # Configuration for git loader _TEST_LOADER_CONFIG = { 'storage': { - 'cls': 'memory' + 'cls': 'validate', + 'storage': { + 'cls': 'memory' + } }, 'save_data': False, 'max_content_size': 100 * 1024 * 1024, } # Base content indexer configuration _TEST_INDEXER_BASE_CONFIG = { 'storage': { 'cls': 'memory' }, 'objstorage': { 'cls': 'memory', 'args': {}, }, 'indexer_storage': { 'cls': 'memory', 'args': {}, } } def random_sha1(): return hash_to_hex(bytes(random.randint(0, 255) for _ in range(20))) def random_sha256(): return hash_to_hex(bytes(random.randint(0, 255) for _ in range(32))) def random_blake2s256(): return hash_to_hex(bytes(random.randint(0, 255) for _ in range(32))) def random_content(): return { 'sha1': random_sha1(), 'sha1_git': random_sha1(), 'sha256': random_sha256(), 'blake2s256': random_blake2s256(), } # MimetypeIndexer with custom configuration for tests class _MimetypeIndexer(MimetypeIndexer): def parse_config_file(self, *args, **kwargs): return { **_TEST_INDEXER_BASE_CONFIG, 'tools': { 'name': 'file', 'version': '1:5.30-1+deb9u1', 'configuration': { "type": "library", "debian-package": "python3-magic" } } } # FossologyLicenseIndexer with custom configuration for tests class _FossologyLicenseIndexer(FossologyLicenseIndexer): def parse_config_file(self, *args, **kwargs): return { **_TEST_INDEXER_BASE_CONFIG, 'workdir': '/tmp/swh/indexer.fossology.license', 'tools': { 'name': 'nomos', 'version': '3.1.0rc2-31-ga2cbb8c', 'configuration': { 'command_line': 'nomossa <filepath>', }, } } # CtagsIndexer with custom configuration for tests class _CtagsIndexer(CtagsIndexer): def parse_config_file(self, *args, **kwargs): return { **_TEST_INDEXER_BASE_CONFIG, 'workdir': '/tmp/swh/indexer.ctags', 'languages': {'c': 'c'}, 'tools': { 'name': 'universal-ctags', 'version': '~git7859817b', 'configuration': { 'command_line': '''ctags --fields=+lnz --sort=no --links=no ''' # noqa '''--output-format=json <filepath>''' }, } } # Lightweight git repositories that will be loaded to generate # input data for tests _TEST_ORIGINS = [ { 'type': 'git', 'url': 'https://github.com/wcoder/highlightjs-line-numbers.js', 'archives': ['highlightjs-line-numbers.js.zip', 'highlightjs-line-numbers.js_visit2.zip'], 'visit_date': ['Dec 1 2018, 01:00 UTC', 'Jan 20 2019, 15:00 UTC'] }, { 'type': 'git', 'url': 'https://github.com/memononen/libtess2', 'archives': ['libtess2.zip'], 'visit_date': ['May 25 2018, 01:00 UTC'] }, { 'type': 'git', 'url': 'repo_with_submodules', 'archives': ['repo_with_submodules.tgz'], 'visit_date': ['Jan 1 2019, 01:00 UTC'] } ] _contents = {} # Tests data initialization def _init_tests_data(): # To hold reference to the memory storage storage = None # Create search instance search = get_search('memory', {}) search.initialize() search.origin_update({'url': origin['url']} for origin in _TEST_ORIGINS) # Load git repositories from archives for origin in _TEST_ORIGINS: for i, archive in enumerate(origin['archives']): origin_repo_archive = \ os.path.join(os.path.dirname(__file__), 'resources/repos/%s' % archive) loader = GitLoaderFromArchive(origin['url'], archive_path=origin_repo_archive, config=_TEST_LOADER_CONFIG, visit_date=origin['visit_date'][i]) if storage is None: storage = loader.storage else: loader.storage = storage loader.load() origin.update(storage.origin_get(origin)) # add an 'id' key if enabled search.origin_update([{'url': origin['url'], 'has_visits': True}]) for i in range(250): url = 'https://many.origins/%d' % (i+1) storage.origin_add([{'url': url}]) search.origin_update([{'url': url, 'has_visits': True}]) visit = storage.origin_visit_add(url, '2019-12-03 13:55:05', 'tar') storage.origin_visit_update( url, visit['visit'], snapshot='1a8893e6a86f444e8be8e7bda6cb34fb1735a00e') contents = set() directories = set() revisions = set() releases = set() snapshots = set() content_path = {} # Get all objects loaded into the test archive for origin in _TEST_ORIGINS: snp = storage.snapshot_get_latest(origin['url']) snapshots.add(hash_to_hex(snp['id'])) for branch_name, branch_data in snp['branches'].items(): if branch_data['target_type'] == 'revision': revisions.add(branch_data['target']) elif branch_data['target_type'] == 'release': release = next(storage.release_get([branch_data['target']])) revisions.add(release['target']) releases.add(hash_to_hex(branch_data['target'])) for rev_log in storage.revision_shortlog(set(revisions)): rev_id = rev_log[0] revisions.add(rev_id) for rev in storage.revision_get(revisions): dir_id = rev['directory'] directories.add(hash_to_hex(dir_id)) for entry in dir_iterator(storage, dir_id): content_path[entry['sha1']] = '/'.join( [hash_to_hex(dir_id), entry['path'].decode('utf-8')]) if entry['type'] == 'file': contents.add(entry['sha1']) elif entry['type'] == 'dir': directories.add(hash_to_hex(entry['target'])) # Get all checksums for each content result = storage.content_get_metadata(contents) contents = [] for sha1, contents_metadata in result.items(): for content_metadata in contents_metadata: contents.append({ algo: hash_to_hex(content_metadata[algo]) for algo in DEFAULT_ALGORITHMS }) path = content_path[sha1] cnt = next(storage.content_get([sha1])) mimetype, encoding = get_mimetype_and_encoding_for_content( cnt['data']) _, _, cnt['data'] = _re_encode_content( mimetype, encoding, cnt['data']) content_display_data = prepare_content_for_display( cnt['data'], mimetype, path) contents[-1]['path'] = path contents[-1]['mimetype'] = mimetype contents[-1]['encoding'] = encoding contents[-1]['hljs_language'] = content_display_data['language'] contents[-1]['data'] = content_display_data['content_data'] _contents[contents[-1]['sha1']] = contents[-1] # Create indexer storage instance that will be shared by indexers idx_storage = get_indexer_storage('memory', {}) # Add the empty directory to the test archive empty_dir_id = directory_identifier({'entries': []}) empty_dir_id_bin = hash_to_bytes(empty_dir_id) storage.directory_add([{'id': empty_dir_id_bin, 'entries': []}]) # Return tests data return { 'search': search, 'storage': storage, 'idx_storage': idx_storage, 'origins': _TEST_ORIGINS, 'contents': contents, 'directories': list(directories), 'releases': list(releases), 'revisions': list(map(hash_to_hex, revisions)), 'snapshots': list(snapshots), 'generated_checksums': set(), } def _init_indexers(tests_data): # Instantiate content indexers that will be used in tests # and force them to use the memory storages indexers = {} for idx_name, idx_class in (('mimetype_indexer', _MimetypeIndexer), ('license_indexer', _FossologyLicenseIndexer), ('ctags_indexer', _CtagsIndexer)): idx = idx_class() idx.storage = tests_data['storage'] idx.objstorage = tests_data['storage'].objstorage idx.idx_storage = tests_data['idx_storage'] idx.register_tools(idx.config['tools']) indexers[idx_name] = idx return indexers def get_content(content_sha1): return _contents.get(content_sha1) _tests_data = None _current_tests_data = None _indexer_loggers = {} def get_tests_data(reset=False): """ Initialize tests data and return them in a dict. """ global _tests_data, _current_tests_data if _tests_data is None: _tests_data = _init_tests_data() indexers = _init_indexers(_tests_data) for (name, idx) in indexers.items(): # pytest makes the loggers use a temporary file; and deepcopy # requires serializability. So we remove them, and add them # back after the copy. _indexer_loggers[name] = idx.log del idx.log _tests_data.update(indexers) if reset or _current_tests_data is None: _current_tests_data = deepcopy(_tests_data) for (name, logger) in _indexer_loggers.items(): _current_tests_data[name].log = logger return _current_tests_data def override_storages(storage, idx_storage, search): """ Helper function to replace the storages from which archive data are fetched. """ swh_config = config.get_config() swh_config.update({ 'storage': storage, 'indexer_storage': idx_storage, 'search': search, }) service.storage = storage service.idx_storage = idx_storage service.search = search # Implement some special endpoints used to provide input tests data # when executing end to end tests with cypress _content_code_data_exts = {} # type: Dict[str, Dict[str, str]] _content_code_data_filenames = {} # type: Dict[str, Dict[str, str]] _content_other_data_exts = {} # type: Dict[str, Dict[str, str]] def _init_content_tests_data(data_path, data_dict, ext_key): """ Helper function to read the content of a directory, store it into a test archive and add some files metadata (sha1 and/or expected programming language) in a dict. Args: data_path (str): path to a directory relative to the tests folder of swh-web data_dict (dict): the dict that will store files metadata ext_key (bool): whether to use file extensions or filenames as dict keys """ test_contents_dir = os.path.join( os.path.dirname(__file__), data_path).encode('utf-8') directory = Directory.from_disk(path=test_contents_dir, data=True, save_path=True) objects = directory.collect() for c in objects['content'].values(): c['status'] = 'visible' sha1 = hash_to_hex(c['sha1']) if ext_key: key = c['path'].decode('utf-8').split('.')[-1] filename = 'test.' + key else: filename = c['path'].decode('utf-8').split('/')[-1] key = filename language = get_hljs_language_from_filename(filename) data_dict[key] = {'sha1': sha1, 'language': language} del c['path'] del c['perms'] storage = get_tests_data()['storage'] storage.content_add(objects['content'].values()) def _init_content_code_data_exts(): """ Fill a global dictionary which maps source file extension to a code content example. """ global _content_code_data_exts _init_content_tests_data('resources/contents/code/extensions', _content_code_data_exts, True) def _init_content_other_data_exts(): """ Fill a global dictionary which maps a file extension to a content example. """ global _content_other_data_exts _init_content_tests_data('resources/contents/other/extensions', _content_other_data_exts, True) def _init_content_code_data_filenames(): """ Fill a global dictionary which maps a filename to a content example. """ global _content_code_data_filenames _init_content_tests_data('resources/contents/code/filenames', _content_code_data_filenames, False) if config.get_config()['e2e_tests_mode']: _init_content_code_data_exts() _init_content_other_data_exts() _init_content_code_data_filenames() @api_view(['GET']) def get_content_code_data_all_exts(request): """ Endpoint implementation returning a list of all source file extensions to test for highlighting using cypress. """ return Response(sorted(_content_code_data_exts.keys()), status=200, content_type='application/json') @api_view(['GET']) def get_content_code_data_by_ext(request, ext): """ Endpoint implementation returning metadata of a code content example based on the source file extension. """ data = None status = 404 if ext in _content_code_data_exts: data = _content_code_data_exts[ext] status = 200 return Response(data, status=status, content_type='application/json') @api_view(['GET']) def get_content_other_data_by_ext(request, ext): """ Endpoint implementation returning metadata of a content example based on the file extension. """ _init_content_other_data_exts() data = None status = 404 if ext in _content_other_data_exts: data = _content_other_data_exts[ext] status = 200 return Response(data, status=status, content_type='application/json') @api_view(['GET']) def get_content_code_data_all_filenames(request): """ Endpoint implementation returning a list of all source filenames to test for highlighting using cypress. """ return Response(sorted(_content_code_data_filenames.keys()), status=200, content_type='application/json') @api_view(['GET']) def get_content_code_data_by_filename(request, filename): """ Endpoint implementation returning metadata of a code content example based on the source filename. """ data = None status = 404 if filename in _content_code_data_filenames: data = _content_code_data_filenames[filename] status = 200 return Response(data, status=status, content_type='application/json') diff --git a/version.txt b/version.txt index d283c10a..72533334 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v0.0.225-0-g37a88e88 \ No newline at end of file +v0.0.226-0-g56fb8696 \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e3ea5a0e..a2b43c76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,14263 +1,14271 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== dependencies: "@babel/highlight" "^7.0.0" "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== dependencies: "@babel/highlight" "^7.8.3" "@babel/compat-data@^7.8.4": version "7.8.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.5.tgz#d28ce872778c23551cbb9432fc68d28495b613b9" integrity sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg== dependencies: browserslist "^4.8.5" invariant "^2.2.4" semver "^5.5.0" "@babel/core@7.4.5": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a" integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA== dependencies: "@babel/code-frame" "^7.0.0" "@babel/generator" "^7.4.4" "@babel/helpers" "^7.4.4" "@babel/parser" "^7.4.5" "@babel/template" "^7.4.4" "@babel/traverse" "^7.4.5" "@babel/types" "^7.4.4" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" lodash "^4.17.11" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" "@babel/core@>=7.2.2": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== dependencies: "@babel/code-frame" "^7.5.5" "@babel/generator" "^7.5.5" "@babel/helpers" "^7.5.5" "@babel/parser" "^7.5.5" "@babel/template" "^7.4.4" "@babel/traverse" "^7.5.5" "@babel/types" "^7.5.5" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" "@babel/core@^7.7.5": version "7.7.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.5.tgz#ae1323cd035b5160293307f50647e83f8ba62f7e" integrity sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw== dependencies: "@babel/code-frame" "^7.5.5" "@babel/generator" "^7.7.4" "@babel/helpers" "^7.7.4" "@babel/parser" "^7.7.5" "@babel/template" "^7.7.4" "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" convert-source-map "^1.7.0" debug "^4.1.0" json5 "^2.1.0" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" "@babel/core@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e" integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA== dependencies: "@babel/code-frame" "^7.8.3" "@babel/generator" "^7.8.4" "@babel/helpers" "^7.8.4" "@babel/parser" "^7.8.4" "@babel/template" "^7.8.3" "@babel/traverse" "^7.8.4" "@babel/types" "^7.8.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" json5 "^2.1.0" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" "@babel/generator@^7.4.4", "@babel/generator@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== dependencies: "@babel/types" "^7.5.5" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" trim-right "^1.0.1" "@babel/generator@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369" integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg== dependencies: "@babel/types" "^7.7.4" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" "@babel/generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" integrity sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug== dependencies: "@babel/types" "^7.8.3" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" "@babel/generator@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== dependencies: "@babel/types" "^7.8.3" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== dependencies: "@babel/types" "^7.0.0" "@babel/helper-annotate-as-pure@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: "@babel/types" "^7.8.3" "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== dependencies: "@babel/helper-explode-assignable-expression" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== dependencies: "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helper-builder-react-jsx@^7.3.0": version "7.3.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== dependencies: "@babel/types" "^7.3.0" esutils "^2.0.0" "@babel/helper-call-delegate@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== dependencies: "@babel/helper-hoist-variables" "^7.4.4" "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" "@babel/helper-call-delegate@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A== dependencies: "@babel/helper-hoist-variables" "^7.8.3" "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helper-compilation-targets@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz#03d7ecd454b7ebe19a254f76617e61770aed2c88" integrity sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg== dependencies: "@babel/compat-data" "^7.8.4" browserslist "^4.8.5" invariant "^2.2.4" levenary "^1.1.1" semver "^5.5.0" "@babel/helper-create-class-features-plugin@^7.3.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-member-expression-to-functions" "^7.5.5" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.5.5" "@babel/helper-split-export-declaration" "^7.4.4" "@babel/helper-create-regexp-features-plugin@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" integrity sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q== dependencies: "@babel/helper-regex" "^7.8.3" regexpu-core "^4.6.0" "@babel/helper-define-map@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/types" "^7.5.5" lodash "^4.17.13" "@babel/helper-define-map@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== dependencies: "@babel/helper-function-name" "^7.8.3" "@babel/types" "^7.8.3" lodash "^4.17.13" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== dependencies: "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-explode-assignable-expression@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== dependencies: "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helper-function-name@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== dependencies: "@babel/helper-get-function-arity" "^7.0.0" "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-function-name@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ== dependencies: "@babel/helper-get-function-arity" "^7.7.4" "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" "@babel/helper-function-name@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== dependencies: "@babel/helper-get-function-arity" "^7.8.3" "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== dependencies: "@babel/types" "^7.0.0" "@babel/helper-get-function-arity@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA== dependencies: "@babel/types" "^7.7.4" "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== dependencies: "@babel/types" "^7.8.3" "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== dependencies: "@babel/types" "^7.4.4" "@babel/helper-hoist-variables@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== dependencies: "@babel/types" "^7.8.3" "@babel/helper-member-expression-to-functions@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== dependencies: "@babel/types" "^7.5.5" "@babel/helper-member-expression-to-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== dependencies: "@babel/types" "^7.8.3" "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== dependencies: "@babel/types" "^7.0.0" "@babel/helper-module-imports@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== dependencies: "@babel/types" "^7.8.3" "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" "@babel/template" "^7.4.4" "@babel/types" "^7.5.5" lodash "^4.17.13" "@babel/helper-module-transforms@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" integrity sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-simple-access" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== dependencies: "@babel/types" "^7.0.0" "@babel/helper-optimise-call-expression@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== dependencies: "@babel/types" "^7.8.3" "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== "@babel/helper-plugin-utils@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz#59ec882d43c21c544ccb51decaecb306b34a8231" integrity sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA== "@babel/helper-plugin-utils@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== dependencies: lodash "^4.17.13" "@babel/helper-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== dependencies: lodash "^4.17.13" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-wrap-function" "^7.1.0" "@babel/template" "^7.1.0" "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-remap-async-to-generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-wrap-function" "^7.8.3" "@babel/template" "^7.8.3" "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helper-replace-supers@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== dependencies: "@babel/helper-member-expression-to-functions" "^7.5.5" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/traverse" "^7.5.5" "@babel/types" "^7.5.5" "@babel/helper-replace-supers@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA== dependencies: "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helper-simple-access@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== dependencies: "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-simple-access@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== dependencies: "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== dependencies: "@babel/types" "^7.4.4" "@babel/helper-split-export-declaration@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug== dependencies: "@babel/types" "^7.7.4" "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== dependencies: "@babel/types" "^7.8.3" "@babel/helper-wrap-function@^7.1.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/template" "^7.1.0" "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" "@babel/helper-wrap-function@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== dependencies: "@babel/helper-function-name" "^7.8.3" "@babel/template" "^7.8.3" "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" "@babel/helpers@^7.4.4", "@babel/helpers@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== dependencies: "@babel/template" "^7.4.4" "@babel/traverse" "^7.5.5" "@babel/types" "^7.5.5" "@babel/helpers@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302" integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg== dependencies: "@babel/template" "^7.7.4" "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" "@babel/helpers@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== dependencies: "@babel/template" "^7.8.3" "@babel/traverse" "^7.8.4" "@babel/types" "^7.8.3" "@babel/highlight@^7.0.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" "@babel/highlight@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" "@babel/parser@^7.0.0", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5", "@babel/parser@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== "@babel/parser@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb" integrity sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g== "@babel/parser@^7.7.5": version "7.7.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71" integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig== "@babel/parser@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== "@babel/parser@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-remap-async-to-generator" "^7.1.0" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-remap-async-to-generator" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-proposal-class-properties@7.3.0": version "7.3.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== dependencies: "@babel/helper-create-class-features-plugin" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-proposal-json-strings@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-proposal-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" "@babel/plugin-proposal-object-rest-spread@7.3.2": version "7.3.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-proposal-object-rest-spread@^7.4.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-proposal-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-proposal-optional-catch-binding@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-proposal-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-proposal-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.0" "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" "@babel/plugin-proposal-unicode-property-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-async-generators@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.0.tgz#e6c3dba5a61ecf72ba00a3f3f5f1234989a58e6a" integrity sha512-a8w8k7pK8nYhem07rXdAq03T+DlTX8LFojUptrh9JEx80AgLqGiuoFIyQOGTWif39kFnDOQqbzl1s6KQqrfV+A== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-dynamic-import@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.0.tgz#3a6c1cd36af923db602df83c5aa72e08bb14353a" integrity sha512-Mx2RzpCHJaBfmFdA2abXDKRHVJdzJ6R0Wqwb6TxCgM7NRR5wcC4cyiAsRL7Ga+lwG8GG1cKvb+4ENjic8y15jA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-json-strings@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.0.tgz#7f798eb7e8cfd3821388120679d23d530bae6e53" integrity sha512-LPykaAbH86L5NnDfCRSpNxtEHZk+6GaFzXfWEFU/6R4v69EXQr6GOp7hwH+Uw0QlYVN++s6TukTJ3flFcspahA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.0.tgz#5d8f24ecffa4ae74164e53264953c5ea8ba6d149" integrity sha512-Rv2hnBToN6rbA9hO2a4vtwXZLzNa+TWkoSIMMvUezFz5+D9NPeX7SFrArwtFzzbwndmWiqboTr5rNpzAz0MPpA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-object-rest-spread@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.0.tgz#9b37d580d459682364d8602494c69145b394fd4c" integrity sha512-dt89fDlkfkTrQcy5KavMQPyF2A6tR0kYp8HAnIoQv5hO34iAUffHghP/hMGd7Gf/+uYTmLQO0ar7peX1SUWyIA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.0.tgz#180c7bdd6b7fd81cc6d18269de12d5ddd60cabce" integrity sha512-EIgJVy+u1RvR2gJfX4ReLwAupO/twllUue1wPrRxhu18+eC3bGTEcOSXLQdaE9ya9NG1rE0eQs0GSiloUGFEwg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.0.tgz#c40f4d4d6a4f5e71d2bfd949b0a7f1e1e6792fe0" integrity sha512-LV1c+TTAO8Vawe3t+WXBHYWbS7endP8MSlqKPKEZOyWPEJX2akl3jfvFG828/OE7RpyoC3JXfLJDFj/jN7A8hg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-arrow-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-async-to-generator@^7.4.4": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-remap-async-to-generator" "^7.1.0" "@babel/plugin-transform-async-to-generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-remap-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-block-scoped-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-block-scoping@^7.4.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" "@babel/plugin-transform-block-scoping@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" "@babel/plugin-transform-classes@^7.4.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-define-map" "^7.5.5" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.5.5" "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" "@babel/plugin-transform-classes@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" integrity sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-define-map" "^7.8.3" "@babel/helper-function-name" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-computed-properties@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-destructuring@^7.4.4": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-destructuring@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" "@babel/plugin-transform-dotall-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-duplicate-keys@^7.2.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-duplicate-keys@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-exponentiation-operator@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-exponentiation-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-for-of@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-for-of@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz#6fe8eae5d6875086ee185dd0b098a8513783b47d" integrity sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-function-name@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-function-name@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== dependencies: "@babel/helper-function-name" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-literals@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-literals@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-member-expression-literals@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-member-expression-literals@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-modules-amd@^7.2.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" "@babel/plugin-transform-modules-amd@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== dependencies: "@babel/helper-module-transforms" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@7.8.3", "@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" - integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== - dependencies: - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - "@babel/plugin-transform-modules-commonjs@^7.4.4": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== dependencies: "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" babel-plugin-dynamic-import-node "^2.3.0" +"@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" + integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== + dependencies: + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + "@babel/plugin-transform-modules-systemjs@^7.4.4": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== dependencies: "@babel/helper-hoist-variables" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" "@babel/plugin-transform-modules-systemjs@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== dependencies: "@babel/helper-hoist-variables" "^7.8.3" "@babel/helper-module-transforms" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" "@babel/plugin-transform-modules-umd@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-modules-umd@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== dependencies: "@babel/helper-module-transforms" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== dependencies: regexp-tree "^0.1.6" "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-new-target@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-object-super@^7.2.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.5.5" "@babel/plugin-transform-object-super@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" "@babel/plugin-transform-parameters@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== dependencies: "@babel/helper-call-delegate" "^7.4.4" "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-parameters@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz#1d5155de0b65db0ccf9971165745d3bb990d77d3" integrity sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA== dependencies: "@babel/helper-call-delegate" "^7.8.3" "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-property-literals@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-property-literals@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-react-display-name@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-react-jsx-self@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" "@babel/plugin-transform-react-jsx-source@^7.0.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" "@babel/plugin-transform-react-jsx@^7.0.0": version "7.3.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== dependencies: "@babel/helper-builder-react-jsx" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" "@babel/plugin-transform-regenerator@^7.4.5": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== dependencies: regenerator-transform "^0.14.0" "@babel/plugin-transform-regenerator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA== dependencies: regenerator-transform "^0.14.0" "@babel/plugin-transform-reserved-words@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-reserved-words@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-runtime@7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" resolve "^1.8.1" semver "^5.5.1" "@babel/plugin-transform-runtime@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169" integrity sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" resolve "^1.8.1" semver "^5.5.1" "@babel/plugin-transform-shorthand-properties@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-shorthand-properties@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-spread@^7.2.0": version "7.2.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-sticky-regex@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" "@babel/plugin-transform-sticky-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-regex" "^7.8.3" "@babel/plugin-transform-template-literals@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-template-literals@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-typeof-symbol@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typeof-symbol@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-unicode-regex@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" "@babel/plugin-transform-unicode-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/preset-env@7.4.5": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58" integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-json-strings" "^7.2.0" "@babel/plugin-proposal-object-rest-spread" "^7.4.4" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" "@babel/plugin-transform-async-to-generator" "^7.4.4" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" "@babel/plugin-transform-block-scoping" "^7.4.4" "@babel/plugin-transform-classes" "^7.4.4" "@babel/plugin-transform-computed-properties" "^7.2.0" "@babel/plugin-transform-destructuring" "^7.4.4" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" "@babel/plugin-transform-for-of" "^7.4.4" "@babel/plugin-transform-function-name" "^7.4.4" "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.2.0" "@babel/plugin-transform-modules-commonjs" "^7.4.4" "@babel/plugin-transform-modules-systemjs" "^7.4.4" "@babel/plugin-transform-modules-umd" "^7.2.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.2.0" "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" "@babel/plugin-transform-regenerator" "^7.4.5" "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.2.0" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.4.4" "@babel/types" "^7.4.4" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" "@babel/preset-env@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.4.tgz#9dac6df5f423015d3d49b6e9e5fa3413e4a72c4e" integrity sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w== dependencies: "@babel/compat-data" "^7.8.4" "@babel/helper-compilation-targets" "^7.8.4" "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-async-generator-functions" "^7.8.3" "@babel/plugin-proposal-dynamic-import" "^7.8.3" "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-object-rest-spread" "^7.8.3" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining" "^7.8.3" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" "@babel/plugin-syntax-top-level-await" "^7.8.3" "@babel/plugin-transform-arrow-functions" "^7.8.3" "@babel/plugin-transform-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" "@babel/plugin-transform-classes" "^7.8.3" "@babel/plugin-transform-computed-properties" "^7.8.3" "@babel/plugin-transform-destructuring" "^7.8.3" "@babel/plugin-transform-dotall-regex" "^7.8.3" "@babel/plugin-transform-duplicate-keys" "^7.8.3" "@babel/plugin-transform-exponentiation-operator" "^7.8.3" "@babel/plugin-transform-for-of" "^7.8.4" "@babel/plugin-transform-function-name" "^7.8.3" "@babel/plugin-transform-literals" "^7.8.3" "@babel/plugin-transform-member-expression-literals" "^7.8.3" "@babel/plugin-transform-modules-amd" "^7.8.3" "@babel/plugin-transform-modules-commonjs" "^7.8.3" "@babel/plugin-transform-modules-systemjs" "^7.8.3" "@babel/plugin-transform-modules-umd" "^7.8.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" "@babel/plugin-transform-object-super" "^7.8.3" "@babel/plugin-transform-parameters" "^7.8.4" "@babel/plugin-transform-property-literals" "^7.8.3" "@babel/plugin-transform-regenerator" "^7.8.3" "@babel/plugin-transform-reserved-words" "^7.8.3" "@babel/plugin-transform-shorthand-properties" "^7.8.3" "@babel/plugin-transform-spread" "^7.8.3" "@babel/plugin-transform-sticky-regex" "^7.8.3" "@babel/plugin-transform-template-literals" "^7.8.3" "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" "@babel/types" "^7.8.3" browserslist "^4.8.5" core-js-compat "^3.6.2" invariant "^2.2.2" levenary "^1.1.1" semver "^5.5.0" "@babel/preset-react@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-react-display-name" "^7.0.0" "@babel/plugin-transform-react-jsx" "^7.0.0" "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" "@babel/runtime-corejs3@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.8.4.tgz#ccc4e042e2fae419c67fa709567e5d2179ed3940" integrity sha512-+wpLqy5+fbQhvbllvlJEVRIpYj+COUWnnsm+I4jZlA8Lo7/MJmBhGTCHyk1/RWfOqBRJ2MbadddG6QltTKTlrg== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.2" "@babel/runtime@7.3.1": version "7.3.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== dependencies: regenerator-runtime "^0.12.0" "@babel/runtime@^7.6.3": version "7.7.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw== dependencies: regenerator-runtime "^0.13.2" "@babel/template@^7.1.0", "@babel/template@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== dependencies: "@babel/code-frame" "^7.0.0" "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" "@babel/template@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== dependencies: "@babel/code-frame" "^7.0.0" "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" "@babel/template@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== dependencies: "@babel/code-frame" "^7.8.3" "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== dependencies: "@babel/code-frame" "^7.5.5" "@babel/generator" "^7.5.5" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" "@babel/parser" "^7.5.5" "@babel/types" "^7.5.5" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" "@babel/traverse@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== dependencies: "@babel/code-frame" "^7.5.5" "@babel/generator" "^7.7.4" "@babel/helper-function-name" "^7.7.4" "@babel/helper-split-export-declaration" "^7.7.4" "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" "@babel/traverse@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" integrity sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg== dependencies: "@babel/code-frame" "^7.8.3" "@babel/generator" "^7.8.3" "@babel/helper-function-name" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" "@babel/traverse@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== dependencies: "@babel/code-frame" "^7.8.3" "@babel/generator" "^7.8.4" "@babel/helper-function-name" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" "@babel/parser" "^7.8.4" "@babel/types" "^7.8.3" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== dependencies: esutils "^2.0.2" lodash "^4.17.13" to-fast-properties "^2.0.0" "@babel/types@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== dependencies: esutils "^2.0.2" lodash "^4.17.13" to-fast-properties "^2.0.0" "@babel/types@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== dependencies: esutils "^2.0.2" lodash "^4.17.13" to-fast-properties "^2.0.0" "@csstools/normalize.css@^10.1.0": version "10.1.0" resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== -"@cypress/browserify-preprocessor@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.3.tgz#abbb8ba52ff33d70745c056e8fc675db2276a539" - integrity sha512-vZskc/EKejnmdm4fMGB1Fm39WelsF4HJHeI5q8I0LvGnrdvxSiCbn27TbhCM5Enq6Fkinf3f7oiHS/m2OUgzdA== +"@cypress/browserify-preprocessor@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@cypress/browserify-preprocessor/-/browserify-preprocessor-2.1.4.tgz#31f3e35969b591da0298eb801d6905c64c7151cf" + integrity sha512-149D1E2UzY7kCjnXDofx61MeJ6HQczj5XCAPjRUPpYr/A7T/O4C0IlTLZYV2xxnDD68d71NfT/cT8s0sfi27RQ== dependencies: "@babel/core" "7.4.5" "@babel/plugin-proposal-class-properties" "7.3.0" "@babel/plugin-proposal-object-rest-spread" "7.3.2" - "@babel/plugin-transform-modules-commonjs" "7.8.3" "@babel/plugin-transform-runtime" "7.2.0" "@babel/preset-env" "7.4.5" "@babel/preset-react" "7.0.0" "@babel/runtime" "7.3.1" + babel-plugin-add-module-exports "1.0.2" babelify "10.0.0" bluebird "3.5.3" browserify "16.2.3" coffeeify "3.0.1" coffeescript "1.12.7" debug "4.1.1" fs-extra "7.0.1" lodash.clonedeep "4.5.0" watchify "3.11.1" -"@cypress/code-coverage@^1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@cypress/code-coverage/-/code-coverage-1.11.1.tgz#70b9d4c9002fcf218ca89f1f973922cbe1fb1e8e" - integrity sha512-OIngeWpS7NXmVhBg1SaezgUdqWgqNOWKmb8w3tWeuVJVyXrhCCyHotLK7MtfqXK5P/qDP7kR1p2Ry2iE27l81A== +"@cypress/code-coverage@^1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@cypress/code-coverage/-/code-coverage-1.12.2.tgz#5ba8c9b5a632a7501ce33d0aff1760dd43f86df9" + integrity sha512-feHDX3Py7GBtk69Qjs3HC/bQwQxyEOhVfqZZ1s1vDYppCls6u7jdsK0uE8RvaJ7sEKYsHbPJB0C8Wa6k5/eH3A== dependencies: - "@cypress/browserify-preprocessor" "2.1.3" + "@cypress/browserify-preprocessor" "2.1.4" debug "4.1.1" execa "4.0.0" "@cypress/listr-verbose-renderer@0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= dependencies: chalk "^1.1.3" cli-cursor "^1.0.2" date-fns "^1.27.2" figures "^1.7.0" "@cypress/xvfb@1.2.4": version "1.2.4" resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== dependencies: debug "^3.1.0" lodash.once "^4.1.1" "@fortawesome/fontawesome-free@^5.11.2": version "5.11.2" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.11.2.tgz#8644bc25b19475779a7b7c1fc104bc0a794f4465" integrity sha512-XiUPoS79r1G7PcpnNtq85TJ7inJWe0v+b5oZJZKb0pGHNIV6+UiNeQWiFGmuQ0aj7GEhnD/v9iqxIsjuRKtEnQ== "@fullcalendar/bootstrap@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@fullcalendar/bootstrap/-/bootstrap-4.3.0.tgz#c989968f92c4ec26a0ff7dfc35b186aa38978ba1" integrity sha512-Ue0Bm2m765jY2LKRsD7ZyoeYNJeeyXxyzSeMdYY4AHFZTevTlcxv1T7ZYPRDBhseewLwiFHP8e0Okfdiji+BCg== "@fullcalendar/core@^4.3.1": version "4.3.1" resolved "https://registry.yarnpkg.com/@fullcalendar/core/-/core-4.3.1.tgz#a061c6d2e998d4155439dbc8aefdfe01cdf648d8" integrity sha512-Eh+p/wpMkWGu26f8NpfQK9ecQMoZxX/aopv+0+4/CH+Ip0paP6iEc40JYgTz7RFl0bFqV1dvwyGyUZ4+9ZeySA== "@fullcalendar/daygrid@^4.3.0", "@fullcalendar/daygrid@~4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@fullcalendar/daygrid/-/daygrid-4.3.0.tgz#1b4ab9fdc238dba77921cb7c5bd2d813c834e905" integrity sha512-OrGaRIGbELESOXOCXtoQVY4cOxnxmN7OrjDGbMoVITdoXWuIZ6sFNO84WcBQoRaIbkmqVM0SAU2MENwy+eEwqQ== "@fullcalendar/interaction@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@fullcalendar/interaction/-/interaction-4.3.0.tgz#a52d22e4fa2666d5032c77afde75ecfad95c0f3b" integrity sha512-kaKV+tdgH/oIrwTSMGYFec989L5r+KMYJ9ybwLc8G3LbMVcebo8fAlN9VizmGQAuopKfyvOw8yzJdjfmVCCRYQ== "@fullcalendar/timegrid@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@fullcalendar/timegrid/-/timegrid-4.3.0.tgz#bf003499319e5e66135bb7b8d8ed274b1a62ca91" integrity sha512-9JCSZbzw2Hi+X893l5X9ViZaWjxh+sDy59o6nKx0gYKwSfs/vKpmk73GBQfKyUv8orkjpnTdPFfeLDZqlzBP4Q== dependencies: "@fullcalendar/daygrid" "~4.3.0" "@istanbuljs/load-nyc-config@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== dependencies: camelcase "^5.3.1" find-up "^4.1.0" js-yaml "^3.13.1" resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2": version "0.1.2" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== "@lgaitan/pace-progress@^1.0.7": version "1.0.7" resolved "https://registry.yarnpkg.com/@lgaitan/pace-progress/-/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" integrity sha1-yW+72f1M9Sj+7TTqDI+diz6Y8N0= "@nodelib/fs.scandir@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== dependencies: "@nodelib/fs.stat" "2.0.3" run-parallel "^1.1.9" "@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== "@nodelib/fs.walk@^1.2.3": version "1.2.4" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== dependencies: "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== dependencies: any-observable "^0.3.0" "@sentry/browser@^5.12.1": version "5.12.1" resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.12.1.tgz#dc1f268595269fb7277f55eb625c7e92d76dc01b" integrity sha512-Zl7VdppUxctyaoqMSEhnDJp2rrupx8n8N2n3PSooH74yhB2Z91nt84mouczprBsw3JU1iggGyUw9seRFzDI1hw== dependencies: "@sentry/core" "5.12.0" "@sentry/types" "5.12.0" "@sentry/utils" "5.12.0" tslib "^1.9.3" "@sentry/core@5.12.0": version "5.12.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.12.0.tgz#d6380c4ef7beee5f418ac1d0e5be86a2de2af449" integrity sha512-wY4rsoX71QsGpcs9tF+OxKgDPKzIFMRvFiSRcJoPMfhFsTilQ/CBMn/c3bDtWQd9Bnr/ReQIL6NbnIjUsPHA4Q== dependencies: "@sentry/hub" "5.12.0" "@sentry/minimal" "5.12.0" "@sentry/types" "5.12.0" "@sentry/utils" "5.12.0" tslib "^1.9.3" "@sentry/hub@5.12.0": version "5.12.0" resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.12.0.tgz#5e8c8f249f5bdbeb8cc4ec02c2ccc53a67f2cc02" integrity sha512-3k7yE8BEVJsKx8mR4LcI4IN0O8pngmq44OcJ/fRUUBAPqsT38jsJdP2CaWhdlM1jiNUzUDB1ktBv6/lY+VgcoQ== dependencies: "@sentry/types" "5.12.0" "@sentry/utils" "5.12.0" tslib "^1.9.3" "@sentry/minimal@5.12.0": version "5.12.0" resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.12.0.tgz#2611e2aa520c1edb7999e6de51bd65ec66341757" integrity sha512-fk73meyz4k4jCg9yzbma+WkggsfEIQWI2e2TWfYsRGcrV3RnlSrXyM4D91/A8Bjx10SNezHPUFHjasjlHXOkyA== dependencies: "@sentry/hub" "5.12.0" "@sentry/types" "5.12.0" tslib "^1.9.3" "@sentry/types@5.12.0": version "5.12.0" resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.12.0.tgz#5367e53c74261beea01502e3f7b6f3d822682a31" integrity sha512-aZbBouBLrKB8wXlztriIagZNmsB+wegk1Jkl6eprqRW/w24Sl/47tiwH8c5S4jYTxdAiJk+SAR10AAuYmIN3zg== "@sentry/utils@5.12.0": version "5.12.0" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.12.0.tgz#62967f934a3ee6d21472eac0219084e37225933e" integrity sha512-fYUadGLbfTCbs4OG5hKCOtv2jrNE4/8LHNABy9DwNJ/t5DVtGqWAZBnxsC+FG6a3nVqCpxjFI9AHlYsJ2wsf7Q== dependencies: "@sentry/types" "5.12.0" tslib "^1.9.3" "@sweetalert2/theme-bootstrap-4@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@sweetalert2/theme-bootstrap-4/-/theme-bootstrap-4-2.2.1.tgz#a0e3496f2d5aa2993f8fe1c59dcec0673941cddb" integrity sha512-EzAc/HFO16wuZCmawdv0mxRknXtQ5XYmms8gHCcRBqVJsolwl0xKanH8wC2tf4O6dFLou6ZndNqii8ArQO66pA== "@ttskch/select2-bootstrap4-theme@^1.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@ttskch/select2-bootstrap4-theme/-/select2-bootstrap4-theme-1.3.2.tgz#c9e17e34fb2cfd9f41b8efe3584165ccbdd96969" integrity sha512-wm5QbtsZAJs9+IMNa9IrMJiCwJFrvutYKYRZAg6gut4/x7RBANsoSA1xQ5v9QxwhZ+kmb9Sh0BjvWm3K8glunQ== "@types/anymatch@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== dependencies: "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/minimist@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= "@types/node@*": version "12.6.9" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.9.tgz#ffeee23afdc19ab16e979338e7b536fdebbbaeaf" integrity sha512-+YB9FtyxXGyD54p8rXwWaN1EWEyar5L58GlGWgtH2I9rGmLGBQcw63+0jw+ujqVavNuO47S1ByAjm9zdHMnskw== "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== "@types/sizzle@2.3.2": version "2.3.2" resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== "@types/tapable@*": version "1.0.4" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ== "@types/uglify-js@*": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== dependencies: source-map "^0.6.1" "@types/unist@*", "@types/unist@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== "@types/vfile-message@*": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz#e1e9895cc6b36c462d4244e64e6d0b6eaf65355a" integrity sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA== dependencies: "@types/node" "*" "@types/unist" "*" "@types/vfile@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9" integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw== dependencies: "@types/node" "*" "@types/unist" "*" "@types/vfile-message" "*" "@types/webpack@^4.4.31": version "4.32.1" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.32.1.tgz#6e95010e806f808abd6551c112097ac09035aacf" integrity sha512-9n38CBx9uga1FEAdTipnt0EkbKpsCJFh7xJb1LE65FFb/A6OOLFX022vYsGC1IyVCZ/GroNg9u/RMmlDxGcLIw== dependencies: "@types/anymatch" "*" "@types/node" "*" "@types/tapable" "*" "@types/uglify-js" "*" source-map "^0.6.0" "@webassemblyjs/ast@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== dependencies: "@webassemblyjs/helper-module-context" "1.8.5" "@webassemblyjs/helper-wasm-bytecode" "1.8.5" "@webassemblyjs/wast-parser" "1.8.5" "@webassemblyjs/floating-point-hex-parser@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== "@webassemblyjs/helper-api-error@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== "@webassemblyjs/helper-buffer@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== "@webassemblyjs/helper-code-frame@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== dependencies: "@webassemblyjs/wast-printer" "1.8.5" "@webassemblyjs/helper-fsm@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== "@webassemblyjs/helper-module-context@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== dependencies: "@webassemblyjs/ast" "1.8.5" mamacro "^0.0.3" "@webassemblyjs/helper-wasm-bytecode@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== "@webassemblyjs/helper-wasm-section@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-buffer" "1.8.5" "@webassemblyjs/helper-wasm-bytecode" "1.8.5" "@webassemblyjs/wasm-gen" "1.8.5" "@webassemblyjs/ieee754@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== "@webassemblyjs/wasm-edit@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-buffer" "1.8.5" "@webassemblyjs/helper-wasm-bytecode" "1.8.5" "@webassemblyjs/helper-wasm-section" "1.8.5" "@webassemblyjs/wasm-gen" "1.8.5" "@webassemblyjs/wasm-opt" "1.8.5" "@webassemblyjs/wasm-parser" "1.8.5" "@webassemblyjs/wast-printer" "1.8.5" "@webassemblyjs/wasm-gen@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-wasm-bytecode" "1.8.5" "@webassemblyjs/ieee754" "1.8.5" "@webassemblyjs/leb128" "1.8.5" "@webassemblyjs/utf8" "1.8.5" "@webassemblyjs/wasm-opt@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-buffer" "1.8.5" "@webassemblyjs/wasm-gen" "1.8.5" "@webassemblyjs/wasm-parser" "1.8.5" "@webassemblyjs/wasm-parser@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-api-error" "1.8.5" "@webassemblyjs/helper-wasm-bytecode" "1.8.5" "@webassemblyjs/ieee754" "1.8.5" "@webassemblyjs/leb128" "1.8.5" "@webassemblyjs/utf8" "1.8.5" "@webassemblyjs/wast-parser@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/floating-point-hex-parser" "1.8.5" "@webassemblyjs/helper-api-error" "1.8.5" "@webassemblyjs/helper-code-frame" "1.8.5" "@webassemblyjs/helper-fsm" "1.8.5" "@xtuc/long" "4.2.2" "@webassemblyjs/wast-printer@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/wast-parser" "1.8.5" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== JSONStream@^1.0.3: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" abab@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" negotiator "0.6.2" acorn-dynamic-import@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-globals@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" acorn-jsx@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.7.0.tgz#aac6a559d27af6176b076ab6fb13c5974c213e3b" integrity sha512-XhahLSsCB6X6CJbe+uNu3Mn9sJBNFxtBN9NLgAOQovfS6Kh0lDUtmlclhjn9CvEK7A7YyRU13PXlNcpSiLI9Yw== dependencies: acorn "^6.1.1" acorn-dynamic-import "^4.0.0" acorn-walk "^6.1.1" xtend "^4.0.1" acorn-walk@^6.0.1, acorn-walk@^6.1.1: version "6.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== acorn@^5.0.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1, acorn@^6.1.1, acorn@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q== acorn@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== adjust-sourcemap-loader@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz#6471143af75ec02334b219f54bc7970c52fb29a4" integrity sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA== dependencies: assert "1.4.1" camelcase "5.0.0" loader-utils "1.2.3" object-path "0.11.4" regex-parser "2.2.10" admin-lte@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.2.tgz#8335714263af8b049799cc9effabd4fe9debdbb0" integrity sha512-D5eoQRAIXjUDDDO4/WK4Cd4ZJOjvVOP0bYYC38INV0XlmjQmOEvEZbcgKPraTjwEgNBFHctNIRtXFJbm8KpCOg== dependencies: "@fortawesome/fontawesome-free" "^5.11.2" "@fullcalendar/bootstrap" "^4.3.0" "@fullcalendar/core" "^4.3.1" "@fullcalendar/daygrid" "^4.3.0" "@fullcalendar/interaction" "^4.3.0" "@fullcalendar/timegrid" "^4.3.0" "@lgaitan/pace-progress" "^1.0.7" "@sweetalert2/theme-bootstrap-4" "^2.2.1" "@ttskch/select2-bootstrap4-theme" "^1.3.2" bootstrap "^4.3.1" bootstrap-colorpicker "^3.1.2" bootstrap-slider "^10.6.2" bootstrap-switch "^3.4.0" bootstrap4-duallistbox "^4.0.1" bs-custom-file-input "^1.3.2" chart.js "^2.9.3" datatables.net "^1.10.20" datatables.net-autofill-bs4 "^2.3.4" datatables.net-bs4 "^1.10.20" datatables.net-buttons-bs4 "^1.6.1" datatables.net-colreorder-bs4 "^1.5.2" datatables.net-fixedcolumns-bs4 "^3.3.0" datatables.net-fixedheader-bs4 "^3.1.6" datatables.net-keytable-bs4 "^2.5.1" datatables.net-responsive-bs4 "^2.2.3" datatables.net-rowgroup-bs4 "^1.1.1" datatables.net-rowreorder-bs4 "^1.2.6" datatables.net-scroller-bs4 "^2.0.1" datatables.net-select-bs4 "^1.3.1" daterangepicker "^3.0.5" ekko-lightbox "^5.3.0" fastclick "^1.0.6" filterizr "^2.2.3" flag-icon-css "^3.4.5" flot "^3.2.13" fs-extra "^8.1.0" icheck-bootstrap "^3.0.1" inputmask "^4.0.9" ion-rangeslider "^2.3.0" jquery "^3.4.1" jquery-knob-chif "^1.2.13" jquery-mapael "^2.2.0" jquery-mousewheel "^3.1.13" jquery-ui-dist "^1.12.1" jquery-validation "^1.19.1" jqvmap-novulnerability "^1.5.1" jsgrid "^1.5.3" jszip "^3.2.2" moment "^2.24.0" overlayscrollbars "^1.10.0" pdfmake "^0.1.62" popper.js "^1.16.0" raphael "^2.3.0" select2 "^4.0.12" sparklines "^1.2.0" summernote "^0.8.12" sweetalert2 "^8.19.0" tempusdominus-bootstrap-4 "^5.1.2" toastr "^2.1.4" aggregate-error@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= dependencies: string-width "^2.0.0" ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-escapes@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228" integrity sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q== dependencies: type-fest "^0.5.2" ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== dependencies: "@types/color-name" "^1.1.1" color-convert "^2.0.1" ansi-styles@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg== dependencies: "@types/color-name" "^1.1.1" color-convert "^2.0.1" ansi_up@>=1.1.3, ansi_up@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/ansi_up/-/ansi_up-4.0.4.tgz#5b8c35f0b02e4476f3f18cf89c3bf48d15d054f6" integrity sha512-vRxC8q6QY918MbehO869biJW4tiunJdjOhi5fpY6NLOliBQlZhOkKgABJKJqH+JZfb/WfjvjN1chLWI6tODerw== any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" append-transform@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== dependencies: default-require-extensions "^3.0.0" aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== arch@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" arity-n@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-from@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= dependencies: define-properties "^1.1.2" es-abstract "^1.7.0" array-map@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.2.tgz#8f3c71d245ba349b6b64b4078f76f5576f1fd723" integrity sha512-VXjh7lAL4KXKF2hY4FnEW9eRW6IhdvFW1sN/JwLbmECbCgACCnBHNyP3lFiYuttr0jxRN9Bsc5+G27dMseSWqQ== dependencies: define-properties "^1.1.3" es-abstract "^1.15.0" function-bind "^1.1.1" arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= dependencies: util "0.10.3" assert@^1.1.1, assert@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: object-assign "^4.1.1" util "0.10.3" assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-transform@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/ast-transform/-/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062" integrity sha1-dJRAWIh9goPhidlUYAlHvJj+AGI= dependencies: escodegen "~1.2.0" esprima "~1.0.4" through "~2.3.4" ast-types@^0.7.0: version "0.7.8" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" integrity sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk= astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= async-limiter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: lodash "^4.17.14" async@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/async/-/async-3.1.1.tgz#dd3542db03de837979c9ebbca64ca01b06dc98df" integrity sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g== asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^9.7.4: version "9.7.4" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== dependencies: browserslist "^4.8.3" caniuse-lite "^1.0.30001020" chalk "^2.4.2" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.26" postcss-value-parser "^4.0.2" aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== axios@^0.19.2: version "0.19.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== dependencies: follow-redirects "1.5.10" babel-eslint@^10.0.3: version "10.0.3" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== dependencies: "@babel/code-frame" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" eslint-visitor-keys "^1.0.0" resolve "^1.12.0" babel-loader@^8.0.6: version "8.0.6" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== dependencies: find-cache-dir "^2.0.0" loader-utils "^1.0.2" mkdirp "^0.5.1" pify "^4.0.1" +babel-plugin-add-module-exports@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.2.tgz#96cd610d089af664f016467fc4567c099cce2d9c" + integrity sha512-4paN7RivvU3Rzju1vGSHWPjO8Y0rI6droWvSFKI6dvEQ4mvoV0zGojnlzVRfI6N8zISo6VERXt3coIuVmzuvNg== + optionalDependencies: + chokidar "^2.0.4" + babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== dependencies: object.assign "^4.1.0" babel-plugin-istanbul@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" babel-runtime@^6.11.6: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" babelify@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== bail@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= base64-js@^1.0.2: version "1.3.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== base64-js@^1.1.2, base64-js@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: 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" batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= dependencies: inherits "~2.0.0" bluebird@3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== bluebird@3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bluebird@^3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== body-parser@1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: 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" bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: 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@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= bootstrap-colorpicker@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-3.1.2.tgz#42737d7fb3f52b42ad9e33ac97f021252307dfae" integrity sha512-yUWegXox8GYoXVtYdrEIN3QMOeEFbcSFGDadZu2pWmmMgTaw4ECX9T8GvYQzJkRusvK9uzi39FjE0W2k8lQECA== dependencies: bootstrap ">=4.0" jquery ">=2.1.0" bootstrap-loader@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/bootstrap-loader/-/bootstrap-loader-3.0.4.tgz#59a887022d43fecc859b3fe1711d19d5db37e4ec" integrity sha512-QRRB5FOEE1+9XAQ98PHgFgPxZFwHb4dTO+kMZt0heUQyhl+QmKATHs9A9KBZBiioJ8YPP21PqVKTpo1OD3ctKw== dependencies: chalk "2.4.2" escape-regexp "0.0.1" exports-loader "0.7.0" js-yaml "3.13.1" loader-utils "1.2.3" resolve "1.10.0" semver "5.5.0" strip-json-comments "^2.0.1" bootstrap-slider@^10.6.2: version "10.6.2" resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-10.6.2.tgz#7341f468c012bdaa6a1d8625d989fdeb8ed7dd38" integrity sha512-8JTPZB9QVOdrGzYF3YgC3YW6ssfPeBvBwZnXffiZ7YH/zz1D0EKlZvmQsm/w3N0XjVNYQEoQ0ax+jHrErV4K1Q== bootstrap-switch@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.4.0.tgz#6bbb0445ad8b4264883d06366d48aad3c06988f4" integrity sha512-P4Qdx7mLjqgilKQeeuDCf8AHWeO7992+NFfh0doAA/ExaJqr02QFHhq18GL8EYd2XRviJ16pUUyMRsfOVaPEVg== bootstrap4-duallistbox@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bootstrap4-duallistbox/-/bootstrap4-duallistbox-4.0.1.tgz#89fa6ece3496871bbdf0c63dc256dceb5324b203" integrity sha512-DlIvIhCY8LtlnPe1QYIl+iHpNAvKv/TBqhNGKI/OcuFBoQ1Cx2hVBiqKEFi5fFn0zSRZZdxCJ2RsmBrQurNMiQ== bootstrap@>=4.0, bootstrap@>=4.1.2, bootstrap@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.3.1.tgz#280ca8f610504d99d7b6b4bfc4b68cec601704ac" integrity sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag== bootstrap@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.4.1.tgz#8582960eea0c5cd2bede84d8b0baf3789c3e8b01" integrity sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA== boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== dependencies: ansi-align "^2.0.0" camelcase "^4.0.0" chalk "^2.0.1" cli-boxes "^1.0.0" string-width "^2.0.0" term-size "^1.2.0" widest-line "^2.0.0" brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" extend-shallow "^2.0.1" fill-range "^4.0.0" isobject "^3.0.1" repeat-element "^1.1.2" snapdragon "^0.8.1" snapdragon-node "^2.0.1" split-string "^3.0.2" to-regex "^3.0.1" braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brfs@^1.3.0, brfs@^1.4.0: version "1.6.1" resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3" integrity sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ== dependencies: quote-stream "^1.0.1" resolve "^1.1.5" static-module "^2.2.0" through2 "^2.0.0" brfs@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/brfs/-/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" integrity sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ== dependencies: quote-stream "^1.0.1" resolve "^1.1.5" static-module "^3.0.2" through2 "^2.0.0" brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= brotli@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.2.tgz#525a9cad4fcba96475d7d388f6aecb13eed52f46" integrity sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y= dependencies: base64-js "^1.1.2" browser-pack@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== dependencies: JSONStream "^1.0.3" combine-source-map "~0.8.0" defined "^1.0.0" safe-buffer "^5.1.1" through2 "^2.0.0" umd "^3.0.0" browser-process-hrtime@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== browser-resolve@^1.11.0, browser-resolve@^1.7.0, browser-resolve@^1.8.1: version "1.11.3" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: resolve "1.1.7" browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" evp_bytestokey "^1.0.3" inherits "^2.0.1" safe-buffer "^5.0.1" browserify-cipher@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" evp_bytestokey "^1.0.0" browserify-des@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" safe-buffer "^5.1.2" browserify-optional@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" integrity sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk= dependencies: ast-transform "0.0.0" ast-types "^0.7.0" browser-resolve "^1.8.1" browserify-rsa@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" randombytes "^2.0.1" browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" create-hash "^1.1.0" create-hmac "^1.1.2" elliptic "^6.0.0" inherits "^2.0.1" parse-asn1 "^5.0.0" browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserify@16.2.3: version "16.2.3" resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ== dependencies: JSONStream "^1.0.3" assert "^1.4.0" browser-pack "^6.0.1" browser-resolve "^1.11.0" browserify-zlib "~0.2.0" buffer "^5.0.2" cached-path-relative "^1.0.0" concat-stream "^1.6.0" console-browserify "^1.1.0" constants-browserify "~1.0.0" crypto-browserify "^3.0.0" defined "^1.0.0" deps-sort "^2.0.0" domain-browser "^1.2.0" duplexer2 "~0.1.2" events "^2.0.0" glob "^7.1.0" has "^1.0.0" htmlescape "^1.1.0" https-browserify "^1.0.0" inherits "~2.0.1" insert-module-globals "^7.0.0" labeled-stream-splicer "^2.0.0" mkdirp "^0.5.0" module-deps "^6.0.0" os-browserify "~0.3.0" parents "^1.0.1" path-browserify "~0.0.0" process "~0.11.0" punycode "^1.3.2" querystring-es3 "~0.2.0" read-only-stream "^2.0.0" readable-stream "^2.0.2" resolve "^1.1.4" shasum "^1.0.0" shell-quote "^1.6.1" stream-browserify "^2.0.0" stream-http "^2.0.0" string_decoder "^1.1.1" subarg "^1.0.0" syntax-error "^1.1.1" through2 "^2.0.0" timers-browserify "^1.0.1" tty-browserify "0.0.1" url "~0.11.0" util "~0.10.1" vm-browserify "^1.0.0" xtend "^4.0.0" browserify@^16.1.0: version "16.3.0" resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.3.0.tgz#4d414466e0b07492fff493a009ea883a9f2db230" integrity sha512-BWaaD7alyGZVEBBwSTYx4iJF5DswIGzK17o8ai9w4iKRbYpk3EOiprRHMRRA8DCZFmFeOdx7A385w2XdFvxWmg== dependencies: JSONStream "^1.0.3" assert "^1.4.0" browser-pack "^6.0.1" browser-resolve "^1.11.0" browserify-zlib "~0.2.0" buffer "^5.0.2" cached-path-relative "^1.0.0" concat-stream "^1.6.0" console-browserify "^1.1.0" constants-browserify "~1.0.0" crypto-browserify "^3.0.0" defined "^1.0.0" deps-sort "^2.0.0" domain-browser "^1.2.0" duplexer2 "~0.1.2" events "^2.0.0" glob "^7.1.0" has "^1.0.0" htmlescape "^1.1.0" https-browserify "^1.0.0" inherits "~2.0.1" insert-module-globals "^7.0.0" labeled-stream-splicer "^2.0.0" mkdirp "^0.5.0" module-deps "^6.0.0" os-browserify "~0.3.0" parents "^1.0.1" path-browserify "~0.0.0" process "~0.11.0" punycode "^1.3.2" querystring-es3 "~0.2.0" read-only-stream "^2.0.0" readable-stream "^2.0.2" resolve "^1.1.4" shasum "^1.0.0" shell-quote "^1.6.1" stream-browserify "^2.0.0" stream-http "^2.0.0" string_decoder "^1.1.1" subarg "^1.0.0" syntax-error "^1.1.1" through2 "^2.0.0" timers-browserify "^1.0.1" tty-browserify "0.0.1" url "~0.11.0" util "~0.10.1" vm-browserify "^1.0.0" xtend "^4.0.0" browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.2: version "4.6.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== dependencies: caniuse-lite "^1.0.30000984" electron-to-chromium "^1.3.191" node-releases "^1.1.25" browserslist@^4.8.3: version "4.8.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg== dependencies: caniuse-lite "^1.0.30001017" electron-to-chromium "^1.3.322" node-releases "^1.1.44" browserslist@^4.8.5: version "4.8.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.6.tgz#96406f3f5f0755d272e27a66f4163ca821590a7e" integrity sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg== dependencies: caniuse-lite "^1.0.30001023" electron-to-chromium "^1.3.341" node-releases "^1.1.47" bs-custom-file-input@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.2.tgz#c141c94071cc5e9ac4ea98479a1c204dd18e3b9a" integrity sha512-lzgtGX2GDo7nUmsTCcTvYkCc35d3/E14h+HXmFKV8z2EJmtkMcvYT8BsWOjK67+ogZR3kc8OfH5O8APjvDUtFg== buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= buffer-equal@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== buffer-json@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" buffer@^5.0.2: version "5.2.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^12.0.2: version "12.0.2" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.2.tgz#8db03205e36089a3df6954c66ce92541441ac46c" integrity sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg== dependencies: bluebird "^3.5.5" chownr "^1.1.1" figgy-pudding "^3.5.1" glob "^7.1.4" graceful-fs "^4.1.15" infer-owner "^1.0.3" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" rimraf "^2.6.3" ssri "^6.0.1" unique-filename "^1.1.1" y18n "^4.0.0" cacache@^12.0.3: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== dependencies: bluebird "^3.5.5" chownr "^1.1.1" figgy-pudding "^3.5.1" glob "^7.1.4" graceful-fs "^4.1.15" infer-owner "^1.0.3" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" rimraf "^2.6.3" ssri "^6.0.1" unique-filename "^1.1.1" y18n "^4.0.0" cacache@^13.0.1: version "13.0.1" resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== dependencies: chownr "^1.1.2" figgy-pudding "^3.5.1" fs-minipass "^2.0.0" glob "^7.1.4" graceful-fs "^4.2.2" infer-owner "^1.0.4" lru-cache "^5.1.1" minipass "^3.0.0" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" mkdirp "^0.5.1" move-concurrently "^1.0.1" p-map "^3.0.0" promise-inflight "^1.0.1" rimraf "^2.7.1" ssri "^7.0.0" unique-filename "^1.1.1" cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: 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" cache-loader@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== dependencies: buffer-json "^2.0.0" find-cache-dir "^3.0.0" loader-utils "^1.2.3" mkdirp "^0.5.1" neo-async "^2.6.1" schema-utils "^2.0.0" cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== cachedir@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== caching-transform@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== dependencies: hasha "^5.0.0" make-dir "^3.0.0" package-hash "^4.0.0" write-file-atomic "^3.0.0" caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= dependencies: camelcase "^2.0.0" map-obj "^1.0.0" camelcase-keys@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= dependencies: camelcase "^4.1.0" map-obj "^2.0.0" quick-lru "^1.0.0" camelcase-keys@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.1.1.tgz#0d24dde78cea4c7d2da7f4ea40b7995083328c8d" integrity sha512-kEPCddRFChEzO0d6w61yh0WbBiSv9gBnfZWGfXRYPlGqIdIGef6HMR6pgqVSEWCYkrp8B0AtEpEXNY+Jx0xk1A== dependencies: camelcase "^5.3.1" map-obj "^4.0.0" quick-lru "^4.0.1" camelcase@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== dependencies: browserslist "^4.0.0" caniuse-lite "^1.0.0" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000984: version "1.0.30000988" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000988.tgz#742f35ec1b8b75b9628d705d7652eea1fef983db" integrity sha512-lPj3T8poYrRc/bniW5SQPND3GRtSrQdUM/R4mCYTbZxyi3jQiggLvZH4+BYUuX0t4TXjU+vMM7KFDQg+rSzZUQ== caniuse-lite@^1.0.30001017: version "1.0.30001020" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" integrity sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA== caniuse-lite@^1.0.30001020: version "1.0.30001021" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001021.tgz#e75ed1ef6dbadd580ac7e7720bb16f07b083f254" integrity sha512-wuMhT7/hwkgd8gldgp2jcrUjOU9RXJ4XxGumQeOsUr91l3WwmM68Cpa/ymCnWEDqakwFXhuDQbaKNHXBPgeE9g== caniuse-lite@^1.0.30001023: version "1.0.30001025" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001025.tgz#30336a8aca7f98618eb3cf38e35184e13d4e5fe6" integrity sha512-SKyFdHYfXUZf5V85+PJgLYyit27q4wgvZuf8QTOk1osbypcROihMBlx9GRar2/pIcKH2r4OehdlBr9x6PXetAQ== capture-stack-trace@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= ccount@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" chalk@3.0.0, chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" has-ansi "^2.0.0" strip-ansi "^3.0.0" supports-color "^2.0.0" character-entities-html4@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.3.tgz#5ce6e01618e47048ac22f34f7f39db5c6fd679ef" integrity sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg== character-entities-legacy@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" integrity sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww== character-entities@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.3.tgz#bbed4a52fe7ef98cc713c6d80d9faa26916d54e6" integrity sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w== character-reference-invalid@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz#1647f4f726638d3ea4a750cf5d1975c1c7919a85" integrity sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg== chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== chart.js@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" integrity sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw== dependencies: chartjs-color "^2.1.0" moment "^2.10.2" chartjs-color-string@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== dependencies: color-name "^1.0.0" chartjs-color@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.3.0.tgz#0e7e1e8dba37eae8415fd3db38bf572007dd958f" integrity sha512-hEvVheqczsoHD+fZ+tfPUE+1+RbV6b+eksp2LwAhwRTVXEjCSEavvk+Hg3H6SZfGlPh/UfmWKGIvZbtobOEm3g== dependencies: chartjs-color-string "^0.6.0" color-convert "^0.5.3" check-more-types@2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= chokidar@3.3.0, chokidar@^3.2.2: version "3.3.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== dependencies: anymatch "~3.1.1" braces "~3.0.2" glob-parent "~5.1.0" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" readdirp "~3.2.0" optionalDependencies: fsevents "~2.1.1" chokidar@^2.0.2, chokidar@^2.1.1: version "2.1.6" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== dependencies: anymatch "^2.0.0" async-each "^1.0.1" braces "^2.3.2" glob-parent "^3.1.0" inherits "^2.0.3" is-binary-path "^1.0.0" is-glob "^4.0.0" normalize-path "^3.0.0" path-is-absolute "^1.0.0" readdirp "^2.2.1" upath "^1.1.1" optionalDependencies: fsevents "^1.2.7" -chokidar@^2.1.8: +chokidar@^2.0.4, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" braces "^2.3.2" glob-parent "^3.1.0" inherits "^2.0.3" is-binary-path "^1.0.0" is-glob "^4.0.0" normalize-path "^3.0.0" path-is-absolute "^1.0.0" readdirp "^2.2.1" upath "^1.1.1" optionalDependencies: fsevents "^1.2.7" chosen-js@^1.8.7: version "1.8.7" resolved "https://registry.yarnpkg.com/chosen-js/-/chosen-js-1.8.7.tgz#9bfa5597f5081d602ff4ae904af9aef33265bb1d" integrity sha512-eVdrZJ2U5ISdObkgsi0od5vIJdLwq1P1Xa/Vj/mgxkMZf14DlgobfB6nrlFi3kW4kkvKLsKk4NDqZj1MU1DCpw== chownr@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== chownr@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== dependencies: tslib "^1.9.0" ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" define-property "^0.2.5" isobject "^3.0.0" static-extend "^0.1.1" clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== clean-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" integrity sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A== dependencies: "@types/webpack" "^4.4.31" del "^4.1.1" cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= dependencies: restore-cursor "^1.0.1" cli-cursor@^2.0.0, cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= dependencies: slice-ansi "0.0.4" string-width "^1.0.1" cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= clipboard@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ== dependencies: good-listener "^1.2.2" select "^1.1.2" tiny-emitter "^2.0.0" cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" wrap-ansi "^2.0.0" cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" wrap-ansi "^2.0.0" cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" strip-ansi "^5.2.0" wrap-ansi "^5.1.0" cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^6.2.0" clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: is-plain-object "^2.0.4" kind-of "^6.0.2" shallow-clone "^3.0.0" clone-regexp@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f" integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q== dependencies: is-regexp "^2.0.0" clone@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= clone@^2.1.1, clone@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== dependencies: "@types/q" "^1.5.1" chalk "^2.4.1" q "^1.1.2" code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= coffeeify@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/coffeeify/-/coffeeify-3.0.1.tgz#5e2753000c50bd24c693115f33864248dd11136c" integrity sha512-Qjnr7UX6ldK1PHV7wCnv7AuCd4q19KTUtwJnu/6JRJB4rfm12zvcXtKdacUoePOKr1I4ka/ydKiwWpNAdsQb0g== dependencies: convert-source-map "^1.3.0" through2 "^2.0.0" coffeescript@1.12.7: version "1.12.7" resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== collapse-white-space@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" color-convert@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0= color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.5.2: version "1.5.3" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== dependencies: color-convert "^1.9.1" color-string "^1.5.2" combine-source-map@^0.8.0, combine-source-map@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= dependencies: convert-source-map "~1.1.0" inline-source-map "~0.6.0" lodash.memoize "~3.0.3" source-map "~0.5.3" combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@2, commander@^2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== commander@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.0.tgz#545983a0603fe425bc672d66c9e3c89c42121a83" integrity sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw== common-tags@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== compose-function@3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= dependencies: arity-n "^1.0.4" compressible@~2.0.16: version "2.0.17" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== dependencies: mime-db ">= 1.40.0 < 2" compression@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" bytes "3.0.0" compressible "~2.0.16" debug "2.6.9" on-headers "~1.0.2" safe-buffer "5.1.2" vary "~1.1.2" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@1.6.2, concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" configstore@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== dependencies: dot-prop "^4.1.0" graceful-fs "^4.1.2" make-dir "^1.0.0" unique-string "^1.0.0" write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= constants-browserify@^1.0.0, constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@1.7.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" convert-source-map@^0.3.3: version "0.3.5" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= convert-source-map@^1.1.0, convert-source-map@^1.3.0, convert-source-map@^1.5.1: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== dependencies: safe-buffer "~5.1.1" convert-source-map@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" iferr "^0.1.5" mkdirp "^0.5.1" rimraf "^2.5.4" run-queue "^1.0.0" copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-webpack-plugin@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== dependencies: cacache "^12.0.3" find-cache-dir "^2.1.0" glob-parent "^3.1.0" globby "^7.1.1" is-glob "^4.0.1" loader-utils "^1.2.3" minimatch "^3.0.4" normalize-path "^3.0.0" p-limit "^2.2.1" schema-utils "^1.0.0" serialize-javascript "^2.1.2" webpack-log "^2.0.0" core-js-compat@^3.1.1: version "3.1.4" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz#e4d0c40fbd01e65b1d457980fe4112d4358a7408" integrity sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg== dependencies: browserslist "^4.6.2" core-js-pure "3.1.4" semver "^6.1.1" core-js-compat@^3.6.2: version "3.6.3" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.3.tgz#41e281ca771209d5f2eb63ce34f96037d0928538" integrity sha512-Y3YNGU3bU1yrnzVodop23ghArbKv4IqkZg9MMOWv/h7KT6NRk1/SzHhWDDlubg2+tlcUzAqgj1/GyeJ9fUKMeg== dependencies: browserslist "^4.8.3" semver "7.0.0" core-js-pure@3.1.4, core-js-pure@^3.0.0: version "3.1.4" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA== core-js@^2.4.0: version "2.6.10" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== core-js@^3.6.4: version "3.6.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" js-yaml "^3.13.1" parse-json "^4.0.0" cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.1.0" parse-json "^5.0.0" path-type "^4.0.0" yaml "^1.7.2" create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== dependencies: bn.js "^4.1.0" elliptic "^6.0.0" create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= dependencies: capture-stack-trace "^1.0.0" create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" md5.js "^1.3.4" ripemd160 "^2.0.1" sha.js "^2.4.0" create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" inherits "^2.0.1" ripemd160 "^2.0.0" safe-buffer "^5.0.1" sha.js "^2.4.8" cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" semver "^5.5.0" shebang-command "^1.2.0" which "^1.2.9" cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= dependencies: lru-cache "^4.0.1" which "^1.2.9" cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" cross-spawn@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" which "^2.0.1" crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" create-ecdh "^4.0.0" create-hash "^1.1.0" create-hmac "^1.1.0" diffie-hellman "^5.0.0" inherits "^2.0.1" pbkdf2 "^3.0.3" public-encrypt "^4.0.0" randombytes "^2.0.0" randomfill "^1.0.3" crypto-js@^3.1.9-1: version "3.1.9-1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" integrity sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg= crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-declaration-sorter@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== dependencies: postcss "^7.0.1" timsort "^0.3.0" css-loader@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" integrity sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" icss-utils "^4.1.1" loader-utils "^1.2.3" normalize-path "^3.0.0" postcss "^7.0.23" postcss-modules-extract-imports "^2.0.0" postcss-modules-local-by-default "^3.0.2" postcss-modules-scope "^2.1.1" postcss-modules-values "^3.0.0" postcss-value-parser "^4.0.2" schema-utils "^2.6.0" css-select-base-adapter@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== dependencies: boolbase "^1.0.0" css-what "^2.1.2" domutils "^1.7.0" nth-check "^1.0.2" css-tree@1.0.0-alpha.29: version "1.0.0-alpha.29" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== dependencies: mdn-data "~1.1.0" source-map "^0.5.3" css-tree@1.0.0-alpha.33: version "1.0.0-alpha.33" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== dependencies: mdn-data "2.0.4" source-map "^0.5.3" css-unit-converter@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= css-what@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== css@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== dependencies: inherits "^2.0.3" source-map "^0.6.1" source-map-resolve "^0.5.2" urix "^0.1.0" cssesc@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== cssnano-preset-default@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== dependencies: 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" cssnano-util-get-arguments@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= cssnano-util-get-match@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= cssnano-util-raw-cache@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== dependencies: postcss "^7.0.0" cssnano-util-same-parent@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== cssnano@^4.1.10: version "4.1.10" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== dependencies: cosmiconfig "^5.0.0" cssnano-preset-default "^4.0.7" is-resolvable "^1.0.0" postcss "^7.0.0" csso@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== dependencies: css-tree "1.0.0-alpha.29" cssom@0.3.x, cssom@^0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== cssstyle@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== dependencies: cssom "0.3.x" currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= -cypress-multi-reporters@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/cypress-multi-reporters/-/cypress-multi-reporters-1.2.3.tgz#4ba39373631c6521d21931d73f6b0bafa1ccbf83" - integrity sha512-W3ItWsbSgMfsQFTuB89OXY5gyqLuM0O2lNEn+mcQAYeMs36TxVLAg3q+Hk0Om+NcWj8OLhM06lBQpnu9+i4gug== +cypress-multi-reporters@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/cypress-multi-reporters/-/cypress-multi-reporters-1.2.4.tgz#bf6c95f39f9d2ce210d83e096f452a306bcd49fc" + integrity sha512-JTsF02I2KH1HM+cUEKeJih8EtjFv6jWVrYlRlJAnomwE5UqRQ3M7cAuw+zqBfNSTIvhOzNHtN3LyxomfhycuAQ== dependencies: debug "^4.1.1" lodash "^4.17.11" -cypress@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-4.0.1.tgz#815da77c8e2528501b9af2e8d12cfcaec8c9dde7" - integrity sha512-P+cSwc5yE+1hIkWwJzpsiSQthKmzkFeFz2ySejSrJJ6FiXoL8pp0vr1cyWp+75KT4nqL9IYt1GMrHp+mVmvocA== +cypress@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-4.0.2.tgz#ede194d7bc73fb449f8de553c9e1db4ca15309ef" + integrity sha512-WRzxOoSd+TxyXKa7Zi9orz3ii5VW7yhhVYstCU+EpOKfPan9x5Ww2Clucmy4H/W0GHUYAo7GYFZRD33ZCSNBQA== dependencies: "@cypress/listr-verbose-renderer" "0.4.1" "@cypress/xvfb" "1.2.4" "@types/sizzle" "2.3.2" arch "2.1.1" bluebird "3.7.2" cachedir "2.3.0" chalk "3.0.0" check-more-types "2.24.0" commander "4.1.0" common-tags "1.8.0" debug "4.1.1" eventemitter2 "4.1.2" execa "3.3.0" executable "4.1.1" extract-zip "1.6.7" fs-extra "8.1.0" getos "3.1.4" is-ci "2.0.0" is-installed-globally "0.1.0" lazy-ass "1.6.0" listr "0.14.3" lodash "4.17.15" log-symbols "3.0.0" minimist "1.2.0" moment "2.24.0" ramda "0.26.1" request "2.88.0" request-progress "3.0.0" supports-color "7.1.0" tmp "0.1.0" untildify "4.0.0" url "0.11.0" yauzl "2.10.0" d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: version "1.2.4" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== d3-axis@1: version "1.0.12" resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== d3-brush@1: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.6.tgz#33691f2032d9db6c5d8cb684ff255a9883629e21" integrity sha512-lGSiF5SoSqO5/mYGD5FAeGKKS62JdA1EV7HPrU2b5rTX4qEJJtpjaGLJngjnkewQy7UnGstnFd3168wpf5z76w== dependencies: d3-dispatch "1" d3-drag "1" d3-interpolate "1" d3-selection "1" d3-transition "1" d3-chord@1: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== dependencies: d3-array "1" d3-path "1" d3-collection@1: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== d3-color@1: version "1.3.0" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.3.0.tgz#675818359074215b020dc1d41d518136dcb18fa9" integrity sha512-NHODMBlj59xPAwl2BDiO2Mog6V+PrGRtBfWKqKRrs9MCqlSkIEb0Z/SfY7jW29ReHTDC/j+vwXhnZcXI3+3fbg== d3-contour@1: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== dependencies: d3-array "^1.1.1" d3-dispatch@1: version "1.0.5" resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" integrity sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g== d3-drag@1: version "1.2.3" resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.3.tgz#46e206ad863ec465d88c588098a1df444cd33c64" integrity sha512-8S3HWCAg+ilzjJsNtWW1Mutl74Nmzhb9yU6igspilaJzeZVFktmY6oO9xOh5TDk+BM2KrNFjttZNoJJmDnkjkg== dependencies: d3-dispatch "1" d3-selection "1" d3-dsv@1: version "1.1.1" resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.1.1.tgz#aaa830ecb76c4b5015572c647cc6441e3c7bb701" integrity sha512-1EH1oRGSkeDUlDRbhsFytAXU6cAmXFzc52YUe6MRlPClmWb85MP1J5x+YJRzya4ynZWnbELdSAvATFW/MbxaXw== dependencies: commander "2" iconv-lite "0.4" rw "1" d3-ease@1: version "1.0.5" resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== d3-fetch@1: version "1.1.2" resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz#957c8fbc6d4480599ba191b1b2518bf86b3e1be2" integrity sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA== dependencies: d3-dsv "1" d3-force@1: version "1.2.1" resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== dependencies: d3-collection "1" d3-dispatch "1" d3-quadtree "1" d3-timer "1" d3-format@1: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.3.2.tgz#6a96b5e31bcb98122a30863f7d92365c00603562" integrity sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ== d3-geo@1: version "1.11.6" resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.6.tgz#134f2ef035ff75a448075fafdea92702a2e0e0cf" integrity sha512-z0J8InXR9e9wcgNtmVnPTj0TU8nhYT6lD/ak9may2PdKqXIeHUr8UbFLoCtrPYNsjv6YaLvSDQVl578k6nm7GA== dependencies: d3-array "1" d3-hierarchy@1: version "1.1.8" resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz#7a6317bd3ed24e324641b6f1e76e978836b008cc" integrity sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w== d3-interpolate@1: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w== dependencies: d3-color "1" d3-path@1: version "1.0.8" resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.8.tgz#4a0606a794d104513ec4a8af43525f374b278719" integrity sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg== d3-polygon@1: version "1.0.5" resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.5.tgz#9a645a0a64ff6cbf9efda96ee0b4a6909184c363" integrity sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w== d3-quadtree@1: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.6.tgz#d1ab2a95a7f27bbde88582c94166f6ae35f32056" integrity sha512-NUgeo9G+ENQCQ1LsRr2qJg3MQ4DJvxcDNCiohdJGHt5gRhBW6orIB5m5FJ9kK3HNL8g9F4ERVoBzcEwQBfXWVA== d3-random@1: version "1.1.2" resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== d3-scale-chromatic@1: version "1.3.3" resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz#dad4366f0edcb288f490128979c3c793583ed3c0" integrity sha512-BWTipif1CimXcYfT02LKjAyItX5gKiwxuPRgr4xM58JwlLocWbjPLI7aMEjkcoOQXMkYsmNsvv3d2yl/OKuHHw== dependencies: d3-color "1" d3-interpolate "1" d3-scale@2: version "2.2.2" resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== dependencies: d3-array "^1.2.0" d3-collection "1" d3-format "1" d3-interpolate "1" d3-time "1" d3-time-format "2" d3-selection@1, d3-selection@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474" integrity sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg== d3-shape@1: version "1.3.5" resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.5.tgz#e81aea5940f59f0a79cfccac012232a8987c6033" integrity sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg== dependencies: d3-path "1" d3-time-format@2: version "2.1.3" resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.3.tgz#ae06f8e0126a9d60d6364eac5b1533ae1bac826b" integrity sha512-6k0a2rZryzGm5Ihx+aFMuO1GgelgIz+7HhB4PH4OEndD5q2zGn1mDfRdNrulspOfR6JXkb2sThhDK41CSK85QA== dependencies: d3-time "1" d3-time@1: version "1.0.11" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.11.tgz#1d831a3e25cd189eb256c17770a666368762bbce" integrity sha512-Z3wpvhPLW4vEScGeIMUckDW7+3hWKOQfAWg/U7PlWBnQmeKQ00gCUsTtWSYulrKNA7ta8hJ+xXc6MHrMuITwEw== d3-timer@1: version "1.0.9" resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" integrity sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg== d3-transition@1: version "1.2.0" resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.2.0.tgz#f538c0e21b2aa1f05f3e965f8567e81284b3b2b8" integrity sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw== dependencies: d3-color "1" d3-dispatch "1" d3-ease "1" d3-interpolate "1" d3-selection "^1.1.0" d3-timer "1" d3-voronoi@1: version "1.1.4" resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== d3-zoom@1: version "1.7.3" resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.3.tgz#f444effdc9055c38077c4299b4df999eb1d47ccb" integrity sha512-xEBSwFx5Z9T3/VrwDkMt+mr0HCzv7XjpGURJ8lWmIC8wxe32L39eWHIasEe/e7Ox8MPU4p1hvH8PKN2olLzIBg== dependencies: d3-dispatch "1" d3-drag "1" d3-interpolate "1" d3-selection "1" d3-transition "1" d3@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/d3/-/d3-5.15.0.tgz#ffd44958e6a3cb8a59a84429c45429b8bca5677a" integrity sha512-C+E80SL2nLLtmykZ6klwYj5rPqB5nlfN5LdWEAVdWPppqTD8taoJi2PxLZjPeYT8FFRR2yucXq+kBlOnnvZeLg== dependencies: d3-array "1" d3-axis "1" d3-brush "1" d3-chord "1" d3-collection "1" d3-color "1" d3-contour "1" d3-dispatch "1" d3-drag "1" d3-dsv "1" d3-ease "1" d3-fetch "1" d3-force "1" d3-format "1" d3-geo "1" d3-hierarchy "1" d3-interpolate "1" d3-path "1" d3-polygon "1" d3-quadtree "1" d3-random "1" d3-scale "2" d3-scale-chromatic "1" d3-selection "1" d3-shape "1" d3-time "1" d3-time-format "2" d3-timer "1" d3-transition "1" d3-voronoi "1" d3-zoom "1" d@1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" type "^1.0.1" dash-ast@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" data-urls@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== dependencies: abab "^2.0.0" whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" datatables.net-autofill-bs4@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/datatables.net-autofill-bs4/-/datatables.net-autofill-bs4-2.3.4.tgz#761fe2873f5350d1388a8edc6cf660e8047b186f" integrity sha512-oqmR84gwsMFOj4OPwuGxSv6tbJWb8DDOqS3Ltg///gEPsgHgFgF0Si3GDLwNGtzF87T9G/q7HpVO3ZUmM5ChZw== dependencies: datatables.net-autofill "2.3.4" datatables.net-bs4 "^1.10.15" jquery ">=1.7" datatables.net-autofill@2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/datatables.net-autofill/-/datatables.net-autofill-2.3.4.tgz#f509249fa58ebaf1be8ac3b470016037698a979c" integrity sha512-0mVCKbtgz8bAxb7Rt0MKjduJiTQNkLM6nPFkqPlMiTzGqlDjixrPA8BV35N60CptKhH8A/twy1sr9lHVrg/Niw== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-bs4@^1.10.15: version "1.10.19" resolved "https://registry.yarnpkg.com/datatables.net-bs4/-/datatables.net-bs4-1.10.19.tgz#0608dff22008cf3c7b8a68b1bc702ed255b404fb" integrity sha512-pgeP17w4aPR7HIxIwuJghfqXULjdg1K6xMUUKDyCERJRSNNK4MRToFfELtIsluLNN555YBK4Kx8nihX5/ZT1Fw== dependencies: datatables.net "1.10.19" jquery ">=1.7" datatables.net-bs4@^1.10.20: version "1.10.20" resolved "https://registry.yarnpkg.com/datatables.net-bs4/-/datatables.net-bs4-1.10.20.tgz#beff1c8d3510826c0678eaa055270607c0e53882" integrity sha512-kQmMUMsHMOlAW96ztdoFqjSbLnlGZQ63iIM82kHbmldsfYdzuyhbb4hTx6YNBi481WCO3iPSvI6YodNec46ZAw== dependencies: datatables.net "1.10.20" jquery ">=1.7" datatables.net-buttons-bs4@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/datatables.net-buttons-bs4/-/datatables.net-buttons-bs4-1.6.1.tgz#4abd9c83fbd753ffa4913adca1fae094df64b3ba" integrity sha512-PdE1vrnRIeX+p++wnbpdnr97kgTCs+DDomtTccsQvMrFm29lxVa7uTz1awasfGRrCrJzpb5HjPrPJBzbGHrUyg== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-buttons "1.6.1" jquery ">=1.7" datatables.net-buttons@1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/datatables.net-buttons/-/datatables.net-buttons-1.6.1.tgz#f62847e7c6f905fcf7339e7541a40741bbb3b8fb" integrity sha512-Lcgvi/xGB2X0jr1n/uQMmg43Z1JQO6aaGjPHO+sAQAMfBGBi9cK1hhfM4Vg8gzC5fz3sW4QrtjAdKvOPnQ1A3w== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-colreorder-bs4@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/datatables.net-colreorder-bs4/-/datatables.net-colreorder-bs4-1.5.2.tgz#4fe1a9ffe679e7e84f3ccb58c9c4d31ac0d49a1b" integrity sha512-L5omHV0agczRZwR9eismTOq+/9/glQqZUeRfigEc+5oMKLnubJkVHQLOanY2duDl3stvsZ6ebWbXWEh6tndgDg== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-colreorder "1.5.2" jquery ">=1.7" datatables.net-colreorder@1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/datatables.net-colreorder/-/datatables.net-colreorder-1.5.2.tgz#c425cee1f88b3246be0363c67a152be743ca6bce" integrity sha512-77ShdeM7QjKI6M1jfWQ4ZempSYMmmpe9NqjimHBp+o9lAto789YdCLiFrW71dwn1v8Awp4qcMShqHNxGzR/HVg== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-fixedcolumns-bs4@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/datatables.net-fixedcolumns-bs4/-/datatables.net-fixedcolumns-bs4-3.3.0.tgz#15fc5e6cc7ccf5c60bbebe47185476b699a43e40" integrity sha512-X6EVk0Y5pE4yfCM+Igk1nUrBu1ou1abyldWERqs0mc/x95TFPTc0pqy5XEb/bxvzi0oyYNR2Pojq4j48uLK+iQ== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-fixedcolumns "3.3.0" jquery ">=1.7" datatables.net-fixedcolumns@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/datatables.net-fixedcolumns/-/datatables.net-fixedcolumns-3.3.0.tgz#885b35b7f155ff5e08e1532e23363f14050bb1af" integrity sha512-+/LJKQyOlUb7j9mD8oCDs5pd6egi1zPI65YaXPwKlwYlX+fI4BNkHhGwmxCrCDM2nS6/2tA59OuNkfLNCKlx1Q== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-fixedheader-bs4@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/datatables.net-fixedheader-bs4/-/datatables.net-fixedheader-bs4-3.1.6.tgz#d1b12981bf127cfef658a0a742719aaeac6894eb" integrity sha512-mat50UvCNhE5E2jhqEAO07LJ7I++pxFwpbNUfVtuFg866Tf3uHAKHgsXnsXW8kqiER931g4LbxO28axyquj1tw== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-fixedheader "3.1.6" jquery ">=1.7" datatables.net-fixedheader@3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/datatables.net-fixedheader/-/datatables.net-fixedheader-3.1.6.tgz#b139b88a213460dbeca5080c6251e81575697188" integrity sha512-EMx2JogtXEQObaF7ylgB+pY4/vWhu/plTZNf5EvNMAboRha6FT4+14CHIyARVM/bjySPU+6advtft02pW3KxJg== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-keytable-bs4@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/datatables.net-keytable-bs4/-/datatables.net-keytable-bs4-2.5.1.tgz#011b1950322d9038b1a1958d0a3e58679d902cb2" integrity sha512-K3WlmCxVsmUpIKNEbP+2gggJ4eVnHI8NUleSDagmpromxErxmvsli7Sa35ZCRaCkMn/81TwFMIA2cHKfYotJyQ== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-keytable "2.5.1" jquery ">=1.7" datatables.net-keytable@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/datatables.net-keytable/-/datatables.net-keytable-2.5.1.tgz#7a6ba0b8085eaacc2cdc20f6348e8abd77b899c6" integrity sha512-06b1ilIyIaEK3jcCqHjcZCIBjgSBwW/Aj/H8TMS/J0pO//UR/N0t3O9lvklqZurTtKCkP2HDaS+hgTavgyWnJA== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-responsive-bs4@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/datatables.net-responsive-bs4/-/datatables.net-responsive-bs4-2.2.3.tgz#639de17c1d31210ebf2b3c25f1c774c13f729e94" integrity sha512-SQaWI0uLuPcaiBBin9zX+MuQfTSIkK1bYxbXqUV6NLkHCVa6PMQK7Rvftj0ywG4R7uOtjbzY8nSVqxEKvQI0Vg== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-responsive "2.2.3" jquery ">=1.7" datatables.net-responsive@2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/datatables.net-responsive/-/datatables.net-responsive-2.2.3.tgz#50a2b1b4955b16b32f573a3f00f473b0bfbee913" integrity sha512-8D6VtZcyuH3FG0Hn5A4LPZQEOX3+HrRFM7HjpmsQc/nQDBbdeBLkJX4Sh/o1nzFTSneuT1Wh/lYZHVPpjcN+Sw== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-rowgroup-bs4@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/datatables.net-rowgroup-bs4/-/datatables.net-rowgroup-bs4-1.1.1.tgz#57c17e611f8f8ec0aa456fd325bbf466545c230d" integrity sha512-39+6bqlF5emY2VJOTgwEfbJMBjxveKGrKnZb5ltTzCp70q5mX+OTzJVJJlKI6wXjQXx5765B6xbFHNGKIRPNHw== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-rowgroup "1.1.1" jquery ">=1.7" datatables.net-rowgroup@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/datatables.net-rowgroup/-/datatables.net-rowgroup-1.1.1.tgz#616531e5fb3c8642f6a51fb14801f8aff50cf90e" integrity sha512-uGdD7t7quFZ1Qnze0ScO4qmreoxK07rp9ukU68/ITkWCQjYOfXoqB8izJP9o+TYs7P8sM4Q8ecxzPm7z5pOauw== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-rowreorder-bs4@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/datatables.net-rowreorder-bs4/-/datatables.net-rowreorder-bs4-1.2.6.tgz#b3333ede3d84d6b5cce346d1aece1fb0d2a937ac" integrity sha512-Ld1liPNlhOBXjZFg+OpzRdAcYvQNe2JgbXOc2rl2XcU89VHrT5LARt0oZoyuyJiuEIlBgoxNnBzXXw1dFrP5zg== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-rowreorder "1.2.6" jquery ">=1.7" datatables.net-rowreorder@1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/datatables.net-rowreorder/-/datatables.net-rowreorder-1.2.6.tgz#e1788c4dea84b12223bc5dde3e4a70c316a12ae6" integrity sha512-bGlFPR/0o4YxBAiU6MWB9TZgJHOI6NduQL4vGoQj9/KvqkgzT1EUTOxmv0NKTP7uDO1x5ZEyPhmscIae9ATIIA== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-scroller-bs4@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/datatables.net-scroller-bs4/-/datatables.net-scroller-bs4-2.0.1.tgz#aa7d33eee1cd26e03c6e5598116292d91874acae" integrity sha512-NMZNU36aAfNYmryZz8j5EsO6mnUxoyx+5j8PxSNfyrNhMVFtFmSCRJrWNfmfYN5zpOe3/XgjbXytaD5LdWHszg== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-scroller "2.0.1" jquery ">=1.7" datatables.net-scroller@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/datatables.net-scroller/-/datatables.net-scroller-2.0.1.tgz#17040d3f1da9b4e174729b6b7f0e36b6bf818adc" integrity sha512-FnbJXT1Zu8FVK+wXcMuEVyFJkLXDi65i+jPCSVH2ZkNSPp+mfeBVtZH41MLGspNouP/IdudKIoCXzPNR/+OhpQ== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-select-bs4@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/datatables.net-select-bs4/-/datatables.net-select-bs4-1.3.1.tgz#1c39c7fd5bfb66b5c8402611c2c64fc47e3cfca4" integrity sha512-8UOBxChTsn24nP/ZOsIMGZOdTJymQZ8WcQ81NcGgyDz6b4JlsQl8Bwb89AcVT7hncMquPJ3d5WUGG4I9WMhAlw== dependencies: datatables.net-bs4 "^1.10.15" datatables.net-select "1.3.1" jquery ">=1.7" datatables.net-select@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/datatables.net-select/-/datatables.net-select-1.3.1.tgz#ec2c3ad7df2bc9c13c09587d0bfd0ceba52a8bff" integrity sha512-PeVd/hlAX58QzL0+mGvxnXP7ylLtzZMeAots/uZkQi+6c/KI6JuP8LCJoEMHAsSjQM/BnG7Uw8E1YGOz1tZpQQ== dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net@1.10.19, datatables.net@^1.10.15: version "1.10.19" resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.19.tgz#97a1ed41c85e62d61040603481b59790a172dd1f" integrity sha512-+ljXcI6Pj3PTGy5pesp3E5Dr3x3AV45EZe0o1r0gKENN2gafBKXodVnk2ypKwl2tTmivjxbkiqoWnipTefyBTA== dependencies: jquery ">=1.7" datatables.net@1.10.20, datatables.net@^1.10.20: version "1.10.20" resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.20.tgz#9d65ecc3c83cbe7baa4fa5a053405c8fe42c1350" integrity sha512-4E4S7tTU607N3h0fZPkGmAtr9mwy462u+VJ6gxYZ8MxcRIjZqHy3Dv1GNry7i3zQCktTdWbULVKBbkAJkuHEnQ== dependencies: jquery ">=1.7" date-fns@^1.27.2: version "1.30.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= dateformat@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== daterangepicker@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/daterangepicker/-/daterangepicker-3.0.5.tgz#97180f233cf9c222cd0767b9c37c2926976d633a" integrity sha512-BoVV+OjVARWNE15iF+3Y2QIMioAD2UODHvJwIq+NtG0vxh61dXRmOMXlw2dsvxS8KY4n5uvIcBfIPiEiiGJcBg== dependencies: jquery ">=1.10" moment "^2.9.0" debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@3.2.6, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" debug@=3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: decamelize "^1.1.0" map-obj "^1.0.0" decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== dependencies: 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-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== dependencies: execa "^1.0.0" ip-regex "^2.1.0" default-require-extensions@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg== dependencies: strip-bom "^4.0.0" define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== dependencies: "@types/glob" "^7.1.1" globby "^6.1.0" is-path-cwd "^2.0.0" is-path-in-cwd "^2.0.0" p-map "^2.0.0" pify "^4.0.1" rimraf "^2.6.3" delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegate@^3.1.2: version "3.2.0" resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= deps-sort@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" integrity sha1-CRckkC6EZYJg65EHSMzNGvbiH7U= dependencies: JSONStream "^1.0.3" shasum "^1.0.0" subarg "^1.0.0" through2 "^2.0.0" des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== detective@^5.0.2: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== dependencies: acorn-node "^1.6.1" defined "^1.0.0" minimist "^1.1.1" dfa@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" integrity sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q== diff@3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diff@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" randombytes "^2.0.0" dir-glob@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== dependencies: path-type "^3.0.0" dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" dns-txt@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: buffer-indexof "^1.0.0" doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= dependencies: esutils "^2.0.2" isarray "^1.0.0" doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dom-serializer@0: version "0.2.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== dependencies: domelementtype "^2.0.1" entities "^2.0.0" domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== dependencies: webidl-conversions "^4.0.2" domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" dompurify@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.0.8.tgz#6ef89d2d227d041af139c7b01d9f67ed59c2eb3c" integrity sha512-vIOSyOXkMx81ghEalh4MLBtDHMx1bhKlaqHDMqM2yeitJ996SLOk5mGdDpI9ifJAgokred8Rmu219fX4OltqXw== domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" dot-prop@^4.1.0, dot-prop@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== dependencies: is-obj "^1.0.0" duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2, duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= dependencies: readable-stream "^2.0.2" duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= ejs@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz#30c8f6ee9948502cc32e85c37a3f8b39b5a614a5" integrity sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw== ekko-lightbox@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ekko-lightbox/-/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" integrity sha512-mbacwySuVD3Ad6F2hTkjSTvJt59bcVv2l/TmBerp4xZnLak8tPtA4AScUn4DL42c1ksTiAO6sGhJZ52P/1Qgew== electron-to-chromium@^1.3.191: version "1.3.211" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.211.tgz#0c39d17316bf342d1971fed68e754fa1775918f7" integrity sha512-GZAiK3oHrs0K+LwH+HD+bdjZ17v40oQQdXbbd3dgrwgbENvazrGpcuIADSAREWnxzo9gADB1evuizrbXsnoU2Q== electron-to-chromium@^1.3.322: version "1.3.322" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== electron-to-chromium@^1.3.341: version "1.3.345" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.345.tgz#2569d0d54a64ef0f32a4b7e8c80afa5fe57c5d98" integrity sha512-f8nx53+Z9Y+SPWGg3YdHrbYYfIJAtbUjpFfW4X1RwTZ94iUG7geg9tV8HqzAXX7XTNgyWgAFvce4yce8ZKxKmg== elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= elliptic@^6.0.0: version "6.5.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== dependencies: bn.js "^4.4.0" brorand "^1.0.1" hash.js "^1.0.0" hmac-drbg "^1.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: once "^1.4.0" enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" tapable "^1.0.0" entities@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== dependencies: es-to-primitive "^1.2.0" function-bind "^1.1.1" has "^1.0.3" is-callable "^1.1.4" is-regex "^1.0.4" object-keys "^1.0.12" es-abstract@^1.15.0: version "1.16.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.3.tgz#52490d978f96ff9f89ec15b5cf244304a5bca161" integrity sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" is-callable "^1.1.4" is-regex "^1.0.4" object-inspect "^1.7.0" object-keys "^1.1.1" string.prototype.trimleft "^2.1.0" string.prototype.trimright "^2.1.0" es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: version "0.10.50" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.1" next-tick "^1.0.0" es6-error@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== es6-iterator@2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" es5-ext "^0.10.35" es6-symbol "^3.1.1" es6-map@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= dependencies: d "1" es5-ext "~0.10.14" es6-iterator "~2.0.1" es6-set "~0.1.5" es6-symbol "~3.1.1" event-emitter "~0.3.5" es6-set@^0.1.5, es6-set@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= dependencies: d "1" es5-ext "~0.10.14" es6-iterator "~2.0.1" es6-symbol "3.1.1" event-emitter "~0.3.5" es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= dependencies: d "1" es5-ext "~0.10.14" escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-regexp@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" integrity sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ= escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.11.1: version "1.11.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== dependencies: esprima "^3.1.3" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" escodegen@^1.8.1: version "1.12.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== dependencies: esprima "^3.1.3" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" escodegen@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" integrity sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E= dependencies: esprima "~1.0.4" estraverse "~1.5.0" esutils "~1.0.0" optionalDependencies: source-map "~0.1.30" escodegen@~1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" integrity sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q== dependencies: esprima "^3.1.3" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" eslint-import-resolver-node@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== dependencies: debug "^2.6.9" resolve "^1.5.0" eslint-loader@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-3.0.3.tgz#e018e3d2722381d982b1201adb56819c73b480ca" integrity sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw== dependencies: fs-extra "^8.1.0" loader-fs-cache "^1.0.2" loader-utils "^1.2.3" object-hash "^2.0.1" schema-utils "^2.6.1" eslint-module-utils@^2.4.1: version "2.5.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz#cdf0b40d623032274ccd2abd7e64c4e524d6e19c" integrity sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw== dependencies: debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-chai-friendly@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.5.0.tgz#42418c35c4a83584f3b98449b7b8f4f56205a0a3" integrity sha512-Pxe6z8C9fP0pn2X2nGFU/b3GBOCM/5FVus1hsMwJsXP3R7RiXFl7g0ksJbsc0GxiLyidTW4mEFk77qsNn7Tk7g== -eslint-plugin-cypress@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.9.0.tgz#7fa5c5247db8a691aa54661e29a67e5bae4b4a15" - integrity sha512-3x6EQYDB30VHyqFV6leBRf9Zo51FsPWXG+aLtpUSlRtcLGcrbmnfno02E318YYSmGbCJH6K5i+MLCFHBpcyreg== +eslint-plugin-cypress@^2.10.1: + version "2.10.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.10.1.tgz#76b15abd5b35975e21b465214ac2173036fbe271" + integrity sha512-Oo52+uEE7caVRIIeNCg743e3QKNY9Fkfd4KCzBq2BqG3EhhndekEu2YTwW6kSgca2jXSPmbGm0HiZktSakl4Og== dependencies: globals "^11.12.0" eslint-plugin-es@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz#98cb1bc8ab0aa807977855e11ad9d1c9422d014b" integrity sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng== dependencies: eslint-utils "^2.0.0" regexpp "^3.0.0" eslint-plugin-import@^2.20.1: version "2.20.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" eslint-import-resolver-node "^0.3.2" eslint-module-utils "^2.4.1" has "^1.0.3" minimatch "^3.0.4" object.values "^1.1.0" read-pkg-up "^2.0.0" resolve "^1.12.0" eslint-plugin-node@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.0.0.tgz#365944bb0804c5d1d501182a9bc41a0ffefed726" integrity sha512-chUs/NVID+sknFiJzxoN9lM7uKSOEta8GC8365hw1nDfwIPIjjpRSwwPvQanWv8dt/pDe9EV4anmVSwdiSndNg== dependencies: eslint-plugin-es "^3.0.0" eslint-utils "^2.0.0" ignore "^5.1.1" minimatch "^3.0.4" resolve "^1.10.1" semver "^6.1.0" eslint-plugin-promise@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== eslint-plugin-standard@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-scope@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-utils@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== dependencies: eslint-visitor-keys "^1.1.0" eslint-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== dependencies: eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== eslint@^6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" eslint-utils "^1.4.3" eslint-visitor-keys "^1.1.0" espree "^6.1.2" esquery "^1.0.1" 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" inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" lodash "^4.17.14" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.3" progress "^2.0.0" regexpp "^2.0.1" semver "^6.1.2" strip-ansi "^5.2.0" strip-json-comments "^3.0.1" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" espree@^6.1.2: version "6.1.2" resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== dependencies: acorn "^7.1.0" acorn-jsx "^5.1.0" eslint-visitor-keys "^1.1.0" esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esprima@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0= esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== dependencies: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= estraverse@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= estree-is-function@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== esutils@^2.0.0, esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== esutils@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= ev-emitter@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" integrity sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q== eve-raphael@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" integrity sha1-F8dUt5K+7z+maE15z1pHxjxM2jA= event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= dependencies: d "1" es5-ext "~0.10.14" eventemitter2@4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-4.1.2.tgz#0e1a8477af821a6ef3995b311bf74c23a5247f15" integrity sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU= eventemitter3@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== events@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== eventsource@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== dependencies: original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" execa@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/execa/-/execa-3.3.0.tgz#7e348eef129a1937f21ecbbd53390942653522c1" integrity sha512-j5Vit5WZR/cbHlqU97+qcnw9WHRCIL4V1SVe75VcHcD1JRBdt8fv0zw89b7CQHQdUHTt2VjuhcF5ibAgVOxqpg== dependencies: 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" p-finally "^2.0.0" signal-exit "^3.0.2" strip-final-newline "^2.0.0" execa@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.0.tgz#7f37d6ec17f09e6b8fc53288611695b6d12b9daf" integrity sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA== dependencies: 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" execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" is-stream "^1.1.0" npm-run-path "^2.0.0" p-finally "^1.0.0" signal-exit "^3.0.0" strip-eof "^1.0.0" execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" get-stream "^4.0.0" is-stream "^1.1.0" npm-run-path "^2.0.0" p-finally "^1.0.0" signal-exit "^3.0.0" strip-eof "^1.0.0" execall@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow== dependencies: clone-regexp "^2.1.0" executable@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== dependencies: pify "^2.2.0" exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: 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" expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" exports-loader@0.7.0, exports-loader@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.7.0.tgz#84881c784dea6036b8e1cd1dac3da9b6409e21a5" integrity sha512-RKwCrO4A6IiKm0pG3c9V46JxIHcDplwwGJn6+JJ1RcVnh/WSGJa0xkmk5cRVtgOPzCAtTMGj2F7nluh9L0vpSA== dependencies: loader-utils "^1.1.0" source-map "0.5.0" expose-loader@^0.7.5: version "0.7.5" resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.5.tgz#e29ea2d9aeeed3254a3faa1b35f502db9f9c3f6f" integrity sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw== express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: 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" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" tmp "^0.0.33" extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: 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" extract-zip@1.6.7: version "1.6.7" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= dependencies: concat-stream "1.6.2" debug "2.6.9" mkdirp "0.5.1" yauzl "2.4.1" extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= falafel@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" integrity sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw= dependencies: acorn "^5.0.0" foreach "^2.0.5" isarray "0.0.1" object-keys "^1.0.6" fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-glob@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82" integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.0" merge2 "^1.3.0" micromatch "^4.0.2" fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= fast-levenshtein@~2.0.4, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-memoize@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.1.tgz#c3519241e80552ce395e1a32dcdde8d1fd680f5d" integrity sha512-xdmw296PCL01tMOXx9mdJSmWY29jQgxyuZdq0rEHMu+Tpe1eOEtCycoG6chzlcrWsNgpZP7oL8RiQr7+G6Bl6g== fastclick@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a" integrity sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo= fastq@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== dependencies: reusify "^1.0.0" faye-websocket@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= dependencies: websocket-driver ">=0.5.1" faye-websocket@~0.11.1: version "0.11.3" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= dependencies: pend "~1.2.0" fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" figures@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== dependencies: flat-cache "^2.0.1" file-loader@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-5.0.2.tgz#7f3d8b4ac85a5e8df61338cfec95d7405f971caa" integrity sha512-QMiQ+WBkGLejKe81HU8SZ9PovsU/5uaLo0JdTCEXOYv7i7jfAjHZi1tcwp9tSASJPOmmHZtbdCervFmXMH/Dcg== dependencies: loader-utils "^1.2.3" schema-utils "^2.5.0" fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range "^2.1.0" fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" filterizr@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/filterizr/-/filterizr-2.2.3.tgz#345f7bc5d861cdd63f15e7ad7fc312355752a03a" integrity sha512-1u3/TadXM12uNUlxHBRM31maMXY4DA2+sbeji4KSHk/m3LE4fMkTst+6W5YBlcBC1umICDiwplWsMqr6VzY5ZA== dependencies: fast-memoize "^2.5.1" imagesloaded "^4.1.4" finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" parseurl "~1.3.3" statuses "~1.5.0" unpipe "~1.0.0" find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= dependencies: commondir "^1.0.1" mkdirp "^0.5.1" pkg-dir "^1.0.0" find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" make-dir "^2.0.0" pkg-dir "^3.0.0" find-cache-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.0.0.tgz#cd4b7dd97b7185b7e17dbfe2d6e4115ee3eeb8fc" integrity sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw== dependencies: commondir "^1.0.1" make-dir "^3.0.0" pkg-dir "^4.1.0" find-cache-dir@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== dependencies: commondir "^1.0.1" make-dir "^3.0.0" pkg-dir "^4.1.0" find-up@3.0.0, find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" path-exists "^4.0.0" findup-sync@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== dependencies: detect-file "^1.0.0" is-glob "^4.0.0" micromatch "^3.0.4" resolve-dir "^1.0.1" flag-icon-css@^3.4.5: version "3.4.5" resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.4.5.tgz#584d618563034e69cb9a5b7a7c8477ec8c029a49" integrity sha512-COo/PuJY/JddBLkdi7jL3gWF0z/hcvBRA4kfMXUjLeLglFf5IsyAzKZuXaXfCubVrkraVizmEp7Bn05upTXofA== dependencies: opencollective-postinstall "2.0.2" flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: flatted "^2.0.0" rimraf "2.6.3" write "1.0.3" flat@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== dependencies: is-buffer "~2.0.3" flatted@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== flot@^3.2.13: version "3.2.13" resolved "https://registry.yarnpkg.com/flot/-/flot-3.2.13.tgz#f4457fd6042fe4ac4e4e124e7a7c7256e69f5362" integrity sha512-ZJl8zazqgbn79YCdyzt9JV1r38Gk7Dkt+tBb5Kx1sMEDvLVz+ViwF/QTWKcYjyaPO+UW58FP+fFWZFp6dXeMAA== flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" readable-stream "^2.3.6" follow-redirects@1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== dependencies: debug "=3.1.0" follow-redirects@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== dependencies: debug "^3.2.6" font-awesome@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM= fontkit@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/fontkit/-/fontkit-1.8.0.tgz#deb9351619e90ddc91707b6156a9f14c8ab11554" integrity sha512-EFDRCca7khfQWYu1iFhsqeABpi87f03MBdkT93ZE6YhqCdMzb5Eojb6c4dlJikGv5liuhByyzA7ikpIPTSBWbQ== dependencies: babel-runtime "^6.11.6" brfs "^1.4.0" brotli "^1.2.0" browserify-optional "^1.0.0" clone "^1.0.1" deep-equal "^1.0.0" dfa "^1.0.0" restructure "^0.5.3" tiny-inflate "^1.0.2" unicode-properties "^1.0.0" unicode-trie "^0.3.0" for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= foreground-child@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== dependencies: cross-spawn "^7.0.0" signal-exit "^3.0.2" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" fromentries@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.2.0.tgz#e6aa06f240d6267f913cea422075ef88b63e7897" integrity sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ== fs-extra@7.0.1, fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" fs-extra@8.1.0, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" fs-minipass@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== dependencies: minipass "^2.2.1" fs-minipass@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" integrity sha512-40Qz+LFXmd9tzYVnnBmZvFfvAADfUA14TXPK1s7IfElJTIZ97rA8w4Kin7Wt5JBrC3ShnnFJO/5vPjPEeJIq9A== dependencies: minipass "^3.0.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" imurmurhash "^0.1.4" readable-stream "1 || 2" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: version "1.2.9" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== dependencies: nan "^2.12.1" node-pre-gyp "^0.12.0" fsevents@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== fstream@^1.0.0, fstream@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" mkdirp ">=0.5 0" rimraf "2" fsu@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" has-unicode "^2.0.0" object-assign "^4.1.0" signal-exit "^3.0.0" string-width "^1.0.1" strip-ansi "^3.0.1" wide-align "^1.1.0" gaze@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== dependencies: globule "^1.0.0" generate-robotstxt@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/generate-robotstxt/-/generate-robotstxt-8.0.0.tgz#720174c1967057e7a3da20abbf0c77fed3f1dfd3" integrity sha512-cnQMb5nMXtBe0ZtCB5K52DqiB3QBwqnJbpihsJ79PFn8dWsus6D6clYrlsNu2knQcwNj/Hzr8hf8BDCaoADItw== dependencies: cosmiconfig "^6.0.0" fs-extra "^8.1.0" ip-regex "^4.1.0" is-absolute-url "^3.0.3" meow "^5.0.0" resolve-from "^5.0.0" gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== get-assigned-identifiers@^1.1.0, get-assigned-identifiers@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= get-stdin@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== dependencies: pump "^3.0.0" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getos@3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/getos/-/getos-3.1.4.tgz#29cdf240ed10a70c049add7b6f8cb08c81876faf" integrity sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw== dependencies: async "^3.1.0" getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" glob-parent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== dependencies: is-glob "^4.0.1" glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== dependencies: is-glob "^4.0.1" glob@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= dependencies: ini "^1.3.4" global-modules@2.0.0, global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" resolve-dir "^1.0.0" global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" ini "^1.3.4" is-windows "^1.0.1" which "^1.2.14" global-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" kind-of "^6.0.2" which "^1.3.1" globals@^11.1.0, globals@^11.12.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^12.1.0: version "12.3.0" resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== dependencies: type-fest "^0.8.1" globby@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154" integrity sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" fast-glob "^3.1.1" ignore "^5.1.4" merge2 "^1.3.0" slash "^3.0.0" globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" glob "^7.0.3" object-assign "^4.0.1" pify "^2.0.0" pinkie-promise "^2.0.0" globby@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= dependencies: array-union "^1.0.1" dir-glob "^2.0.0" glob "^7.1.2" ignore "^3.3.5" pify "^3.0.0" slash "^1.0.0" globjoin@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= globule@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== dependencies: glob "~7.1.1" lodash "~4.17.10" minimatch "~3.0.2" gonzales-pe@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.4.tgz#356ae36a312c46fe0f1026dd6cb539039f8500d2" integrity sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ== dependencies: minimist "1.1.x" good-listener@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= dependencies: delegate "^3.1.2" got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= dependencies: create-error-class "^3.0.0" duplexer3 "^0.1.4" get-stream "^3.0.0" is-redirect "^1.0.0" is-retry-allowed "^1.0.0" is-stream "^1.0.0" lowercase-keys "^1.0.0" safe-buffer "^5.0.1" timed-out "^4.0.0" unzip-response "^2.0.1" url-parse-lax "^1.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== graceful-fs@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== growl@1.10.5: version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== handle-thing@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.0: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: ajv "^6.5.5" har-schema "^2.0.0" hard-rejection@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" has-values "^0.1.4" isobject "^2.0.0" has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" has-values "^1.0.0" isobject "^3.0.0" has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" kind-of "^4.0.0" has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" hasha@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.1.0.tgz#dd05ccdfcfe7dab626247ce2a58efe461922f4ca" integrity sha512-OFPDWmzPN1l7atOV1TgBVmNtBxaIysToK6Ve9DK+vT6pYuklw/nPNT+HJbZi0KDcI6vWB+9tgvZ5YD7fA3CXcA== dependencies: is-stream "^2.0.0" type-fest "^0.8.0" he@1.2.0, he@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== highlight.js@^9.18.1: version "9.18.1" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== highlightjs-line-numbers.js@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/highlightjs-line-numbers.js/-/highlightjs-line-numbers.js-2.7.0.tgz#b202f7dc547cb9ab64d8b3ad571d834817815bdf" integrity sha512-2kgZkfGy3TB6rF1o1XJtUThDyraLAFd6iiAIE1MEH89om8VwyHsal6BBnIOP2yOuq2TCuuGd0YD6aGHa6iq3/g== hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" obuf "^1.0.0" readable-stream "^2.0.1" wbuf "^1.1.0" hsl-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= hsla-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= html-comment-regex@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== html-encoder-decoder@^1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/html-encoder-decoder/-/html-encoder-decoder-1.3.8.tgz#86c25e0413237a681097f781bbd5b1c43c82d883" integrity sha512-H5GJwy7y9jVpc1lrMLwQy8As0IiyLKy0TibpYX3DdpLD03MxmZnO97S9KXkvmKtMdbZo9jF1fmS+Fkx+61D5/w== dependencies: he "^1.1.0" iterate-object "^1.3.2" regex-escape "^3.4.2" html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== dependencies: whatwg-encoding "^1.0.1" html-entities@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= html-escaper@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== html-tags@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= htmlparser2@^3.10.0: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: 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" http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: depd "~1.1.2" inherits "2.0.3" setprototypeof "1.1.1" statuses ">= 1.5.0 < 2" toidentifier "1.0.0" http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" inherits "2.0.3" setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== dependencies: depd "~1.1.2" inherits "2.0.4" setprototypeof "1.1.1" statuses ">= 1.5.0 < 2" toidentifier "1.0.0" "http-parser-js@>=0.4.0 <0.4.11": version "0.4.10" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== dependencies: http-proxy "^1.17.0" is-glob "^4.0.0" lodash "^4.17.11" micromatch "^3.1.10" http-proxy@^1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== dependencies: eventemitter3 "^3.0.0" follow-redirects "^1.0.0" requires-port "^1.0.0" http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== icheck-bootstrap@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/icheck-bootstrap/-/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" integrity sha512-Rj3SybdcMcayhsP4IJ+hmCNgCKclaFcs/5zwCuLXH1WMo468NegjhZVxbSNKhEjJjnwc4gKETogUmPYSQ9lEZQ== iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550" integrity sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw== dependencies: safer-buffer ">= 2.1.2 < 3" icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== dependencies: postcss "^7.0.14" ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= iframe-resizer@^4.2.10: version "4.2.10" resolved "https://registry.yarnpkg.com/iframe-resizer/-/iframe-resizer-4.2.10.tgz#c61c9119bb1bf31931fc3c3bb025e1891b18502c" integrity sha512-9T/AWavGI5Q7nw2ch7qatkKvhK6S11eatuSh0SXpPXN3MV0HtN97KyifWJSuMj47rD6jbqe1CXT91PLQbexvEQ== ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== dependencies: minimatch "^3.0.4" ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== ignore@^5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.2.tgz#e28e584d43ad7e92f96995019cc43b9e1ac49558" integrity sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ== ignore@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= imagesloaded@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" integrity sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA== dependencies: ev-emitter "^1.0.0" immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" integrity sha1-M1238qev/VOqpHHUuAId7ja387E= dependencies: resolve-from "^3.0.0" import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= import-lazy@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== import-local@2.0.0, import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" imports-loader@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz#030ea51b8ca05977c40a3abfd9b4088fe0be9a69" integrity sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ== dependencies: loader-utils "^1.0.2" source-map "^0.6.1" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= in-publish@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" integrity sha1-4g/146KvwmkDILbcVSaCqcf631E= indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= dependencies: repeating "^2.0.0" indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inline-source-map@~0.6.0: version "0.6.2" resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= dependencies: source-map "~0.5.3" inputmask@^4.0.9: version "4.0.9" resolved "https://registry.yarnpkg.com/inputmask/-/inputmask-4.0.9.tgz#a60fc46cee52a35a0ba5f50b5cca3a6733ece18c" integrity sha512-EodaYhJKncXRBwvCE8YrRmAFmBJ6bWdgX4Qw8QSnK5GBDXE03jgpJhrS+a2N0v2Zsgp+OjKXy7qACktjYD83Uw== inquirer@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a" integrity sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ== dependencies: ansi-escapes "^4.2.1" chalk "^2.4.2" cli-cursor "^3.1.0" cli-width "^2.0.0" external-editor "^3.0.3" figures "^3.0.0" lodash "^4.17.15" mute-stream "0.0.8" run-async "^2.2.0" rxjs "^6.4.0" string-width "^4.1.0" strip-ansi "^5.1.0" through "^2.3.6" insert-module-globals@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== dependencies: JSONStream "^1.0.3" acorn-node "^1.5.2" combine-source-map "^0.8.0" concat-stream "^1.6.1" is-buffer "^1.1.0" path-is-absolute "^1.0.1" process "~0.11.0" through2 "^2.0.0" undeclared-identifiers "^1.1.2" xtend "^4.0.0" internal-ip@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: default-gateway "^4.2.0" ipaddr.js "^1.9.0" interpret@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== ion-rangeslider@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.0.tgz#7957ce2e78acfc956b8c43009373da91f743347e" integrity sha512-7TtH9/X4Aq/xCzboWxjwlv20gVqR90Ysc3aehMlTuH2/ULaSxpB80hq+yvD1N0FwWbPDtxQpjQrz/iX+LWXKmg== dependencies: jquery ">=1.8" ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= is-absolute-url@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-alphabetical@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== is-alphanumeric@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= is-alphanumerical@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz#57ae21c374277b3defe0274c640a5704b8f6657c" integrity sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA== dependencies: is-alphabetical "^1.0.0" is-decimal "^1.0.0" is-arguments@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0, is-buffer@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== is-ci@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" is-ci@^1.0.10: version "1.2.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== dependencies: ci-info "^1.5.0" is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= dependencies: 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-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-decimal@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" kind-of "^5.0.0" is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" kind-of "^6.0.2" is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-hexadecimal@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" integrity sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA== is-installed-globally@0.1.0, is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= dependencies: global-dirs "^0.1.0" is-path-inside "^1.0.0" is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== dependencies: symbol-observable "^1.1.0" is-path-cwd@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-in-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== dependencies: is-path-inside "^2.1.0" is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= dependencies: path-is-inside "^1.0.1" is-path-inside@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== dependencies: path-is-inside "^1.0.2" is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= dependencies: has "^1.0.1" is-regexp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== is-svg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== dependencies: html-comment-regex "^1.1.0" is-symbol@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== dependencies: has-symbols "^1.0.0" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-whitespace-character@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz#b3ad9546d916d7d3ffa78204bca0c26b56257fac" integrity sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ== is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-word-character@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.3.tgz#264d15541cbad0ba833d3992c34e6b40873b08aa" integrity sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A== is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== istanbul-lib-hook@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== dependencies: append-transform "^2.0.0" istanbul-lib-instrument@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.0.tgz#53321a7970f076262fd3292c8f9b2e4ac544aae1" integrity sha512-Nm4wVHdo7ZXSG30KjZ2Wl5SU/Bw7bDx1PdaiIFzEStdjs0H12mOTncn1GVYuqQSaZxpg87VGBRsVRPGD2cD1AQ== dependencies: "@babel/core" "^7.7.5" "@babel/parser" "^7.7.5" "@babel/template" "^7.7.4" "@babel/traverse" "^7.7.4" "@istanbuljs/schema" "^0.1.2" istanbul-lib-coverage "^3.0.0" semver "^6.3.0" istanbul-lib-processinfo@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw== dependencies: archy "^1.0.0" cross-spawn "^7.0.0" istanbul-lib-coverage "^3.0.0-alpha.1" make-dir "^3.0.0" p-map "^3.0.0" rimraf "^3.0.0" uuid "^3.3.3" istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== dependencies: istanbul-lib-coverage "^3.0.0" make-dir "^3.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== dependencies: debug "^4.1.1" istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" istanbul-reports@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.0.tgz#d4d16d035db99581b6194e119bbf36c963c5eb70" integrity sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" iterate-object@^1.3.2: version "1.3.3" resolved "https://registry.yarnpkg.com/iterate-object/-/iterate-object-1.3.3.tgz#c58e60f7f0caefa2d382027a484b215988a7a296" integrity sha512-DximWbkke36cnrSfNJv6bgcB2QOMV9PRD2FiowwzCoMsh8RupFLdbNIzWe+cVDWT+NIMNJgGlB1dGxP6kpzGtA== jest-worker@^25.1.0: version "25.1.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a" integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg== dependencies: merge-stream "^2.0.0" supports-color "^7.0.0" jquery-knob-chif@^1.2.13: version "1.2.13" resolved "https://registry.yarnpkg.com/jquery-knob-chif/-/jquery-knob-chif-1.2.13.tgz#5f1e462ef3745d27a9fd66ce1141fe82b44a5762" integrity sha1-Xx5GLvN0XSep/WbOEUH+grRKV2I= jquery-mapael@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/jquery-mapael/-/jquery-mapael-2.2.0.tgz#a68850c680ef0ce3f8b865e8a48b2a018250ca73" integrity sha512-B5cVcCkfs7Ezia1Zs8bEfVacYD/GvaASyqQeidApR/NJ1C4igcExk9VULVsgLcTPkxohcZrrz5uCaPXvuKeZWw== dependencies: jquery "^3.0 || ^2.0 || ^1.0" raphael "^2.2.0 || ^2.1.1" optionalDependencies: jquery-mousewheel "^3.1" jquery-mousewheel@^3.1, jquery-mousewheel@^3.1.13: version "3.1.13" resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU= jquery-ui-dist@^1.12.1: version "1.12.1" resolved "https://registry.yarnpkg.com/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz#5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa" integrity sha1-XAgV08xvkP9fqvWyaKbiO0ypBPo= jquery-validation@^1.19.1: version "1.19.1" resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.1.tgz#a85043467dc2b70d9fff05778646d150e747742f" integrity sha512-QNnrZBqSltWUEJx+shOY5WtfrIb0gWmDjFfQP8rZKqMMSfpRSwEkSqhfHPvDfkObD8Hnv5KHSYI8yg73sVFdqA== jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.8, jquery@>=2.1.0, jquery@^3.0, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== jqvmap-novulnerability@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/jqvmap-novulnerability/-/jqvmap-novulnerability-1.5.1.tgz#140c42623ebbe9b9076ea2dd3b8d155fe9f38ae7" integrity sha512-O6Jr7AGiut9iNJMelPdy8pH83tNXadOqmhJm5FZy9gtaZ5uuhZK3VNu+YLFuTpXeZI8YXUvlFUYbJJi5XHA+tw== dependencies: jquery "^3.4.0" js-base64@^2.1.8: version "2.5.1" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== js-cookie@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@3.13.1, js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" esprima "^4.0.0" js-year-calendar@^1.0.0-alpha.7: version "1.0.0-alpha.7" resolved "https://registry.yarnpkg.com/js-year-calendar/-/js-year-calendar-1.0.0-alpha.7.tgz#be269ebd74c3d3481b3d693a1b67c7a16b813194" integrity sha512-iW9kC+OXGgpvhgfXGXmEmNiA4E4V3ubrY1roDv0WNNjzaNsoDUGHgJzCAuYLqA8E+Q8gvE1r3LprYGP5OJQkJA== jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsdom@>=11.6.2: version "15.1.1" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.1.1.tgz#21ed01f81d95ef4327f3e564662aef5e65881252" integrity sha512-cQZRBB33arrDAeCrAEWn1U3SvrvC8XysBua9Oqg1yWrsY/gYcusloJC3RZJXuY5eehSCmws8f2YeliCqGSkrtQ== dependencies: abab "^2.0.0" acorn "^6.1.1" acorn-globals "^4.3.2" array-equal "^1.0.0" cssom "^0.3.6" cssstyle "^1.2.2" data-urls "^1.1.0" domexception "^1.0.1" escodegen "^1.11.1" html-encoding-sniffer "^1.0.2" nwsapi "^2.1.4" parse5 "5.1.0" pn "^1.1.0" request "^2.88.0" request-promise-native "^1.0.7" saxes "^3.1.9" symbol-tree "^3.2.2" tough-cookie "^3.0.1" w3c-hr-time "^1.0.1" w3c-xmlserializer "^1.1.2" webidl-conversions "^4.0.2" whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" whatwg-url "^7.0.0" ws "^7.0.0" xml-name-validator "^3.0.0" jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= jsgrid@^1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/jsgrid/-/jsgrid-1.5.3.tgz#b15fc426483153bee2b6b567312f675d92834a0d" integrity sha1-sV/EJkgxU77itrVnMS9nXZKDSg0= json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json-stable-stringify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= dependencies: jsonify "~0.0.0" json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json3@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" json5@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== dependencies: minimist "^1.2.0" jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" json-schema "0.2.3" verror "1.10.0" jszip@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.2.2.tgz#b143816df7e106a9597a94c77493385adca5bd1d" integrity sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA== dependencies: lie "~3.3.0" pako "~1.0.2" readable-stream "~2.3.6" set-immediate-shim "~1.0.1" killable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== known-css-properties@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.18.0.tgz#d6e00b56ee1d5b0d171fd86df1583cfb012c521f" integrity sha512-69AgJ1rQa7VvUsd2kpvVq+VeObDuo3zrj0CzM5Slmf6yduQFAI2kXPDQJR2IE/u6MSAUOJrwSzjg5vlz8qcMiw== labeled-stream-splicer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== dependencies: inherits "^2.0.1" stream-splicer "^2.0.0" last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== dependencies: lodash "^4.17.5" webpack-sources "^1.1.0" latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= dependencies: package-json "^4.0.0" lazy-ass@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: invert-kv "^2.0.0" less-loader@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== dependencies: clone "^2.1.1" loader-utils "^1.1.0" pify "^4.0.1" -less@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/less/-/less-3.11.0.tgz#ce3b6010d4ecf00710d5a68915207de7541b4d73" - integrity sha512-dAui5qzfxuWY7BIEt9/gy5EbDhwDb44rqaIUFYeu8wEE8huMZ/PzB+gNFONEG5DUPrOrOGcAjGeYVg6AFiA9KQ== +less@^3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2" + integrity sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g== dependencies: clone "^2.1.2" + tslib "^1.10.0" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" image-size "~0.5.0" mime "^1.4.1" mkdirp "^0.5.0" promise "^7.1.1" request "^2.83.0" source-map "~0.6.0" leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== levenary@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== dependencies: leven "^3.1.0" levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" lie@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: immediate "~3.0.5" linebreak@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-0.3.0.tgz#0526480a62c05bd679f3e9d99830e09c6a7d0ed6" integrity sha1-BSZICmLAW9Z58+nZmDDgnGp9DtY= dependencies: base64-js "0.0.8" brfs "^1.3.0" unicode-trie "^0.3.0" linebreak@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-1.0.2.tgz#4b5781733e9a9eb2849dba2f963e47c887f8aa06" integrity sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w== dependencies: base64-js "0.0.8" brfs "^2.0.2" unicode-trie "^1.0.0" lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= listr-update-renderer@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" elegant-spinner "^1.0.1" figures "^1.7.0" indent-string "^3.0.0" log-symbols "^1.0.2" log-update "^2.3.0" strip-ansi "^3.0.1" listr-verbose-renderer@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== dependencies: chalk "^2.4.1" cli-cursor "^2.1.0" date-fns "^1.27.2" figures "^2.0.0" listr@0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== dependencies: "@samverschueren/stream-to-observable" "^0.3.0" is-observable "^1.1.0" is-promise "^2.1.0" is-stream "^1.1.0" listr-silent-renderer "^1.1.1" listr-update-renderer "^0.5.0" listr-verbose-renderer "^0.5.0" p-map "^2.0.0" rxjs "^6.3.3" load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" pify "^2.0.0" pinkie-promise "^2.0.0" strip-bom "^2.0.0" load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" pify "^2.0.0" strip-bom "^3.0.0" load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" pify "^3.0.0" strip-bom "^3.0.0" loader-fs-cache@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== dependencies: find-cache-dir "^0.1.1" mkdirp "0.5.1" loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== loader-utils@1.2.3, loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: big.js "^5.2.2" emojis-list "^2.0.0" json5 "^1.0.1" locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" path-exists "^3.0.0" locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" lodash.clonedeep@4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= lodash.flattendeep@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= lodash.isempty@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= lodash.isfunction@^3.0.8, lodash.isfunction@^3.0.9: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== lodash.isobject@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= lodash@4.17.15, lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.10: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== log-symbols@2.2.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" log-symbols@3.0.0, log-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== dependencies: chalk "^2.4.2" log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= dependencies: chalk "^1.0.0" log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= dependencies: ansi-escapes "^3.0.0" cli-cursor "^2.0.0" wrap-ansi "^3.0.1" loglevel@^1.6.6: version "1.6.6" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== longest-streak@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.3.tgz#3de7a3f47ee18e9074ded8575b5c091f5d0a4105" integrity sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" magic-string@^0.22.4: version "0.22.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== dependencies: vlq "^0.2.2" make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" semver "^5.6.0" make-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== dependencies: semver "^6.0.0" mamacro@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== dependencies: p-defer "^1.0.0" map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= map-obj@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" markdown-escapes@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== markdown-table@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== marked@>=0.3.3: version "0.7.0" resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== mathml-tag-names@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" safe-buffer "^5.1.2" mdast-util-compact@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz#98a25cc8a7865761a41477b3a87d1dcef0b1e79d" integrity sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w== dependencies: unist-util-visit "^1.1.0" mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== mdn-data@~1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^4.0.0: version "4.3.0" resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== dependencies: map-age-cleaner "^0.1.1" mimic-fn "^2.0.0" p-is-promise "^2.0.0" memory-fs@^0.4.0, memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= dependencies: camelcase-keys "^2.0.0" decamelize "^1.1.2" loud-rejection "^1.0.0" map-obj "^1.0.1" minimist "^1.1.3" normalize-package-data "^2.3.4" object-assign "^4.0.1" read-pkg-up "^1.0.1" redent "^1.0.0" trim-newlines "^1.0.0" meow@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" loud-rejection "^1.0.0" minimist-options "^3.0.1" normalize-package-data "^2.3.4" read-pkg-up "^3.0.0" redent "^2.0.0" trim-newlines "^2.0.0" yargs-parser "^10.0.0" meow@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-6.0.0.tgz#949196fdf21d979379e3bdccb0411e60f8cffd93" integrity sha512-x4rYsjigPBDAxY+BGuK83YLhUIqui5wYyZoqb6QJCUOs+0fiYq+i/NV4Jt8OgIfObZFxG9iTyvLDu4UTohGTFw== dependencies: "@types/minimist" "^1.2.0" camelcase-keys "^6.1.1" decamelize-keys "^1.1.0" hard-rejection "^2.0.0" minimist-options "^4.0.1" normalize-package-data "^2.5.0" read-pkg-up "^7.0.0" redent "^3.0.0" trim-newlines "^3.0.0" type-fest "^0.8.1" yargs-parser "^16.1.0" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-source-map@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8= dependencies: source-map "^0.5.6" merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" braces "^2.3.1" define-property "^2.0.2" extend-shallow "^3.0.2" extglob "^2.0.4" fragment-cache "^0.2.1" kind-of "^6.0.2" nanomatch "^1.2.9" object.pick "^1.3.0" regex-not "^1.0.0" snapdragon "^0.8.1" to-regex "^3.0.2" micromatch@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== dependencies: braces "^3.0.1" picomatch "^2.0.5" miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: mime-db "1.40.0" mime@1.6.0, mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== min-indent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= mini-css-extract-plugin@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== dependencies: loader-utils "^1.1.0" normalize-url "1.9.1" schema-utils "^1.0.0" webpack-sources "^1.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist-options@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" minimist-options@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.0.2.tgz#29c4021373ded40d546186725e57761e4b1984a7" integrity sha512-seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@1.1.x: version "1.1.3" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-pipeline@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" integrity sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA== dependencies: minipass "^3.0.0" minipass@^2.2.1, minipass@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minipass@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.0.1.tgz#b4fec73bd61e8a40f0b374ddd04260ade2c8ec20" integrity sha512-2y5okJ4uBsjoD2vAbLKL9EUQPPkC0YMIp+2mZOXG3nBba++pdfJWRxx2Ewirc0pwAJYu4XtWg2EkVo1nRXuO/w== dependencies: yallist "^4.0.0" minizlib@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== dependencies: minipass "^2.2.1" mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" end-of-stream "^1.1.0" flush-write-stream "^1.0.0" from2 "^2.1.0" parallel-transform "^1.1.0" pump "^3.0.0" pumpify "^1.3.3" stream-each "^1.1.0" through2 "^2.0.0" mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" mocha@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.0.1.tgz#276186d35a4852f6249808c6dd4a1376cbf6c6ce" integrity sha512-9eWmWTdHLXh72rGrdZjNbG3aa1/3NRPpul1z0D979QpEnFdCG0Q5tv834N+94QEN2cysfV72YocQ3fn87s70fg== dependencies: ansi-colors "3.2.3" browser-stdout "1.3.1" chokidar "3.3.0" debug "3.2.6" diff "3.5.0" escape-string-regexp "1.0.5" find-up "3.0.0" glob "7.1.3" growl "1.10.5" he "1.2.0" js-yaml "3.13.1" log-symbols "2.2.0" minimatch "3.0.4" mkdirp "0.5.1" ms "2.1.1" node-environment-flags "1.0.6" object.assign "4.1.0" strip-json-comments "2.0.1" supports-color "6.0.0" which "1.3.1" wide-align "1.1.3" yargs "13.3.0" yargs-parser "13.1.1" yargs-unparser "1.6.0" mochawesome-merge@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mochawesome-merge/-/mochawesome-merge-4.0.0.tgz#65b7ea1e4aaf0d5db41af4ad5107ea8edea9ee22" integrity sha512-1KtyBUGtckWBXssyvLZrr/BSTkBpFlZ3x5f8yMPXfOeGWAS1zwfb+ZAOqA0+0f+2CoUYh3jLNHIE60AaKIWaUg== dependencies: fs-extra "^7.0.1" glob "^7.1.6" uuid "^3.3.2" mochawesome-report-generator@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/mochawesome-report-generator/-/mochawesome-report-generator-4.0.1.tgz#0a010d1ecf379eb26ba05300feb59e2665076080" integrity sha512-hQbmQt8/yCT68GjrQFat+Diqeuka3haNllexYfja1+y0hpwi3yCJwFpQCdWK9ezzcXL3Nu80f2I6SZeyspwsqg== dependencies: chalk "^2.4.2" dateformat "^3.0.2" fs-extra "^7.0.0" fsu "^1.0.2" lodash.isfunction "^3.0.8" opener "^1.4.2" prop-types "^15.7.2" react "^16.8.5" react-dom "^16.8.5" tcomb "^3.2.17" tcomb-validation "^3.3.0" validator "^10.11.0" yargs "^13.2.2" mochawesome-report-generator@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/mochawesome-report-generator/-/mochawesome-report-generator-4.1.0.tgz#f303e6acb5b30fd900f2ed8a0ba2054a034c9c39" integrity sha512-8diUnfzLqMPybIsq3aw3Zc4Npw9W2ZCx8/fMR0ShAXfDTtPH4t2mRykXEWBhsBA5+jM74mjWpwEqY6Pmz+pCsw== dependencies: chalk "^2.4.2" dateformat "^3.0.2" fs-extra "^7.0.0" fsu "^1.0.2" lodash.isfunction "^3.0.8" opener "^1.4.2" prop-types "^15.7.2" react "^16.8.5" react-dom "^16.8.5" tcomb "^3.2.17" tcomb-validation "^3.3.0" validator "^10.11.0" yargs "^13.2.2" mochawesome@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/mochawesome/-/mochawesome-4.1.0.tgz#57cdb9509a9fc54790884ec867e109644ba949ee" integrity sha512-U23K19mLqmuBqFyIBl7FVkcIuG/2JYStCj+91WmxK1/psLgHlWBEZsNe25U0x4t1Eqgu55aHv+0utLwzfhnupw== dependencies: chalk "^2.4.1" diff "^4.0.1" json-stringify-safe "^5.0.1" lodash.isempty "^4.4.0" lodash.isfunction "^3.0.9" lodash.isobject "^3.0.2" lodash.isstring "^4.0.1" mochawesome-report-generator "^4.0.0" strip-ansi "^5.0.0" uuid "^3.3.2" module-deps@^6.0.0: version "6.2.1" resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.1.tgz#cfe558784060e926824f474b4e647287837cda50" integrity sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A== dependencies: JSONStream "^1.0.3" browser-resolve "^1.7.0" cached-path-relative "^1.0.2" concat-stream "~1.6.0" defined "^1.0.0" detective "^5.0.2" duplexer2 "^0.1.2" inherits "^2.0.1" parents "^1.0.0" readable-stream "^2.0.2" resolve "^1.4.0" stream-combiner2 "^1.1.1" subarg "^1.0.0" through2 "^2.0.0" xtend "^4.0.0" moment-timezone@^0.5.11: version "0.5.26" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.26.tgz#c0267ca09ae84631aa3dc33f65bedbe6e8e0d772" integrity sha512-sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g== dependencies: moment ">= 2.9.0" moment@2.24.0, "moment@>= 2.9.0", moment@^2.10.2, moment@^2.22.2, moment@^2.24.0, moment@^2.9.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" fs-write-stream-atomic "^1.0.8" mkdirp "^0.5.1" rimraf "^2.5.4" run-queue "^1.0.3" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= multicast-dns@^6.0.1: version "6.2.3" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== dependencies: dns-packet "^1.3.1" thunky "^1.0.2" mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1, nan@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" define-property "^2.0.2" extend-shallow "^3.0.2" fragment-cache "^0.2.1" is-windows "^1.0.2" kind-of "^6.0.2" object.pick "^1.3.0" regex-not "^1.0.0" snapdragon "^0.8.1" to-regex "^3.0.1" natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= needle@^2.2.1: version "2.4.0" resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" sax "^1.2.4" negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== next-tick@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-ensure@^0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz#ecae764150de99861ec5c810fd5d096b183932a7" integrity sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc= node-environment-flags@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== dependencies: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" node-forge@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== dependencies: fstream "^1.0.0" glob "^7.0.3" graceful-fs "^4.1.2" mkdirp "^0.5.0" nopt "2 || 3" npmlog "0 || 1 || 2 || 3 || 4" osenv "0" request "^2.87.0" rimraf "2" semver "~5.3.0" tar "^2.0.0" which "1" node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" buffer "^4.3.0" console-browserify "^1.1.0" constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" events "^3.0.0" https-browserify "^1.0.0" os-browserify "^0.3.0" path-browserify "0.0.1" process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" readable-stream "^2.3.3" stream-browserify "^2.0.1" stream-http "^2.7.2" string_decoder "^1.0.0" timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" util "^0.11.0" vm-browserify "^1.0.1" node-pre-gyp@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" needle "^2.2.1" nopt "^4.0.1" npm-packlist "^1.1.6" npmlog "^4.0.2" rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" tar "^4" node-preload@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== dependencies: process-on-spawn "^1.0.0" node-releases@^1.1.25: version "1.1.26" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.26.tgz#f30563edc5c7dc20cf524cc8652ffa7be0762937" integrity sha512-fZPsuhhUHMTlfkhDLGtfY80DSJTjOcx+qD1j5pqPkuhUHVS7xHZIg9EE4DHK8O3f0zTxXHX5VIkDG8pu98/wfQ== dependencies: semver "^5.3.0" node-releases@^1.1.44: version "1.1.45" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" integrity sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg== dependencies: semver "^6.3.0" node-releases@^1.1.47: version "1.1.47" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.47.tgz#c59ef739a1fd7ecbd9f0b7cf5b7871e8a8b591e4" integrity sha512-k4xjVPx5FpwBUj0Gw7uvFOTF4Ep8Hok1I6qjwL3pLfwe7Y0REQSAqOwwv9TWBCUtMHxcXfY4PgRLRozcChvTcA== dependencies: semver "^6.3.0" node-sass@^4.13.1: version "4.13.1" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3" integrity sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw== dependencies: async-foreach "^0.1.3" chalk "^1.1.1" cross-spawn "^3.0.0" gaze "^1.0.0" get-stdin "^4.0.1" glob "^7.0.3" in-publish "^2.0.0" lodash "^4.17.15" meow "^3.7.0" mkdirp "^0.5.1" nan "^2.13.2" node-gyp "^3.8.0" npmlog "^4.0.0" request "^2.88.0" sass-graph "^2.2.4" stdout-stream "^1.4.0" "true-case-path" "^1.0.2" nodemon@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.2.tgz#9c7efeaaf9b8259295a97e5d4585ba8f0cbe50b0" integrity sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw== dependencies: chokidar "^3.2.2" debug "^3.2.6" ignore-by-default "^1.0.1" minimatch "^3.0.4" pstree.remy "^1.1.7" semver "^5.7.1" supports-color "^5.5.0" touch "^3.1.0" undefsafe "^2.0.2" update-notifier "^2.5.0" "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: abbrev "1" nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= dependencies: abbrev "1" normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-selector@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= normalize-url@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" query-string "^4.1.0" sort-keys "^1.0.0" normalize-url@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== notebookjs@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/notebookjs/-/notebookjs-0.4.2.tgz#3a89e77afadf9b0b0dbe3aa5a472e3cfa20e052e" integrity sha512-zgq9nREL6R4JQPEr3Dt7AklUbt/bYqZuI4cs7l3BulSySJtr9ItMi7A8cXDZl5NEc4Ulo/KQX3ienmNCI/6ciw== dependencies: ansi_up ">=1.1.3" jsdom ">=11.6.2" marked ">=0.3.3" npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== npm-packlist@^1.1.6: version "1.4.4" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npm-run-path@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.0.tgz#d644ec1bd0569187d2a52909971023a0a58e8438" integrity sha512-8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ== dependencies: path-key "^3.0.0" "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" gauge "~2.7.3" set-blocking "~2.0.0" nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nwsapi@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== nyc@^15.0.0: version "15.0.0" resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.0.0.tgz#eb32db2c0f29242c2414fe46357f230121cfc162" integrity sha512-qcLBlNCKMDVuKb7d1fpxjPR8sHeMVX0CHarXAVzrVWoFrigCkYR8xcrjfXSPi5HXM7EU78L6ywO7w1c5rZNCNg== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" caching-transform "^4.0.0" convert-source-map "^1.7.0" decamelize "^1.2.0" find-cache-dir "^3.2.0" find-up "^4.1.0" foreground-child "^2.0.0" glob "^7.1.6" istanbul-lib-coverage "^3.0.0" istanbul-lib-hook "^3.0.0" istanbul-lib-instrument "^4.0.0" istanbul-lib-processinfo "^2.0.2" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.0" js-yaml "^3.13.1" make-dir "^3.0.0" node-preload "^0.2.0" p-map "^3.0.0" process-on-spawn "^1.0.0" resolve-from "^5.0.0" rimraf "^3.0.0" signal-exit "^3.0.2" spawn-wrap "^2.0.0" test-exclude "^6.0.0" uuid "^3.3.3" yargs "^15.0.2" oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" object-fit-images@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/object-fit-images/-/object-fit-images-3.2.4.tgz#6c299d38fdf207746e5d2d46c2877f6f25d15b52" integrity sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg== object-hash@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.1.tgz#cef18a0c940cc60aa27965ecf49b782cbf101d96" integrity sha512-HgcGMooY4JC2PBt9sdUdJ6PMzpin+YtY3r/7wg0uTifP+HJWW8rammseSEHuyt0UeShI183UGssCJqm1bJR7QA== object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== object-inspect@~1.4.0: version "1.4.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw== object-is@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-path@0.11.4: version "0.11.4" resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.assign@4.1.0, object.assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== dependencies: define-properties "^1.1.2" function-bind "^1.1.1" has-symbols "^1.0.0" object-keys "^1.0.11" object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= dependencies: define-properties "^1.1.2" es-abstract "^1.5.1" object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.values@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== dependencies: define-properties "^1.1.3" es-abstract "^1.12.0" function-bind "^1.1.1" has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== octicons@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/octicons/-/octicons-8.5.0.tgz#b64383093e1469dc169fd2a76946fccc25f6bbf1" integrity sha512-l4GCHwBvStuwVfIuqUx/ktFJQJdCqLnd0bi2dvYZzkza6wj9EUksfMUlTqyVMULbPIvRTXxOqn/W07fsMu1bXA== dependencies: object-assign "^4.1.1" on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" onetime@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== dependencies: mimic-fn "^2.1.0" opencollective-postinstall@2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== opener@^1.4.2: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" optimize-css-assets-webpack-plugin@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA== dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" optionator@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" wordwrap "~1.0.0" optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" word-wrap "~1.2.3" org@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/org/-/org-0.2.0.tgz#d76378387dc506fb8e3ccff73a0ad04e3afc6391" integrity sha1-12N4OH3FBvuOPM/3OgrQTjr8Y5E= original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: url-parse "^1.4.3" os-browserify@^0.3.0, os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= dependencies: lcid "^1.0.0" os-locale@^3.0.0, os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: execa "^1.0.0" lcid "^2.0.0" mem "^4.0.0" os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@0, osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" outpipe@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" integrity sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I= dependencies: shell-quote "^1.4.2" overlayscrollbars@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.10.0.tgz#f63c6c76f25416c821e0347797b573b351ce87ea" integrity sha512-SFGaq9wmR6jkwb5L7Wx0JIyGrQOT2/7ZD4F0srMN0KyYRbsdQ1nzdLF+JLp7QIQT2U1lsG1c16aMjxMtwzHA3Q== p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-finally@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== p-is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== dependencies: p-try "^2.0.0" p-limit@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== dependencies: p-try "^2.0.0" p-limit@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== dependencies: p-try "^2.0.0" p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-map@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== dependencies: aggregate-error "^3.0.0" p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== dependencies: retry "^0.12.0" p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-hash@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== dependencies: graceful-fs "^4.1.15" hasha "^5.0.0" lodash.flattendeep "^4.4.0" release-zalgo "^1.0.0" package-json@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= dependencies: got "^6.7.1" registry-auth-token "^3.0.1" registry-url "^3.0.3" semver "^5.1.0" pako@^0.2.5: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= pako@~1.0.2, pako@~1.0.5: version "1.0.10" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= dependencies: cyclist "~0.2.2" inherits "^2.0.3" readable-stream "^2.1.5" parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parents@^1.0.0, parents@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= dependencies: path-platform "~0.11.15" parse-asn1@^5.0.0: version "5.1.4" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" parse-entities@^1.0.2, parse-entities@^1.1.0: version "1.2.2" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== dependencies: character-entities "^1.0.0" character-entities-legacy "^1.0.0" character-reference-invalid "^1.0.0" is-alphanumerical "^1.0.0" is-decimal "^1.0.0" is-hexadecimal "^1.0.0" parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-json@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= parse5@5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.1, path-browserify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-platform@~0.11.15: version "0.11.15" resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" pify "^2.0.0" pinkie-promise "^2.0.0" path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= dependencies: pify "^2.0.0" path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" ripemd160 "^2.0.1" safe-buffer "^5.0.1" sha.js "^2.4.8" pdfjs-dist@^2.2.228: version "2.2.228" resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-2.2.228.tgz#777b068a0a16c96418433303807c183058b47aaa" integrity sha512-W5LhYPMS2UKX0ELIa4u+CFCMoox5qQNQElt0bAK2mwz1V8jZL0rvLao+0tBujce84PK6PvWG36Nwr7agCCWFGQ== dependencies: node-ensure "^0.0.0" worker-loader "^2.0.0" pdfkit@>=0.8.1, pdfkit@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/pdfkit/-/pdfkit-0.10.0.tgz#88f2aa8e3cf9e1cc2caff6447b68dd4e435cb284" integrity sha512-mRJ6iuDzpIQ4ftKp5GvijLXNVRK86xjnyIPBraYSPrUPubNqWM5/oYmc7FZKUWz3wusRTj3PLR9HJ1X5ooqfsg== dependencies: crypto-js "^3.1.9-1" fontkit "^1.0.0" linebreak "^0.3.0" png-js ">=0.1.0" pdfmake@^0.1.62: version "0.1.62" resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.1.62.tgz#62f2400eba066cc271736b95c7d0cdf9c8e06983" integrity sha512-2QIzijdkwFBChTFu5nVmMe+fLBQTAYTPTxi4jGbUTyGxZBq7YR1I17FBk1Cs+3nrYufNKNukT6OR1RNxbovsTA== dependencies: iconv-lite "^0.5.0" linebreak "^1.0.2" pdfkit "^0.10.0" svg-to-pdfkit "^0.1.7" pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.4: version "2.1.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5" integrity sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA== picomatch@^2.0.5: version "2.0.7" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== pify@^2.0.0, pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= dependencies: find-up "^1.0.0" pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= dependencies: find-up "^2.1.0" pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pkg-dir@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== png-js@>=0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/png-js/-/png-js-0.1.1.tgz#1cc7c212303acabe74263ec3ac78009580242d93" integrity sha1-HMfCEjA6yr50Jj7DrHgAlYAkLZM= popper.js@^1.14.3: version "1.15.0" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.15.0.tgz#5560b99bbad7647e9faa475c6b8056621f5a4ff2" integrity sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA== popper.js@^1.16.0: version "1.16.0" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3" integrity sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw== popper.js@^1.16.1: version "1.16.1" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== portfinder@^1.0.25: version "1.0.25" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== dependencies: async "^2.6.2" debug "^3.1.1" mkdirp "^0.5.1" posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-browser-comments@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz#1248d2d935fb72053c8e1f61a84a57292d9f65e9" integrity sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig== dependencies: postcss "^7" postcss-calc@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== dependencies: css-unit-converter "^1.1.1" postcss "^7.0.5" postcss-selector-parser "^5.0.0-rc.4" postcss-value-parser "^3.3.1" postcss-colormin@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== dependencies: browserslist "^4.0.0" color "^3.0.0" has "^1.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-convert-values@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-discard-comments@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== dependencies: postcss "^7.0.0" postcss-discard-duplicates@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== dependencies: postcss "^7.0.0" postcss-discard-empty@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== dependencies: postcss "^7.0.0" postcss-discard-overridden@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== dependencies: postcss "^7.0.0" postcss-html@^0.36.0: version "0.36.0" resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204" integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw== dependencies: htmlparser2 "^3.10.0" postcss-jsx@^0.36.4: version "0.36.4" resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.4.tgz#37a68f300a39e5748d547f19a747b3257240bd50" integrity sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA== dependencies: "@babel/core" ">=7.2.2" postcss-less@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== dependencies: postcss "^7.0.14" postcss-load-config@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== dependencies: cosmiconfig "^5.0.0" import-cwd "^2.0.0" postcss-loader@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== dependencies: loader-utils "^1.1.0" postcss "^7.0.0" postcss-load-config "^2.0.0" schema-utils "^1.0.0" postcss-markdown@^0.36.0: version "0.36.0" resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz#7f22849ae0e3db18820b7b0d5e7833f13a447560" integrity sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ== dependencies: remark "^10.0.1" unist-util-find-all-after "^1.0.2" postcss-media-query-parser@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= postcss-merge-longhand@^4.0.11: version "4.0.11" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== dependencies: css-color-names "0.0.4" postcss "^7.0.0" postcss-value-parser "^3.0.0" stylehacks "^4.0.0" postcss-merge-rules@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== dependencies: 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" postcss-minify-font-values@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-minify-gradients@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== dependencies: cssnano-util-get-arguments "^4.0.0" is-color-stop "^1.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-minify-params@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== dependencies: 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" postcss-minify-selectors@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== dependencies: alphanum-sort "^1.0.0" has "^1.0.0" postcss "^7.0.0" postcss-selector-parser "^3.0.0" postcss-modules-extract-imports@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: postcss "^7.0.5" postcss-modules-local-by-default@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== dependencies: icss-utils "^4.1.1" postcss "^7.0.16" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.0" postcss-modules-scope@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ== dependencies: postcss "^7.0.6" postcss-selector-parser "^6.0.0" postcss-modules-values@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== dependencies: icss-utils "^4.0.0" postcss "^7.0.6" postcss-normalize-charset@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== dependencies: postcss "^7.0.0" postcss-normalize-display-values@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== dependencies: cssnano-util-get-match "^4.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize-positions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== dependencies: cssnano-util-get-arguments "^4.0.0" has "^1.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize-repeat-style@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== dependencies: cssnano-util-get-arguments "^4.0.0" cssnano-util-get-match "^4.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize-string@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== dependencies: has "^1.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize-timing-functions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== dependencies: cssnano-util-get-match "^4.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize-unicode@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== dependencies: browserslist "^4.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize-url@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== dependencies: is-absolute-url "^2.0.0" normalize-url "^3.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize-whitespace@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-normalize@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-8.0.1.tgz#90e80a7763d7fdf2da6f2f0f82be832ce4f66776" integrity sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ== dependencies: "@csstools/normalize.css" "^10.1.0" browserslist "^4.6.2" postcss "^7.0.17" postcss-browser-comments "^3.0.0" sanitize.css "^10.0.0" postcss-ordered-values@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== dependencies: cssnano-util-get-arguments "^4.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-reduce-initial@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== dependencies: browserslist "^4.0.0" caniuse-api "^3.0.0" has "^1.0.0" postcss "^7.0.0" postcss-reduce-transforms@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== dependencies: cssnano-util-get-match "^4.0.0" has "^1.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-reporter@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f" integrity sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw== dependencies: chalk "^2.4.1" lodash "^4.17.11" log-symbols "^2.2.0" postcss "^7.0.7" postcss-resolve-nested-selector@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= postcss-safe-parser@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== dependencies: postcss "^7.0.0" postcss-sass@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.2.tgz#7d1f8ddf6960d329de28fb3ff43c9c42013646bc" integrity sha512-hcRgnd91OQ6Ot9R90PE/khUDCJHG8Uxxd3F7Y0+9VHjBiJgNv7sK5FxyHMCBtoLmmkzVbSj3M3OlqUfLJpq0CQ== dependencies: gonzales-pe "^4.2.4" postcss "^7.0.21" postcss-scss@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug== dependencies: postcss "^7.0.0" -postcss-selector-parser@^3.0.0, postcss-selector-parser@^3.1.0: +postcss-selector-parser@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= dependencies: dot-prop "^4.1.1" indexes-of "^1.0.1" uniq "^1.0.1" postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== dependencies: cssesc "^2.0.0" indexes-of "^1.0.1" uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== dependencies: cssesc "^3.0.0" indexes-of "^1.0.1" uniq "^1.0.1" postcss-svgo@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== dependencies: is-svg "^3.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" svgo "^1.0.0" postcss-syntax@^0.36.2: version "0.36.2" resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== postcss-unique-selectors@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== dependencies: alphanum-sort "^1.0.0" postcss "^7.0.0" uniqs "^2.0.0" postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d" integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ== postcss-value-parser@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== postcss@7.0.21, postcss@^7.0.21: version "7.0.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: version "7.0.17" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" postcss@^7.0.23: version "7.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.23.tgz#9f9759fad661b15964f3cfc3140f66f1e05eadc1" integrity sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" postcss@^7.0.26: version "7.0.26" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.0, prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process-on-spawn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== dependencies: fromentries "^1.2.0" process@^0.11.10, process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress-bar-webpack-plugin@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/progress-bar-webpack-plugin/-/progress-bar-webpack-plugin-2.1.0.tgz#f7f8c8c461f40b87a8ff168443f494289b07ee65" integrity sha512-UtlZbnxpYk1wufEWfhIjRn2U52zlY38uvnzFhs8rRxJxC1hSqw88JNR2Mbpqq9Kix8L1nGb3uQ+/1BiUWbigAg== dependencies: chalk "^3.0.0" progress "^2.0.3" progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: asap "~2.0.3" prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" react-is "^16.8.1" proxy-addr@~2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== dependencies: forwarded "~0.1.2" ipaddr.js "1.9.0" prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.24, psl@^1.1.28: version "1.3.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== pstree.remy@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.7.tgz#c76963a28047ed61542dc361aa26ee55a7fa15f3" integrity sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A== public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" safe-buffer "^5.1.2" pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" pumpify@^1.3.3: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" querystring-es3@^0.2.0, querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== quote-stream@^1.0.1, quote-stream@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI= dependencies: buffer-equal "0.0.1" minimist "^1.1.3" through2 "^2.0.0" ramda@0.26.1: version "0.26.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== "raphael@^2.2.0 || ^2.1.1": version "2.2.8" resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.2.8.tgz#4b18443c2c6030c3b492d8d11fbbca14ebe4d3f3" integrity sha512-0kWKcGn4lXTw4eUiOhjspYiG+v0m6zSmTmlO62E0hl2CYKUvCuHER9YKqXYvOn2nj24mYp8jzHOLeBuj/Gn28Q== dependencies: eve-raphael "0.5.0" raphael@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89" integrity sha512-w2yIenZAQnp257XUWGni4bLMVxpUpcIl7qgxEgDIXtmSypYtlNxfXWpOBxs7LBTps5sDwhRnrToJrMUrivqNTQ== dependencies: eve-raphael "0.5.0" raw-body@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: bytes "3.1.0" http-errors "1.7.2" iconv-lite "0.4.24" unpipe "1.0.0" raw-loader@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" integrity sha1-DD0L6u2KAclm2Xh793goElKpeao= rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" react-dom@^16.8.5: version "16.8.6" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" scheduler "^0.13.6" react-is@^16.8.1: version "16.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== react@^16.8.5: version "16.8.6" resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" scheduler "^0.13.6" read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= dependencies: readable-stream "^2.0.2" read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" read-pkg "^1.0.0" read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= dependencies: find-up "^2.0.0" read-pkg "^2.0.0" read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" read-pkg "^3.0.0" read-pkg-up@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== dependencies: find-up "^4.1.0" read-pkg "^5.2.0" type-fest "^0.8.1" read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" path-type "^1.0.0" read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= dependencies: load-json-file "^2.0.0" normalize-package-data "^2.3.2" path-type "^2.0.0" read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" path-type "^3.0.0" read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" normalize-package-data "^2.5.0" parse-json "^5.0.0" type-fest "^0.6.0" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" process-nextick-args "~2.0.0" safe-buffer "~5.1.1" string_decoder "~1.1.1" util-deprecate "~1.0.1" readable-stream@^3.0.6, readable-stream@^3.1.1: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" readable-stream "^2.0.2" readdirp@~3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== dependencies: picomatch "^2.0.4" redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= dependencies: indent-string "^2.1.0" strip-indent "^1.0.1" redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= dependencies: indent-string "^3.0.0" strip-indent "^2.0.0" redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== dependencies: indent-string "^4.0.0" strip-indent "^3.0.0" regenerate-unicode-properties@^8.0.2, regenerate-unicode-properties@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== dependencies: regenerate "^1.4.0" regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.12.0: version "0.12.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== regenerator-runtime@^0.13.2: version "0.13.3" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== regenerator-transform@^0.14.0: version "0.14.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== dependencies: private "^0.1.6" regex-escape@^3.4.2: version "3.4.9" resolved "https://registry.yarnpkg.com/regex-escape/-/regex-escape-3.4.9.tgz#407b413562e2373d56994ff213e693658ea4f8f7" integrity sha512-Cv9rjwyQwVhn3L097ysanWsEElurmxDj6Cc4Ut23z7e6hzRbrNvF3Le7yAciMfuzyb0sZwSr0ZHunMNCIoy2/g== regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" regex-parser@2.2.10: version "2.2.10" resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA== regexp-tree@^0.1.6: version "0.1.11" resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== regexp.prototype.flags@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== dependencies: define-properties "^1.1.2" regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== regexpu-core@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.0.2" regjsgen "^0.5.0" regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" regexpu-core@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.1.0" regjsgen "^0.5.0" regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" registry-auth-token@^3.0.1: version "3.4.0" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== dependencies: rc "^1.1.6" safe-buffer "^5.0.1" registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= dependencies: rc "^1.0.1" regjsgen@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== regjsparser@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== dependencies: jsesc "~0.5.0" release-zalgo@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= dependencies: es6-error "^4.0.1" remark-parse@^6.0.0: version "6.0.3" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz#c99131052809da482108413f87b0ee7f52180a3a" integrity sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg== dependencies: collapse-white-space "^1.0.2" is-alphabetical "^1.0.0" is-decimal "^1.0.0" is-whitespace-character "^1.0.0" is-word-character "^1.0.0" markdown-escapes "^1.0.0" parse-entities "^1.1.0" repeat-string "^1.5.4" state-toggle "^1.0.0" trim "0.0.1" trim-trailing-lines "^1.0.0" unherit "^1.0.4" unist-util-remove-position "^1.0.0" vfile-location "^2.0.0" xtend "^4.0.1" remark-stringify@^6.0.0: version "6.0.4" resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz#16ac229d4d1593249018663c7bddf28aafc4e088" integrity sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg== dependencies: ccount "^1.0.0" is-alphanumeric "^1.0.0" is-decimal "^1.0.0" is-whitespace-character "^1.0.0" longest-streak "^2.0.1" markdown-escapes "^1.0.0" markdown-table "^1.1.0" mdast-util-compact "^1.0.0" parse-entities "^1.0.2" repeat-string "^1.5.4" state-toggle "^1.0.0" stringify-entities "^1.0.1" unherit "^1.0.4" xtend "^4.0.1" remark@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz#3058076dc41781bf505d8978c291485fe47667df" integrity sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ== dependencies: remark-parse "^6.0.0" remark-stringify "^6.0.0" unified "^7.0.0" remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= dependencies: is-finite "^1.0.0" replace-ext@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= request-progress@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= dependencies: throttleit "^1.0.0" request-promise-core@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== dependencies: lodash "^4.17.11" request-promise-native@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== dependencies: request-promise-core "1.1.2" stealthy-require "^1.1.1" tough-cookie "^2.3.3" request@2.88.0, request@^2.83.0, request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== dependencies: 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.0" 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.4.3" tunnel-agent "^0.6.0" uuid "^3.3.2" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-url-loader@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz#28931895fa1eab9be0647d3b2958c100ae3c0bf0" integrity sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ== dependencies: adjust-sourcemap-loader "2.0.0" camelcase "5.3.1" compose-function "3.0.3" convert-source-map "1.7.0" es6-iterator "2.0.3" loader-utils "1.2.3" postcss "7.0.21" rework "1.0.1" rework-visit "1.0.0" source-map "0.6.1" resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== dependencies: path-parse "^1.0.6" resolve@^1.1.4, resolve@^1.1.5, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= dependencies: exit-hook "^1.0.0" onetime "^1.0.0" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" signal-exit "^3.0.2" restructure@^0.5.3: version "0.5.4" resolved "https://registry.yarnpkg.com/restructure/-/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8" integrity sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg= dependencies: browserify-optional "^1.0.0" ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= reusify@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rework-visit@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= rework@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= dependencies: convert-source-map "^0.3.3" css "^2.0.0" rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= rgba-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= rimraf@2, rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: glob "^7.1.3" rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b" integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" robotstxt-webpack-plugin@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/robotstxt-webpack-plugin/-/robotstxt-webpack-plugin-7.0.0.tgz#04b26c9e1cd2ad8ebc5e20918aeeb6ed5d56835e" integrity sha512-Rk0moeHvqc3to6oE2z5lKW9GTJyQC/ysogNy465N2CT2Xvp2/DMPkix8idnpmBLfExrQjml18B8Z/HoAC/yPlg== dependencies: generate-robotstxt "^8.0.0" webpack-sources "^1.4.3" run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: is-promise "^2.1.0" run-parallel@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" rw@1: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= rxjs@^6.3.3: version "6.5.4" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: tslib "^1.9.0" rxjs@^6.4.0: version "6.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== dependencies: tslib "^1.9.0" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sanitize.css@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== sass-graph@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= dependencies: glob "^7.0.0" lodash "^4.0.0" scss-tokenizer "^0.2.3" yargs "^7.0.0" sass-loader@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== dependencies: clone-deep "^4.0.1" loader-utils "^1.2.3" neo-async "^2.6.1" schema-utils "^2.6.1" semver "^6.3.0" sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== saxes@^3.1.9: version "3.1.11" resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== dependencies: xmlchars "^2.1.1" scheduler@^0.13.6: version "0.13.6" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" schema-utils@^0.4.0: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" ajv-errors "^1.0.0" ajv-keywords "^3.1.0" schema-utils@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.0.1.tgz#1eec2e059556af841b7f3a83b61af13d7a3f9196" integrity sha512-HJFKJ4JixDpRur06QHwi8uu2kZbng318ahWEKgBjc0ZklcE4FDvmm2wghb448q0IRaABxIESt8vqPFvwgMB80A== dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" schema-utils@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.5.0.tgz#8f254f618d402cc80257486213c8970edfd7c22f" integrity sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ== dependencies: ajv "^6.10.2" ajv-keywords "^3.4.1" schema-utils@^2.6.0, schema-utils@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg== dependencies: ajv "^6.10.2" ajv-keywords "^3.4.1" schema-utils@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53" integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ== dependencies: ajv "^6.10.2" ajv-keywords "^3.4.1" scope-analyzer@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.0.5.tgz#72c9c6770c3e66984f84c7d3c7045998a1a7db8a" integrity sha512-+U5H0417mnTEstCD5VwOYO7V4vYuSqwqjFap40ythe67bhMFL5C3UgPwyBv7KDJsqUBIKafOD57xMlh1rN7eaw== dependencies: array-from "^2.1.1" es6-map "^0.1.5" es6-set "^0.1.5" es6-symbol "^3.1.1" estree-is-function "^1.0.0" get-assigned-identifiers "^1.1.0" script-loader@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/script-loader/-/script-loader-0.7.2.tgz#2016db6f86f25f5cf56da38915d83378bb166ba7" integrity sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA== dependencies: raw-loader "~0.5.1" scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= dependencies: js-base64 "^2.1.8" source-map "^0.4.2" select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= select2@^4.0.12: version "4.0.12" resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.12.tgz#9c0492d4d06948f2bd079f6e14718a41c7eaa60e" integrity sha512-mbXC05AvjCboZcRlgJqN4mlI2qmqshpRC76sKNAdxS1lPLOh2m/NTyfL6xsvGoY6eIhjaya4dbumN99MudVQ2w== select@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= selfsigned@^1.10.7: version "1.10.7" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== dependencies: node-forge "0.9.0" semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= dependencies: semver "^5.0.3" "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== semver@5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" depd "~1.1.2" destroy "~1.0.4" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" http-errors "~1.7.2" mime "1.6.0" ms "2.1.1" on-finished "~2.3.0" range-parser "~1.2.1" statuses "~1.5.0" serialize-javascript@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: 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" serve-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" send "0.17.1" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-immediate-shim@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" is-plain-object "^2.0.3" split-string "^3.0.1" setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shallow-copy@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA= shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= dependencies: json-stable-stringify "~0.0.0" sha.js "~2.4.4" shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.4.2, shell-quote@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= dependencies: array-filter "~0.0.0" array-map "~0.0.0" array-reduce "~0.0.0" jsonify "~0.0.0" showdown@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.1.tgz#134e148e75cd4623e09c21b0511977d79b5ad0ef" integrity sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA== dependencies: yargs "^14.2" signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= simple-concat@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: ansi-styles "^3.2.0" astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" isobject "^3.0.0" snapdragon-util "^3.0.1" snapdragon-util@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" debug "^2.2.0" define-property "^0.2.5" extend-shallow "^2.0.1" map-cache "^0.2.2" source-map "^0.5.6" source-map-resolve "^0.5.0" use "^3.1.0" sockjs-client@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== dependencies: debug "^3.2.5" eventsource "^1.0.7" faye-websocket "~0.11.1" inherits "^2.0.3" json3 "^3.3.2" url-parse "^1.4.3" sockjs@0.3.19: version "0.3.19" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== dependencies: faye-websocket "^0.10.0" uuid "^3.0.1" sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== dependencies: atob "^2.1.1" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" source-map-support@~0.5.12: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.0.tgz#0fe96503ac86a5adb5de63f4e412ae4872cdbe86" integrity sha1-D+llA6yGpa213mP05BKuSHLNvoY= source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" integrity sha1-66T12pwNyZneaAMti092FzZSA2s= dependencies: amdefine ">=0.0.4" source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@~0.1.30: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= dependencies: amdefine ">=0.0.4" sparklines@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/sparklines/-/sparklines-1.2.0.tgz#bbbf2dede9bc337749e430baf67c2b37f88f6fa0" integrity sha512-6OFlZzdFXyfFGJ8R5wrc9GdjoeQpjFuwkMKF1yVehLATHVrf4dSyZ4veGOFQ0mQ3xdJ0bCQSbd0idsm1gd2qWg== spawn-wrap@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== dependencies: foreground-child "^2.0.0" is-windows "^1.0.2" make-dir "^3.0.0" rimraf "^3.0.0" signal-exit "^3.0.2" which "^2.0.1" spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== spdx-expression-parse@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: version "3.0.5" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: 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" spdy@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== dependencies: debug "^4.1.0" handle-thing "^2.0.0" http-deceiver "^1.2.7" select-hose "^2.0.0" spdy-transport "^3.0.0" specificity@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: 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@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: figgy-pudding "^3.5.1" ssri@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.0.1.tgz#b0cab7bbb11ac9ea07f003453e2011f8cbed9f34" integrity sha512-FfndBvkXL9AHyGLNzU3r9AvYIBBZ7gm+m+kd0p8cT3/v4OliMAyipZAhLVEv1Zi/k4QFq9CstRGVd9pW/zcHFQ== dependencies: figgy-pudding "^3.5.1" minipass "^3.0.0" stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== state-toggle@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.2.tgz#75e93a61944116b4959d665c8db2d243631d6ddc" integrity sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw== static-eval@^2.0.0, static-eval@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== dependencies: escodegen "^1.8.1" static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" object-copy "^0.1.0" static-module@^2.2.0: version "2.2.5" resolved "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf" integrity sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ== dependencies: concat-stream "~1.6.0" convert-source-map "^1.5.1" duplexer2 "~0.1.4" escodegen "~1.9.0" falafel "^2.1.0" has "^1.0.1" magic-string "^0.22.4" merge-source-map "1.0.4" object-inspect "~1.4.0" quote-stream "~1.0.2" readable-stream "~2.3.3" shallow-copy "~0.0.1" static-eval "^2.0.0" through2 "~2.0.3" static-module@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/static-module/-/static-module-3.0.3.tgz#cc2301ed3fe353e2d2a2195137013853676f9960" integrity sha512-RDaMYaI5o/ym0GkCqL/PlD1Pn216omp8fY81okxZ6f6JQxWW5tptOw9reXoZX85yt/scYvbWIt6uoszeyf+/MQ== dependencies: acorn-node "^1.3.0" concat-stream "~1.6.0" convert-source-map "^1.5.1" duplexer2 "~0.1.4" escodegen "~1.9.0" has "^1.0.1" magic-string "^0.22.4" merge-source-map "1.0.4" object-inspect "~1.4.0" readable-stream "~2.3.3" scope-analyzer "^2.0.1" shallow-copy "~0.0.1" static-eval "^2.0.2" through2 "~2.0.3" "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= stdout-stream@^1.4.0: version "1.4.1" resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== dependencies: readable-stream "^2.0.1" stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= stream-browserify@^2.0.0, stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" readable-stream "^2.0.2" stream-combiner2@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" stream-http@^2.0.0, stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" readable-stream "^2.3.6" to-arraybuffer "^1.0.0" xtend "^4.0.0" stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= stream-splicer@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== dependencies: inherits "^2.0.1" readable-stream "^2.0.2" strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" string-width@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^5.2.0" string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" string.prototype.trimleft@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" string.prototype.trimright@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== dependencies: safe-buffer "~5.1.0" string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" stringify-entities@^1.0.1: version "1.3.2" resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" integrity sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A== dependencies: character-entities-html4 "^1.0.0" character-entities-legacy "^1.0.0" is-alphanumerical "^1.0.0" is-hexadecimal "^1.0.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: ansi-regex "^5.0.0" strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= dependencies: get-stdin "^4.0.1" strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: min-indent "^1.0.0" strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= strip-json-comments@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== style-loader@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz#9e826e69c683c4d9bf9db924f85e9abb30d5e200" integrity sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw== dependencies: loader-utils "^1.2.3" schema-utils "^2.6.4" style-search@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== dependencies: browserslist "^4.0.0" postcss "^7.0.0" postcss-selector-parser "^3.0.0" stylelint-config-recommended@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz#e0e547434016c5539fe2650afd58049a2fd1d657" integrity sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ== stylelint-config-standard@^20.0.0: version "20.0.0" resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz#06135090c9e064befee3d594289f50e295b5e20d" integrity sha512-IB2iFdzOTA/zS4jSVav6z+wGtin08qfj+YyExHB3LF9lnouQht//YyB0KZq9gGz5HNPkddHOzcY8HsUey6ZUlA== dependencies: stylelint-config-recommended "^3.0.0" -stylelint@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.1.0.tgz#693fca947873ff34c92bf08cdaa6f3db1cac91e2" - integrity sha512-Ei+nCSQTyZYrsLSUIxq48/QfzCQD9r9sQiBqy7Z4IpIMcj+E0R6b0CHrSFeE7jNgREpBfJKJd6DpstuDrwUiew== +stylelint@^13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.2.0.tgz#b6f5b67b9a9a51f1fd105ab916952456d93826b4" + integrity sha512-isf31yjkm0DQesx+Yk1b/WQpFkf1MicwaAVR22Hprx9HRFGhhEkWdrVCyrkK6HFymL0rhzynG97Tu53q/WCsAg== dependencies: autoprefixer "^9.7.4" balanced-match "^1.0.0" chalk "^3.0.0" cosmiconfig "^6.0.0" debug "^4.1.1" execall "^2.0.0" file-entry-cache "^5.0.1" get-stdin "^7.0.0" global-modules "^2.0.0" globby "^11.0.0" globjoin "^0.1.4" html-tags "^3.1.0" ignore "^5.1.4" import-lazy "^4.0.0" imurmurhash "^0.1.4" known-css-properties "^0.18.0" leven "^3.1.0" lodash "^4.17.15" log-symbols "^3.0.0" mathml-tag-names "^2.1.3" meow "^6.0.0" micromatch "^4.0.2" normalize-selector "^0.2.0" postcss "^7.0.26" postcss-html "^0.36.0" postcss-jsx "^0.36.4" postcss-less "^3.1.4" postcss-markdown "^0.36.0" postcss-media-query-parser "^0.2.3" postcss-reporter "^6.0.1" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^4.0.1" postcss-sass "^0.4.2" postcss-scss "^2.0.0" - postcss-selector-parser "^3.1.0" + postcss-selector-parser "^6.0.2" postcss-syntax "^0.36.2" postcss-value-parser "^4.0.2" resolve-from "^5.0.0" slash "^3.0.0" specificity "^0.4.1" string-width "^4.2.0" strip-ansi "^6.0.0" style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" table "^5.4.6" v8-compile-cache "^2.1.0" write-file-atomic "^3.0.1" subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= dependencies: minimist "^1.1.0" sugarss@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== dependencies: postcss "^7.0.2" summernote@^0.8.12: version "0.8.12" resolved "https://registry.yarnpkg.com/summernote/-/summernote-0.8.12.tgz#563502ed882abde9daab9db1e7eba330d37ac020" integrity sha512-RVEJoIyztwPpopTwZvjag1WOvbmhUGFe6Mc9RADzzcX1ogG8pIXCB88icu/vjNYihITrzj2zZsoFMcDRHSlhEA== supports-color@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== dependencies: has-flag "^3.0.0" supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" supports-color@7.1.0, supports-color@^7.0.0, supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== dependencies: has-flag "^4.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= svg-to-pdfkit@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/svg-to-pdfkit/-/svg-to-pdfkit-0.1.7.tgz#7db6d47e47b3888dce18060751a8de2417f85775" integrity sha1-fbbUfkeziI3OGAYHUajeJBf4V3U= dependencies: pdfkit ">=0.8.1" svgo@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== dependencies: 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.33" csso "^3.5.1" 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" sweetalert2@^8.19.0: version "8.19.0" resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-8.19.0.tgz#692269bc8ddc5760e2b5070da2cf5e9e278bac0b" integrity sha512-nFL++N3bitkEkd487Tv4i5ZxusmnoAAXHjtk7lp603Opxb8wlvVnz3hqa7qiIw6QFL04JC810E6qVQNf8s0vYQ== symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol-tree@^3.2.2: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== syntax-error@^1.1.1: version "1.4.0" resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== dependencies: acorn-node "^1.2.0" table@^5.2.3: version "5.4.5" resolved "https://registry.yarnpkg.com/table/-/table-5.4.5.tgz#c8f4ea2d8fee08c0027fac27b0ec0a4fe01dfa42" integrity sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA== dependencies: ajv "^6.10.2" lodash "^4.17.14" slice-ansi "^2.1.0" string-width "^3.0.0" table@^5.4.6: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: ajv "^6.10.2" lodash "^4.17.14" slice-ansi "^2.1.0" string-width "^3.0.0" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== dependencies: block-stream "*" fstream "^1.0.12" inherits "2" tar@^4: version "4.4.10" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" minipass "^2.3.5" minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" yallist "^3.0.3" tcomb-validation@^3.3.0: version "3.4.1" resolved "https://registry.yarnpkg.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz#a7696ec176ce56a081d9e019f8b732a5a8894b65" integrity sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA== dependencies: tcomb "^3.0.0" tcomb@^3.0.0, tcomb@^3.2.17: version "3.2.29" resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.29.tgz#32404fe9456d90c2cf4798682d37439f1ccc386c" integrity sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ== tempusdominus-bootstrap-4@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/tempusdominus-bootstrap-4/-/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" integrity sha512-ksD8qc4wOJeE19wvryXmEpRzMUSZu4wSOdG6zKSn8l4ccad16249KOX1j0CccyZpuuES/n4FLqLAUB+Dd1LTBA== dependencies: bootstrap ">=4.1.2" jquery "^3.0" moment "^2.22.2" moment-timezone "^0.5.11" popper.js "^1.14.3" term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= dependencies: execa "^0.7.0" terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.4.tgz#ac045703bd8da0936ce910d8fb6350d0e1dee5fe" - integrity sha512-Nv96Nws2R2nrFOpbzF6IxRDpIkkIfmhvOws+IqMvYdFLO7o6wAILWFKONFgaYy8+T4LVz77DQW0f7wOeDEAjrg== +terser-webpack-plugin@^2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" + integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== dependencies: cacache "^13.0.1" find-cache-dir "^3.2.0" jest-worker "^25.1.0" p-limit "^2.2.2" schema-utils "^2.6.4" serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.4.3" webpack-sources "^1.4.3" terser@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.2.tgz#b2656c8a506f7ce805a3f300a2ff48db022fa391" integrity sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw== dependencies: commander "^2.20.0" source-map "~0.6.1" source-map-support "~0.5.12" terser@^4.4.3: version "4.5.1" resolved "https://registry.yarnpkg.com/terser/-/terser-4.5.1.tgz#63b52d6b6ce344aa6fedcd0ee06a695799eb50bd" integrity sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ== dependencies: commander "^2.20.0" source-map "~0.6.1" source-map-support "~0.5.12" test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" glob "^7.1.4" minimatch "^3.0.4" text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= through2@^2.0.0, through2@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" xtend "~4.0.1" "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= timers-browserify@^1.0.1: version "1.4.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= dependencies: process "~0.11.0" timers-browserify@^2.0.4: version "2.0.10" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== dependencies: setimmediate "^1.0.4" timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-emitter@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== tiny-inflate@^1.0.0, tiny-inflate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.2.tgz#93d9decffc8805bd57eae4310f0b745e9b6fb3a7" integrity sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c= tmp@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== dependencies: rimraf "^2.6.3" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" regex-not "^1.0.2" safe-regex "^1.1.0" toastr@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181" integrity sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE= dependencies: jquery ">=1.12.0" toidentifier@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== touch@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== dependencies: nopt "~1.0.10" tough-cookie@^2.3.3: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== dependencies: psl "^1.1.28" punycode "^2.1.1" tough-cookie@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== dependencies: ip-regex "^2.1.0" psl "^1.1.28" punycode "^2.1.1" tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== dependencies: psl "^1.1.24" punycode "^1.4.1" tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= dependencies: punycode "^2.1.0" trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= trim-newlines@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-newlines@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= trim-trailing-lines@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz#d2f1e153161152e9f02fabc670fb40bec2ea2e3a" integrity sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q== trim@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= trough@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== "true-case-path@^1.0.2": version "1.0.3" resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== dependencies: glob "^7.1.2" -tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tty-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" type-fest@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" type@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/type/-/type-1.0.1.tgz#084c9a17fcc9151a2cdb1459905c2e45e4bb7d61" integrity sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw== typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typeface-alegreya-sans@^0.0.72: version "0.0.72" resolved "https://registry.yarnpkg.com/typeface-alegreya-sans/-/typeface-alegreya-sans-0.0.72.tgz#5b63550f60a48a99b5630ead0cbe733e3bb32c6e" integrity sha512-W4JWZwG+4YoJF9RcEg0SFgzOVDxuctMSwcQD+ZoqdsR44+AXHLN9pZui1IC8JjGMt4KYI4LatFucenJ8aFZs/A== typeface-alegreya@0.0.69: version "0.0.69" resolved "https://registry.yarnpkg.com/typeface-alegreya/-/typeface-alegreya-0.0.69.tgz#92d82f3e68360d5d5cee01be812f5aeb19ade8a7" integrity sha512-02wj0QZEaxnDH37ZX3fsCu6vlKdaH8f1bzJxuymXNCoEcN3tFKMLC9omAtx8G+EbChb1gm5Nw+9XmPIYzi93fA== umd@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== undeclared-identifiers@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== dependencies: acorn-node "^1.3.0" dash-ast "^1.0.0" get-assigned-identifiers "^1.2.0" simple-concat "^1.0.0" xtend "^4.0.1" undefsafe@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" integrity sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY= dependencies: debug "^2.2.0" unherit@^1.0.4: version "1.1.2" resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" integrity sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w== dependencies: inherits "^2.0.1" xtend "^4.0.1" unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== unicode-match-property-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" unicode-match-property-value-ecmascript@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== unicode-properties@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/unicode-properties/-/unicode-properties-1.2.2.tgz#8ea79db656166f9c2eca157b0fd06c415dcf5b01" integrity sha512-+WhsOj19c93rPymvnPnFisbgFzrI4LjTV8ejMcCCfwS0XhdllZB4NsMFiYb4xUmpn3+aj3PM40h+wlzoG7PCnQ== dependencies: base64-js "^1.3.0" unicode-trie "^1.0.0" unicode-property-aliases-ecmascript@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== unicode-trie@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" integrity sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU= dependencies: pako "^0.2.5" tiny-inflate "^1.0.0" unicode-trie@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-1.0.0.tgz#f649afdca127135edb55ca0ad7c8c60656d92ad1" integrity sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA== dependencies: pako "^0.2.5" tiny-inflate "^1.0.0" unified@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw== dependencies: "@types/unist" "^2.0.0" "@types/vfile" "^3.0.0" bail "^1.0.0" extend "^3.0.0" is-plain-obj "^1.1.0" trough "^1.0.0" vfile "^3.0.0" x-is-string "^0.1.0" union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" get-value "^2.0.6" is-extendable "^0.1.1" set-value "^2.0.1" uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unique-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= dependencies: crypto-random-string "^1.0.0" unist-util-find-all-after@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.4.tgz#2eeaba818fd98492d69c44f9bee52c6a25282eef" integrity sha512-CaxvMjTd+yF93BKLJvZnEfqdM7fgEACsIpQqz8vIj9CJnUb9VpyymFS3tg6TCtgrF7vfCJBF5jbT2Ox9CBRYRQ== dependencies: unist-util-is "^3.0.0" unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== unist-util-remove-position@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz#d91aa8b89b30cb38bad2924da11072faa64fd972" integrity sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA== dependencies: unist-util-visit "^1.1.0" unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== unist-util-visit-parents@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== dependencies: unist-util-is "^3.0.0" unist-util-visit@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== dependencies: unist-util-visit-parents "^2.0.0" universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" isobject "^3.0.0" untildify@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= upath@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== dependencies: boxen "^1.2.1" chalk "^2.0.1" configstore "^3.0.0" import-lazy "^2.1.0" is-ci "^1.0.10" is-installed-globally "^0.1.0" is-npm "^1.0.0" latest-version "^3.0.0" semver-diff "^2.0.0" xdg-basedir "^3.0.0" uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-loader@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-3.0.0.tgz#9f1f11b371acf6e51ed15a50db635e02eec18368" integrity sha512-a84JJbIA5xTFTWyjjcPdnsu+41o/SNE8SpXMdUvXs6Q+LuhCD9E2+0VCiuDWqgo3GGXVlFHzArDmBpj9PgWn4A== dependencies: loader-utils "^1.2.3" mime "^2.4.4" schema-utils "^2.5.0" url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= dependencies: prepend-http "^1.0.1" url-parse@^1.4.3: version "1.4.7" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" url@0.11.0, url@^0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== dependencies: inherits "2.0.3" util@~0.10.1: version "0.10.4" resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: inherits "2.0.3" utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.0.1, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== uuid@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== v8-compile-cache@2.0.3, v8-compile-cache@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== v8-compile-cache@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" validate.js@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/validate.js/-/validate.js-0.13.1.tgz#b58bfac04a0f600a340f62e5227e70d95971e92a" integrity sha512-PnFM3xiZ+kYmLyTiMgTYmU7ZHkjBZz2/+F0DaALc/uUtVzdCt1wAosvYJ5hFQi/hz8O4zb52FQhHZRC+uVkJ+g== validator@^10.11.0: version "10.11.0" resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228" integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" vfile-location@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.5.tgz#c83eb02f8040228a8d2b3f10e485be3e3433e0a2" integrity sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ== vfile-message@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== dependencies: unist-util-stringify-position "^1.1.1" vfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ== dependencies: is-buffer "^2.0.0" replace-ext "1.0.0" unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" vlq@^0.2.2: version "0.2.3" resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== vm-browserify@^1.0.0, vm-browserify@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= dependencies: browser-process-hrtime "^0.1.2" w3c-xmlserializer@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== dependencies: domexception "^1.0.1" webidl-conversions "^4.0.2" xml-name-validator "^3.0.0" watchify@3.11.1: version "3.11.1" resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" integrity sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog== dependencies: anymatch "^2.0.0" browserify "^16.1.0" chokidar "^2.1.1" defined "^1.0.0" outpipe "^1.1.0" through2 "^2.0.0" xtend "^4.0.0" watchpack@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" waypoints@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/waypoints/-/waypoints-4.0.1.tgz#09979a0573810b29627cba4366a284a062ec69c8" integrity sha1-CZeaBXOBCylifLpDZqKEoGLsacg= wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-bundle-tracker@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/webpack-bundle-tracker/-/webpack-bundle-tracker-0.4.3.tgz#48a3e2226ddb9d24d704640ab4168c2d120f4526" integrity sha512-Sl/+OsNhFAH3/c6XADupRu8jLvGojfXX0pZIIm3O5ZcJqkHHqlY4nLG+NVRcbDgM/jOeWimKDGQMVEa8FBeJ2g== dependencies: deep-extend "^0.6.0" mkdirp "^0.5.1" strip-ansi "^5.2.0" -webpack-cli@^3.3.10: - version "3.3.10" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" - integrity sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg== +webpack-cli@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" + integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== dependencies: chalk "2.4.2" cross-spawn "6.0.5" enhanced-resolve "4.1.0" findup-sync "3.0.0" global-modules "2.0.0" import-local "2.0.0" interpret "1.2.0" loader-utils "1.2.3" supports-color "6.1.0" v8-compile-cache "2.0.3" yargs "13.2.4" webpack-dev-middleware@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== dependencies: memory-fs "^0.4.1" mime "^2.4.4" mkdirp "^0.5.1" range-parser "^1.2.1" webpack-log "^2.0.0" webpack-dev-server@^3.10.3: version "3.10.3" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" chokidar "^2.1.8" compression "^1.7.4" connect-history-api-fallback "^1.6.0" debug "^4.1.1" del "^4.1.1" express "^4.17.1" html-entities "^1.2.1" http-proxy-middleware "0.19.1" import-local "^2.0.0" internal-ip "^4.3.0" ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" loglevel "^1.6.6" opn "^5.5.0" p-retry "^3.0.1" portfinder "^1.0.25" schema-utils "^1.0.0" selfsigned "^1.10.7" semver "^6.3.0" serve-index "^1.9.1" sockjs "0.3.19" sockjs-client "1.4.0" spdy "^4.0.1" strip-ansi "^3.0.1" supports-color "^6.1.0" url "^0.11.0" webpack-dev-middleware "^3.7.2" webpack-log "^2.0.0" ws "^6.2.1" yargs "12.0.5" webpack-log@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== dependencies: ansi-colors "^3.0.0" uuid "^3.3.2" webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.1.tgz#b91b2c5b1c4e890ff50d1d35b7fa3657040da1da" integrity sha512-XSz38193PTo/1csJabKaV4b53uRVotlMgqJXm3s3eje0Bu6gQTxYDqpD38CmQfDBA+gN+QqaGjasuC8I/7eW3Q== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.41.5: - version "4.41.5" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c" - integrity sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw== +webpack@^4.41.6: + version "4.41.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz#12f2f804bf6542ef166755050d4afbc8f66ba7e1" + integrity sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" "@webassemblyjs/wasm-edit" "1.8.5" "@webassemblyjs/wasm-parser" "1.8.5" acorn "^6.2.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" enhanced-resolve "^4.1.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" mkdirp "^0.5.1" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" watchpack "^1.6.0" webpack-sources "^1.4.1" websocket-driver@>=0.5.1: version "0.7.3" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== dependencies: http-parser-js ">=0.4.0 <0.4.11" safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: iconv-lite "0.4.24" whatwg-fetch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== whatwg-url@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== dependencies: lodash.sortby "^4.7.0" tr46 "^1.0.1" webidl-conversions "^4.0.2" which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@1, which@1.3.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wide-align@1.1.3, wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" widest-line@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== dependencies: string-width "^2.1.1" word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" worker-loader@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac" integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== dependencies: loader-utils "^1.0.0" schema-utils "^0.4.0" wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" string-width "^3.0.0" strip-ansi "^5.0.0" wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" strip-ansi "^6.0.0" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^2.0.0: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" signal-exit "^3.0.2" write-file-atomic@^3.0.0, write-file-atomic@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b" integrity sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw== dependencies: imurmurhash "^0.1.4" is-typedarray "^1.0.0" signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" ws@^7.0.0: version "7.1.1" resolved "https://registry.yarnpkg.com/ws/-/ws-7.1.1.tgz#f9942dc868b6dffb72c14fd8f2ba05f77a4d5983" integrity sha512-o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A== dependencies: async-limiter "^1.0.0" x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== xmlchars@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.1.1.tgz#ef1a81c05bff629c2280007f12daca21bd6f6c93" integrity sha512-7hew1RPJ1iIuje/Y01bGD/mXokXxegAgVS+e+E0wSi2ILHQkYAH1+JXARwTjZSM4Z4Z+c73aKspEcqj+zPPL/w== xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== dependencies: "@babel/runtime" "^7.6.3" yargs-parser@13.1.1, yargs-parser@^13.1.0, yargs-parser@^13.1.1: version "13.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== dependencies: camelcase "^4.1.0" yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^15.0.0: version "15.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.0.tgz#cdd7a97490ec836195f59f3f4dbe5ea9e8f75f08" integrity sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^16.1.0: version "16.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= dependencies: camelcase "^3.0.0" yargs-unparser@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== dependencies: flat "^4.1.0" lodash "^4.17.15" yargs "^13.3.0" yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== dependencies: cliui "^4.0.0" decamelize "^1.2.0" find-up "^3.0.0" get-caller-file "^1.0.1" os-locale "^3.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" yargs@13.2.4: version "13.2.4" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== dependencies: cliui "^5.0.0" find-up "^3.0.0" get-caller-file "^2.0.1" os-locale "^3.1.0" require-directory "^2.1.1" require-main-filename "^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.0" yargs@13.3.0, yargs@^13.2.2, yargs@^13.3.0: version "13.3.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== dependencies: 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.1" yargs@^14.2: version "14.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.0.tgz#f116a9242c4ed8668790b40759b4906c276e76c3" integrity sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg== dependencies: cliui "^5.0.0" decamelize "^1.2.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 "^15.0.0" yargs@^15.0.2: version "15.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== dependencies: cliui "^6.0.0" decamelize "^1.2.0" find-up "^4.1.0" get-caller-file "^2.0.1" require-directory "^2.1.1" require-main-filename "^2.0.0" set-blocking "^2.0.0" string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^16.1.0" yargs@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= dependencies: camelcase "^3.0.0" cliui "^3.2.0" decamelize "^1.1.1" get-caller-file "^1.0.1" os-locale "^1.4.0" read-pkg-up "^1.0.1" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^1.0.2" which-module "^1.0.0" y18n "^3.2.1" yargs-parser "^5.0.0" yauzl@2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= dependencies: fd-slicer "~1.0.1"