diff --git a/PKG-INFO b/PKG-INFO index 120a2158..468c2bbb 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,206 +1,206 @@ Metadata-Version: 2.1 Name: swh.web -Version: 0.0.380 +Version: 0.0.381 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 Project-URL: Documentation, https://docs.softwareheritage.org/devel/swh-web/ 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 Requires-Python: >=3.7 Description-Content-Type: text/markdown Provides-Extra: testing License-File: LICENSE License-File: AUTHORS # 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/) >= 12.0.0 and [yarn](https://yarnpkg.com/en/) installed. If you are on Debian, you can easily install an up to date nodejs from the [nodesource](https://github.com/nodesource/distributions/blob/master/README.md) 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 ``` diff --git a/package.json b/package.json index 305a3d2d..c2aa40b2 100644 --- a/package.json +++ b/package.json @@ -1,177 +1,177 @@ { "name": "swh-web", "version": "0.0.317", "description": "Static assets management for swh-web", "scripts": { "build-dev": "NODE_ENV=development webpack --config assets/config/webpack.config.development.js --color", "build-test": "NODE_ENV=test webpack --config assets/config/webpack.config.development.js --color", "start-dev": "NODE_ENV=development webpack serve --config assets/config/webpack.config.development.js --color", "build": "NODE_ENV=production webpack --config assets/config/webpack.config.production.js --color", "mochawesome": "mochawesome-merge cypress/mochawesome/results/*.json > cypress/mochawesome/mochawesome.json && marge -o cypress/mochawesome/report cypress/mochawesome/mochawesome.json", "eslint": "eslint -c assets/config/.eslintrc --fix 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.17.8", + "@babel/runtime-corejs3": "^7.17.9", "@mdi/font": "^6.6.96", - "@sentry/browser": "^6.19.4", + "@sentry/browser": "^6.19.6", "admin-lte": "^3.2.0", "ansi_up": "^5.1.0", "bootstrap": "^4.6.1", "chosen-js": "^1.8.7", "clipboard": "^2.0.10", "core-js": "^3.21.1", - "d3": "^7.4.2", + "d3": "^7.4.3", "datatables.net": "^1.11.5", "datatables.net-bs4": "^1.11.5", "dompurify": "^2.3.6", "email-validator": "^2.0.4", "hex-rgb": "^5.0.0", "highlight.js": "^11.5.0", "highlightjs-4d": "^1.0.6", "highlightjs-alan": "^0.0.2", "highlightjs-blade": "^0.1.0", "highlightjs-chaos": "^0.0.10", "highlightjs-chapel": "github:chapel-lang/highlightjs-chapel", "highlightjs-cpcdos": "github:SPinti-Software/highlightjs-cpcdos", "highlightjs-cshtml-razor": "^2.1.1", "highlightjs-cypher": "^1.1.1", "highlightjs-dafny": "github:ConsenSys/highlightjs-dafny", "highlightjs-dylan": "github:highlightjs/highlightjs-dylan", "highlightjs-eta": "^0.1.0", "highlightjs-extempore": "github:highlightjs/highlightjs-extempore", "highlightjs-gdscript": "github:highlightjs/highlightjs-gdscript", "highlightjs-gf": "^1.0.1", "highlightjs-gsql": "github:TigerGraph-DevLabs/highlightjs-gsql", "highlightjs-hlsl": "github:highlightjs/highlightjs-hlsl", "highlightjs-jolie": "^0.1.8", "highlightjs-lean": "^1.1.0", "highlightjs-line-numbers.js": "^2.8.0", "highlightjs-lox": "^2.0.6", "highlightjs-mirc": "github:highlightjs/highlightjs-mirc", "highlightjs-modelica": "^1.0.0", "highlightjs-never": "github:never-lang/highlightjs-never", "highlightjs-octave": "^0.1.0", "highlightjs-oz": "^0.0.3", "highlightjs-qsharp": "^1.0.2", "highlightjs-redbol": "^1.0.3", "highlightjs-robot": "github:highlightjs/highlightjs-robot", "highlightjs-robots-txt": "^0.9.1", "highlightjs-rpm-specfile": "^1.0.0", "highlightjs-sap-abap": "^0.2.0", "highlightjs-solidity": "^2.0.5", "highlightjs-svelte": "^1.0.6", "highlightjs-terraform": "github:highlightjs/highlightjs-terraform", "highlightjs-xsharp": "^1.0.0", "highlightjs-zenscript": "^2.0.0", "highlightjs-zig": "^1.0.2", "hightlightjs-papyrus": "github:Pickysaurus/highlightjs-papyrus", "html-encoder-decoder": "^1.3.9", "iframe-resizer": "^4.3.2", "intro.js": "^5.1.0", "jquery": "^3.6.0", "js-cookie": "^3.0.1", "js-year-calendar": "^2.0.0", "mathjax": "^3.2.0", "notebookjs": "^0.6.7", "object-fit-images": "^3.2.4", "org": "^0.2.0", "pdfjs-dist": "^2.13.216", "popper.js": "^1.16.1", "showdown": "^2.0.3", "typeface-alegreya": "^1.1.13", "typeface-alegreya-sans": "^1.1.13", "waypoints": "^4.0.1", "whatwg-fetch": "^3.6.2" }, "devDependencies": { - "@babel/core": "^7.17.8", + "@babel/core": "^7.17.9", "@babel/eslint-parser": "^7.17.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-runtime": "^7.17.0", "@babel/preset-env": "^7.16.11", "@cypress/code-coverage": "^3.9.12", "autoprefixer": "^10.4.4", "axios": "^0.26.1", "babel-loader": "^8.2.4", "babel-plugin-istanbul": "^6.1.1", "bootstrap-loader": "^3.0.4", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^10.2.4", "css-loader": "^6.7.1", "cypress": "^9.5.3", "cypress-hmr-restarter": "^2.0.3", "cypress-multi-reporters": "^1.5.0", "ejs": "^3.1.6", "ejs-compiled-loader": "^3.1.0", "eslint": "^8.12.0", "eslint-plugin-chai-friendly": "^0.7.2", "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-import": "^2.25.4", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-standard": "^5.0.0", "eslint-webpack-plugin": "^3.1.1", "exports-loader": "^3.1.0", "expose-loader": "^3.1.0", "imports-loader": "^3.1.1", "istanbul-lib-coverage": "^3.2.0", "json-stable-stringify": "^1.0.1", "mini-css-extract-plugin": "^2.6.0", "mocha": "^9.2.2", "mocha-junit-reporter": "^2.0.2", "mochawesome": "^7.1.3", "mochawesome-merge": "^4.2.1", "mochawesome-report-generator": "^6.2.0", "node-sass": "^7.0.1", "nyc": "^15.1.0", "optimize-css-assets-webpack-plugin": "^6.0.1", "postcss": "^8.4.12", "postcss-loader": "^6.2.1", "postcss-normalize": "^10.0.1", "postcss-reporter": "^7.0.5", "progress-bar-webpack-plugin": "^2.1.0", "resolve-url-loader": "^5.0.0", "robotstxt-webpack-plugin": "^7.0.0", "sass-loader": "^12.6.0", "schema-utils": "^4.0.0", "script-loader": "^0.7.2", "spdx-expression-parse": "^3.0.1", "sqlite3": "^5.0.2", "style-loader": "^3.3.1", "stylelint": "^14.6.1", "stylelint-config-standard": "^25.0.0", "terser-webpack-plugin": "^5.3.1", "url-loader": "^4.1.1", - "webpack": "^5.71.0", - "webpack-bundle-tracker": "^1.4.0", + "webpack": "^5.72.0", + "webpack-bundle-tracker": "^1.5.0", "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.8.0", + "webpack-dev-server": "^4.8.1", "webpack-log": "^3.0.2", "yaml-loader": "^0.6.0" }, "resolutions": { "jquery": "^3.6.0" }, "browserslist": [ "cover 99.5%", "not dead" ], "nyc": { "report-dir": "cypress/coverage", "exclude": [ "assets/src/bundles/vendors/index.js", "assets/src/thirdparty/**/*.js" ] }, "engines": { "node": ">=12.0.0" } } diff --git a/static/js/webapp.a9cdf114b9bc610c9895.js b/static/js/webapp.a9cdf114b9bc610c9895.js new file mode 100644 index 00000000..89560bb6 --- /dev/null +++ b/static/js/webapp.a9cdf114b9bc610c9895.js @@ -0,0 +1,3 @@ +/*! For license information please see webapp.a9cdf114b9bc610c9895.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.swh=t():(e.swh=e.swh||{},e.swh.webapp=t())}(self,(function(){return function(){var e,t,r,n,o,i,a={87757:function(e,t,r){e.exports=r(35666)},56578:function(e,t,r){"use strict";r.d(t,{u:function(){return d}});var n=r(70655),o=r(1984),i=r(9317),a=r(13819),s=r(8823),u=r(84773),c=r(20754),l=r(68690),p=r(20116),f=r(68131),d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return(0,n.ZT)(t,e),t.prototype.eventFromException=function(e,t){return(0,u.dr)(e,t,this._options.attachStacktrace)},t.prototype.eventFromMessage=function(e,t,r){return void 0===t&&(t=a.z.Info),(0,u.aB)(e,t,r,this._options.attachStacktrace)},t.prototype._setupTransport=function(){if(!this._options.dsn)return e.prototype._setupTransport.call(this);var t=(0,n.pi)((0,n.pi)({},this._options.transportOptions),{dsn:this._options.dsn,tunnel:this._options.tunnel,sendClientReports:this._options.sendClientReports,_metadata:this._options._metadata}),r=(0,o.hd)(t.dsn,t._metadata,t.tunnel),i=(0,o.Ut)(r.dsn,r.tunnel);if(this._options.transport)return new this._options.transport(t);if((0,s.Ak)()){var a=(0,n.pi)({},t.fetchParameters);return this._newTransport=(0,c.k)({requestOptions:a,url:i}),new l.V(t)}return this._newTransport=(0,p.H)({url:i,headers:t.headers}),new f.w(t)},t}(i.N)},49680:function(e,t,r){"use strict";r.d(t,{R:function(){return f}});var n=r(70655),o=r(40105),i=r(44219),a=r(82991),s=r(12343),u=r(56578),c=r(24326),l=r(86891),p=r(90564),f=function(e){function t(t){void 0===t&&(t={});return t._metadata=t._metadata||{},t._metadata.sdk=t._metadata.sdk||{name:"sentry.javascript.browser",packages:[{name:"npm:@sentry/browser",version:o.J}],version:o.J},e.call(this,u.u,t)||this}return(0,n.ZT)(t,e),t.prototype.showReportDialog=function(e){void 0===e&&(e={}),(0,a.R)().document&&(this._isEnabled()?(0,l.BS)((0,n.pi)((0,n.pi)({},e),{dsn:e.dsn||this.getDsn()})):c.h&&s.kg.error("Trying to call showReportDialog with Sentry Client disabled"))},t.prototype._prepareEvent=function(t,r,n){return t.platform=t.platform||"javascript",e.prototype._prepareEvent.call(this,t,r,n)},t.prototype._sendEvent=function(t){var r=this.getIntegration(p.O);r&&r.addSentryBreadcrumb(t),e.prototype._sendEvent.call(this,t)},t}(i.W)},84773:function(e,t,r){"use strict";r.d(t,{GJ:function(){return f},ME:function(){return y},aB:function(){return b},dr:function(){return v}});var n=r(70655),o=r(13819),i=r(67597),a=r(20535),s=r(90322),u=r(30360),c=r(62844),l=r(96893),p=r(34469);function f(e){var t=h(e),r={type:e&&e.name,value:m(e)};return t.length&&(r.stacktrace={frames:t}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function d(e){return{exception:{values:[f(e)]}}}function h(e){var t=e.stacktrace||e.stack||"",r=function(e){if(e){if("number"==typeof e.framesToPop)return e.framesToPop;if(g.test(e.message))return 1}return 0}(e);try{return(0,u.pE)(p.CS,p.ay,p.s$,p.aL,p.Pi)(t,r)}catch(e){}return[]}var g=/Minified React error #\d+;/i;function m(e){var t=e&&e.message;return t?t.error&&"string"==typeof t.error.message?t.error.message:t:"No error message"}function v(e,t,r){var n=y(e,t&&t.syntheticException||void 0,r);return(0,c.EG)(n),n.level=o.z.Error,t&&t.event_id&&(n.event_id=t.event_id),(0,l.WD)(n)}function b(e,t,r,n){void 0===t&&(t=o.z.Info);var i=w(e,r&&r.syntheticException||void 0,n);return i.level=t,r&&r.event_id&&(i.event_id=r.event_id),(0,l.WD)(i)}function y(e,t,r,o){var u;if((0,i.VW)(e)&&e.error)return d(e.error);if((0,i.TX)(e)||(0,i.fm)(e)){var l=e;if("stack"in e)u=d(e);else{var p=l.name||((0,i.TX)(l)?"DOMError":"DOMException"),f=l.message?p+": "+l.message:p;u=w(f,t,r),(0,c.Db)(u,f)}return"code"in l&&(u.tags=(0,n.pi)((0,n.pi)({},u.tags),{"DOMException.code":""+l.code})),u}return(0,i.VZ)(e)?d(e):(0,i.PO)(e)||(0,i.cO)(e)?(u=function(e,t,r){var n={exception:{values:[{type:(0,i.cO)(e)?e.constructor.name:r?"UnhandledRejection":"Error",value:"Non-Error "+(r?"promise rejection":"exception")+" captured with keys: "+(0,a.zf)(e)}]},extra:{__serialized__:(0,s.Qy)(e)}};if(t){var o=h(t);o.length&&(n.stacktrace={frames:o})}return n}(e,t,o),(0,c.EG)(u,{synthetic:!0}),u):(u=w(e,t,r),(0,c.Db)(u,""+e,void 0),(0,c.EG)(u,{synthetic:!0}),u)}function w(e,t,r){var n={message:e};if(r&&t){var o=h(t);o.length&&(n.stacktrace={frames:o})}return n}},24326:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});var n="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},86891:function(e,t,r){"use strict";r.d(t,{BS:function(){return m},Wz:function(){return d},re:function(){return g}});var n=r(70655),o=r(39666),i=r(1984),a=r(82991),s=r(20535),u=r(62844),c=r(12343),l=r(24326),p=(0,a.R)(),f=0;function d(){return f>0}function h(){f+=1,setTimeout((function(){f-=1}))}function g(e,t,r){if(void 0===t&&(t={}),"function"!=typeof e)return e;try{var i=e.__sentry_wrapped__;if(i)return i;if((0,s.HK)(e))return e}catch(t){return e}var a=function(){var i=Array.prototype.slice.call(arguments);try{r&&"function"==typeof r&&r.apply(this,arguments);var a=i.map((function(e){return g(e,t)}));return e.apply(this,a)}catch(e){throw h(),(0,o.$e)((function(r){r.addEventProcessor((function(e){return t.mechanism&&((0,u.Db)(e,void 0,void 0),(0,u.EG)(e,t.mechanism)),e.extra=(0,n.pi)((0,n.pi)({},e.extra),{arguments:i}),e})),(0,o.Tb)(e)})),e}};try{for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&(a[c]=e[c])}catch(e){}(0,s.$Q)(a,e),(0,s.xp)(e,"__sentry_wrapped__",a);try{Object.getOwnPropertyDescriptor(a,"name").configurable&&Object.defineProperty(a,"name",{get:function(){return e.name}})}catch(e){}return a}function m(e){if(void 0===e&&(e={}),p.document)if(e.eventId)if(e.dsn){var t=p.document.createElement("script");t.async=!0,t.src=(0,i.hR)(e.dsn,e),e.onLoad&&(t.onload=e.onLoad);var r=p.document.head||p.document.body;r&&r.appendChild(t)}else l.h&&c.kg.error("Missing dsn option in showReportDialog call");else l.h&&c.kg.error("Missing eventId option in showReportDialog call")}},90564:function(e,t,r){"use strict";r.d(t,{O:function(){return f}});var n=r(70655),o=r(38641),i=r(13819),a=r(62844),s=r(9732),u=r(58464),c=r(16547),l=r(57321),p=r(82991),f=function(){function e(t){this.name=e.id,this._options=(0,n.pi)({console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0},t)}return e.prototype.addSentryBreadcrumb=function(e){this._options.sentry&&(0,o.Gd)().addBreadcrumb({category:"sentry."+("transaction"===e.type?"transaction":"event"),event_id:e.event_id,level:e.level,message:(0,a.jH)(e)},{event:e})},e.prototype.setupOnce=function(){this._options.console&&(0,s.o)("console",d),this._options.dom&&(0,s.o)("dom",function(e){function t(t){var r,n="object"==typeof e?e.serializeAttribute:void 0;"string"==typeof n&&(n=[n]);try{r=t.event.target?(0,u.R)(t.event.target,n):(0,u.R)(t.event,n)}catch(e){r=""}0!==r.length&&(0,o.Gd)().addBreadcrumb({category:"ui."+t.name,message:r},{event:t.event,name:t.name,global:t.global})}return t}(this._options.dom)),this._options.xhr&&(0,s.o)("xhr",h),this._options.fetch&&(0,s.o)("fetch",g),this._options.history&&(0,s.o)("history",m)},e.id="Breadcrumbs",e}();function d(e){var t={category:"console",data:{arguments:e.args,logger:"console"},level:(0,c.E)(e.level),message:(0,l.nK)(e.args," ")};if("assert"===e.level){if(!1!==e.args[0])return;t.message="Assertion failed: "+((0,l.nK)(e.args.slice(1)," ")||"console.assert"),t.data.arguments=e.args.slice(1)}(0,o.Gd)().addBreadcrumb(t,{input:e.args,level:e.level})}function h(e){if(e.endTimestamp){if(e.xhr.__sentry_own_request__)return;var t=e.xhr.__sentry_xhr__||{},r=t.method,n=t.url,i=t.status_code,a=t.body;(0,o.Gd)().addBreadcrumb({category:"xhr",data:{method:r,url:n,status_code:i},type:"http"},{xhr:e.xhr,input:a})}else;}function g(e){e.endTimestamp&&(e.fetchData.url.match(/sentry_key/)&&"POST"===e.fetchData.method||(e.error?(0,o.Gd)().addBreadcrumb({category:"fetch",data:e.fetchData,level:i.z.Error,type:"http"},{data:e.error,input:e.args}):(0,o.Gd)().addBreadcrumb({category:"fetch",data:(0,n.pi)((0,n.pi)({},e.fetchData),{status_code:e.response.status}),type:"http"},{input:e.args,response:e.response})))}function m(e){var t=(0,p.R)(),r=e.from,n=e.to,i=(0,a.en)(t.location.href),s=(0,a.en)(r),u=(0,a.en)(n);s.path||(s=i),i.protocol===u.protocol&&i.host===u.host&&(n=u.relative),i.protocol===s.protocol&&i.host===s.host&&(r=s.relative),(0,o.Gd)().addBreadcrumb({category:"navigation",data:{from:r,to:n}})}},69730:function(e,t,r){"use strict";r.d(t,{I:function(){return i}});var n=r(12343),o=r(24326),i=function(){function e(){this.name=e.id}return e.prototype.setupOnce=function(t,r){t((function(t){var i=r().getIntegration(e);if(i){try{if(function(e,t){if(!t)return!1;if(function(e,t){var r=e.message,n=t.message;if(!r&&!n)return!1;if(r&&!n||!r&&n)return!1;if(r!==n)return!1;if(!s(e,t))return!1;if(!a(e,t))return!1;return!0}(e,t))return!0;if(function(e,t){var r=u(t),n=u(e);if(!r||!n)return!1;if(r.type!==n.type||r.value!==n.value)return!1;if(!s(e,t))return!1;if(!a(e,t))return!1;return!0}(e,t))return!0;return!1}(t,i._previousEvent))return o.h&&n.kg.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(e){return i._previousEvent=t}return i._previousEvent=t}return t}))},e.id="Dedupe",e}();function a(e,t){var r=c(e),n=c(t);if(!r&&!n)return!0;if(r&&!n||!r&&n)return!1;if(r=r,(n=n).length!==r.length)return!1;for(var o=0;o0?t:(0,u.l)();return 0===l.length&&l.push({colno:p,filename:d,function:"?",in_app:!0,lineno:f}),e}function b(e,t,r,n){(0,l.EG)(r,{handled:!1,type:n}),e.captureEvent(r,{originalException:t})}function y(){var e=(0,o.Gd)(),t=e.getClient();return[e,t&&t.getOptions().attachStacktrace]}},61634:function(e,t,r){"use strict";r.d(t,{iP:function(){return u}});var n=r(70655),o=r(46769),i=r(38641),a=r(67597),s=r(84773),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(){(0,o.c)((function(t,r){var o=(0,i.Gd)().getIntegration(e);return o?function(e,t,r,o){if(!(r.exception&&r.exception.values&&o&&(0,a.V9)(o.originalException,Error)))return r;var i=c(t,o.originalException,e);return r.exception.values=(0,n.fl)(i,r.exception.values),r}(o._key,o._limit,t,r):t}))},e.id="LinkedErrors",e}();function c(e,t,r,o){if(void 0===o&&(o=[]),!(0,a.V9)(t[r],Error)||o.length+1>=e)return o;var i=(0,s.GJ)(t[r]);return c(e,t[r],r,(0,n.fl)([i],o))}},53692:function(e,t,r){"use strict";r.d(t,{p:function(){return c}});var n=r(70655),o=r(82991),i=r(20535),a=r(30360),s=r(86891),u=["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"],c=function(){function e(t){this.name=e.id,this._options=(0,n.pi)({XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0},t)}return e.prototype.setupOnce=function(){var e=(0,o.R)();this._options.setTimeout&&(0,i.hl)(e,"setTimeout",l),this._options.setInterval&&(0,i.hl)(e,"setInterval",l),this._options.requestAnimationFrame&&(0,i.hl)(e,"requestAnimationFrame",p),this._options.XMLHttpRequest&&"XMLHttpRequest"in e&&(0,i.hl)(XMLHttpRequest.prototype,"send",f);var t=this._options.eventTarget;t&&(Array.isArray(t)?t:u).forEach(d)},e.id="TryCatch",e}();function l(e){return function(){for(var t=[],r=0;r|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,s=/\((\S*)(?::(\d+))(?::(\d+))\)/,u=[30,function(e){var t=a.exec(e);if(t){if(t[2]&&0===t[2].indexOf("eval")){var r=s.exec(t[2]);r&&(t[2]=r[1],t[3]=r[2],t[4]=r[3])}var u=(0,n.CR)(b(t[1]||o,t[2]),2),c=u[0];return i(u[1],c,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}}],c=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,l=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,p=[50,function(e){var t,r=c.exec(e);if(r){if(r[3]&&r[3].indexOf(" > eval")>-1){var a=l.exec(r[3]);a&&(r[1]=r[1]||"eval",r[3]=a[1],r[4]=a[2],r[5]="")}var s=r[3],u=r[1]||o;return u=(t=(0,n.CR)(b(u,s),2))[0],i(s=t[1],u,r[4]?+r[4]:void 0,r[5]?+r[5]:void 0)}}],f=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,d=[40,function(e){var t=f.exec(e);return t?i(t[2],t[1]||o,+t[3],t[4]?+t[4]:void 0):void 0}],h=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,g=[10,function(e){var t=h.exec(e);return t?i(t[2],t[3]||o,+t[1]):void 0}],m=/ line (\d+), column (\d+)\s*(?:in (?:]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,v=[20,function(e){var t=m.exec(e);return t?i(t[5],t[3]||t[4]||o,+t[1],+t[2]):void 0}],b=function(e,t){var r=-1!==e.indexOf("safari-extension"),n=-1!==e.indexOf("safari-web-extension");return r||n?[-1!==e.indexOf("@")?e.split("@")[0]:o,r?"safari-extension:"+t:"safari-web-extension:"+t]:[e,t]}},85162:function(e,t,r){"use strict";r.d(t,{d:function(){return b}});var n=r(70655),o=r(1984),i=r(29324),a=r(82991),s=r(81227),u=r(12343),c=r(47165),l=r(30292),p=r(58725),f=r(136),d=r(80228),h=r(24326),g=r(77050);function m(e){return"event"===e?"error":e}var v=(0,a.R)(),b=function(){function e(e){var t=this;this.options=e,this._buffer=(0,s.x)(30),this._rateLimits={},this._outcomes={},this._api=(0,o.hd)(e.dsn,e._metadata,e.tunnel),this.url=(0,o.qi)(this._api.dsn),this.options.sendClientReports&&v.document&&v.document.addEventListener("visibilitychange",(function(){"hidden"===v.document.visibilityState&&t._flushOutcomes()}))}return e.prototype.sendEvent=function(e){return this._sendRequest((0,i.nA)(e,this._api),e)},e.prototype.sendSession=function(e){return this._sendRequest((0,i.Qz)(e,this._api),e)},e.prototype.close=function(e){return this._buffer.drain(e)},e.prototype.recordLostEvent=function(e,t){var r;if(this.options.sendClientReports){var n=m(t)+":"+e;h.h&&u.kg.log("Adding outcome: "+n),this._outcomes[n]=(null!=(r=this._outcomes[n])?r:0)+1}},e.prototype._flushOutcomes=function(){if(this.options.sendClientReports){var e=this._outcomes;if(this._outcomes={},Object.keys(e).length){h.h&&u.kg.log("Flushing outcomes:\n"+JSON.stringify(e,null,2));var t=(0,o.Ut)(this._api.dsn,this._api.tunnel),r=Object.keys(e).map((function(t){var r=(0,n.CR)(t.split(":"),2),o=r[0];return{reason:r[1],category:o,quantity:e[t]}})),i=(0,c.y)(r,this._api.tunnel&&(0,l.R)(this._api.dsn));try{(0,g.z)(t,(0,p.V$)(i))}catch(e){h.h&&u.kg.error(e)}}else h.h&&u.kg.log("No outcomes to flush")}},e.prototype._handleResponse=function(e){var t=e.requestType,r=e.response,n=e.headers,o=e.resolve,i=e.reject,a=(0,f.F)(r.status);this._rateLimits=(0,d.WG)(this._rateLimits,n),this._isRateLimited(t)&&h.h&&u.kg.warn("Too many "+t+" requests, backing off until: "+this._disabledUntil(t)),"success"!==a?i(r):o({status:a})},e.prototype._disabledUntil=function(e){var t=m(e);return new Date((0,d.ns)(this._rateLimits,t))},e.prototype._isRateLimited=function(e){var t=m(e);return(0,d.Q)(this._rateLimits,t)},e}()},68690:function(e,t,r){"use strict";r.d(t,{V:function(){return c}});var n=r(70655),o=r(8823),i=r(96893),a=r(80409),s=r(85162),u=r(77050),c=function(e){function t(t,r){void 0===r&&(r=(0,u.x)());var n=e.call(this,t)||this;return n._fetch=r,n}return(0,n.ZT)(t,e),t.prototype._sendRequest=function(e,t){var r=this;if(this._isRateLimited(e.type))return this.recordLostEvent("ratelimit_backoff",e.type),Promise.reject({event:t,type:e.type,reason:"Transport for "+e.type+" requests locked till "+this._disabledUntil(e.type)+" due to too many requests.",status:429});var n={body:e.body,method:"POST",referrerPolicy:(0,o.hv)()?"origin":""};return void 0!==this.options.fetchParameters&&Object.assign(n,this.options.fetchParameters),void 0!==this.options.headers&&(n.headers=this.options.headers),this._buffer.add((function(){return new i.cW((function(t,o){r._fetch(e.url,n).then((function(n){var i={"x-sentry-rate-limits":n.headers.get("X-Sentry-Rate-Limits"),"retry-after":n.headers.get("Retry-After")};r._handleResponse({requestType:e.type,response:n,headers:i,resolve:t,reject:o})})).catch(o)}))})).then(void 0,(function(t){throw t instanceof a.b?r.recordLostEvent("queue_overflow",e.type):r.recordLostEvent("network_error",e.type),t}))},t}(s.d)},20754:function(e,t,r){"use strict";r.d(t,{k:function(){return a}});var n=r(70655),o=r(45431),i=r(77050);function a(e,t){return void 0===t&&(t=(0,i.x)()),(0,o.qv)({bufferSize:e.bufferSize},(function(r){var o=(0,n.pi)({body:r.body,method:"POST",referrerPolicy:"origin"},e.requestOptions);return t(e.url,o).then((function(e){return e.text().then((function(t){return{body:t,headers:{"x-sentry-rate-limits":e.headers.get("X-Sentry-Rate-Limits"),"retry-after":e.headers.get("Retry-After")},reason:e.statusText,statusCode:e.status}}))}))}))}},20116:function(e,t,r){"use strict";r.d(t,{H:function(){return i}});var n=r(45431),o=r(96893);function i(e){return(0,n.qv)({bufferSize:e.bufferSize},(function(t){return new o.cW((function(r,n){var o=new XMLHttpRequest;for(var i in o.onreadystatechange=function(){if(4===o.readyState){var e={body:o.response,headers:{"x-sentry-rate-limits":o.getResponseHeader("X-Sentry-Rate-Limits"),"retry-after":o.getResponseHeader("Retry-After")},reason:o.statusText,statusCode:o.status};r(e)}},o.open("POST",e.url),e.headers)Object.prototype.hasOwnProperty.call(e.headers,i)&&o.setRequestHeader(i,e.headers[i]);o.send(t.body)}))}))}},77050:function(e,t,r){"use strict";r.d(t,{x:function(){return l},z:function(){return p}});var n,o=r(82991),i=r(8823),a=r(12343),s=r(8623),u=r(24326),c=(0,o.R)();function l(){if(n)return n;if((0,i.Du)(c.fetch))return n=c.fetch.bind(c);var e=c.document,t=c.fetch;if(e&&"function"==typeof e.createElement)try{var r=e.createElement("iframe");r.hidden=!0,e.head.appendChild(r);var o=r.contentWindow;o&&o.fetch&&(t=o.fetch),e.head.removeChild(r)}catch(e){u.h&&a.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",e)}return n=t.bind(c)}function p(e,t){if("[object Navigator]"===Object.prototype.toString.call(c&&c.navigator)&&"function"==typeof c.navigator.sendBeacon)return c.navigator.sendBeacon.bind(c.navigator)(e,t);if((0,i.Ak)()){var r=l();return(0,s.I)(r(e,{body:t,method:"POST",credentials:"omit",keepalive:!0}))}}},68131:function(e,t,r){"use strict";r.d(t,{w:function(){return a}});var n=r(70655),o=r(96893),i=r(80409),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return(0,n.ZT)(t,e),t.prototype._sendRequest=function(e,t){var r=this;return this._isRateLimited(e.type)?(this.recordLostEvent("ratelimit_backoff",e.type),Promise.reject({event:t,type:e.type,reason:"Transport for "+e.type+" requests locked till "+this._disabledUntil(e.type)+" due to too many requests.",status:429})):this._buffer.add((function(){return new o.cW((function(t,n){var o=new XMLHttpRequest;for(var i in o.onreadystatechange=function(){if(4===o.readyState){var i={"x-sentry-rate-limits":o.getResponseHeader("X-Sentry-Rate-Limits"),"retry-after":o.getResponseHeader("Retry-After")};r._handleResponse({requestType:e.type,response:o,headers:i,resolve:t,reject:n})}},o.open("POST",e.url),r.options.headers)Object.prototype.hasOwnProperty.call(r.options.headers,i)&&o.setRequestHeader(i,r.options.headers[i]);o.send(e.body)}))})).then(void 0,(function(t){throw t instanceof i.b?r.recordLostEvent("queue_overflow",e.type):r.recordLostEvent("network_error",e.type),t}))},t}(r(85162).d)},1984:function(e,t,r){"use strict";r.d(t,{Ut:function(){return p},hR:function(){return f},hd:function(){return i},qi:function(){return l}});var n=r(30292),o=r(20535);!function(){function e(e,t,r){void 0===t&&(t={}),this.dsn=e,this._dsnObject=(0,n.v)(e),this.metadata=t,this._tunnel=r}e.prototype.getDsn=function(){return this._dsnObject},e.prototype.forceEnvelope=function(){return!!this._tunnel},e.prototype.getBaseApiEndpoint=function(){return a(this._dsnObject)},e.prototype.getStoreEndpoint=function(){return c(this._dsnObject)},e.prototype.getStoreEndpointWithUrlEncodedAuth=function(){return l(this._dsnObject)},e.prototype.getEnvelopeEndpointWithUrlEncodedAuth=function(){return p(this._dsnObject,this._tunnel)}}();function i(e,t,r){return{initDsn:e,metadata:t||{},dsn:(0,n.v)(e),tunnel:r}}function a(e){var t=e.protocol?e.protocol+":":"",r=e.port?":"+e.port:"";return t+"//"+e.host+r+(e.path?"/"+e.path:"")+"/api/"}function s(e,t){return""+a(e)+e.projectId+"/"+t+"/"}function u(e){return(0,o._j)({sentry_key:e.publicKey,sentry_version:"7"})}function c(e){return s(e,"store")}function l(e){return c(e)+"?"+u(e)}function p(e,t){return t||function(e){return s(e,"envelope")}(e)+"?"+u(e)}function f(e,t){var r=(0,n.v)(e),o=a(r)+"embed/error-page/",i="dsn="+(0,n.R)(r);for(var s in t)if("dsn"!==s)if("user"===s){if(!t.user)continue;t.user.name&&(i+="&name="+encodeURIComponent(t.user.name)),t.user.email&&(i+="&email="+encodeURIComponent(t.user.email))}else i+="&"+encodeURIComponent(s)+"="+encodeURIComponent(t[s]);return o+"?"+i}},9317:function(e,t,r){"use strict";r.d(t,{N:function(){return l}});var n=r(70655),o=r(12343),i=r(80409),a=r(1984),s=r(53298),u=r(29324),c=r(22134),l=function(){function e(e){this._options=e,this._options.dsn||s.h&&o.kg.warn("No DSN provided, backend will not do anything."),this._transport=this._setupTransport()}return e.prototype.eventFromException=function(e,t){throw new i.b("Backend has to implement `eventFromException` method")},e.prototype.eventFromMessage=function(e,t,r){throw new i.b("Backend has to implement `eventFromMessage` method")},e.prototype.sendEvent=function(e){if(this._newTransport&&this._options.dsn&&this._options._experiments&&this._options._experiments.newTransport){var t=(0,a.hd)(this._options.dsn,this._options._metadata,this._options.tunnel),r=(0,u.Mq)(e,t);this._newTransport.send(r).then(null,(function(e){s.h&&o.kg.error("Error while sending event:",e)}))}else this._transport.sendEvent(e).then(null,(function(e){s.h&&o.kg.error("Error while sending event:",e)}))},e.prototype.sendSession=function(e){if(this._transport.sendSession)if(this._newTransport&&this._options.dsn&&this._options._experiments&&this._options._experiments.newTransport){var t=(0,a.hd)(this._options.dsn,this._options._metadata,this._options.tunnel),r=(0,n.CR)((0,u.Q3)(e,t),1)[0];this._newTransport.send(r).then(null,(function(e){s.h&&o.kg.error("Error while sending session:",e)}))}else this._transport.sendSession(e).then(null,(function(e){s.h&&o.kg.error("Error while sending session:",e)}));else s.h&&o.kg.warn("Dropping session because custom transport doesn't implement sendSession")},e.prototype.getTransport=function(){return this._transport},e.prototype._setupTransport=function(){return new c.V},e}()},44219:function(e,t,r){"use strict";r.d(t,{W:function(){return v}});var n=r(70655),o=r(46769),i=r(30292),a=r(62844),s=r(12343),u=r(67597),c=r(96893),l=r(21170),p=r(90322),f=r(57321),d=r(80409),h=r(53298),g=r(22967),m="Not capturing exception because it's already been captured.",v=function(){function e(e,t){this._integrations={},this._numProcessing=0,this._backend=new e(t),this._options=t,t.dsn&&(this._dsn=(0,i.v)(t.dsn))}return e.prototype.captureException=function(e,t,r){var n=this;if(!(0,a.YO)(e)){var o=t&&t.event_id;return this._process(this._getBackend().eventFromException(e,t).then((function(e){return n._captureEvent(e,t,r)})).then((function(e){o=e}))),o}h.h&&s.kg.log(m)},e.prototype.captureMessage=function(e,t,r,n){var o=this,i=r&&r.event_id,a=(0,u.pt)(e)?this._getBackend().eventFromMessage(String(e),t,r):this._getBackend().eventFromException(e,r);return this._process(a.then((function(e){return o._captureEvent(e,r,n)})).then((function(e){i=e}))),i},e.prototype.captureEvent=function(e,t,r){if(!(t&&t.originalException&&(0,a.YO)(t.originalException))){var n=t&&t.event_id;return this._process(this._captureEvent(e,t,r).then((function(e){n=e}))),n}h.h&&s.kg.log(m)},e.prototype.captureSession=function(e){this._isEnabled()?"string"!=typeof e.release?h.h&&s.kg.warn("Discarded session because of missing or non-string release"):(this._sendSession(e),e.update({init:!1})):h.h&&s.kg.warn("SDK not enabled, will not capture session.")},e.prototype.getDsn=function(){return this._dsn},e.prototype.getOptions=function(){return this._options},e.prototype.getTransport=function(){return this._getBackend().getTransport()},e.prototype.flush=function(e){var t=this;return this._isClientDoneProcessing(e).then((function(r){return t.getTransport().close(e).then((function(e){return r&&e}))}))},e.prototype.close=function(e){var t=this;return this.flush(e).then((function(e){return t.getOptions().enabled=!1,e}))},e.prototype.setupIntegrations=function(){this._isEnabled()&&!this._integrations.initialized&&(this._integrations=(0,g.q4)(this._options))},e.prototype.getIntegration=function(e){try{return this._integrations[e.id]||null}catch(t){return h.h&&s.kg.warn("Cannot retrieve integration "+e.id+" from the current Client"),null}},e.prototype._updateSessionFromEvent=function(e,t){var r,o,i=!1,a=!1,s=t.exception&&t.exception.values;if(s){a=!0;try{for(var u=(0,n.XA)(s),c=u.next();!c.done;c=u.next()){var l=c.value.mechanism;if(l&&!1===l.handled){i=!0;break}}}catch(e){r={error:e}}finally{try{c&&!c.done&&(o=u.return)&&o.call(u)}finally{if(r)throw r.error}}}var p="ok"===e.status;(p&&0===e.errors||p&&i)&&(e.update((0,n.pi)((0,n.pi)({},i&&{status:"crashed"}),{errors:e.errors||Number(a||i)})),this.captureSession(e))},e.prototype._sendSession=function(e){this._getBackend().sendSession(e)},e.prototype._isClientDoneProcessing=function(e){var t=this;return new c.cW((function(r){var n=0,o=setInterval((function(){0==t._numProcessing?(clearInterval(o),r(!0)):(n+=1,e&&n>=e&&(clearInterval(o),r(!1)))}),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 i=this,s=this.getOptions(),u=s.normalizeDepth,f=void 0===u?3:u,d=s.normalizeMaxBreadth,h=void 0===d?1e3:d,g=(0,n.pi)((0,n.pi)({},e),{event_id:e.event_id||(r&&r.event_id?r.event_id:(0,a.DM)()),timestamp:e.timestamp||(0,l.yW)()});this._applyClientOptions(g),this._applyIntegrationsMetadata(g);var m=t;r&&r.captureContext&&(m=o.s.clone(m).update(r.captureContext));var v=(0,c.WD)(g);return m&&(v=m.applyToEvent(g,r)),v.then((function(e){return e&&(e.sdkProcessingMetadata=(0,n.pi)((0,n.pi)({},e.sdkProcessingMetadata),{normalizeDepth:(0,p.Fv)(f)+" ("+typeof f+")"})),"number"==typeof f&&f>0?i._normalizeEvent(e,f,h):e}))},e.prototype._normalizeEvent=function(e,t,r){if(!e)return null;var o=(0,n.pi)((0,n.pi)((0,n.pi)((0,n.pi)((0,n.pi)({},e),e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((function(e){return(0,n.pi)((0,n.pi)({},e),e.data&&{data:(0,p.Fv)(e.data,t,r)})}))}),e.user&&{user:(0,p.Fv)(e.user,t,r)}),e.contexts&&{contexts:(0,p.Fv)(e.contexts,t,r)}),e.extra&&{extra:(0,p.Fv)(e.extra,t,r)});return e.contexts&&e.contexts.trace&&(o.contexts.trace=e.contexts.trace),o.sdkProcessingMetadata=(0,n.pi)((0,n.pi)({},o.sdkProcessingMetadata),{baseClientNormalized:!0}),o},e.prototype._applyClientOptions=function(e){var t=this.getOptions(),r=t.environment,n=t.release,o=t.dist,i=t.maxValueLength,a=void 0===i?250:i;"environment"in e||(e.environment="environment"in t?r:"production"),void 0===e.release&&void 0!==n&&(e.release=n),void 0===e.dist&&void 0!==o&&(e.dist=o),e.message&&(e.message=(0,f.$G)(e.message,a));var s=e.exception&&e.exception.values&&e.exception.values[0];s&&s.value&&(s.value=(0,f.$G)(s.value,a));var u=e.request;u&&u.url&&(u.url=(0,f.$G)(u.url,a))},e.prototype._applyIntegrationsMetadata=function(e){var t=Object.keys(this._integrations);t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=(0,n.fl)(e.sdk.integrations||[],t))},e.prototype._sendEvent=function(e){this._getBackend().sendEvent(e)},e.prototype._captureEvent=function(e,t,r){return this._processEvent(e,t,r).then((function(e){return e.event_id}),(function(e){h.h&&s.kg.error(e)}))},e.prototype._processEvent=function(e,t,r){var n=this,o=this.getOptions(),i=o.beforeSend,a=o.sampleRate,s=this.getTransport();function l(e,t){s.recordLostEvent&&s.recordLostEvent(e,t)}if(!this._isEnabled())return(0,c.$2)(new d.b("SDK not enabled, will not capture event."));var p="transaction"===e.type;return!p&&"number"==typeof a&&Math.random()>a?(l("sample_rate","event"),(0,c.$2)(new d.b("Discarding event because it's not included in the random sample (sampling rate = "+a+")"))):this._prepareEvent(e,r,t).then((function(r){if(null===r)throw l("event_processor",e.type||"event"),new d.b("An event processor returned null, will not send event.");return t&&t.data&&!0===t.data.__sentry__||p||!i?r:function(e){var t="`beforeSend` method has to return `null` or a valid event.";if((0,u.J8)(e))return e.then((function(e){if(!(0,u.PO)(e)&&null!==e)throw new d.b(t);return e}),(function(e){throw new d.b("beforeSend rejected with "+e)}));if(!(0,u.PO)(e)&&null!==e)throw new d.b(t);return e}(i(r,t))})).then((function(t){if(null===t)throw l("before_send",e.type||"event"),new d.b("`beforeSend` returned `null`, will not send event.");var o=r&&r.getSession&&r.getSession();return!p&&o&&n._updateSessionFromEvent(o,t),n._sendEvent(t),t})).then(null,(function(e){if(e instanceof d.b)throw e;throw n.captureException(e,{data:{__sentry__:!0},originalException:e}),new d.b("Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: "+e)}))},e.prototype._process=function(e){var t=this;this._numProcessing+=1,e.then((function(e){return t._numProcessing-=1,e}),(function(e){return t._numProcessing-=1,e}))},e}()},53298:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});var n="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},22967:function(e,t,r){"use strict";r.d(t,{q4:function(){return p}});var n=r(70655),o=r(46769),i=r(38641),a=r(12343),s=r(20535),u=r(53298),c=[];function l(e){return e.reduce((function(e,t){return e.every((function(e){return t.name!==e.name}))&&e.push(t),e}),[])}function p(e){var t={};return function(e){var t=e.defaultIntegrations&&(0,n.fl)(e.defaultIntegrations)||[],r=e.integrations,o=(0,n.fl)(l(t));Array.isArray(r)?o=(0,n.fl)(o.filter((function(e){return r.every((function(t){return t.name!==e.name}))})),l(r)):"function"==typeof r&&(o=r(o),o=Array.isArray(o)?o:[o]);var i=o.map((function(e){return e.name})),a="Debug";return-1!==i.indexOf(a)&&o.push.apply(o,(0,n.fl)(o.splice(i.indexOf(a),1))),o}(e).forEach((function(e){t[e.name]=e,function(e){-1===c.indexOf(e.name)&&(e.setupOnce(o.c,i.Gd),c.push(e.name),u.h&&a.kg.log("Integration installed: "+e.name))}(e)})),(0,s.xp)(t,"initialized",!0),t}},19116:function(e,t,r){"use strict";r.d(t,{c:function(){return i}});var n,o=r(20535),i=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=0;t--){var r=e[t];if(r&&""!==r.filename&&"[native code]"!==r.filename)return r.filename||null}return null}function p(e){try{if(e.stacktrace)return l(e.stacktrace.frames);var t;try{t=e.exception.values[0].stacktrace.frames}catch(e){}return t?l(t):null}catch(t){return s.h&&o.kg.error("Cannot extract url for event "+(0,i.jH)(e)),null}}},29324:function(e,t,r){"use strict";r.d(t,{Mq:function(){return f},Q3:function(){return l},Qz:function(){return p},nA:function(){return d}});var n=r(70655),o=r(30292),i=r(58725),a=r(90322),s=r(1984);function u(e){if(e.metadata&&e.metadata.sdk){var t=e.metadata.sdk;return{name:t.name,version:t.version}}}function c(e,t){return t?(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=(0,n.fl)(e.sdk.integrations||[],t.integrations||[]),e.sdk.packages=(0,n.fl)(e.sdk.packages||[],t.packages||[]),e):e}function l(e,t){var r=u(t),a=(0,n.pi)((0,n.pi)({sent_at:(new Date).toISOString()},r&&{sdk:r}),!!t.tunnel&&{dsn:(0,o.R)(t.dsn)}),s="aggregates"in e?"sessions":"session",c=[{type:s},e];return[(0,i.Jd)(a,[c]),s]}function p(e,t){var r=(0,n.CR)(l(e,t),2),o=r[0],a=r[1];return{body:(0,i.V$)(o),type:a,url:(0,s.Ut)(t.dsn,t.tunnel)}}function f(e,t){var r=u(t),a=e.type||"event",s=(e.sdkProcessingMetadata||{}).transactionSampling||{},l=s.method,p=s.rate;c(e,t.metadata.sdk),e.tags=e.tags||{},e.extra=e.extra||{},e.sdkProcessingMetadata&&e.sdkProcessingMetadata.baseClientNormalized||(e.tags.skippedNormalization=!0,e.extra.normalizeDepth=e.sdkProcessingMetadata?e.sdkProcessingMetadata.normalizeDepth:"unset"),delete e.sdkProcessingMetadata;var f=(0,n.pi)((0,n.pi)({event_id:e.event_id,sent_at:(new Date).toISOString()},r&&{sdk:r}),!!t.tunnel&&{dsn:(0,o.R)(t.dsn)}),d=[{type:a,sample_rates:[{id:l,rate:p}]},e];return(0,i.Jd)(f,[d])}function d(e,t){var r,l=u(t),p=e.type||"event",f="transaction"===p||!!t.tunnel,d=(e.sdkProcessingMetadata||{}).transactionSampling||{},h=d.method,g=d.rate;c(e,t.metadata.sdk),e.tags=e.tags||{},e.extra=e.extra||{},e.sdkProcessingMetadata&&e.sdkProcessingMetadata.baseClientNormalized||(e.tags.skippedNormalization=!0,e.extra.normalizeDepth=e.sdkProcessingMetadata?e.sdkProcessingMetadata.normalizeDepth:"unset"),delete e.sdkProcessingMetadata;try{r=JSON.stringify(e)}catch(t){e.tags.JSONStringifyError=!0,e.extra.JSONStringifyError=t;try{r=JSON.stringify((0,a.Fv)(e))}catch(e){var m=e;r=JSON.stringify({message:"JSON.stringify error after renormalization",extra:{message:m.message,stack:m.stack}})}}var v={body:r,type:p,url:f?(0,s.Ut)(t.dsn,t.tunnel):(0,s.qi)(t.dsn)};if(f){var b=(0,n.pi)((0,n.pi)({event_id:e.event_id,sent_at:(new Date).toISOString()},l&&{sdk:l}),!!t.tunnel&&{dsn:(0,o.R)(t.dsn)}),y=[{type:p,sample_rates:[{id:h,rate:g}]},v.body],w=(0,i.Jd)(b,[y]);v.body=(0,i.V$)(w)}return v}},67966:function(e,t,r){"use strict";r.d(t,{M:function(){return a}});var n=r(38641),o=r(12343),i=r(53298);function a(e,t){!0===t.debug&&(i.h?o.kg.enable():console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle."));var r=(0,n.Gd)(),a=r.getScope();a&&a.update(t.initialScope);var s=new e(t);r.bindClient(s)}},45431:function(e,t,r){"use strict";r.d(t,{qv:function(){return u}});var n=r(81227),o=r(58725),i=r(80228),a=r(96893),s=r(136);function u(e,t,r){void 0===r&&(r=(0,n.x)(e.bufferSize||30));var u={};return{send:function(e){var n=(0,o.y7)(e),l="event"===n?"error":n,p={category:l,body:(0,o.V$)(e)};return(0,i.Q)(u,l)?(0,a.$2)({status:"rate_limit",reason:c(u,l)}):r.add((function(){return t(p).then((function(e){var t=e.body,r=e.headers,n=e.reason,o=e.statusCode,p=(0,s.F)(o);return r&&(u=(0,i.WG)(u,r)),"success"===p?(0,a.WD)({status:p,reason:n}):(0,a.$2)({status:p,reason:n||t||("rate_limit"===p?c(u,l):"Unknown transport error")})}))}))},flush:function(e){return r.drain(e)}}}function c(e,t){return"Too many "+t+" requests, backing off until: "+new Date((0,i.ns)(e,t)).toISOString()}},22134:function(e,t,r){"use strict";r.d(t,{V:function(){return o}});var n=r(96893),o=function(){function e(){}return e.prototype.sendEvent=function(e){return(0,n.WD)({reason:"NoopTransport: Event has been skipped because no Dsn is configured.",status:"skipped"})},e.prototype.close=function(e){return(0,n.WD)(!0)},e}()},40105:function(e,t,r){"use strict";r.d(t,{J:function(){return n}});var n="6.19.6"},19017:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});var n="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},38641:function(e,t,r){"use strict";r.d(t,{Gd:function(){return g}});var n=r(70655),o=r(62844),i=r(21170),a=r(12343),s=r(82991),u=r(61422),c=r(19017),l=r(46769),p=r(95771),f=function(){function e(e,t,r){void 0===t&&(t=new l.s),void 0===r&&(r=4),this._version=r,this._stack=[{}],this.getStackTop().scope=t,e&&this.bindClient(e)}return e.prototype.isOlderThan=function(e){return this._version0?e.breadcrumbs:void 0,e.sdkProcessingMetadata=this._sdkProcessingMetadata,this._notifyEventProcessors((0,n.fl)(c(),this._eventProcessors),e,t)},e.prototype.setSDKProcessingMetadata=function(e){return this._sdkProcessingMetadata=(0,n.pi)((0,n.pi)({},this._sdkProcessingMetadata),e),this},e.prototype._notifyEventProcessors=function(e,t,r,i){var s=this;return void 0===i&&(i=0),new a.cW((function(a,u){var c=e[i];if(null===t||"function"!=typeof c)a(t);else{var l=c((0,n.pi)({},t),r);(0,o.J8)(l)?l.then((function(t){return s._notifyEventProcessors(e,t,r,i+1).then(a)})).then(null,u):s._notifyEventProcessors(e,l,r,i+1).then(a).then(null,u)}}))},e.prototype._notifyScopeListeners=function(){var e=this;this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((function(t){t(e)})),this._notifyingListeners=!1)},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}();function c(){return(0,s.Y)("globalEventProcessors",(function(){return[]}))}function l(e){c().push(e)}},95771:function(e,t,r){"use strict";r.d(t,{z:function(){return a}});var n=r(62844),o=r(21170),i=r(20535),a=function(){function e(e){this.errors=0,this.sid=(0,n.DM)(),this.duration=0,this.status="ok",this.init=!0,this.ignoreDuration=!1;var t=(0,o.ph)();this.timestamp=t,this.started=t,e&&this.update(e)}return e.prototype.update=function(e){if(void 0===e&&(e={}),e.user&&(!this.ipAddress&&e.user.ip_address&&(this.ipAddress=e.user.ip_address),this.did||e.did||(this.did=e.user.id||e.user.email||e.user.username)),this.timestamp=e.timestamp||(0,o.ph)(),e.ignoreDuration&&(this.ignoreDuration=e.ignoreDuration),e.sid&&(this.sid=32===e.sid.length?e.sid:(0,n.DM)()),void 0!==e.init&&(this.init=e.init),!this.did&&e.did&&(this.did=""+e.did),"number"==typeof e.started&&(this.started=e.started),this.ignoreDuration)this.duration=void 0;else if("number"==typeof e.duration)this.duration=e.duration;else{var t=this.timestamp-this.started;this.duration=t>=0?t:0}e.release&&(this.release=e.release),e.environment&&(this.environment=e.environment),!this.ipAddress&&e.ipAddress&&(this.ipAddress=e.ipAddress),!this.userAgent&&e.userAgent&&(this.userAgent=e.userAgent),"number"==typeof e.errors&&(this.errors=e.errors),e.status&&(this.status=e.status)},e.prototype.close=function(e){e?this.update({status:e}):"ok"===this.status?this.update({status:"exited"}):this.update()},e.prototype.toJSON=function(){return(0,i.Jr)({sid:""+this.sid,init:this.init,started:new Date(1e3*this.started).toISOString(),timestamp:new Date(1e3*this.timestamp).toISOString(),status:this.status,errors:this.errors,did:"number"==typeof this.did||"string"==typeof this.did?""+this.did:void 0,duration:this.duration,attrs:{release:this.release,environment:this.environment,ip_address:this.ipAddress,user_agent:this.userAgent}})},e}()},39666:function(e,t,r){"use strict";r.d(t,{$e:function(){return s},Tb:function(){return a}});var n=r(70655),o=r(38641);function i(e){for(var t=[],r=1;r ".length,u=void 0;r&&o++<5&&!("html"===(u=a(r,t))||o>1&&i+n.length*s+u.length>=80);)n.push(u),i+=u.length,r=r.parentNode;return n.reverse().join(" > ")}catch(e){return""}}function a(e,t){var r,n,i,a,s,u=e,c=[];if(!u||!u.tagName)return"";c.push(u.tagName.toLowerCase());var l=t&&t.length?t.filter((function(e){return u.getAttribute(e)})).map((function(e){return[e,u.getAttribute(e)]})):null;if(l&&l.length)l.forEach((function(e){c.push("["+e[0]+'="'+e[1]+'"]')}));else if(u.id&&c.push("#"+u.id),(r=u.className)&&(0,o.HD)(r))for(n=r.split(/\s+/),s=0;s1&&(h=m.slice(0,-1).join("/"),g=m.pop()),g){var v=g.match(/^\d+/);v&&(g=v[0])}return u({host:p,pass:l,path:h,projectId:g,port:d,protocol:i,publicKey:s})}(e):u(e);return function(e){if(i.h){var t=e.port,r=e.projectId,n=e.protocol;if(["protocol","publicKey","host","projectId"].forEach((function(t){if(!e[t])throw new o.b("Invalid Sentry Dsn: "+t+" missing")})),!r.match(/^\d+$/))throw new o.b("Invalid Sentry Dsn: Invalid projectId "+r);if(!function(e){return"http"===e||"https"===e}(n))throw new o.b("Invalid Sentry Dsn: Invalid protocol "+n);if(t&&isNaN(parseInt(t,10)))throw new o.b("Invalid Sentry Dsn: Invalid port "+t)}}(t),t}},9873:function(e,t,r){"use strict";r.d(t,{a:function(){return n}});var n=["fatal","error","warning","log","info","debug","critical"]},68518:function(e,t,r){"use strict";function n(){return"undefined"!=typeof __SENTRY_BROWSER_BUNDLE__&&!!__SENTRY_BROWSER_BUNDLE__}r.d(t,{n:function(){return n}})},58725:function(e,t,r){"use strict";r.d(t,{Jd:function(){return i},V$:function(){return s},y7:function(){return a}});var n=r(70655),o=r(67597);function i(e,t){return void 0===t&&(t=[]),[e,t]}function a(e){var t=(0,n.CR)(e,2),r=(0,n.CR)(t[1],1);return(0,n.CR)(r[0],1)[0].type}function s(e){var t=(0,n.CR)(e,2),r=t[0],i=t[1],a=JSON.stringify(r);return i.reduce((function(e,t){var r=(0,n.CR)(t,2),i=r[0],a=r[1],s=(0,o.pt)(a)?String(a):JSON.stringify(a);return e+"\n"+JSON.stringify(i)+"\n"+s}),a)}},80409:function(e,t,r){"use strict";r.d(t,{b:function(){return i}});var n=r(70655),o=r(11786),i=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,(0,o.f)(n,r.prototype),n}return(0,n.ZT)(t,e),t}(Error)},88795:function(e,t,r){"use strict";r.d(t,{h:function(){return n}});var n="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__},82991:function(e,t,r){"use strict";r.d(t,{R:function(){return i},Y:function(){return a}});var n=r(61422),o={};function i(){return(0,n.KV)()?r.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:o}function a(e,t,r){var n=r||i(),o=n.__SENTRY__=n.__SENTRY__||{};return o[e]||(o[e]=t())}},9732:function(e,t,r){"use strict";r.d(t,{o:function(){return m}});var n,o=r(70655),i=r(88795),a=r(82991),s=r(67597),u=r(12343),c=r(20535),l=r(30360),p=r(8823),f=(0,a.R)(),d={},h={};function g(e){if(!h[e])switch(h[e]=!0,e){case"console":!function(){if(!("console"in f))return;u.RU.forEach((function(e){e in f.console&&(0,c.hl)(f.console,e,(function(t){return function(){for(var r=[],n=0;n2?t[2]:void 0;if(o){var i=n,a=String(o);n=a,v("history",{from:i,to:a})}return e.apply(this,t)}}f.onpopstate=function(){for(var t=[],r=0;r":r||""}function l(e,t,r){var n=e.exception=e.exception||{},o=n.values=n.values||[],i=o[0]=o[0]||{};i.value||(i.value=t||""),i.type||(i.type=r||"Error")}function p(e,t){var r=u(e);if(r){var o=r.mechanism;if(r.mechanism=(0,n.pi)((0,n.pi)((0,n.pi)({},{type:"generic",handled:!0}),o),t),t&&"data"in t){var i=(0,n.pi)((0,n.pi)({},o&&o.data),t.data);r.mechanism.data=i}}}function f(e){if(e&&e.__sentry_captured__)return!0;try{(0,i.xp)(e,"__sentry_captured__",!0)}catch(e){}return!1}},61422:function(e,t,r){"use strict";r.d(t,{KV:function(){return o},l$:function(){return i}});var n=r(68518);function o(){return!(0,n.n)()&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0)}function i(e,t){return e.require(t)}e=r.hmd(e)},90322:function(e,t,r){"use strict";r.d(t,{Fv:function(){return u},Qy:function(){return c}});var n=r(70655),o=r(67597),i=r(32004),a=r(20535),s=r(30360);function u(e,t,r){void 0===t&&(t=1/0),void 0===r&&(r=1/0);try{return l("",e,t,r)}catch(e){return{ERROR:"**non-serializable** ("+e+")"}}}function c(e,t,r){void 0===t&&(t=3),void 0===r&&(r=102400);var n,o=u(e,t);return n=o,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(n))>r?c(e,t-1,r):o}function l(e,t,u,c,p){void 0===u&&(u=1/0),void 0===c&&(c=1/0),void 0===p&&(p=(0,i.i)());var f=(0,n.CR)(p,2),d=f[0],h=f[1],g=t;if(g&&"function"==typeof g.toJSON)try{return g.toJSON()}catch(e){}if(null===t||["number","boolean","string"].includes(typeof t)&&!(0,o.i2)(t))return t;var m=function(e,t){try{return"domain"===e&&t&&"object"==typeof t&&t._events?"[Domain]":"domainEmitter"===e?"[DomainEmitter]":void 0!==r.g&&t===r.g?"[Global]":"undefined"!=typeof window&&t===window?"[Window]":"undefined"!=typeof document&&t===document?"[Document]":(0,o.Cy)(t)?"[SyntheticEvent]":"number"==typeof t&&t!=t?"[NaN]":void 0===t?"[undefined]":"function"==typeof t?"[Function: "+(0,s.$P)(t)+"]":"symbol"==typeof t?"["+String(t)+"]":"bigint"==typeof t?"[BigInt: "+String(t)+"]":"[object "+Object.getPrototypeOf(t).constructor.name+"]"}catch(e){return"**non-serializable** ("+e+")"}}(e,t);if(!m.startsWith("[object "))return m;if(0===u)return m.replace("object ","");if(d(t))return"[Circular ~]";var v=Array.isArray(t)?[]:{},b=0,y=(0,o.VZ)(t)||(0,o.cO)(t)?(0,a.Sh)(t):t;for(var w in y)if(Object.prototype.hasOwnProperty.call(y,w)){if(b>=c){v[w]="[MaxProperties ~]";break}var _=y[w];v[w]=l(w,_,u-1,c,p),b+=1}return h(t),v}},20535:function(e,t,r){"use strict";r.d(t,{$Q:function(){return c},HK:function(){return l},Jr:function(){return m},Sh:function(){return f},_j:function(){return p},hl:function(){return s},xp:function(){return u},zf:function(){return g}});var n=r(70655),o=r(58464),i=r(67597),a=r(57321);function s(e,t,r){if(t in e){var n=e[t],o=r(n);if("function"==typeof o)try{c(o,n)}catch(e){}e[t]=o}}function u(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0})}function c(e,t){var r=t.prototype||{};e.prototype=t.prototype=r,u(e,"__sentry_original__",t)}function l(e){return e.__sentry_original__}function p(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}function f(e){var t=e;if((0,i.VZ)(e))t=(0,n.pi)({message:e.message,name:e.name,stack:e.stack},h(e));else if((0,i.cO)(e)){var r=e;t=(0,n.pi)({type:r.type,target:d(r.target),currentTarget:d(r.currentTarget)},h(r)),"undefined"!=typeof CustomEvent&&(0,i.V9)(e,CustomEvent)&&(t.detail=r.detail)}return t}function d(e){try{return(0,i.kK)(e)?(0,o.R)(e):Object.prototype.toString.call(e)}catch(e){return""}}function h(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}function g(e,t){void 0===t&&(t=40);var r=Object.keys(f(e));if(r.sort(),!r.length)return"[object has no keys]";if(r[0].length>=t)return(0,a.$G)(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:(0,a.$G)(o,t)}return""}function m(e){var t,r;if((0,i.PO)(e)){var o={};try{for(var a=(0,n.XA)(Object.keys(e)),s=a.next();!s.done;s=a.next()){var u=s.value;void 0!==e[u]&&(o[u]=m(e[u]))}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return o}return Array.isArray(e)?e.map(m):e}},11786:function(e,t,r){"use strict";r.d(t,{f: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)Object.prototype.hasOwnProperty.call(e,r)||(e[r]=t[r]);return e})},81227:function(e,t,r){"use strict";r.d(t,{x:function(){return i}});var n=r(80409),o=r(96893);function i(e){var t=[];function r(e){return t.splice(t.indexOf(e),1)[0]}return{$:t,add:function(i){if(!(void 0===e||t.length0&&r(!1)}),e);t.forEach((function(e){(0,o.WD)(e).then((function(){--i||(clearTimeout(a),r(!0))}),n)}))}))}}}},80228:function(e,t,r){"use strict";r.d(t,{Q:function(){return i},WG:function(){return a},ns:function(){return o}});var n=r(70655);function o(e,t){return e[t]||e.all||0}function i(e,t,r){return void 0===r&&(r=Date.now()),o(e,t)>r}function a(e,t,r){var o,i,a,s;void 0===r&&(r=Date.now());var u=(0,n.pi)({},e),c=t["x-sentry-rate-limits"],l=t["retry-after"];if(c)try{for(var p=(0,n.XA)(c.trim().split(",")),f=p.next();!f.done;f=p.next()){var d=f.value.split(":",2),h=parseInt(d[0],10),g=1e3*(isNaN(h)?60:h);if(d[1])try{for(var m=(a=void 0,(0,n.XA)(d[1].split(";"))),v=m.next();!v.done;v=m.next()){u[v.value]=r+g}}catch(e){a={error:e}}finally{try{v&&!v.done&&(s=m.return)&&s.call(m)}finally{if(a)throw a.error}}else u.all=r+g}}catch(e){o={error:e}}finally{try{f&&!f.done&&(i=p.return)&&i.call(p)}finally{if(o)throw o.error}}else l&&(u.all=r+function(e,t){void 0===t&&(t=Date.now());var r=parseInt(""+e,10);if(!isNaN(r))return 1e3*r;var n=Date.parse(""+e);return isNaN(n)?6e4:n-t}(l,r));return u}},16547:function(e,t,r){"use strict";r.d(t,{E:function(){return i}});var n=r(13819),o=r(9873);function i(e){return"warn"===e?n.z.Warning:function(e){return-1!==o.a.indexOf(e)}(e)?e:n.z.Log}},30360:function(e,t,r){"use strict";r.d(t,{$P:function(){return s},pE:function(){return o}});var n=r(70655);function o(){for(var e=[],t=0;t=200&&e<300?"success":429===e?"rate_limit":e>=400&&e<500?"invalid":e>=500?"failed":"unknown"}r.d(t,{F:function(){return n}})},57321:function(e,t,r){"use strict";r.d(t,{$G:function(){return o},nK:function(){return i},zC:function(){return a}});var n=r(67597);function o(e,t){return void 0===t&&(t=0),"string"!=typeof e||0===t||e.length<=t?e:e.substr(0,t)+"..."}function i(e,t){if(!Array.isArray(e))return"";for(var r=[],n=0;n"']/gm,(function(e){return"&"===e?"&":"<"===e?"<":">"===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 s=this._buffer.charAt(1);if("["!=s&&"]"!=s)return e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;if("["==s){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===(l=this._buffer.match(this._csi_regex)))return e.kind=t.Incomplete,e;if(l[4])return e.kind=t.ESC,e.text=this._buffer.slice(0,1),this._buffer=this._buffer.slice(1),e;""!=l[1]||"m"!=l[3]?e.kind=t.Unknown:e.kind=t.SGR,e.text=l[2];var u=l[0].length;return this._buffer=this._buffer.slice(u),e}if("]"==s){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=i(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 l,p=this._osc_st.exec(this._buffer);return null===p?(e.kind=t.Incomplete,e):p[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 ([\\x20-\\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===(l=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=l[1],e.text=l[2],u=l[0].length,this._buffer=this._buffer.slice(u),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,italic:this.italic,underline:this.underline,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,this.italic=!1,this.underline=!1;else if(1===n)this.bold=!0;else if(3===n)this.italic=!0;else if(4===n)this.underline=!0;else if(22===n)this.bold=!1;else if(23===n)this.italic=!1;else if(24===n)this.underline=!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,i=t.shift();if("5"===i&&t.length>0){var a=parseInt(t.shift(),10);a>=0&&a<=255&&(o?this.fg=this.palette_256[a]:this.bg=this.palette_256[a])}if("2"===i&&t.length>2){var s=parseInt(t.shift(),10),u=parseInt(t.shift(),10),c=parseInt(t.shift(),10);if(s>=0&&s<=255&&u>=0&&u<=255&&c>=0&&c<=255){var l={rgb:[s,u,c],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(t=this.escape_txt_for_html(t),!e.bold&&!e.italic&&!e.underline&&null===e.fg&&null===e.bg)return t;var r=[],n=[],o=e.fg,i=e.bg;e.bold&&r.push("font-weight:bold"),e.italic&&r.push("font-style:italic"),e.underline&&r.push("text-decoration:underline"),this._use_classes?(o&&("truecolor"!==o.class_name?n.push(o.class_name+"-fg"):r.push("color:rgb("+o.rgb.join(",")+")")),i&&("truecolor"!==i.class_name?n.push(i.class_name+"-bg"):r.push("background-color:rgb("+i.rgb.join(",")+")"))):(o&&r.push("color:rgb("+o.rgb.join(",")+")"),i&&r.push("background-color:rgb("+i.rgb+")"));var a="",s="";return n.length&&(a=' class="'+n.join(" ")+'"'),r.length&&(s=' style="'+r.join(";")+'"'),""+t+""},e.prototype.process_hyperlink=function(e){var t=e.url.split(":");return t.length<1?"":this._url_whitelist[t[0]]?''+this.escape_txt_for_html(e.text)+"":""},e}();function o(e){for(var t=[],r=1;r\n \n \n
\n \n
<a href="'+s+'">\n    <img src="'+a+'">\n</a>
\n
\n
\n \n
[![SWH]('+a+")]("+s+')
\n
\n
\n \n
.. image:: '+a+"\n    :target: "+s+"
\n
";swh.webapp.showModalHtml("Software Heritage badge integration",u),swh.webapp.highlightCode(!1,".swh-badge-html"),swh.webapp.highlightCode(!1,".swh-badge-md")}r.d(t,{h:function(){return n}})},57050:function(e,t,r){"use strict";r.d(t,{IG:function(){return p},KC:function(){return u},RI:function(){return c},Xm:function(){return l},xw:function(){return f}});var n=r(15861),o=r(87757),i=r.n(o),a=r(59537),s=null;function u(e,t){void 0===t&&(t=!1);var r=$('.hljs-ln-line[data-line-number="'+e+'"]');return r.css("background-color","rgb(193, 255, 193)"),t&&(s=e),r}function c(e,t){if(e){t||(t=e);for(var r=e;r<=t;++r)u(r)}}function l(){s=null,$(".hljs-ln-line[data-line-number]").css("background-color","inherit")}function p(e,t){void 0===t&&(t=70),$(e).closest(".swh-content").length>0&&$("html, body").animate({scrollTop:$(e).offset().top-t},500)}function f(e,t,r){return d.apply(this,arguments)}function d(){return(d=(0,n.Z)(i().mark((function e(t,n,o){var f;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f=function(){var e=[],t=new RegExp(/L(\d+)/g),r=t.exec(window.location.hash);if(null!==r){for(;r;)e.push(parseInt(r[1])),r=t.exec(window.location.hash);l(),1===e.length?(s=parseInt(e[0]),p(u(e[0]))):e[0]s){var r=s;l(),c(r,t),s=r,window.location.hash="#L"+r+"-L"+t}else l(),u(t),window.location.hash="#L"+t,p(e.target)}else $(e.target).closest(".hljs-ln").length&&(l(),(0,a.L3)())})),$(window).on("hashchange",(function(){return f()})),setTimeout((function(){f()})))}));case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},38395:function(e,t,r){"use strict";r.d(t,{q:function(){return a}});var n=r(15861),o=r(87757),i=r.n(o);function a(e,t){return s.apply(this,arguments)}function s(){return(s=(0,n.Z)(i().mark((function e(t,n){var o,a,s,u,c,l,p,f,d,h,g,m,v,b,y,w,_;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return _=function(e){var t=h.invert(o.pointer(e)[0]),r=y(n,t,1);if(!(r>=n.length)){var i=n[r-1],a=n[r],s=t-i[0]>a[0]-t?a:i;w.attr("transform","translate("+h(s[0])+", "+g(s[1])+")");var u=v(s[0])+" "+b(s[1]);l.html(u).style("left",e.pageX+15+"px").style("top",e.pageY+"px")}},e.next=3,r.e(891).then(r.bind(r,40847));case 3:(o=e.sent).select(t).select("svg").remove(),o.select(t+"-tooltip").remove(),a=400,s=300,u={top:20,right:50,bottom:70,left:30},c=o.select(t).attr("style","padding-bottom: "+Math.ceil(100*s/a)+"%").append("svg").attr("viewBox","0 0 "+a+" "+s),l=o.select("body").append("div").attr("class","d3-tooltip").attr("id",t+"-tooltip").style("opacity",0),a=a-u.left-u.right,s=s-u.top-u.bottom,n.sort((function(e,t){return e[0]-t[0]!=0?e[0]-t[0]:e[1]-t[1]})),p=n[0],f=n[n.length-1],d=c.append("g").attr("transform","translate("+u.left+", "+u.top+")"),h=o.scaleTime().rangeRound([0,a]).domain([p[0],f[0]]).nice(),g=o.scaleLinear().range([s,0]).domain([p[1],f[1]]).nice(),m=o.line().x((function(e){return h(e[0])})).y((function(e){return g(e[1])})),v=o.timeFormat("%d %b %Y"),b=function(e){return o.format(".3s")(e).replace(/G/,"B")},y=o.bisector((function(e){return e[0]})).left,d.append("g").attr("class","axis").attr("transform","translate(0, "+s+")").call(o.axisBottom(h).ticks(10).tickFormat(v)).selectAll("text").style("text-anchor","end").attr("dx","-.8em").attr("dy",".15em").attr("transform","rotate(-65)"),d.append("g").attr("class","axis").attr("transform","translate("+a+", 0)").call(o.axisRight(g).ticks(10).tickFormat(b)),d.append("path").datum(n).attr("class","swh-history-counter-line").attr("d",m),(w=d.append("g").attr("class","swh-history-counter-focus").style("display","none")).append("circle").attr("r",8),d.append("rect").attr("class","swh-history-counter-overlay").attr("width",a).attr("height",s).on("mouseover",(function(e){w.style("display",null),_(e),l.transition().duration(200).style("opacity",1)})).on("mouseout",(function(){w.style("display","none"),l.transition().duration(200).style("opacity",0)})).on("mousemove",(function(e){_(e)}));case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},3140:function(e,t,r){"use strict";function n(e,t){var r="\n

\n You can embed that "+e+' view in an external website\n through the use of an iframe. Use the following HTML code\n to do so.\n

\n
<iframe style="width: 100%; height: 500px; border: 1px solid rgba(0, 0, 0, 0.125);"\n        src="'+window.location.origin+Urls.swhid_iframe(t.replaceAll("\n",""))+'">\n</iframe>
\n ';swh.webapp.showModalHtml("Software Heritage "+e+" iframe",r,"1000px"),swh.webapp.highlightCode(!1,".swh-iframe-html")}r.d(t,{j:function(){return n}})},14132:function(e,t,r){"use strict";r.d(t,{d:function(){return s}});var n=r(15861),o=r(87757),i=r.n(o),a=r(59537);function s(){return u.apply(this,arguments)}function u(){return(u=(0,n.Z)(i().mark((function e(){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return window.MathJax={chtml:{fontURL:(0,a.TT)("fonts/")},tex:{tags:"ams",useLabelIds:!0,inlineMath:[["$","$"],["\\(","\\)"]],displayMath:[["$$","$$"],["\\[","\\]"]],processEscapes:!0,processEnvironments:!0}},e.next=3,r.e(684).then(r.bind(r,7321));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},99400:function(e,t,r){"use strict";r.d(t,{Q:function(){return p}});var n=r(15861),o=r(87757),i=r.n(o),a=(r(37755),r(34431)),s=new(r.n(a)());function u(e){return e=(e=e.replace(//g,">")}function c(e){return e=(e=e.replace(/</g,"<")).replace(/>/g,">")}function l(e){for(var t,r,n,o=/\$\$([\s\S]+?)\$\$|\\\\\[([\s\S]+?)\\\\\]/gm,i=/\$(.+?)\$|\\\\\((.+?)\\\\\)/g,a=/\\begin\{([a-z]*\*?)\}([\s\S]+?)\\end\{\1\}/gm,s=[];null!==(t=o.exec(e));)s.push(t[1]);for(;null!==(r=i.exec(e));)s.push(r[1]);for(;null!==(n=a.exec(e));)s.push(n[1]);for(var c=0,l=s;c=o.numPages||(s++,g(s))},m=function(){s<=1||(s--,g(s))},g=function(e){u?c=e:d(e)},h=function(){return(h=(0,n.Z)(i().mark((function e(t){var r,n,a,s,h;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=!0,e.next=3,o.getPage(t);case 3:return r=e.sent,n=$(".swh-content").width(),a=Math.min(l,n/r.getViewport({scale:1}).width),s=r.getViewport({scale:a}),p.width=s.width,p.height=s.height,h={canvasContext:f,viewport:s},e.next=12,r.render(h);case 12:u=!1,null!==c&&(d(c),c=null),$("#pdf-page-num").text(t);case 15:case"end":return e.stop()}}),e)})))).apply(this,arguments)},d=function(e){return h.apply(this,arguments)},o=null,s=1,u=!1,c=null,l=1.5,p=$("#pdf-canvas")[0],f=p.getContext("2d"),e.next=14,r.e(509).then(r.t.bind(r,85719,23));case 14:(b=e.sent).GlobalWorkerOptions.workerSrc=(0,a.TT)("js/pdf.worker.min.js"),$(document).ready((0,n.Z)(i().mark((function e(){var r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return $("#pdf-prev").click(m),$("#pdf-next").click(v),e.prev=2,e.next=5,b.getDocument(t).promise;case 5:r=e.sent,o=r,$("#pdf-page-count").text(o.numPages),d(s),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(2),console.error(e.t0);case 14:$(window).on("resize",(function(){g(s)}));case 15:case"end":return e.stop()}}),e,null,[[2,11]])}))));case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},6043:function(e,t,r){"use strict";r.d(t,{BV:function(){return d},EK:function(){return f},Le:function(){return l},ap:function(){return u}});var n=r(15861),o=r(87757),i=r.n(o),a=r(59537),s=r(19215);function u(e,t){return c.apply(this,arguments)}function c(){return(c=(0,n.Z)(i().mark((function e(t,o){var u,c;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=function(){return[{type:"output",filter:function(e,t,r){var n='class="';return u.helper.replaceRecursiveRegExp(e,(function(e,t,r,o){t=(0,s.decode)(t);var i=(r.match(/class="([^ "]+)/)||[])[1];if(r.includes(n)){var a=r.indexOf(n)+n.length;r=r.slice(0,a)+"hljs "+r.slice(a)}else r=r.slice(0,-1)+' class="hljs">';return i&&hljs.getLanguage(i)?r+hljs.highlight(t,{language:i}).value+o:r+t+o}),"
]*>","
","g")}}]},e.next=3,r.e(522).then(r.bind(r,83035));case 3:return u=e.sent,e.next=6,r.e(399).then(r.bind(r,68480));case 6:$(document).ready((0,n.Z)(i().mark((function e(){var r,n,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new u.Converter({tables:!0,extensions:[c]}),e.prev=1,e.next=4,fetch(o);case 4:return n=e.sent,(0,a.ry)(n),e.next=8,n.text();case 8:s=e.sent,$(t).addClass("swh-showdown"),$(t).html(swh.webapp.filterXSS(r.makeHtml(s))),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),$(t).text("Readme bytes are not available");case 16:case"end":return e.stop()}}),e,null,[[1,13]])}))));case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function l(e,t){return p.apply(this,arguments)}function p(){return(p=(0,n.Z)(i().mark((function e(t,n){var o,a,s,u;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.e(46).then(r.bind(r,49429));case 2:o=e.sent,a=new o.Parser,s=a.parse(n,{toc:!1}),u=s.convert(o.ConverterHTML,{}),$(t).addClass("swh-org"),$(t).html(swh.webapp.filterXSS(u.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((0,n.Z)(i().mark((function r(){var n,o;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,fetch(t);case 3:return n=r.sent,(0,a.ry)(n),r.next=7,n.text();case 7:o=r.sent,l(e,o),r.next=14;break;case 11:r.prev=11,r.t0=r.catch(0),$(e).text("Readme bytes are not available");case 14:case"end":return r.stop()}}),r,null,[[0,11]])}))))}function d(e,t){$(document).ready((0,n.Z)(i().mark((function r(){var n,o,s;return i().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,fetch(t);case 3:return n=r.sent,(0,a.ry)(n),r.next=7,n.text();case 7:o=r.sent,s="-*- mode: org -*-",-1!==o.indexOf(s)?l(e,o.replace(s,"")):($(e).addClass("swh-readme-txt"),$(e).html("").append($("
").text(o))),r.next=15;break;case 12:r.prev=12,r.t0=r.catch(0),$(e).text("Readme bytes are not available");case 15:case"end":return r.stop()}}),r,null,[[0,12]])}))))}},72725:function(e,t,r){"use strict";r.d(t,{D:function(){return i},p:function(){return a}});var n=r(19011),o=r(39666);function i(e){void 0!==e&&n.S1({dsn:e})}function a(e){o.Tb(e)}},58017:function(e,t,r){"use strict";r.d(t,{N:function(){return c}});var n=r(15861),o=r(87757),i=r.n(o);function a(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r',o=1;o<=r.pages;++o){var i="";o===r.page+1&&(i="selected"),n+='"}n+=" / "+r.pages+"",$(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 x(e){f=e}function E(e){return f[e]}void 0!==h&&(d="sidebar-collapse"===h),$(document).on("DOMContentLoaded",(function(){if($(window).width()=c.GI&&$(".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)}));var e=$(".main-sidebar");function t(){var r=$("body");r.hasClass("sidebar-collapse")&&!e.hasClass("swh-sidebar-collapsed")?(e.removeClass("swh-sidebar-expanded"),e.addClass("swh-sidebar-collapsed"),$(".swh-words-logo-swh").css("visibility","visible")):r.hasClass("sidebar-collapse")||e.hasClass("swh-sidebar-expanded")||(e.removeClass("swh-sidebar-collapsed"),e.addClass("swh-sidebar-expanded"),$(".swh-words-logo-swh").css("visibility","hidden")),r.hasClass("hold-transition")&&setTimeout((function(){t()}))}e.on("transitionend",(function(e){t()})),t(),g(),$(window).resize((function(){g(),$("body").hasClass("sidebar-collapse")&&$("body").width()>=c.GI&&$(".swh-words-logo-swh").css("visibility","visible")})),s()(),$(".swh-browse-top-navigation").append($(".modal"));var r=null;function n(e){if(e.clientX&&e.clientY)for(var t,r=l(document.elementsFromPoint(e.clientX,e.clientY));!(t=r()).done;){var n=t.value;if("CODE"===n.nodeName||"PRE"===n.nodeName)return n}return null}function o(e,t){if(t){var r=$(t).find(".hljs-ln-code");r.length?(0,u.eO)(r[0],r[r.length-1]):(0,u.eO)(t.firstChild,t.lastChild),e.preventDefault()}}$(document).click((function(e){r=n(e)})),$(document).dblclick((function(e){(e.ctrlKey||e.metaKey)&&o(e,n(e))})),$(document).keydown((function(e){(e.ctrlKey||e.metaKey)&&"a"===e.key&&o(e,r)}));var i=0;i+=$(".swh-top-bar").height()||0,i+=$(".navbar").height()||0,$(window).scroll((function(){$(window).scrollTop()>i?$("#back-to-top").css("display","block"):$("#back-to-top").css("display","none")})),$("#swh-origins-search-top").submit((function(e){if(e.preventDefault(),e.target.checkValidity()){$(e.target).removeClass("was-validated");var t=$("#swh-origins-search-top-input").val().trim(),r=new URLSearchParams;r.append("q",t),r.append("with_visit",!0),r.append("with_content",!0),window.location=Urls.browse_search()+"?"+r.toString()}else $(e.target).addClass("was-validated")}))}));var k={};function S(e){k=e}function D(){return k}var q={};function A(e){q={};for(var t,r=l(e);!(t=r()).done;){var n=t.value;q[n.object_type]=n}}function T(){return q}function L(e){e?($("#swh-web-content").removeClass("container"),$("#swh-web-content").addClass("container-fluid")):($("#swh-web-content").removeClass("container-fluid"),$("#swh-web-content").addClass("container")),localStorage.setItem("swh-web-full-width",JSON.stringify(e)),$("#swh-full-width-switch").prop("checked",e)}function C(e){L($(e.target).prop("checked"))}function R(){var e=JSON.parse(localStorage.getItem("swh-web-full-width"));null!==e&&L(e)}function N(e){var t=e.indexOf(";"),r=e;return-1!==t&&(r=e.slice(0,t)),r.toLowerCase()===r}function O(e){return j.apply(this,arguments)}function j(){return(j=(0,n.Z)(i().mark((function e(t){var r,n,o,a,s,u,c;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.value.trim(),n="",!r.toLowerCase().startsWith("swh:")){e.next=16;break}if(!N(r)){e.next=14;break}return o=Urls.api_1_resolve_swhid(r),e.next=7,fetch(o);case 7:return a=e.sent,e.next=10,a.json();case 10:(s=e.sent).hasOwnProperty("exception")&&(n=s.reason),e.next=16;break;case 14:-1===(u=r.indexOf(";"))?(n="Invalid SWHID: all characters must be in lowercase. ",n+="Valid SWHID is "+r.toLowerCase()):(n="Invalid SWHID: the core part must be in lowercase. ",c=r.slice(0,u),n+="Valid SWHID is "+r.replace(c,c.toLowerCase()));case 16:t.setCustomValidity(n),$(t).siblings(".invalid-feedback").text(n);case 18:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function I(){return JSON.parse($("#swh_user_logged_in").text())}},82690:function(e,t,r){"use strict";r.d(t,{U:function(){return i}});var n=r(27856),o=r.n(n);function i(e){return o().sanitize(e)}o().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,n=swh.webapp.getBrowsedSwhObjectMetadata();if(!n.hasOwnProperty("directory"))return;r="directory"===n.object_type?n.object_id:n.directory;var o=Urls.browse_directory_resolve_content_path(r),i=t.attrValue,a=i;a.startsWith("/")||(a="/"+a);var s=new URL(window.location.origin+a);s.search&&(i=i.replace(s.search,"")),o+="?path="+encodeURIComponent(i),t.attrValue=o}}))},86515:function(e,t,r){"use strict";r.d(t,{GI:function(){return o}});var n=r(59537),o=992;(0,n.TT)("img/swh-spinner.gif")},59537:function(e,t,r){"use strict";r.d(t,{L3:function(){return i},TT:function(){return o},eO:function(){return a},ry:function(){return n}});r(87757),r(31955);function n(e){if(!e.ok)throw e;return e}function o(e){return"/static/"+e}function i(){history.replaceState("",document.title,window.location.pathname+window.location.search)}function a(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)}},27856:function(e){e.exports=function(){"use strict";function e(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t1?r-1:0),o=1;o/gm),M=s(/^data-[\-\w.\u00B7-\uFFFF]/),P=s(/^aria-[\-\w]+$/),H=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=s(/^(?:\w+script|data):/i),$=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),G=s(/^html$/i),z="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 W(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:Y(),t=function(e){return K(e)};if(t.version="2.3.6",t.removed=[],!e||!e.document||9!==e.document.nodeType)return t.isSupported=!1,t;var r=e.document,n=e.document,o=e.DocumentFragment,i=e.HTMLTemplateElement,s=e.Node,u=e.Element,c=e.NodeFilter,l=e.NamedNodeMap,p=void 0===l?e.NamedNodeMap||e.MozNamedAttrMap:l,x=e.HTMLFormElement,E=e.DOMParser,Z=e.trustedTypes,X=u.prototype,Q=D(X,"cloneNode"),ee=D(X,"nextSibling"),te=D(X,"childNodes"),re=D(X,"parentNode");if("function"==typeof i){var ne=n.createElement("template");ne.content&&ne.content.ownerDocument&&(n=ne.content.ownerDocument)}var oe=J(Z,r),ie=oe?oe.createHTML(""):"",ae=n,se=ae.implementation,ue=ae.createNodeIterator,ce=ae.createDocumentFragment,le=ae.getElementsByTagName,pe=r.importNode,fe={};try{fe=S(n).documentMode?n.documentMode:{}}catch(e){}var de={};t.isSupported="function"==typeof re&&se&&void 0!==se.createHTMLDocument&&9!==fe;var he=B,ge=F,me=M,ve=P,be=V,ye=$,we=H,_e=null,xe=k({},[].concat(W(q),W(A),W(T),W(C),W(N))),Ee=null,ke=k({},[].concat(W(O),W(j),W(I),W(U))),Se=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),De=null,qe=null,Ae=!0,Te=!0,Le=!1,Ce=!1,Re=!1,Ne=!1,Oe=!1,je=!1,Ie=!1,Ue=!1,Be=!0,Fe=!0,Me=!1,Pe={},He=null,Ve=k({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),$e=null,Ge=k({},["audio","video","img","source","image","track"]),ze=null,We=k({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ye="http://www.w3.org/1998/Math/MathML",Je="http://www.w3.org/2000/svg",Ke="http://www.w3.org/1999/xhtml",Ze=Ke,Xe=!1,Qe=void 0,et=["application/xhtml+xml","text/html"],tt="text/html",rt=void 0,nt=null,ot=n.createElement("form"),it=function(e){return e instanceof RegExp||e instanceof Function},at=function(e){nt&&nt===e||(e&&"object"===(void 0===e?"undefined":z(e))||(e={}),e=S(e),_e="ALLOWED_TAGS"in e?k({},e.ALLOWED_TAGS):xe,Ee="ALLOWED_ATTR"in e?k({},e.ALLOWED_ATTR):ke,ze="ADD_URI_SAFE_ATTR"in e?k(S(We),e.ADD_URI_SAFE_ATTR):We,$e="ADD_DATA_URI_TAGS"in e?k(S(Ge),e.ADD_DATA_URI_TAGS):Ge,He="FORBID_CONTENTS"in e?k({},e.FORBID_CONTENTS):Ve,De="FORBID_TAGS"in e?k({},e.FORBID_TAGS):{},qe="FORBID_ATTR"in e?k({},e.FORBID_ATTR):{},Pe="USE_PROFILES"in e&&e.USE_PROFILES,Ae=!1!==e.ALLOW_ARIA_ATTR,Te=!1!==e.ALLOW_DATA_ATTR,Le=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Ce=e.SAFE_FOR_TEMPLATES||!1,Re=e.WHOLE_DOCUMENT||!1,je=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,Ue=e.RETURN_TRUSTED_TYPE||!1,Oe=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,Fe=!1!==e.KEEP_CONTENT,Me=e.IN_PLACE||!1,we=e.ALLOWED_URI_REGEXP||we,Ze=e.NAMESPACE||Ke,e.CUSTOM_ELEMENT_HANDLING&&it(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Se.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&it(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Se.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Se.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Qe=Qe=-1===et.indexOf(e.PARSER_MEDIA_TYPE)?tt:e.PARSER_MEDIA_TYPE,rt="application/xhtml+xml"===Qe?function(e){return e}:g,Ce&&(Te=!1),Ie&&(je=!0),Pe&&(_e=k({},[].concat(W(N))),Ee=[],!0===Pe.html&&(k(_e,q),k(Ee,O)),!0===Pe.svg&&(k(_e,A),k(Ee,j),k(Ee,U)),!0===Pe.svgFilters&&(k(_e,T),k(Ee,j),k(Ee,U)),!0===Pe.mathMl&&(k(_e,C),k(Ee,I),k(Ee,U))),e.ADD_TAGS&&(_e===xe&&(_e=S(_e)),k(_e,e.ADD_TAGS)),e.ADD_ATTR&&(Ee===ke&&(Ee=S(Ee)),k(Ee,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&k(ze,e.ADD_URI_SAFE_ATTR),e.FORBID_CONTENTS&&(He===Ve&&(He=S(He)),k(He,e.FORBID_CONTENTS)),Fe&&(_e["#text"]=!0),Re&&k(_e,["html","head","body"]),_e.table&&(k(_e,["tbody"]),delete De.tbody),a&&a(e),nt=e)},st=k({},["mi","mo","mn","ms","mtext"]),ut=k({},["foreignobject","desc","title","annotation-xml"]),ct=k({},A);k(ct,T),k(ct,L);var lt=k({},C);k(lt,R);var pt=function(e){var t=re(e);t&&t.tagName||(t={namespaceURI:Ke,tagName:"template"});var r=g(e.tagName),n=g(t.tagName);if(e.namespaceURI===Je)return t.namespaceURI===Ke?"svg"===r:t.namespaceURI===Ye?"svg"===r&&("annotation-xml"===n||st[n]):Boolean(ct[r]);if(e.namespaceURI===Ye)return t.namespaceURI===Ke?"math"===r:t.namespaceURI===Je?"math"===r&&ut[n]:Boolean(lt[r]);if(e.namespaceURI===Ke){if(t.namespaceURI===Je&&!ut[n])return!1;if(t.namespaceURI===Ye&&!st[n])return!1;var o=k({},["title","style","font","a","script"]);return!lt[r]&&(o[r]||!ct[r])}return!1},ft=function(e){h(t.removed,{element:e});try{e.parentNode.removeChild(e)}catch(t){try{e.outerHTML=ie}catch(t){e.remove()}}},dt=function(e,r){try{h(t.removed,{attribute:r.getAttributeNode(e),from:r})}catch(e){h(t.removed,{attribute:null,from:r})}if(r.removeAttribute(e),"is"===e&&!Ee[e])if(je||Ie)try{ft(r)}catch(e){}else try{r.setAttribute(e,"")}catch(e){}},ht=function(e){var t=void 0,r=void 0;if(Oe)e=""+e;else{var o=m(e,/^[\r\n\t ]+/);r=o&&o[0]}"application/xhtml+xml"===Qe&&(e=''+e+"");var i=oe?oe.createHTML(e):e;if(Ze===Ke)try{t=(new E).parseFromString(i,Qe)}catch(e){}if(!t||!t.documentElement){t=se.createDocument(Ze,"template",null);try{t.documentElement.innerHTML=Xe?"":i}catch(e){}}var a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ze===Ke?le.call(t,Re?"html":"body")[0]:Re?t.documentElement:a},gt=function(e){return ue.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},mt=function(e){return e instanceof x&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof p)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore)},vt=function(e){return"object"===(void 0===s?"undefined":z(s))?e instanceof s:e&&"object"===(void 0===e?"undefined":z(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},bt=function(e,r,n){de[e]&&f(de[e],(function(e){e.call(t,r,n,nt)}))},yt=function(e){var r=void 0;if(bt("beforeSanitizeElements",e,null),mt(e))return ft(e),!0;if(m(e.nodeName,/[\u0080-\uFFFF]/))return ft(e),!0;var n=rt(e.nodeName);if(bt("uponSanitizeElement",e,{tagName:n,allowedTags:_e}),!vt(e.firstElementChild)&&(!vt(e.content)||!vt(e.content.firstElementChild))&&w(/<[/\w]/g,e.innerHTML)&&w(/<[/\w]/g,e.textContent))return ft(e),!0;if("select"===n&&w(/